web加密、解密学习笔记本

还记得第一次注册taobao账号后在网上购买付款的情景。在选购好商品后,点击付款,浏览器会跳转到以“https”开头的网页连接,而后输入银行卡的付款密码完成商品的付款。那时只知道以https开头的连接是一个通过加密后的安全连接,本身在此网页中输入的密码是通过加密后以密文的方式进行传输的,因此密码是没法被窥视的。web

现在,对https这种安全连接所涉及到的计算知识和工做原理也有了必定的了解,但从未进行过系统的整理,现经过学习与记录的的方式,好好梳理一下这方面的知识。算法

1、安全网络的目标浏览器

1.1 数据的机密性安全

    机密性就是为了防止数据被未受权的读取。因此数据的发送方和接收方要以某种加密的机制来对数据进行加密处理,双方传输的数据是被处理后的密文。服务器

1.2 数据的完整性网络

    完整性是为了防止数据被未受权的修改,或至少要有机制能检测出数据被修改过。ide

1.3  数据的可用性函数

    可用性主要针对提供服务的一方,当服务器受到拒绝服务(dos)***时,使用得资源的可得到性下降或者根本没法得到信息。学习

2、安全协议加密

2.1 SSL

    SSL(Secure SocketLayer)安全套接字层协议是web浏览器与服务器间安全交换数据的协议。有V1V2V3三个版本,V3版目前经常使用。

2.2 TLS

    TLS(Transport LayerSecurity)传输层安全协议。有V1版本,功能与SSL V3类似。

    在互联网模型中SSL/TLS协议工做于应用层和TCP层间,应用层的数据再也不直接发往传输层,而是发送给SSL层,经过SSL加密后再进行下一步的处理。

wKioL1SYMfCCAJCoAALgVxgN9dQ145.jpg

3、加密方法

3.1 对称加密(保证数据的机密性,也就是把明文转换成不易读取的密文)

    加密解密使用同一个密码,也就是加密密钥与解密的密钥相同,获得了加密密钥也就获得解密密钥。主要用于保证数据的机密性。密钥的安全性成为此种加密的关键。

3.1.1 DESData Encryption Standard)数据加密标准,也称为数据加密算法,此种加密算法的原理是由循环移位思想而来。

3.1.2 3DES 三重DESDES的变体,这是DES的一种增强版,它增加了加密密钥的长度,由DES56位增长到了168位。

3.1.3 AESAdvanced Encryption Standard)高级加密标准,也是一种高级加密算法

3.2 非对称加密(非对称加密算法用公钥加密对称密钥,保证进行密钥交换时密钥的安全)

    非对称加密系统中会涉及到一组密钥对,一个公开的密钥,叫公钥(publickey;一个私有的,叫私钥(privatekey。公钥是一个可公开的,私钥则是隐密性,不可被未受权用户的访问。公钥是从私钥中提取出来的,用私钥加密的数据只能用与之配对的公钥来解密,这实现了验证身份的目的;用公钥加密的数据只能用与之配对的私钥来解密,这实现了数据的机密性。因非对称加密基于数字函数实现,算法复杂,较于对称加密,非对称加密速度慢,不适合用于加密交换的大量数据,它主要的目的是用于交换对称加密算法的密钥,密钥交换后双方就可用密钥以对称加密方式交换数据,而此密钥在传输到对方时是通过非对称加密算法进行加密的,安全性获得保障。

3.2.1 非对称加密算法

RSA

DSA

DSS

ECC

3.3 单向加密(保证数据的完整性)

   单向加密只能是从明文加密成密文,并不能从密文解密成明文。

3.3.1 加密算法

MD5

SHA1SHA256SHA512SHA3

HMAC

3.3.2 单向加密特性

定长输出:不管加密的数据有多大,加密后输出都是一个定长的数据。

雪崩效应:即便原源数据发生细微的变化,加密后的输出会发生巨大的变化。

    在实际的运用中,这三种加密方法每每不会单独使用,通常都是结合起来实现数据的安全传输。数据在网络中一次完整的数据通讯过程是怎样的呢?简单的描述以下:

发送方:

一、  发送方使用选定的单向加密算法计算源数据的特征码;

二、  发送方使用本身的私钥加密此特征码,并把加密后的密文数据附加在源数据后面;

三、  发送方生成一次性对称密钥,并使用此密钥加密数据(源数据+加密特征码后的密文数据)

四、  发送方使用接收方的公钥加密一次性对称密钥,并附加于已加密的数据后面;

五、  数据已准备稳当,开始发送数据。

wKioL1TLGLiyNkvkAAElGpK2Ykk272.jpg


接收方:

一、  接收方使用与公钥配对的私钥解密数据,可获得一次性对称密钥;

二、  用一次性对称密钥解密数据,可获得源数据和加密特征码后的密文数据;

三、  用发送方的公钥解密数据,获得源数据和源数据的特征码;

四、  使用与发送方相同的单向加密算法从新计算源数据的特征码,并与解密出的特征码进行比较,若是特征码相同,那获得的源数据可信,不然,源数据不可信。

PS:文字性的东西老是让人很差记忆,现上传用xmind作的笔记,见附件!

相关文章
相关标签/搜索