e-works数字化企业网  »  文章频道  »  基础信息化  »  终端和服务器

揭秘HTTPS的'秘密'

2017/8/18    来源:极客头条    作者:佚名      
关键字:HTTPS  数据通信  
http(Hyper Text Transfer Protocol)超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议,它是TCP/IP的上层协议,同时它也是万维网(万维网不等同于互联网,它只是基于互联网的一个服务)的数据通信的基础。
    在说https之前,我们先了解一下http,以及为什么要使用https。
 
    http(Hyper Text Transfer Protocol)超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议,它是TCP/IP的上层协议,同时它也是万维网(万维网不等同于互联网,它只是基于互联网的一个服务)的数据通信的基础。
 
    http协议是客户端浏览器与其他程序或Web服务器之间交互的应用层通讯协议。但它也有一个致命的缺点:http协议是明文传输协议,在传输信息的过程中并没有进行任何加密,通信的双方也没有任何的认证,这是非常不安全的,如果在通信过程中被中间人进行劫持、监听、篡改,会造成个人隐私泄露等严重的安全问题。
 
    举一个现实中的例子来说,假设小李要给小张寄信,如果信件在运输的过程中没有任何安全保护,那么很可能会被邮递员(也就是中间人)窃取其中的内容,甚至于修改内容。
 
    https就是用于解决这样的安全问题的,它的全称为Hypertext Transfer Protocol Secure,它在http的基础上添加了SSL(安全套接字层)层来保证传输数据的安全问题。
 
揭秘HTTPS的"秘密"
 
    https提供了端对端的加密,而且不仅对数据进行了加密,还对数据完整性提供了保护。不过在讲解https的加密方式之前,我们需要先了解一下加密算法。
 
    对称加密
 
    对称加密的基本思想是: 通信双方使用同一个密钥(或者是两个可以简单地互相推算的密钥)来对明文进行加密与解密。
 
    常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6。
 
揭秘HTTPS的"秘密"
 
    对称加密看起来很美好,但是密钥要怎么发送过去呢?如果直接发送过去,被中间人截获了密钥岂不是白费工夫。
 
    非对称加密
 
    非对称加密也叫公开密钥加密,它使用了两个密钥,一个为公钥,一个为私钥,当一个用作于加密的时候,另一个则用作解密。
 
    这两个密钥就算被其他人知道了其中一个也不能凭借它计算出另一个密钥,所以可以公开其中一个密钥(也就是公钥),不公开的密钥为私钥。
 
揭秘HTTPS的"秘密"
 
    如果服务器想发送消息给客户端,只需要用客户端的公钥加密,然后客户端用它自己的私钥进行解密。
 
    常见的非对称加密算法有RSA、DSA、ECDSA、 DH、ECDHE。
 
    我们以DH算法为例,了解一下非对称加密的魅力。
 
揭秘HTTPS的"秘密"
 
    1.Alice要与Bob进行通信,他们协定了一组可以公开的质数p=23p=23,g=5g=5。
 
    2.Alice选择了一个不公开的秘密数a=6a=6,并计算A=gamodp=56mod23=8A=gamodp=56mod23=8并发送给Bob。
 
    3.Bob选择了一个不公开的秘密数b=15b=15,并计算B=gbmodp=515mod23=19B=gbmodp=515mod23=19并发送给Alice
 
    4.Alice 计算S=Bamodp=196mod23=2S=Bamodp=196mod23=2
 
    5.Bob计算S=Abmodp=815mod23=2S=Abmodp=815mod23=2
 
    6.Alice与Bob得到了同样的值,因此gabmodp=gbamodpgabmodp=gbamodp
 

责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
兴趣阅读
相关资料
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐