当前位置: 首页 > article >正文

【安当产品应用案例100集】034-安当KSP支持密评中存储数据的机密性和完整性

 

安当KSP是一套获得国密证书的专业的密钥管理系统。KSP的系统功能扩展图示如下:

我们知道商用密码应用安全性评估中,需要确保存储的数据不被篡改、删除或者破坏,必须采用合适的安全方案来确保存储数据的机密性和完整性。KSP能否满足这个需求呢?我们来看一个具体的案例。

实施方案图示如下:

一、存储数据完整性方案实现

1、消息鉴别码方式

主业务系统通过KSP提供的KADP扩展组件来访问KSP的提供的密码服务,对业务关键数据使用密钥通过SM3杂凑算法计算HMAC值。

1)计算过程

  • 执行业务流程的用户在业务系统录入信息
  • 业务系统将录入的关键数据的相关敏感信息,传给KADP接口进行MAC运算。
  • KADP通过安全通道调用KSP密钥管理系统中存储的密钥通过SM3杂凑算法计算其MAC值。
  • 业务系统将关键数据的相关敏感信息及其MAC值一同存储到存储服务器中。
  • 用户每次访问重要的关键数据时,系统自动调用KADP接口,使用SM3杂凑算法,验证关键数据的相关敏感信息的MAC值,及时发现篡改行为。

2)验证过程

  • 业务系统用户访问关键数据。
  • 业务系统调用KADP接口,通过KSP密钥管理平台获取密钥并使用SM3杂凑算法,计算当前关键数据的相关敏感信息及系统密钥的MAC值。
  • 比较当前关键数据的相关敏感信息和最近一次关键数据的相关敏感信息的MAC值。
  • 如果MAC值一致,说明当前敏感数据未被篡改,用户获得数据,否则说明数据已被篡改,业务系统报警。

2、数字签名方式

主业务系统通过调用KADP,使用SM3杂凑算法和SM2非对称密码算法,对关键数据进行签名。

1)计算过程

  • 用户执行业务流程,录入数据。
  • 业务系统存储关键数据,同时将关键数据提交KADP接口计算数字签名。
  • KADP使用SM3杂凑算法,计算关键数据的摘要值,并调用KSP上存储的的签名私钥对摘要值做数字签名,形成签名值。

2)验证过程

  • 用户访问关键数据时,系统自动调用KADP接口,使用SM3杂凑算法和SM2非对称密码算法,验证关键数据的数字签名。
  • 业务系统提取当前关键数据和最近的关键数据的数字签名调用KADP,申请签名验证。
  • KSP调用系统的签名公钥解密最近的关键数据的数字签名,获取最近关键数据的摘要值。
  • KSP使用SM3杂凑算法,计算当前关键数据的摘要值,并与最近关键数据的摘要值进行比较,返回验证结果。如果两个摘要值一致,说明关键数据未被篡改,否则业务系统报警。

二、存储数据机密性方案实现

此方案中存储数据的机密性是通过安当TDE数据库加密客户端实现的,采用磁盘加密技术,为数据库提供了全面的数据保护。具体过程如下:

  • 在KSP密钥管理系统中配置加密策略,指定存储服务器上可访问数据库实例的操作系统用户、进程。
  • 业务系统正常的数据库增删改查。TDE的保护动作发生在操作系统内核。
  • 当数据写入磁盘前TDE对其进行加密,在读取时自动解密。
  • 当有非授权进程或者用户访问数据库文件时,TDE可以阻止非法访问。
  • 当存储服务器被攻击,数据被攻击者拖库,因为磁盘上的文件是加密的,攻击者无法破解。

安当TDE通过磁盘加密技术,实现对数据库磁盘文件的透明加密,以及操作系统层面的用户权限控制,可以确保数据在存储过程中安全可控。

三、综述

数据存储的机密性和完整性是密评中非常重要的评估内容,采用安当KSP密钥管理系统及其组件来实现,除了满足这两个核心需求,还可以支持未来可能的业务扩展。比如:

1)业务系统中的关键数据,可以通过KADP接口进行脱敏处理,确保关键数据使用过程的安全性。

2)企业的文件服务器,也可以通过TDE客户端来保护,实现关键数据的机密性保护,并且可以防护勒索软件的攻击。

3)KSP内置CA能力,可以满足企业内部的身份认证需求以及系统间安全认证需求。

以上只列出了部分的KSP密钥管理平台扩展能力,在企业安全的领域,还可以结合安当访问控制、身份验证等技术,共同构成多层次的安全防护体系,提高业务系统整体安全性。

文章作者:太白 ©本文章解释权归安当西安研发中心所有


http://www.kler.cn/a/517007.html

相关文章:

  • PBFT算法
  • 运行虚幻引擎UE设置Visual Studio
  • Go学习:常量
  • 解释 RESTful API,以及如何使用它构建 web 应用程序
  • 图谱之前端关系应用
  • springboot基于微信小程序的商城系统
  • Stable Diffusion 图片背景完美替换
  • 游戏设备升级怎么选?RTX4070独显,ToDesk云电脑更具性价比
  • 仿 RabbitMQ 的消息队列3(实战项目)
  • 深度学习-93-大语言模型LLM之基于langchain的模型IO的输出解析
  • JAVA系统中Spring Boot 应用程序的配置文件:application.yml
  • 监控系统-zabbix
  • JAVA与数据结构-线性表
  • Git处理冲突详解
  • 如何把jupyter的一个.ipynb文件的多个单元格cell合并为1个cell
  • 深度学习之使用yolo网络训练kitti数据集:kitti数据集转换为VOC格式
  • RabbitMQ 仲裁队列 -- 解决 RabbitMQ 集群数据不同步的问题
  • 从Python的GIL谈谈Python多线程和多进程
  • 基于 WEB 开发的手机销售管理系统设计与实现内容
  • vue2的$el.querySelector在vue3中怎么写
  • Addressable学习
  • 【Postgres_Python】使用python脚本将多个PG数据库合并为一个PG数据库
  • Amazon Redshift实用命令语句
  • docker启动服务占用172.18网段怎么改成其他网段?和网桥有关吗?或者怎么改docker-compose启动用的yml文件
  • 理解深度学习pytorch框架中的线性层
  • AWS 签名算法SigV4 的python实现