今天做一篇关于PKI的笔记,PKI是目前来说信息安全领域很流行的技术,它的应用已经很广泛了。
PKI是指公钥基础设施,它是通过公钥加密技术和数字签名服务保证传输数据的安全。它最重要的几个部分是公钥加密算法,数字证书,CA证书颁发机构,RA注册机构。PKI应用最多的一般是SSL/HTTPS,还有就是VPN。
公钥加密技术实现对信息的加密,一般是用hash算法。数字签名一般是发送者用自己的私钥对摘要加密,保证信息的完整性。CA颁发的证书是为了验证发送方与接收方两者交换的公钥就是两者自己的,没有被掉包。RA可以看做为CA的一个子功能,一般CA自己就能完成整个功能,不需要RA。
在网络中有些数据是保密的,不能进行明文传输,所以就会用到加密算法。接下来我讲一下对称加密算法和非对称加密算法。常用的对称加密算法有:3DES、AES、IDEA、RC6等等。常用的非对称加密算法有:RSA、ECC、DH等等。
对称加密算法就是通信双方使用加密和解密的公钥是一致的。非对称加密是通信双方各自生成属于自己的公钥和私钥,公钥加密数据只能用自己的私钥可以解密,私钥加密数据只能用自己的公钥解密,在通信时双方交换属于自己的公钥,并且只知道公钥或者是只知道私钥是不能互相推算对应的私钥或公钥。
接下来我要详细讲解一下非对称加密算法的过程。
(1)通信双方交换公钥,为了验证公钥的身份是否正确,所以需要由CA颁发证书。发送方首先向CA发送自己的个人信息比如自己的国家、电话、电子邮件等等,还会发送自己的公钥,CA在接收到这些信息之后会向发送方颁发证书,证书的内容就是有效期、发送者的公钥、发送方的标识信息和CA的数字签名等等,数字签名就是CA会用自己的私钥加密。然后发送方就会把自己从CA申请的证发送给接收方,接收方会从CA那里申请CA的公钥(前提是接收方信任CA),用于解密证书里的数字签名,验证解密后得到的公钥和发送过来的公钥做对比是否一致,一致的话说明公钥身份正确。最后两者就可以进行数据的传输了。
(2)发送方用接收方的公钥加密传输的数据,并且在加上自己的数字签名(也就是上图中的加密的摘要),发送给接收方。
(3)接收方对传过来数据验证,验证通过就用自己的私钥解密,这就得到发送方发送的数据。
在上图中有一个hash算法,它也叫哈希算法,它是把任意长度的数据转化为固定的的长度输出,这个过程是不可逆的。常用的哈希算法有MD5、SHA、HAVAL等。哈希算法的应用有很多,比如在下载大内容的文件时可以通过哈希值来验证文件是否完整,windows系统的账户密码也是通过哈希算法保存的。