1.https的简单介绍
- https(超文本传输安全协议),它是一个安全通信通道,简单讲就是http的安全版。它使用安全套接字层(SSL)进行信息交换,在http下加入SSL层,https的安全基础是SSL,因此加密的详细内容就需要SSL,它的目的主要是安全的数据传送。实际上应用了安全套接层(SSL)作为http应用层的子层。
- https的作用主要可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询
2.https和http的主要区别
超文本传输协议http协议被用于在Web浏览器和网站服务器之间传递信息。http协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。
- https协议需要到ca申请证书,一般免费证书很少,需要交费。
- http是超文本传输协议,信息是明文传输,https 则是具有安全性的SSL加密传输协议。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
3.SSL层
SSL(安全套接层),及其继任者传输层安全(TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。它广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输,为数据通讯提供支持。SSL 协议既用到了公钥加密算法又用到了对称加密算法。
SSL协议的工作流程:
服务器认证阶段:
- 客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
- 服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
- 客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
- 服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:
在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回数字签名后的提问和其公开密钥,从而向服务器提供认证。
4.公开密钥加密
公开密钥加密是非对称加密,在这种密码学方法中,需要一对密钥,一个是私钥,另一个则是公钥,公钥加密技术提供了更好的身份认证技术。
常见公钥加密算法最常见的时RSA加密算法。
5.对称加密算法
对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。
因此使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的Diffie-Hellman密钥交换算法。
6.公钥与私钥
公钥与私钥是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
一把私有的钥匙,仅有用户才拥有。
一把公开的钥匙,可公开发行配送,只要有要求即取得。
总结:
公钥和私钥是成对的,它们互相解密。
公钥加密,私钥解密。
私钥数字签名,公钥验证。
举例:
- 小明有两把钥匙,一把公钥,一把私钥
- 小明将他的公钥送给他的好朋友----小红
- 小红要给小明写一保密封信,她写完之后用小明给她的公钥进行加密,发给小明
- 小明收到信后,用私钥进行解密,这样就看见了信件里面的内容,小明决定给小红回信,决定采用“数字签名”。他写完信之后先用Hash函数,生成信件的摘要,然后小明使用私钥,对这个摘要进行加密,生成“数字签名”。小明将这个签名,附在信件的下面,一起发给小红
- 小红收到信之后,使用小明的公钥对数字签名解密,得到信件摘要,因此证明,这封信确实由小明发出。
- 小红再对信件本身使用Hash函数,将得到的结果与上一步得到的摘要进行对比,如果两者一致,就证明这封信未被修改过。
CA:
- 为公钥做认证,证书中心用自己的私钥,对小明的公钥和一些相关信息一起加密,生成“数字证书”,小明再给小红写信,在签名的同事,再附上数字证书更加可以保证信息传输的真实性。
- 小红用CA的公钥解开数字证书,就可以拿到小明真实的公钥了,然后就能证明“数字签名”确实是小明的