1.2 互联网数据加密的细节
1.3 互联网数据签名的细节
1.4 互联网数据安全传输的细节
1.5 CA、PKI及信任CA
1.6 数字证书类型和内容
1.7 SSL握手机制
1.1 背景知识对称加密 :加密解密使用同一密钥,加解密速度快。随着人数增多,密钥数量急增n(n-1)/2。
非对称加密 :使用公私钥配对加解密,速度慢。公钥是从私钥中提取出来的,一般拿对方公钥加密来保证数据安全性,拿自己的私钥加密来证明数据来源的身份。
单向加密 :不算是加密,也常称为散列运算,用于生成独一无二的校验码(或称为指纹、特征码)来保证数据的完整性和一致性,如MD5、SHA。具有雪崩效应,任何一点数据的改变,生成的校验码值变化非常大。
互联网数据安全可靠的条件:
1.数据来源可信,即数据发送者身份可信。
2.数据具备完整性,即数据未被修改过。
3.数据安全性,即数据不会被泄漏,他人截获后无法解密。
1.2 互联网数据加密的细节对数据加密的方法有三种:对称加密、私钥加密和公钥加密。三种方法只靠其中任意一种都有不可容忍的缺点,因此考虑将它们结合使用。
考虑这三种加密算法的特性,公私钥加密速度慢,对称加密快,所以可以首先对数据部分使用对称加密。再进一步考虑,公钥大家都可以获取,若使用自己私钥加密,数据被截获后直接就被破解,因此使用对方的公钥加密,又由于公钥加密速度慢,所以可以使用对方公钥对对称密钥部分进行加密。
数据的收取者解密时,将使用自己的私钥解密第一层,得到对称密钥后加密的数据,再使用对称密钥解密,这样就能获得最终数据。
如下图所示分别是加密和解密的全过程。
加密的方法很多,但是上述方法是综合考虑互联网安全后较为成熟的一种简单加密方法。
使用上述方法加密保证了数据的安全性,但是还未保证数据的完整性、一致性以及数据来源的可靠性。
1.3 互联网数据签名的细节在保证了数据的安全性后,还需要保证数据的完整性、一致性以及数据来源的可靠性。
对于数据的完整性和一致性,使用单向加密算法,通过hash函数计算出数据独一无二的校验码,这个校验码称为“信息摘要(Message Digest)”。
对于数据来源可靠性,使用自己的私钥加密即可验证身份,因为获得数据后使用公钥不能解密的就证明数据不是配对私钥加密的。但是私钥加密速度慢,所以只用私钥加密摘要信息,加密后的摘要信息称为“数字签名(Signature)”。
用户获得数字签名后的数据,首先使用数据来源方的公钥解密,这样获得了数据和信息摘要部分,并确认了数据来源的可靠性。由于这时候数据部分是没有被加密的,所以用户也可以使用同种单向加密算法计算出摘要信息,然后对比来源方的摘要信息和自己计算出的摘要信息,如果相等则证明数据完全未被修改过,是完整一致的。
因此只要使用数字签名就能保证数据来源的可靠性、数据的完整性和一致性。
如图所示分别是数字签名和确认数据的全过程。
1.4 互联网数据安全传输的细节要在互联网上安全传输数据,要保证数据来源可靠、数据原始未被修改过、数据丢失不泄密。
如果数据传输双方张三和李四不在意数据丢失的泄露性,那么可以不对数据进行加密,只要数字签名即可,即使被中间人王五截获了甚至截获后修改一番再发送给李四也无所谓,因为李四可以根据数字签名验证数据的来源及数据的完整性,若发现被修改后大不了不用了。现在互联网上很多时候下载软件时就提供了签名验证,使用的就是这种机制,不管软件是否被截取,只要安装者能验证即可,如下图。
但是如果在意数据泄漏呢?就需要将数字签名和加密结合起来使用。有两种方案:1.先对数据加密,再对加密后的整体进行数字签名;2.先对数据进行数字签名,再对签名后的整体进行加密。
在互联网上基本使用第二种方法,用户最终只对数据部分进行校验而不对加密后的数据进行校验。具体细节如下:首先进行数字签名,再使用对称加密加密签名后的整体,然后使用对方的公钥只加密对称密钥部分。这样即保证了加密速度,还保证了数据的安全性、可靠性和完整性。解密时反向进行即可。如图所示。