`

浅谈HTTPS传输协议原理

 
阅读更多

我们常常在使用网上银行时看到的连接都是以“https”开始的,那么这个https是什么呢?这其实是表示目前连接使用了SSL进行加密,能保证客户端到服务器端的通信都在被保护起来,那么浏览器是如果实现的呢?下面让我们来介绍一下SSL基本的实现方法。

首先我们有两种基本的加解密算法类型:对称加密,非对称加密(公私钥加密),现在介绍一下这两种加密算法的特点:

对称加密:密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DESAES等,示意图如下:


1 对称加密

非对称加密:密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSADSA等,示意图如下:


2 非对称加密

根据上面的两种加密方法,现在我们就可以设计一种无法让他人在互联网上知道你的通讯信息的加密方法:

  1. 在服务器端存在一个公钥及私钥

  2. 客户端从服务器取得这个公钥

  3. 客户端产生一个随机的密钥

  4. 客户端通过公钥对密钥加密(非对称加密)

  5. 客户端发送到服务器端

  6. 服务器端接受这个密钥并且以后的服务器端和客户端的数据全部通过这个密钥加密(对称加密)

    HTTPS通信过程的时序图如下:


    3 HTTPS通信时序图

正如上图所示,我们能保证下面几点:

  1. 客户端产生的密钥只有客户端和服务器端能得到

  2. 加密的数据只有客户端和服务器端才能得到明文

  3. 客户端到服务端的通信是安全的

当然实际的SSL实现算法复杂的多,并有数据校验、身份验证等功能,如果需要更多了角请参看RFC2246RFC4346文档。

分享到:
评论

相关推荐

    浅谈http协议和REST

    ### 浅谈HTTP协议与REST架构 #### HTTP协议概述 HTTP(Hypertext Transfer Protocol)是一种应用层协议,主要用于从Web服务器传输超文本文档至本地浏览器的传送协议。它采用客户端/服务器模式,通过TCP/IP进行通信...

    浅谈常见应用安全漏洞原理及防范

    2. **使用HTTPS:** 采用加密协议传输数据,防止中间人攻击。 3. **敏感数据加密:** 对存储的数据进行加密,即使数据被盗也难以解读。 #### XML外部实体 **原理:** XML外部实体漏洞允许攻击者通过XML文档引用...

    浅谈Python爬虫原理与数据抓取

    - HTTP是基础的网络通信协议,用于传输HTML文档,而HTTPS是在HTTP基础上加上SSL层,提供安全的数据传输,保证通信过程不被窃听或篡改。HTTP默认端口为80,HTTPS端口为443。 爬虫在实际应用中需要注意遵守法律法规...

    浅谈HTTP使用BASIC认证的原理及实现方法

    为了增强安全性,通常会结合使用HTTPS(SSL/TLS)来加密传输,或者与更安全的认证协议如Kerberos结合使用。 四、BASIC认证的Java实现 在Java中,可以使用Servlet API来实现BASIC认证。以下是一个简单的示例: ```...

    浅谈php中curl、fsockopen的应用

    cURL 是一个开源库,提供了在各种协议(包括HTTP、HTTPS)下传输数据的功能。在PHP中,cURL被封装成一组函数,允许开发者发送HTTP请求并获取响应。`curl_init()` 初始化一个cURL会话,`curl_setopt()` 设置各种选项...

Global site tag (gtag.js) - Google Analytics