常见的明文传输协议有:http,smtp,dns,pop3,imap4。
常见的攻击方式有:窃听,数据注入,会话劫持
为了保证互联网上的数据传输的安全性,于是各种的加密方式和加密算法诞生了:
数据加密方式:对称加密、公钥加密、单向加密。
1.对称加密:加密方和解密方使用同一个密钥,其优点是:加密解密的速度快,适合于大量数据的加密。缺点是:无法进行密钥交换。
2.公钥加密:使用接受方的公钥进行加密,接收方在使用自己的密钥进行解密。缺点是:加密效率低,一般不用在数据加密上,通常是用在数据加密的密钥交换上的加密。
3.单向加密:获取数据的特征码,其特点是:定长的输出,加密过程不可逆,具有雪崩效应也称作蝴蝶效应。
由上面的加密方式可以得知,每一种加密方式都具有缺点,要想在互联网上传输数据既要保证数据的完整性和数据的保密性,以及数据发送者的身份验证 ,显然使用一种加密方式是远远不够的。
单说要完成数据发送者的身份验证:
发送者使用自己的私钥对某一数据的特征码或其他进行加密,当接受者收到数据时在使用发送者的公钥进行解密,这一过程就可以完成发送者的什么验证,该过程又称作"数字签名"。
在既保证数据的完整性,保密性以及实现发送者的身份验证的数据传送过程:
首先发送者对自己要发送的数据进行单行加密,计算出数据的特征码,并且使用自己的私钥讲该段特征码进行加密,并且将其特征码附加至数据的尾部,之后在使用对称加密,随机生成一个加密密码,使用该密码对包含有特征码和数据这一整块进行加密,之后在使用接受者的公钥对随机生成的这个密码进行加密,附加至所有数据之后发送给接受者!
整个加密过程如图所示:
在这个传送过程中,为保证数据的完整性,首先使用了单向加密,计算出数据的特征码。
又为实现数据的保密性,使用对称加密,随机生成加密密码对数据和特征码加密。
其次实现发送者的身份验证:使用公钥加密方式,使用发送者的私钥对密码进行加密。
最后为保证所有的数据的保密性,再次的使用公钥加密方式,使用接收者的公钥进行加密。
在这个过程看似完美,但是有个细节,接受者如何获取发送者的公钥,以及发送者如何获取接收者的公钥?这时就要借住一个第三方CA。
CA:证书办法机构。
PKI:公钥基础设施。
PKI的核心就是CA
CA的组成: 1.证书的持有者;
2.CA的相关信息;
3.证书的使用方法;
4.持有者的公钥;
5.证书的有效日期。
下面就来说,接收者如何确认发送者的公钥:
首先:CA是一个接收者和发送者共同信任的第三方,也可以说是中间人。
其次:CA为了保证自己的权威性,在颁发证书之前一定回去实地考查申请证书的用户或主机的真实情况,一切属实才会为其办法证书。
再而:CA为了保证证书确实是由自己颁发,并且证书内容没有被篡改过,这里就要CA进行数字签名。
首先:CA使用单向加密方式计算出真个证书的特征码;
之后:使用公钥加密方式,使用CA自己的私钥对特征码进行加密,并且附加在证书的后面。
当接受者或发送者收到对方的证书后,首先使用CA的公钥进行解密出特征码,然后使用单行加密方式计算出证书的特征码,相比较两个特征码,如果相同,则表示证书中的公钥确实是对方的公钥。于是获得了对方的公钥。
而此时CA的公钥又从何而来呢?在操作系统的制作时,就会植入一部分权威的CA机构的公钥,也就是本机自带喽!而如果你所需要的CA并没有在系统中,那么你就需要到这家CA获得其公钥,然后导入到您的服务器中。
来源:oschina
链接:https://my.oschina.net/u/133/blog/678147