RSA原理及其在HTTPS协议中的应用

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
.cn 域名,1个 12个月
简介: 简单介绍了RSA原理的数学背景,HTTPS协议中证书的应用,重点介绍了证书的签发和浏览器端对证书的校验过程。

在RSA公私钥体系中,存在满足以下关系的三个自然数e, d, n:

euler_phi

其中,n是两个大质数p, q的乘积,当n为2048-bit时,p, q均在1024-bit左右。

输入数字a的加密过程

enc_a

将b还原为a的解密过程

dec_b

由于篇幅所限,我在这里略去对RSA加解密的数学背景知识的介绍。对这部分知识有疑问的同学请参考[这个页面](http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html
)。

(e, n)作为公钥发放给使用者,(d, n)则作为私钥保留在服务器端。在HTTPS通信过程中,服务器只会传递公钥,而私钥永远不会被传输,并且,使用公钥加密的信息只能用私钥才能解开,而能被公钥解密的信息则一定是被私钥加密过的。

在HTTPS协议中,一般仅使用RSA这种非对称加密算法来传输用于加密实际页面数据的对称加密算法的一个伪随机数k。目前比较主流和安全的对称加密算法是AES-128。采用AES-128时,k是一个128-bit的随机数,k被通过RSA加密传输后,实际页面数据的加解密就以k为密钥用AES-128进行。这主要是由于RSA无法加密长度超过n的字节长度的数据,实际应用中,n一般不超过4096 bits,即512字节,而普通页面的数据长度远大于这个值。

当浏览器和一个HTTPS服务器建立连接后,服务器会向浏览器发送一个包含RSA公钥, 签名,签发机构,持有者信息,域名模式和有效期等信息的证书。浏览器从以下几个方面校验该证书的有效性:

  • 是否在有效期内
  • 携带的域名模式是否匹配访问的域名
  • 是否由一个合格的签发机构签发
  • 证书签名是否正确

前面两点,有效期和域名模式的校验是容易理解的。我着重说明后面两点,签发机构和签名的校验。

HTTPS证书存在一个层级结构,一般情况下分为三层,第一层是签发机构自签名的根证书,第二层是签发机构用自己的根证书签名的一个分级证书,例如class 1表示个人用户,class 2表示企业用户,或者,class A表示网站服务,class B表示email服务,第三层才是使用分级证书签名提供给网站用的证书。

“签名”其实就是用上一级证书里的RSA公钥对应的私钥来对下一级证书内容的散列值进行加密,并将加密后得到的数字以及所用的散列算法类型写入下一级证书中。证书内容的散列算法经历了MD5->SHA1->SHA2的变迁,目前仅有SHA2被认为是安全的。

校验签名的步骤如下:

  1. 对证书除签名以外的部分按证书的散列算法类型计算出散列值,将这个值记作H1
  2. 对证书签名S用上级证书中的公钥进行解密,将这个值记作H2
  3. 如果H1和H2相等,签名校验通过,否则不通过

三层HTTPS证书,分别为根证书,分级证书和网站证书。其中,根证书已内置于浏览器,因此web server只需传输分级证书和网站证书。浏览器先使用内置的根证书来校验分级证书的有效性,如果分级证书校验通过,再使用分级证书来校验网站证书的有效性。网站证书也校验通过后,假设有效期和域名模式都没问题,浏览器用网站证书的公钥将一个随机生成的对称密钥加密后发送给服务器,让服务器使用这个新生成的对称密钥来加密要传输的页面内容。如果任何一层证书未通过校验,浏览器就会弹出一个安全警告提醒用户注意并让用户确认是否继续访问该页面。

目录
相关文章
|
2月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
77 3
|
2月前
|
安全 算法 网络安全
HTTPS原理
HTTPS 通过加密、数字证书、握手过程等多种手段,确保了网络通信的安全和可靠。它为用户提供了更高级别的隐私保护和数据安全,是现代互联网中重要的安全保障机制。随着网络安全威胁的不断增加,HTTPS 的应用也越来越广泛,成为保障网络安全的重要基石。
131 70
|
19天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
21天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
84 1
|
2月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
79 11
|
2月前
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
52 8
|
2月前
|
安全 算法 网络安全
一张图就把HTTPS工作原理讲明白了!
【10月更文挑战第31天】
120 1
一张图就把HTTPS工作原理讲明白了!
|
2月前
|
安全 应用服务中间件 Linux
判断一个网站是否使用HTTPS协议
判断一个网站是否使用HTTPS协议
162 4
|
2月前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
2月前
|
安全 算法 网络协议
网易面试:说说 HTTPS 原理?HTTPS 如何保证 数据安全?
45岁老架构师尼恩在其读者交流群中分享了关于HTTP与HTTPS的深入解析,特别针对近期面试中常问的HTTPS相关问题进行了详细解答。文章首先回顾了HTTP的工作原理,指出了HTTP明文传输带来的三大风险:窃听、篡改和冒充。随后介绍了HTTPS如何通过结合非对称加密和对称加密来解决这些问题,确保数据传输的安全性。尼恩还详细解释了HTTPS的握手过程,包括如何通过CA数字证书验证服务器身份,防止中间人攻击。最后,尼恩强调了掌握这些核心技术的重要性,并推荐了自己的技术资料,帮助读者更好地准备面试,提高技术水平。