公钥技术在HTTPS协议中的安全实践解析
一、引言
随着互联网技术的飞速发展,网络安全问题日益凸显。
HTTPS协议作为当今互联网上广泛应用的加密传输协议,其安全性得到了广泛关注。
公钥技术作为HTTPS协议的核心组成部分,为网络安全提供了坚实的基础。
本文将详细解析公钥技术在HTTPS协议中的安全实践。
二、公钥技术概述
公钥技术,又称公钥密码学,是现代密码学的重要组成部分。
公钥技术基于一对密钥,即公钥和私钥。
公钥用于加密数据,私钥用于解密数据。
公钥可以公开传播,而私钥则必须保密。
这种特性使得公钥技术在保障信息安全方面具有很高的实用价值。
三、HTTPS协议简介
HTTPS协议是在HTTP协议基础上,通过SSL/TLS协议提供的一种加密传输协议。
HTTPS协议对传输的数据进行加密,确保数据在传输过程中的安全性。
四、公钥技术在HTTPS协议中的应用
1. 加密通信:在HTTPS协议中,公钥技术用于加密通信。客户端使用服务器的公钥对数据进行加密,服务器使用私钥解密。这样,即使数据在传输过程中被拦截,攻击者也无法解密获取原始数据。
2. 身份验证:公钥技术还可以用于身份验证。服务器将自己的公钥证书发送给客户端,客户端通过验证证书来确认服务器的身份。这可以防止中间人攻击和其他类型的网络欺诈行为。
3. 数字签名:在HTTPS协议中,数字签名技术也广泛应用。服务器可以使用私钥对传输的数据进行签名,客户端收到数据后使用公钥进行验证。这样可以确保数据的完整性和来源的可靠性。
五、公钥技术在HTTPS协议中的安全实践解析
1. 安全性分析:公钥技术在HTTPS协议中的应用大大提高了数据传输的安全性。由于采用了加密技术,攻击者无法直接获取传输的数据。身份验证和数字签名技术可以防止中间人攻击和伪造信息。公钥技术的安全性也取决于密钥的管理和保护。如果私钥泄露,攻击者就可以利用公钥技术破解加密数据。
2. 公钥基础设施(PKI):为了更有效地管理公钥,引入了公钥基础设施(PKI)的概念。PKI是一个系统的框架,用于管理数字证书和公钥。在HTTPS协议中,服务器通过申请和获取数字证书来证明自己的身份。数字证书由受信任的第三方机构(如证书颁发机构)签发,并包含公钥、证书所有者信息以及签发机构的签名等信息。这样,客户端可以通过验证数字证书来确认服务器的身份。
3. 证书更新与撤销:为了保证安全性,数字证书需要定期更新和撤销。当服务器更换公钥或者存在安全风险时,需要更新或撤销数字证书。证书颁发机构会定期发布证书撤销列表(CRL),以便客户端验证证书的有效性。为了提高验证效率,还引入了在线证书状态协议(OCSP)。
4. 公钥技术的未来发展:随着量子计算技术的发展,传统的公钥技术可能面临挑战。量子计算机可能会破解现有的加密算法。因此,研究人员正在开发后量子密码技术,以应对未来的挑战。随着物联网、云计算等技术的发展,公钥技术在多场景下的应用也需要进一步研究和优化。
六、结论
公钥技术在HTTPS协议中的安全实践对于保障网络安全具有重要意义。
通过加密通信、身份验证和数字签名等技术,公钥技术为HTTPS协议提供了强大的安全保障。
为了应对未来挑战,我们还需要继续研究和优化公钥技术的应用。
数字签名技术所带来的三个安全性?
数字签名技术所带来的三个安全性就是比较方便,然后确保了你身份的安全啥的。
公钥算法的工作原理
1976 年,Whitfield Diffe 和 Martin Hellman 创建了公钥加密。
公钥加密是重大的创新,因为它从根本上改变了加密和解密的过程。
Diffe 和 Hellman 提议使用两个密钥,而不是使用一个共享的密钥。
一个密钥(称为“私钥”)是保密的。
它只能由一方保存,而不能各方共享。
第二个密钥(称为“公钥”)不是保密的,可以广泛共享。
这两个密钥(称为“密钥对”)在加密和解密操作中配合使用。
密钥对具有特殊的互补关系,从而使每个密钥都只能与密钥对中的另一个密钥配合使用。
这一关系将密钥对中的密钥彼此唯一地联系在一起:公钥与其对应的私钥组成一对,并且与其他任何密钥都不关联。
由于公钥和私钥的算法之间存在特殊的数学关系,从而使得这种配对成为可能。
密钥对在数学上彼此相关,例如,配合使用密钥对可以实现两次使用对称密钥的效果。
密钥必须配合使用:不能使用每个单独的密钥来撤消它自己的操作。
这意味着每个单独密钥的操作都是单向操作:不能使用一个密钥来撤消它的操作。
此外,设计两个密钥使用的算法时,特意设计无法使用一个密钥确定密钥对中的另一个密钥。
因此,不能根据公钥确定出私钥。
但是,使得密钥对成为可能的数学原理也使得密钥对具有对称密钥所不具有的一个缺点。
这就是,所使用的算法必须足够强大,才能使人们无法通过强行尝试,使用已知的公钥来解密通过它加密的信息。
公钥利用数学复杂性以及它的单向特性来弥补它是众所周知的这样一个事实,以防止人们成功地破解使用它编码的信息。
如果将此概念应用于前面的示例,则发件人将使用公钥将纯文本加密成密码。
然后,收件人将使用私钥将密码重新解密成纯文本。
由于密钥对中的私钥和公钥之间所存在的特殊关系,因此一个人可以在与许多人交往时使用相同的密钥对,而不必与每个人分别使用不同的密钥。
只要私钥是保密的,就可以随意分发公钥,并让人们放心地使用它。
使许多人使用同一个密钥对代表着密码学上的一个重大突破,因为它显著降低了密钥管理的需求,大大提高了密码学的可用性。
用户可以与任意数目的人员共享一个密钥对,而不必为每个人单独设立一个密钥。
公钥加密是邮件安全中的一个基本要素。
如果没有公钥加密,那么是否存在实用的邮件安全解决方案是值得怀疑的,因为在公钥加密出现之前,密钥管理是一件很麻烦的事情。
在了解了公钥加密的基本概念之后,接下来便是了解如何借助这些概念来实现邮件安全性。
谈谈对公钥密码的理解
https其实就是建构在SSL/TLS之上的 http协议,所以要比较https比http多用多少服务器资源,主要看SSL/TLS本身消耗多少服务器资源。
http使用TCP 三次握手建立连接,客户端和服务器需要交换3个包,https除了 TCP 的三个包,还要加上 ssl握手需要的9个包,所以一共是12个包。
http 建立连接,按照下面链接中针对Computer Science House的测试,是114毫秒;https建立连接,耗费436毫秒。
ssl 部分花费322毫秒,包括网络延时和ssl 本身加解密的开销(服务器根据客户端的信息确定是否需要生成新的主密钥;服务器回复该主密钥,并返回给客户端一个用主密钥认证的信息;服务器向客户端请求数字签名和公开密钥)。
SSL handshake latency and HTTPS optimizations. :: 当SSL 连接建立后,之后的加密方式就变成了3DES等对于 CPU 负荷较轻的对称加密方式。
相对前面 SSL 建立连接时的非对称加密方式,对称加密方式对 CPU 的负荷基本可以忽略不记,所以问题就来了,如果频繁的重建 ssl 的session,对于服务器性能的影响将会是致命的,尽管打开https 保活可以缓解单个连接的性能问题,但是对于并发访问用户数极多的大型网站,基于负荷分担的独立的SSL termination proxy就显得必不可少了,Web 服务放在SSL termination proxy之后。
SSL termination proxy既可以是基于硬件的,譬如F5;也可以是基于软件的,譬如维基百科用到的就是 Nginx。
那采用 https 后,到底会多用多少服务器资源,2010年1月 Gmail切换到完全使用 https, 前端处理 SSL 机器的CPU 负荷增加不超过1%,每个连接的内存消耗少于20KB,网络流量增加少于2%。
由于 Gmail 应该是使用N台服务器分布式处理,所以CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。
这篇文章中还列出了单核每秒大概处理1500次握手(针对1024-bit 的 RSA),这个数据很有参考意义Heartbleed这个被称作史上最大的网络安全漏洞,想必很多人都有所耳闻,Heartbleed之所以能够出现,其实和我们这个问题关系还不小,前面我们谈到了频繁重建 SSL/TLS的session对于服务器影响是致命的,所以聪明的RFC 在2012年提出了 RFC6520 TLS 的心跳扩展。
这个协议本身是简单和完美的,通过在客户端和服务器之间来回发送心跳的请求和应答,保活 TLS session,减少重建 TLS的session的性能开销。
令人遗憾的是,openssl 在实现这个心跳扩展时,犯了一个低级的错误,没有对收到的心跳请求进行长度检查,直接根据心跳请求长度拷贝数据区,导致简单的心跳应答中可能包含了服务器端的核心数据区内容,用户名,密码,信用卡信息,甚至服务器的私有密钥都有可能泄露。
心因为心跳保活的这个 BUG 在滴血,这个名字起的极度形象。