EHCE
文章目录
前言
EHCE-5-https
SSL认证
https产生的原因:
http协议被用于在web浏览器和网站服务器之间传递信息。
http协议以明文方式发送内容,不提供任何方式的数据加密
若攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以读懂其中的信息,因此http协议不适合传输一些敏感信息,为了解决HTTP协议这个缺陷,使用另一种协议。
安全套接字层超文本传输协议https
https
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Sercure)超文本传输安全协议,是以安全为目标的HTTP通道。
HTTPS并不是一个新协议,而是HTTP+SSL(TLS:transport layer security 安全传输套接层)。
原本HTTP先和TCP(假定传输层是TCP)直接通信,而加了SSL后,就变成HTTP先和TCP通信,相当于SSL被嵌在了HTTP和TCP之间。
SSL(Secure Socket Layer)
SSL协议,“安全套接层”。是上世纪90年代中期,由网景公司设计。到1999年,SSL已经称为互联网标准。IETF就把SSL标准化。标准化后的SSL被改为TLS(Transport Layer Security 传输层安全协议)
用以保障在Internet上数据传输安全,利用数据加密技术,可确保数据在网络传输过程中不会被截取窃听。
位于“TCP/IP协议与各种应用层协议之间”,为数据通讯提供安全支持。
SSL协议分为两层:
SSL记录协议(SSL Record Protocol):它建立在可靠的“传输协议之上,为高层协议提供数据封装、压缩、加密”支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际数据阐述开始前,通讯双方进行“身份认证、协商、加密算法、交换加密密匙等”
SSL提供服务:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器
2)加密数据以防止数据中途被窃取
3)维护数据的完整性,确保数据在传输过程中不被改变
密钥
共享密钥加密(对称密钥加密——数据)
:加密和解密同用一个密码。加密时就必须将密钥传送给对方,那么如何安全传输
公开密钥加密(非对称密钥加密——身份)
:公开密钥加密使用一对非对称的密钥。一把叫私有密钥,一把叫公开密钥。
私有密钥不能让其他任何人知道,而公开密钥可以随意发布,任何人可得。
使用非对称密钥加密方式,发送密文得一方使用公开密匙进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。
利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听盗走,但由于非对称密钥比对称密钥慢
两种方法共同使用,这是HTTPS采用的加密方式。在交换密钥阶段使用公开密钥加密方式,建立通信报文后使用共享密钥加密。
公钥(公共拥有)——加密
私钥(私有)——解密
那么如何证明非对称密钥本身是货真价实的公开密钥(正准备和某台服务器建立公开密钥加密方式下通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输过程中,真正的公开密钥已经被攻击者替换掉了)
这时就需要第第三方公证单位来帮忙
CA(Certificate Authority)
CA就是一个公证单位,你可以自行产生一把密钥且制作出必要的证书数据向CA单位注册。
当客户端的浏览器在浏览时,该浏览器会主动向CA单位确认该证书是否合法注册过,若是,那么该次连接才会建立,如果不是,浏览器会发出警告信息,告知用户硬避免建立连接。
WWW等服务器有公证单位的证书,用户建立连接时,比较安全
接收到证书的客户端可以使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过。用户可确认两个事情:
1)认证服务器的公开密钥是真实有效的数字认证机构
2)服务器的公开密钥值得信赖
此处认证机关的公开密钥必须安全的转交给客户端。
使用通信方式时,如何安全转交很困难,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。
1、服务器把自己的公开密钥注册登录至数字证书认证机构
2、数字证书认证机构用自己的私有密钥向服务器的公开密钥数字签名颁发公钥证书
3、客户端拿到服务器的公钥证书后,使用数字签名认证机构的公开密钥,向数字认证机构验证公钥证书上的数字签名,以确认服务器的公开密钥真实性。