网络传输分为明文传输和加密传输,显而易见加密传输才是安全的传输。
常见的明文传输协议:http,smtp,dns,pop3,imap4
最常见的加密传输:https
2.数据加密的方式:
对称加密:加密方和解密方使用同一个密钥,其优点是:加密解密的速度快,适合于大量数据的加密。缺点是:无法进行密钥交换。
公钥加密(非对称加密):使用接受方的公钥进行加密,接收方在使用自己的私钥进行解密。缺点是:加密效率低,一般不用在数据加密上,通常是用在数据加密的密钥交换上的加密。
单向加密(摘要算法):获取数据的特征码,其特点是:定长的输出,加密过程不可逆,具有雪崩效应也称作蝴蝶效应。摘要算法也称为哈希算法、散列算法,可以将任意长度的数据转换成一个定长的、不可逆的数字。只要原文本不同,计算的结果必然不同(几乎不用考虑重复的情况)。摘要算法用于对比信息源是否一致,因为只要数据源发生变化,得到的摘要信息必然不同,通常用于签名校验。
3. 数字签名
数字签名同时使用非对称加密和摘要加密的方法,保证文件不被篡改的技术。原理:发送方使用摘要算法获得发布内容的摘要,然后使用私钥对摘要进行加密(加密后的数据就是数字签名),然后将发布内容、数字签名和公钥一起发送给接收方即可。接收方接收到内容后,首选取出公钥解密数字签名,获得正文的摘要数据,然后使用相同的摘要算法计算摘要数据,将计算的摘要与解密的摘要进行比较,若一致,则说明发布内容没有被篡改。
注:只要拿到公钥,就能读取文件摘要。然而,不能对该摘要修改,因为修改之后没有私钥就没法加密,因为没法对摘要修改,那原文就不能修改,否则hash算法结果对不上。所以数字签名可以保证文件不被篡改。就算知道公钥也不行。(个人理解)
4. 证书 和数字证书
签发者
证书用途
公钥
加密算法
HASH算法
证书的到期时间等
数字证书(CA),经过数字签名的数字证书。ca为证书申请者制作证书,并对证书内容进行数字签名,以保证该证书不会被篡改。
例如,SSL/TLS 是最常用的传输加密协议:
SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。为了保证公钥不被篡改,将公钥放在数字证书中即可
公钥加密计算量太大,为此每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。
SSL/TLS通信过程:
1. client发送请求信息(client hello):
包括:支持的协议,如:TLS 1.0
生成一个随机数,用于生成对话密钥
支持的加密方法:如RSA公钥加密
支持的压缩方法
2 服务器回应(SeverHello):
确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致, 服务器关闭加密通信。
一个服务器生成的随机数,稍后用于生成"对话密钥"。
确认使用的加密方法,比如RSA公钥加密。
服务器证书。
3.客户端回应
一个随机数。该随机数用服务器公钥加密,防止被窃听。
编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的 hash值,用来供服务器校验。
4.服务器的最后回应
服务器收到客户端的第三个随机数pre-master key之后,计算生成本次会话所用的"会话密钥"。然后,向客户端最后发送下面信息。
(1)编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。
(2)服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。