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

简介: 简单介绍了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只需传输分级证书和网站证书。浏览器先使用内置的根证书来校验分级证书的有效性,如果分级证书校验通过,再使用分级证书来校验网站证书的有效性。网站证书也校验通过后,假设有效期和域名模式都没问题,浏览器用网站证书的公钥将一个随机生成的对称密钥加密后发送给服务器,让服务器使用这个新生成的对称密钥来加密要传输的页面内容。如果任何一层证书未通过校验,浏览器就会弹出一个安全警告提醒用户注意并让用户确认是否继续访问该页面。

目录
相关文章
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
541 19
|
网络安全 开发者
如何解决HTTPS协议在WordPress升级后对网站不兼容的问题
以上就是解决WordPress升级后HTTPS协议对网站的不兼容问题的方法。希望能把这个棘手的问题看成是学校的管理问题一样来应对,将复杂的技术问题变得更加有趣和形象,并寻觅出解决问题的方式。希望你的网站能在新的学期得到更好的发展!
427 19
|
JSON 安全 网络协议
HTTP/HTTPS协议(请求响应模型、状态码)
本文简要介绍了HTTP与HTTPS协议的基础知识。HTTP是一种无状态的超文本传输协议,基于TCP/IP,常用80端口,通过请求-响应模型实现客户端与服务器间的通信;HTTPS为HTTP的安全版本,基于SSL/TLS加密技术,使用443端口,确保数据传输的安全性。文中还详细描述了HTTP请求方法(如GET、POST)、请求与响应头字段、状态码分类及意义,并对比了两者在请求-响应模型中的安全性差异。
1295 20
|
网络协议 安全 网络安全
HTTP与HTTPS协议入门
HTTP协议是互联网的基石,HTTPS则是其安全版本。HTTP基于TCP/IP协议,属于应用层协议,不涉及数据包传输细节,主要规定客户端与服务器的通信格式,默认端口为80。
1067 26
HTTP与HTTPS协议入门
|
安全 网络协议 算法
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
本文系统探讨了构建企业级双协议隧道代理系统的挑战与实现。首先对比HTTP/HTTPS和SOCKS5协议特性,分析其在工作模型、连接管理和加密方式上的差异。接着提出兼容性架构设计,包括双协议接入层与统一隧道内核,通过协议识别模块和分层设计实现高效转换。关键技术部分深入解析协议转换引擎、连接管理策略及加密传输方案,并从性能优化、安全增强到典型应用场景全面展开。最后指出未来发展趋势将更高效、安全与智能。
795 1
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
947 3
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
1298 3

热门文章

最新文章