还记得第一次注册taobao帐号后在网上购买付款的情景。在选购好商品后,点击付款,浏览器会跳转到以“https”开头的网页链接,然后输入银行卡的付款密码完成商品的付款。那时只知道以https开头的链接是一个经过加密后的安全链接,自己在此网页中输入的密码是经过加密后以密文的方式进行传输的,所以密码是无法被窥视的。
如今,对https这种安全链接所涉及到的计算知识和工作原理也有了一定的了解,但从未进行过系统的整理,现通过学习与记录的的方式,好好梳理一下这方面的知识。
一、安全网络的目标
1.1 数据的机密性
机密性就是为了防止数据被未授权的读取。所以数据的发送方和接收方要以某种加密的机制来对数据进行加密处理,双方传输的数据是被处理后的密文。
1.2 数据的完整性
完整性是为了防止数据被未授权的修改,或至少要有机制能检测出数据被修改过。
1.3 数据的可用性
可用性主要针对提供服务的一方,当服务器受到拒绝服务(dos)***时,使用得资源的可获得性降低或者根本无法获得信息。
二、安全协议
2.1 SSL
SSL(Secure SocketLayer)安全套接字层协议是web浏览器与服务器间安全交换数据的协议。有V1、V2、V3三个版本,V3版目前常用。
2.2 TLS
TLS(Transport LayerSecurity)传输层安全协议。有V1版本,功能与SSL V3相似。
在互联网模型中SSL/TLS协议工作于应用层和TCP层间,应用层的数据不再直接发往传输层,而是发送给SSL层,通过SSL加密后再进行下一步的处理。
三、加密方法
3.1 对称加密(保证数据的机密性,也就是把明文转换成不易读取的密文)
加密解密使用同一个密码,也就是加密密钥与解密的密钥相同,得到了加密密钥也就得到解密密钥。主要用于保证数据的机密性。密钥的安全性成为此种加密的关键。
3.1.1 DES(Data Encryption Standard)数据加密标准,也称为数据加密算法,此种加密算法的原理是由循环移位思想而来。
3.1.2 3DES 三重DES是DES的变体,这是DES的一种加强版,它增长了加密密钥的长度,由DES的56位增加到了168位。
3.1.3 AES(Advanced Encryption Standard)高级加密标准,也是一种高级加密算法
3.2 非对称加密(非对称加密算法用公钥加密对称密钥,保证进行密钥交换时密钥的安全)
非对称加密系统中会涉及到一组密钥对,一个公开的密钥,叫公钥(publickey);一个私有的,叫私钥(privatekey)。公钥是一个可公开的,私钥则是隐密性,不可被未授权用户的访问。公钥是从私钥中提取出来的,用私钥加密的数据只能用与之配对的公钥来解密,这实现了验证身份的目的;用公钥加密的数据只能用与之配对的私钥来解密,这实现了数据的机密性。因非对称加密基于数字函数实现,算法复杂,较于对称加密,非对称加密速度慢,不适合用于加密交换的大量数据,它主要的目的是用于交换对称加密算法的密钥,密钥交换后双方就可用密钥以对称加密方式交换数据,而此密钥在传输到对方时是经过非对称加密算法进行加密的,安全性得到保障。
3.2.1 非对称加密算法
RSA
DSA
DSS
ECC
3.3 单向加密(保证数据的完整性)
单向加密只能是从明文加密成密文,并不能从密文解密成明文。
3.3.1 加密算法
MD5
SHA1、SHA256、SHA512、SHA3
HMAC
3.3.2 单向加密特性
定长输出:无论加密的数据有多大,加密后输出都是一个定长的数据。
雪崩效应:即使原源数据发生细微的变化,加密后的输出会发生巨大的变化。
在实际的运用中,这三种加密方法往往不会单独使用,一般都是结合起来实现数据的安全传输。数据在网络中一次完整的数据通信过程是怎样的呢?简单的描述如下:
发送方:
1、 发送方使用选定的单向加密算法计算源数据的特征码;
2、 发送方使用自己的私钥加密此特征码,并把加密后的密文数据附加在源数据后面;
3、 发送方生成一次性对称密钥,并使用此密钥加密数据(源数据+加密特征码后的密文数据)
4、 发送方使用接收方的公钥加密一次性对称密钥,并附加于已加密的数据后面;
5、 数据已准备妥当,开始发送数据。
接收方:
1、 接收方使用与公钥配对的私钥解密数据,可得到一次性对称密钥;
2、 用一次性对称密钥解密数据,可得到源数据和加密特征码后的密文数据;
3、 用发送方的公钥解密数据,得到源数据和源数据的特征码;
4、 使用与发送方相同的单向加密算法重新计算源数据的特征码,并与解密出的特征码进行比较,如果特征码相同,那得到的源数据可信,否则,源数据不可信。
PS:文字性的东西总是让人不好记忆,现上传用xmind做的笔记,见附件!
转载于:https://blog.51cto.com/zhaochj/1592871