-
-
加密方法
-
对称加密
-
如3DES、AES等算法,使用这种方式加密是可以通过解密来还原出原始密码的,当然前提条件是需要获取到密钥。不过既然大量的用户信息已经泄露了,密钥很可能也会泄露,当然可以将一般数据和密钥分开存储、分开管理,但要完全保护好密钥也是一件非常复杂的事情,所以这种方式并不是很好的方式。
-
-
使用MD5、SHA1等单向HASH算法保护密码
-
使用这些算法后,无法通过计算还原出原始密码,而且实现比较简单,因此很多互联网公司都采用这种方式保存用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立彩虹表进行查表破解,目前这种方式已经很不安全了。
-
-
特殊的单向HASH算法
-
由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。
-
-
PBKDF2算法
-
该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。使用PBKDF2算法时,HASH算法一般选用sha1或者sha256,随机盐的长度一般不能少于8字节,HASH次数至少也要1000次,这样安全性才足够高。
-
-
-
密钥的传输
-
密钥的传输是一个敏感的过程,因为任何传输过程中出现的漏洞都可能导致攻击者获取密钥。因此,在传输过程中需要采取以下措施来确保密钥的安全
-
使用安全通道 必须确保密钥的传输过程是受保护的。对于不安全的网络服务器,加密通道可以使用通信通道隧道协议(如SSL / TLS)来保护数据和密钥的传输。
-
使用数字证书 数字证书还可以防止攻击者在中间进行中间人攻击,对数据及密钥进行窃取。
-
避免使用不安全的传输 本来就不安全的传输方式不应使用,如电子邮件传送、共享文件的方式传送,尤其不应使用明文传输。
-
-
-
密钥安全存储
-
使用安全的存储设备 密钥需要存储在安全的设备中,如专门的加密设备或安全存储介质(如加密的USB硬盘)中。
-
禁止明文存储 不应该将明文的密钥存储在计算机硬盘上,以免被攻击者获取。
-
使用分离存储 可将密钥分离存储,如由两个不同的人各自持有密钥媒介的一部分,这样可增加密钥的安全性。
-
可逆加密一般是客户端保存密码,客户端需要还原出密码然后使用密码访问服务器。可逆加密的AES算法需要一个密钥,通过密钥加密和解密。因此AES算法的关键就是密钥。 通常的做法是密钥也加密存储,如果这么做,就是一个鸡和蛋的问题了。 解决这个问题的一个方法是提供一个 根密钥 和 工作密钥 。
-
密钥分层管理结构 密钥的安全管理通常采用层次化的保护方法。密钥管理分层管理机制将密钥分为三层,即根密钥、密钥加密密钥和工作密钥 下层密钥为上层密钥提供加密保护,采用分层的密钥结构有助于密钥的管理满足本规范的要求 工作密钥 工作密钥对本地保存的敏感数据和需要在不安全信道上传输的数据提供机密性、完整性保护,还可提供认证和签名等密码学服务。工作密钥直接被上层应用程序所使用,包括存储加密使用的密钥、预共享密钥、MAC密钥、签名私钥等 密钥加密密钥 对工作密钥提供机密性保护的密钥,其自身受到根密钥的保护。对于较为简单、安全等级要求不高的密码应用系统,密钥加密密钥的职能可以直接由根密钥兼任
-
根密钥 位于密钥管理分层结构的最底端,用于对上层密钥(如密钥加密密钥)的机密性进行保护 规则 密钥分层管理至少选择两层结构进行管理 密钥的分层管理机制最少把密钥分为两层,即:根密钥和工作密钥,根密钥为工作密钥提供加密保护。根密钥、工作密钥的生成必须满足密钥生成的相关要求。
-
在应用系统中,如果使用根密钥直接保护工作密钥,根密钥的更新会导致所有受其加密保护的工作密钥需要全部使用更新前的根密钥解密,再重新使用更新后的根密钥加密。当工作密钥数量比较庞大时,对工作密钥的解密和加密操作将耗费大量的资源并影响系统的性能。为解决上述问题,推荐使用三层密钥管理结构,在根密钥和工作密钥之间增加一层密钥加密密钥(KEK),密钥加密密钥对工作密钥进行加密保护,根密钥则对KEK进行加密保护。当根密钥更新时,只需要解密和重新加密KEK即可,由于KEK的数量远远小于工作密钥数量,对KEK的解密和加密操作不会消耗大量资源,对系统的性能影响很小。当KEK更新时,将需要被更新的KEK和被其保护的工作密钥都保存成历史密钥信息。应用系统需要解密被历史密钥信息加密的数据时,直接使用历史密钥解密即可。
1.根密钥 根密钥不加密存储,文件权限为600 2.工作密钥 工作密钥由根密钥加密得到,文件权限为600 3.密码使用工作密钥加密,不使用根密钥加密 3.密钥建议可以替换,以便及时修复密钥泄漏问题(最好没问题,有问题了尽量把影响降低到最小,有问题了能尽快修复)
-
-
非可逆加密方式存储
非可逆加密一般是服务端存储密码方式,因为服务端不需要逆向密码明文,服务端在校验密码的时候,有很多种方式。最常见的是把客户端发送过来的明文密码加密得到密文,与服务器保存的密文对比是否相等。
非可逆加密一般有一个随机盐值,保护好随机盐值,比可逆加密算法防护措施要简单。
-
-