什么是HTTPS?
1990年,众所周知的互联网诞生了。从一开始,它就使用超文本传输协议(HTTP)在世界范围内移动信息。这就是为什么网址以HTTP开头的原因。
普通的旧HTTP不安全,因为它以纯文本格式传输信息。这意味着任何拦截流量的人都可以读取它。这不仅包括监视咖啡店WiFi的黑客,还包括您的互联网服务提供商(ISP)。就像总机接线员可以收听电话一样。
但是人们很快决定,他们想使用互联网来获取敏感数据(例如信用卡号),因此我们不得不想出一种使HTTP安全的方法,以便在浏览器和浏览器之间缩放时,没人能看到您的信用卡号。网络服务器。
因此在1994年,Netscape Communications通过某种加密增强了HTTP 。本质上,他们将新的名为安全套接字层(SSL)的加密协议与原始HTTP结合在一起。这被称为“ HTTP over SSL”或“ HTTP Secure”。否则称为HTTPS。
如今,所有网站中超过50%是HTTPS。自爱德华·斯诺登(Edward Snowden)透露国家安全局(NSA)监视每个人的互联网流量以来,该数字在过去几年中一直在急剧增长。
为什么要加密整个互联网?
HTTPS在保护隐私方面和安全方面都发挥了作用。防止黑客读取您的数据或将自己的代码注入您的Web会话(这是HTTPS可以阻止的)是一回事,但隐私是另一方面。
我们知道,ISP,政府和大数据收集公司只是喜欢窥探并存储我们的流量,以了解什么。当然,您可能不认为自己在乎。也就是说,直到您浏览有关个人医疗状况的信息或有关18+的网站。这些信息始终对某人有用,这就是为什么他们想要并保留它。
这就是为什么许多网站选择加密您的流量,即使您没有发送敏感信息也是如此。因为我们认为您的在线行为应尽可能保持私密性。
HTTPS如何运作
HTTPS通过在浏览器和网站服务器之间移动时对其进行加密来将您的东西保密。这样可以确保在会话中收听的任何人都无法阅读任何内容。这可能包括您的ISP,黑客,窥探政府或设法将您自己定位在Web服务器之间的任何其他人。
长期以来,SSL是HTTPS使用的标准协议。SSL的最新版本现在称为传输层安全性(TLS),但本质上是同一回事。从现在起,我将其称为SSL / TLS,因为两个绰号都可以互换使用,但是从技术上讲,我是在谈论较新的TLS。
本质上,您需要三件事来加密数据:
- 您要加密的数据
- 唯一的加密密钥(只是一长串随机文本)
- 加密算法(一种“乱码”数据的数学函数)
将数据和密钥插入算法中,另一面就是密文。也就是说,数据的加密形式看起来像胡言乱语。
要解密另一端的密文,你只要反向使用相同的密钥的过程,它将加密过程反转,恢复数据的原始形式。加密密钥的保密性使整个过程正常进行。只有预期的数据接收者才应该拥有它,否则目的就无法实现。
当您在两端使用相同的加密密钥时,称为对称加密。这就是您的家庭WiFi所使用的。您只有一个钥匙或“密码”,可以将其插入无线路由器和笔记本电脑。十分简单。
但是,当连接到公共互联网上的网站时,它变得更加复杂。对称加密本身不会起作用,因为您无法控制连接的另一端。您如何彼此共享一个秘密密钥,而又没有互联网上有人在中间拦截它的风险?
通过非对称加密解决了这个问题。非对称意味着您正在使用两种不同的密钥,一种用于加密,另一种用于解密。我们也称此“公共密钥密码术”是因为它是我们在公共Internet上建立安全连接的方式。
密钥对
要了解非对称加密,您需要知道两个单独的密钥如何加密和解密相同的数据。事实证明,这只是一个数学问题有非常大的数字。
它需要使用非常大的素数和模块化算术的特殊数学过程。技术细节不在本文讨论范围之内,但这是它在概念上的工作方式。
通常(并非总是),公钥和私钥都是在同一数学过程中同时计算的。从数学上讲,这意味着它们是密切相关的。由于这种关系,它们可用于加密/解密相同的数据。这也是为什么来自不同密钥对的公钥和私钥不能一起工作的原因。每个Web服务器都有其自己的唯一集合,这使您到该网站的连接与其他站点不同。
但是,该过程只能朝一个方向发展。当其中一个密钥(公共密钥或私有密钥)用于加密某些数据时,只能使用另一个密钥对其进行解密。这就是数学运算的便利方式。
因此,还有谁拥有公共密钥也没有关系,因为一旦数据被加密,它就一文不值。只能使用私钥解密,该私钥秘密存储在Web服务器上。
有关密钥对的更多信息:
当非常大的质数相乘时,根本就不可能在不知道原始数是多少的情况下进行因数分解(“未相乘”)。这不是魔术,它恰好是数学与质数运算的方式。为了破解加密,您将必须能够考虑乘以素数的乘积。从技术上讲,某人将来可能会想出办法,但是根据我们目前的计算能力,可以预见的未来似乎是安全的。至少直到量子计算时代来临。
公钥密码术如何工作
在公钥基础结构(PKI)中,两种类型的加密都可以使用。首先使用非对称(公共密钥)加密来建立连接,然后在持续时间内将其替换为对称加密(称为session)。
以下是其更详细的工作方式:
- 您的浏览器连接到网站服务器并请求连接。
- 服务器向您发送其公共密钥。它会将其私钥保密。
- 您的浏览器会生成第三个密钥,称为会话密钥。
- 会话密钥由计算机使用从服务器获取的公共密钥加密
- 然后,加密的会话密钥与服务器共享。
- 服务器使用私钥对从您收到的会话密钥进行解密。现在,两端都有您的计算机生成的会话密钥。
- 公钥加密终止并被对称加密代替。
- 现在,您仅使用对称加密与服务器进行会话,在离开网站之前,这种方式将保持不变。
如您所见,公钥(非对称)加密仅在开始时短暂使用,以交换用于其余连接的第三个密钥。但是从非对称转换为对称有什么意义呢?有两个原因。
首先,公钥加密只有一种方式。仅由于Web服务器将私钥保密,您进入网站的加密数据才是安全的。但是,如果服务器尝试使用相同的密钥对将加密的数据发送回给您,那将是不安全的,因为每个人都可以访问其公钥。这意味着任何人都可以解密它。您将必须建立两个不对称的会话,每个会话一次。您的计算机安全地执行此操作只是不可行。
其次,非对称加密的数学开销要高得多,因此需要更多的计算能力来维持。它不适合用于长会话,因为要保持它运行需要处理能力。公钥加密使用多长的密钥,这使得它更为劳动密集型。查看下面的关键示例。
对称加密密钥
AES 256位会话密钥(以十六进制表示)
C8D5897DCC56D6D462B8F32D464303161ACE11E536F04AE1
非对称加密密钥
RSA 2048位私钥(以base64表示)
MIIEogIBAAKCAQBl1esMuCZXUjwiBaUJsZlHrcGJ988fblnhcTjtpnaovHYp7IZW
0EMIkKMuF6tILPuJBMd2FoFHC2ZUVcmGrFabK / zRzrEb74djiH4l1gQHZDsQYybv
Qm6bJEsT5Cy + lwRCvXznEnWmQu62HX09CThtXUPNwfGLcAEFQLzgKPOcU4DZboY9
TLM / Repe9w6h0KEzB7MHFIt446RPh9FalQwfrjfxGNHb + 8V9BVlpRetXxd6aj1oo
WEsg5TqrZB8Cr17l / KXH + goqlyFmsz6WMpbv5oLbG + 535PhyZjJ / VjiuTi6jsD9N
Skgq + iEbx74ZE855Ba7iYlJma6vxAj3ILdyLAgMBAAECggEAB41BjQPq8 / bJNsys
XHerIkGkZJLX7UDFsY4v5o + 9pO205Y8At1diYTQ4paZjsUqErLiKAhvRIm + Z + w8R
jscg9QjiCr0FLUkqBRuOH0grrFCmgKSZsox + n0qltqfpGYkha8GZjZk02EuGYEL3
kpsocBPGf2 + udeSsbrNKTmU7C5CdOp + Fzmw4goltgmS3Sn8FWBaWOgblcUIFyupB
ETAzxUiH2qQom3plosMb11NzVNw8LajyGNmphB5szRHx + 6Y6fGuhEacIePez8LJE
zRUdcjomzNNsft1iAduc0cZSRfPCMMmP989l + tWck2d / i9QWtuRoDhxsXyAaCieZ
dDnAIQKBgQDGrxF1WRum9N + D4D2MRTntseiNyZAKzgcPmXqyWoyPFDKsiTsk / QE2
/ KIQjJf11JcpZ + 12UNNRFjghiFyl3Bh1E + pT6kzTPUZ5Ewws0hjm5CL667RkWCtn
4N4BoWPLmM5KFXMvmoK3iNyMLI + LZmI3HQ2wLcpC2 + I1cpVmyQHoZQKBgQCDNotl
s2tuzNOKUsgrYl3SGk3MgOHe147h / Q32 / X + dahIihVz6N3 / nCiVpmliySGuLlxOu
OsWJby7XNuana7AVt59pE7G87pHtNFpLvhmN8oBDgvzbH2pLta / fQM9yjDokyk0I
4jhn2cMDE6qpx1yLnR8Hogb393GXqmAB / RtKLwKBgCF1yE3n9NU4NhBCinr + CZRz
OsPuJxj6u4uwAE7bGwLZlvMhpVlEV7FEeJKq6siWxeJOQ1qCoCPuxwM2sMup9mB5
OyRouAl3L1AimhFOTK1NzGpPmbCwfJbg8uJ5aJIYKN2nIR / qOItqPCJLOt1yH6ZC
eVSrUX3TBBSWOHz36x9VAoGAPyB8zD8XzsTIeWH + X7EBhlWVXHAdOwLmAR + oGk7 /
vNINS4JyCwesh1FAUqApUAy7gPr8QvSPmOFe3bfSHHYYzzn6fak197mnh0GKt6oL
zVkAEHryf9GLaEVPCc + 6flesmYqiqUV88am4wsAxeWEqyxialyeCxsXLZrZXXl2R
RY0CgYEAioZF15 ++ gWnRzVKL / xFMj6Si53hekXHMrAsyYkxDB7Drjz3Qg9QN7fG1
gzBXLeRPa0tnkfcWgeXIdbHNZywfqrhaUO + k4t5Ei5n8ZXDKeqtNAGSrVdG282 /一个
OXL64xujKmZG27kZjK43bRe27obUHXbV7X0unT98QyYyWmkXdKk =
对称加密密钥可以短得多,因为它们的任何部分都不会公开。非对称加密的公共性质要求长密钥。因为有了公共密钥,您就已经有了答案的一部分。如果答案很短,则计算其余答案(私钥)将很容易。拥有指数级更大的密钥使将私钥保持私有变得可行。
HTTPS不能做什么
人们很容易将HTTPS视为互联网的奇迹般的安全性解决方案,但它有很多无法做到的。
HTTPS不会:
隐藏您正在访问的网站的名称**
这是因为网站的名称(也称为“域名”)是使用DNS(域名服务)发送的,该域名不在HTTPS隧道内。在建立安全连接之前发送它。中间的一个窃听者可以看到您要访问的网站的名称(例如TipTopSecurity.com),他们只是无法读取来回传输的任何实际内容。直到DNSSEC完全实施,这种情况才会改变。
保护您避免访问邪恶的网站
HTTPS不能确保网站本身是安全的。仅仅因为您安全地连接并不意味着您就没有连接到由坏人经营的网站。服务商尝试使用受信任的证书颁发机构解决此问题。
提供匿名
HTTPS不会隐藏您的实际位置或个人身份。您的个人IP地址(您在Internet上的地址)必须附加到加密数据的外部,因为如果您的IP地址也被加密,则Internet也不知道将数据发送到哪里。而且,它也不会掩盖您访问的网站的身份。您访问的站点仍然了解您在不安全连接上的所有信息。
防止您感染病毒
HTTPS不是过滤器。可以通过HTTPS连接接收病毒和其他恶意软件。如果网络服务器被感染,或者您正在分发恶意软件的恶意网站上,它将像其他所有内容一样在HTTPS流中发送。但是,HTTPS确实可以防止中间人将恶意软件注入到您的移动流量中。
保护您的计算机免遭黑客攻击
HTTPS仅在计算机和Web服务器之间移动数据时保护数据。它不为您的实际计算机或服务器本身提供任何保护。这也意味着,如果有恶意软件在连接的一端监视流量,则可以在HTTPS流中加密该流量之前和之后读取该流量。
基本上,HTTPS仅在您的信息通过电线(或空中)流动时保护您的信息。它无法保护您的计算机,您的身份或隐藏您正在访问的站点。HTTPS只是更安全的互联网的一部分。如果您正在寻找更多的隐私,那么下一步将是VPN服务。查看本文,了解有关VPN的更多信息。
验证
保护网站的另一面我们还没有开始涉及。创建HTTPS连接是一回事,但是您如何才能真正信任所连接的Web服务器呢?如果您连接到试图窃取您的信息的钓鱼网站,则是否对连接进行加密也没关系。
参考
How Does HTTPS Work? RSA Encryption Explained