单页网站在线制作,北京seo优化推广,代理网店一件代发,php网站空间安当有个客户开发了一套C/S架构的软件#xff0c;Server在云端#xff0c;Client由不同的用户使用。最初软件设计开发的时候#xff0c;没有考虑数据安全形势日渐严峻的问题#xff0c;Server端和Client端直接就建立一个socket连接来进行通信#xff0c;Server端发出去的数…
安当有个客户开发了一套C/S架构的软件Server在云端Client由不同的用户使用。最初软件设计开发的时候没有考虑数据安全形势日渐严峻的问题Server端和Client端直接就建立一个socket连接来进行通信Server端发出去的数据还涉及到一些敏感字段和指令随着越来越多的用户开始关注安全问题这个安全架构显然已经不满足最基本的数据安全要求。
由于Client端数量较多客户希望能有一种相对成本可控的安全加固方案。如下的案例介绍我们会分享一下安当如何通过在Client端增加UKEY通过信封加密的方法在应用层将数据加密实现数据的安全传递的。
一、什么是信封加密
信封加密Envelope Encryption是一种高效的加密技术特别适用于处理海量数据场景。顾名思义信封加密是一种类似数字信封技术的加密手段它通过将加密数据的数据密钥Data Encryption Key, DEK封入一个“信封”中进行存储、传递和使用而不再直接使用用户的主密钥Customer Master Key, CMK来加密和解密数据。这种方式结合了对称加密如AES和非对称加密如RSA两种技术的优势。
通常各个厂家的KMS都提供了支持客户软件通过API调用来完成信封加密的过程。我们以安当的KSP密钥安全平台为例来看看信封加密的具体过程
1. 生成密钥
首先通过KSP的GenerateDataKey接口生成一个数据密钥DEK这个接口会同时返回一个明文DEK和一个用CMK加密后的密文DEK。接着可以在本地生成RSA密钥对如果需要的话这一步不是必须的因为DEK的密文已经由CMK加密。
2. 加密数据
使用明文DEK对需要加密的数据进行对称加密生成密文数据。将密文DEK即DEK的密文和密文数据一起存储或传输。这里的密文DEK和密文数据可以被形象地比喻为“信封”和“信件”。
再来看看具体解密过程
1. 获取密钥
从存储设备中取得密文DEK和密文数据。如果使用了RSA加密DEK的密文则需要使用RSA私钥解密密文DEK得到明文DEK这一步在实际场景中可以直接使用KSP的Decrypt接口解密密文DEK。
2. 解密数据
使用明文DEK对密文数据进行对称解密得到原始数据。
二、C/S架构软件中的信封加密实例
该案例中客户从综合数据安全解决方案的角度计划在后续的迭代中引入密钥管理系统来进行完整的数据安全加固。在项目前期先通过给Client配发UKEY智能密码钥匙配合UKEY预置的RSA密钥对来实现信封加密机制实现应用层的数据加密。
整个方案流程如下 以上流程中基于场景描述需要我们给不同的密钥的不同的命名具体含义如下
PUB-KEYRSA加密公钥PRI-KEYRSA加密私钥D-KEY后台数据加密密钥S-KEY临时会话密钥
方案流程只是原理示例具体设计到的安当UKEY的一些接口使用案例中就不赘述了。经过这一层安全加固之后显而易见的两个好处
首先传输的数据安全了原来socket接口上的数据流被S-KEY加密过了即使被监听监听者即使拿到加密后的S-KEY没有UKEY内置的私钥是没办法解密的。其次Server端对Client有硬件令牌管控了客户端配发UKEY的方式也相当于每个客户端有了一个身份令牌。
三、安当的其他安全加固建议
安当目前帮客户实施的只是应用层的数据加密C/S架构软件实现客户端和服务端之间的数据安全传输需要一个系统的加固方案。
1. 应用加密技术确保应用层和传输层数据安全
传输层加密
SSL/TLS协议这是最常用的传输层加密协议之一它可以在客户端和服务器之间建立一个加密的通道确保数据在传输过程中的机密性和完整性。SSL/TLS协议通过握手过程协商加密密钥并使用这些密钥对数据进行加密和解密。
应用层加密
对称加密如AES高级加密标准客户端和服务端可以使用相同的密钥对数据进行加密和解密。但密钥的安全传输是一个问题通常需要使用非对称加密技术来安全地交换密钥。非对称加密如RSA客户端和服务器各自拥有一对公私钥。私钥保密公钥公开。客户端可以使用服务器的公钥加密敏感数据或对称密钥然后发送给服务器服务器使用自己的私钥解密。
2. 安全协议的选择
HTTPS基于HTTP协议和SSL/TLS协议为Web应用提供安全的数据传输。HTTPS是C/S架构中Web服务常用的加密通信协议。自定义协议在某些特定场景下开发者可能会根据业务需求自定义安全协议以确保数据传输的安全性和效率。
3. 数据完整性和校验
数字签名服务端可以使用私钥对消息进行签名客户端使用服务端的公钥验证签名的真实性以确保消息在传输过程中未被篡改。哈希校验在数据传输前后使用哈希算法对数据进行校验确保数据的完整性和一致性。
4. 访问控制和认证
用户认证通过用户名、密码、令牌等方式对客户端进行身份认证确保只有合法的用户才能访问服务端资源。权限控制根据用户的身份和角色限制其对服务端资源的访问权限防止未授权的数据访问。
5. 网络安全措施
防火墙在服务器和网络边界部署防火墙过滤非法访问和攻击流量保护服务端资源的安全。入侵检测系统实时监控网络流量和服务器日志检测潜在的入侵和攻击行为并及时采取应对措施。
数据安全无止境只有综合评估企业业务系统架构以及数据全生命周期的各个环节才能在成本与安全之间达到一个合适的平衡。安当建议客户考虑数据全生命周期的安全方案依托安当的KDPS解决方案对生产环节数据、传输环节数据、存储环节数据都做好安全保护。 文章作者太白 ©本文章解释权归安当西安研发中心所有