HTTPS/TLS介绍
HTTPS/TLS是什么?有什么用?
浏览器打开的网页如果使用了安全的HTTPS,地址栏会显示一个漂亮的锁 ?
如果没有使用HTTPS,而是使用了不安全的HTTP,地址栏会提示不安全
这么说吧,如果没有HTTPS/TLS,钱是不能上网的。我们日常使用的网银、支付宝,十有八九会被盗。
有兴趣的话,看看维基百科的说明:
- HTTP 超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
- TLS 传输层安全性协议(英语:Transport Layer Security,缩写:TLS)及其前身安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器-网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布TLS 1.0标准文件(RFC 2246)。随后又公布TLS 1.1(RFC 4346,2006年)、TLS 1.2(RFC 5246,2008年)和TLS 1.3(RFC 8446,2018年)。在浏览器、电子邮件、即时通信、VoIP、网络传真等应用程序中,广泛使用这个协议。许多网站,如Google、Facebook、Wikipedia等也以这个协议来创建安全连线,发送资料。目前已成为互联网上保密通信的工业标准。
- HTTPS 超文本传输安全协议(英语:HyperText Transfer Protocol Secure,缩写:HTTPS;常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
也就是:
说人话:使用HTTPS协议上网时,不会被其他人知道。
不要误解:网站还是知道我们打开的网页,只是坏人不能通过无线路由器、网络运营商等中间服务设备知道我们发送和接收的数据。开车注意安全!
HTTPS/TLS怎么工作?
HTTPS/TLS是几乎所有互联网安全通信的基础。最初只有支付行业和一些高要求行业必须采用HTTPS,但近几年也逐渐推广到很多互联网服务。
最新的TLS 1.3工作流程如下:
HTTPS/TLS协议中有两个关键安全措施:
- 密钥协商 服务器和浏览器使用ECDH密钥协商算法,建立安全的加密通信。ECDH算法厉害的地方在于:双方可以在不安全的公共网络上进行,中间的网络服务和设备无法破解。
- 服务器认证 比如用支付宝付款,那对于浏览器来说,怎么知道发送数据另一端的服务器就是支付宝的呢?要知道,“在互联网上,没人知道你是一条狗”。
解决这个问题的方法是证书链,使用数字签名算法验证。支付宝服务器提供的证书,是由证书颁发机构(英语:Certificate Authority,缩写:CA)Secure Site
签名的,Secure Site
的证书,又由系统信任的根证书机构(Root CA)DigiCert
签名。
说人话:系统信任根证书机构DigiCert
,DigiCert
信任 Secure Site
,Secure Site
信任支付宝,浏览器就信了。
由于很多证书颁发机构都可以签发证书,要所有参与方都确保安全,并不是一件很容易的事情。
举个栗子? :谷歌向知名证书颁发机构赛门铁克申请了TLS证书。某天,赛门铁克心血来潮又自制了一些谷歌的TLS证书。一旦这些自制的证书被非法使用,就可能偷取用户的谷歌账号密码。
你以为这只是个栗子?这是真实发生的安全事故!巨头怼巨头 谷歌封杀赛门铁克证书背后的恩怨情仇。
来源 The Geek Hub
TLS现状
自1995年以来,TLS协议经历了6个主要版本(SSL 1.0没有正式推出),它们的使用现状大概是这样的:
来源 SSL Labs
诞生于2008年的TLS 1.2至今仍然还是互联网的主流,但它支持的很多算法在今天都不再安全了。
插件端到端加密
端到端加密是什么?
神锁离线版插件接收密码采用的是端到端加密技术,不论是黑客,还是我们内部员工,都无法查看用户填充的密码。
维基百科是这样介绍的:
端到端加密(英语:End-to-end encryption,缩写:E2EE),是一种只有参与通讯的用户可以读取信息的通信系统。总的来说,它可以防止潜在的窃听者——包括电信供应商、互联网服务供应商甚至是该通讯系统的提供者——获取能够用以解密通讯的密钥。此类系统被设计为可以防止潜在的监视或篡改企图,因为没有密钥的第三方难以破译系统中传输或储存的数据。举例来说,使用端到端加密的通讯提供商,将无法将其客户的通讯数据提供给当局。
说人话:使用端到端加密,云服务商也不能窃听。
使用TLS不行吗?
TLS保证的是客户端和服务器之间的通信不被中间网络服务设备窃听,但是不能保证用户数据不被云服务商窃听。正好相反,云服务商知道用户发送和接收的消息。
Hyker Security在E2EE VS NETWORK SECURITY一文中画得很清楚:
TLS 是逐段加密,云服务商可以查看数据明文
端到端加密是在用户的终端设备之间加密,云服务商只能看到密文
增强端到端加密
神锁离线版插件进一步增强了端到端加密(在神锁离线版插件的安全设计中有详细讲解):
- ECDH的密钥仅2分钟有效,且私钥不可提取
- 用户需要手动扫码
对比总结:为什么比HTTPS更安全?
- 云端攻击 HTTPS/TLS:黑客、内部员工可能查看用户数据。 神锁离线版:黑客、内部员工都不能查看用户密码。
- 密码学算法 HTTPS/TLS:TLS 1.3之前的版本,容易因为配置不当而使用不安全的密码学算法。 神锁离线版:插件使用目前最安全的ECDH, AES-256-GCM等算法。
- 第三方依赖 HTTPS/TLS:存在证书链漏洞,一旦证书签发机构发生安全事故,可能导致泄密。 神锁离线版:需要用户手动扫码,无须第三方认证,不会因第三方安全事故泄密。
- 私钥安全 HTTPS/TLS:私钥存储在服务器硬盘上,且长期有效,暴露的攻击面相对要大很多倍。 神锁离线版:插件的私钥不可提取,存在于内存中,且仅2分钟有效。在时间和空间上,仅暴露很小的攻击面。
未完待续...
- 验证神锁离线版的安全机制
往期文章
- 是时候放弃插件密码管理器,改用密码管理器插件了
使用手机端的App扫码,将密码加密发送到插件,再填充到网页。密码全部保存在手机App中,受手机安全芯片保护。
- 神锁离线版插件的安全设计
大家都已经知道,加密 ≠ 安全,所谓的军事级别加密,只是营销口号,忽悠外行。 密码管理器的安全关键在于:安全设计。