密码学

对称加密: 私钥加密,双方使用1个密钥加密解密。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有AES、DES、3DES、TDEA、Blowfish、RC5和IDEA。

其加密过程如下:明文 + 加密算法 + 私钥 => 密文
解密过程如下: 密文 + 解密算法 + 私钥 => 明文
优点:加密和解密速度快
缺点:密钥安全管理困难,因为加密算法公开,一旦钥被泄露,那么密文就很容易被破解。

非对称加密:公钥加密,非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。
被公钥加密过的密文只能被私钥解密,过程如下:
明文 + 加密算法 + 公钥 => 密文, 密文 + 解密算法 + 私钥 => 明文
被私钥加密过的密文只能被公钥解密,过程如下:
明文 + 加密算法 + 私钥 => 密文, 密文 + 解密算法 + 公钥 => 明文
优点:安全
缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
在非对称加密中使用的主要算法有:RSA、Elgamal、Rabin、D-H、ECC(椭圆曲线加密算法)等。

散列:HASH散列是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
作用:一般使用哈希值来比较一个文件或一段内容是否被篡改。
常用的Hash散列算法有:MD4、MD5、SHA1、SHA-256等。

https流程

1 客户端发起https请求,到443端口
2 服务器将证书发送给客户端
3 客户端收到证书,验证证书合法性,如果没问题会随机生成一个对称密钥,然后用证书里的公钥,对客户端密钥进行非对称加密,此时第一次http请求结束。
4 客户端将加密后的密钥发送到服务器
5 服务器收到后用私钥对客户端密钥进行解密,得到客户端密钥后用客户端密钥对数据进行对称加密,这样数据都变成密文。
6 客户端收到请求后用密钥进行解密,得到数据。第二个http请求结束,https传输完成。

wireshark显示建立TLS过程

231    15.938512    192.168.0.105    121.36.2.168    TCP    78    57481 → 443 [SYN] Seq=0 Win=65535 Len=0 MSS=1460 WS=64 TSval=1095189810 TSecr=0 SACK_PERM
232    15.947369    121.36.2.168    192.168.0.105    TCP    66    443 → 57481 [SYN, ACK] Seq=0 Ack=1 Win=29200 Len=0 MSS=1412 SACK_PERM WS=512
233    15.947406    192.168.0.105    121.36.2.168    TCP    54    57481 → 443 [ACK] Seq=1 Ack=1 Win=262144 Len=0
234    15.947554    192.168.0.105    121.36.2.168    TLSv1.2    226    Client Hello
235    15.956280    121.36.2.168    192.168.0.105    TCP    54    443 → 57481 [ACK] Seq=1 Ack=173 Win=30720 Len=0
236    15.957984    121.36.2.168    192.168.0.105    TLSv1.2    1466    Server Hello
238    15.957986    121.36.2.168    192.168.0.105    TLSv1.2    722    Certificate, Server Key Exchange, Server Hello Done
239    15.958036    192.168.0.105    121.36.2.168    TCP    54    57481 → 443 [ACK] Seq=173 Ack=3493 Win=258624 Len=0
240    15.958122    192.168.0.105    121.36.2.168    TCP    54    [TCP Window Update] 57481 → 443 [ACK] Seq=173 Ack=3493 Win=262144 Len=0
241    15.961541    192.168.0.105    121.36.2.168    TLSv1.2    180    Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
242    15.970485    121.36.2.168    192.168.0.105    TLSv1.2    105    Change Cipher Spec, Encrypted Handshake Message

标签: none

添加新评论