抓包工具:Wireshark算法
本机ip:10.129.135.155segmentfault
目标网站:https://segmentfault.com/服务器
抓包截图session
一目了然,No33,44,45,是TCP的三次握手,除此以外,创建TLS/SSL链接,也须要先创建握手dom
主要向服务端传递的信息函数
主要向客户端传递选择的版本,密码套件和压缩方法,以及服务端生成的随机数工具
每一个密码套件的名称定义一个密钥交换算法、一个批量加密算法、一个消息认证码(MAC)算法,以及一个伪随机函数(PRF)测试
在上面的例子中,网站
服务端向客户端发送证书,ui
服务端向客户端发送密钥交换的额外数据
服务端告诉客户端消息发送完毕
客户端传递交换密钥所须要的信息
客户端的发送的消息已被加密
服务端发送的消息已被加密
客户端和服务端会前后向对方发送Change Cipher Spec Message,告之对方要切换密码
解决的是
要确保机密性,可使用对称密码。
因为对称密码的密钥不能被攻击者预测,所以咱们使用伪随机数生成器来生成密钥。
若要将对称密码的密钥发送给通讯对象,可使用公钥密码或者Diffie-Hellman密钥交换。
要识别篡改,对数据进行认证,可使用消息认证码。消息认证码是使用单向散列函数来实现。
要对通讯对象进行认证,可使用对公钥加上数字签名所生成的证书。
将公钥放在数字证书中,只要证书可信,公钥就可信
每一次对话(session),客户端和服务端都生成一个“对话密钥”,用它来加密信息。因为“对话密钥”是对称加密,因此运算速度很是快,而服务器公钥只用于加密“对话密钥”自己,这样就减小了加密运算的消耗时间
会话密钥是经过三个随机数生成的,是对称密码的密钥,也是非对称密码的明文
消息认证码,Message authentication code,MAC,是一种确认完整性并进行认证的技术
消息认证码的输入包括任意长度的消息和一个发送者与接收者之间共享的密钥,它能够输出固定长度的数据,这个数据称为MAC值
消息认证码是一种与密钥相关联的单向散列函数
消息认证码的局限在于没法防止否定,服务端也有密钥,能够生成MAC
公钥密码包括一个有公钥和私钥组成的密钥对,其中公钥用于加密,私钥用于解密
数字签名的过程当中,用私钥加密来生成签名,用公钥解密来验证签名
为公钥加上数字签名
公钥证书,Public-Key Certificate,PKC
认证机构,Certification Authority,CA,可以认定公钥确实属于此人
证书通常包括,签名对象的信息包括公钥,数字签名的算法,数字签名
Public-Key Infrastructure,是为了可以有效地运用公钥而制定的一系列规范的总和