• 欢迎访问举个栗子网站
  • 小说APP下载 xsz.tw 不带广告的小说站

SSL相关术语简单解释(转载)

网站 举个栗子 5个月前 (07-23) 709次浏览 0个评论 扫描二维码

EV

EV证书(Extended Validation Certificate)是一种根据一系列特定标准颁发的 X.509 电子证书,根据要求,在颁发证书之前,证书颁发机构(CA)必须验证申请者的身份。不同机构根据证书标准发行的扩展验证证书并无太大差异,但是有时候根据一些具体的要求,特定机构发行的证书可以被特定的软件识别

OV

OV 证书(Organization Validation SSL),指需要验证网站所有单位的真实身份的标准型SSL证书,此类证书不仅能够起到网站信息加密的作用,而且能向用户证明网站的真实身份。

DV

DV 证书(Domain Validation SSL),指需要验证域名的有效性。该类证书只提供基本的加密保障,不能提供域名所有者的信息。

HPKP

公钥固定,这是一种 https 网站防止攻击者使用 CA 错误颁发的证书进行中间人攻击的一种安全机制,用于预防诸如攻击者入侵 CA 偷发证书、浏览器信任 CA 签发伪造证书等情况,采用该机制后服务器会提供一个公钥哈希列表,客户端在后续的通信中只接受该列表上的一个或多个公钥。HPKP 是一个响应头

Public-Key-Pins:max-age=xxx;pin-sha256=xxxx;includeSubDomains;

其中可以使用多个 pin-sha256,pin-sha256 的值是对证书公钥 sha256 的值,includeSubDomains 决定是否包含所有子域名,在 max-age 所指定的时间内(秒),证书链中的证书至少一个公钥须和固定公钥相符,这样客户端才认为该证书链是有效的。

还有一种响应头:

Public-Key-Pins-Report-Only:max-age=xxx;pin-sha256=xxxx;includeSubDomains;report-uri=xxx

Public-Key-Pins-Report-Only 中的 report-uri,决定是否回报违反 HTTP 公钥固定策略的事件。客户端进行 HTTP 公钥固定验证失败后,将把此次错误详情以 JSON 格式回报个 report-uri 参数中指定的服务器。

CAA

CAA : DNS Certification Authority Authorization,使用 DNS 来指定该域名可以由哪些 CA 机构签发证书,这不是为 TLS 层的安全提供保证,而是作为 CA 签发证书程序中的一部分。使用 CAA 可以避免一些 CA 签发错误证书的情况。

SNI

SNI(服务器名称指示),这个是一个扩展的 TLS 协议,在该协议中,在 TLS 握手过程中客户端可以指定服务器的主机名称,这允许服务器在相同的 IP 和端口上部署多个证书,并允许在相同的 IP 地址上提供多个HTTPS网站或者基于 TLS 的服务。

ALPN

ALPN(应用层协议协商 Application-Layer Protocol Negotiation) 是一个进行应用层协议协商的传输层安全协议(TLS)扩展,ALPN 允许应用层协商应该在安全连接上实行哪个协议,以避免额外且独立于应用层协议的往返协商通信。它已被 HTTP/2 使用。

NPN

NPN(Next Protocol Negotiation) 下一协议协商,在 TLS 上允许应用层协商使用哪个协议,在 2014 年 7 月 11 日的 RFC 7301 中使用 ALPN 代替 NPN

h2

HTTP/2 的协议名称,口语叫法 HTTP2 和 http/1.1 是一个概念,通过 ALPN 协商。
HTTP/2 中只能使用 TLSv1.2+协议。

CSR

CSR(Certificate Signing Request),在 PKI 系统中,CSR 文件必须在申请和购买 SSL 证书之前创建,也就是证书申请者在申请数字证书时由 CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把 CSR 文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件

CT

CT (Certificate Transparency) 证书透明,Certificate Transparency 的目标是提供一个开放的审计和监控系统,可以让任何域名所有者或者 CA 确定证书是否被错误签发或者被恶意使用,从而提高HTTPS网站的安全性。

RSA

RSA 加密算法是一种非对称加密算法。在公开密钥加密和电子商业中 RSA 被广泛使用。对极大整数做因数分解的难度决定了 RSA 算法的可靠性,支持签名和加密。

ECC

ECDSA(椭圆曲线签名算法)的常见叫法,和 RSA 同时具有签名和加密不同,它只能做签名,它的优势是具有很好的性能、大小和安全性更高。

DH/DHE

Diffie-Hellman(DH)密钥交换是一种密钥交换的协议,DH 的诀窍是使用了一种正向计算简单、逆向计算困难的数学函数,即使交换中某些因子已被知晓,情况也是一样。DH 密钥交换需要 6 个参数,其中两个(dh_p 和 dh_g)称为域参数,由服务器选取,协商过程中,客户端和服务器各自生成另外两个参数,相互发送其中一个参数(dh_Ys 和 dh_Yc)到对端,在经过计算,最终得到共享密钥。

临时 Diffie-Hellman(ephemeral Diffie-Hellman,DHE)密钥交换中没有任何参数被重复利用。与之相对,在一些 DH 密钥交换方式中,某些参数是静态的,并被嵌入到服务器和客户端的证书中,这样的话密钥交换的结果是一直不变的共享密钥,就无法具备前向保密的能力。

ECDH/ECHDE

椭圆曲线 Diffie-Hellman(elliptic curve Diffie-Hellman,ECDH)密钥交换原理与 DH 相似,但是它的核心使用了不同的数学基础,ECHD 基于椭圆曲线加密,ECDH 密钥交换发生在一条由服务器定义的椭圆曲线上,这条曲线代替了 DH 中域参数的角色,理论上,ECDH 支持静态的密钥交换。

临时椭圆曲线 Diffie-Hellman 密钥交换,和 DHE 类似,使用临时的参数,具有前向保密的能力。

SRI

HTTPS 可以防止数据在传输中被篡改,合法的证书也可以起到验证服务器身份的作用,但是如果 CDN 服务器被入侵,导致静态文件在服务器上被篡改,HTTPS 也无能为力。

W3C 的 SRI(Subresource Integrity)规范可以用来解决这个问题。SRI 通过在页面引用资源时指定资源的摘要签名,来实现让浏览器验证资源是否被篡改的目的。只要页面不被篡改,SRI 策略就是可靠的。

有关 SRI 的更多说明请看 Jerry Qu 写的《Subresource Integrity 介绍》。SRI 并不是 HTTPS 专用,但如果主页面被劫持,攻击者可以轻松去掉资源摘要,从而失去浏览器的 SRI 校验机制。

CSP

CSP,全称是 Content Security Policy,它有非常多的指令,用来实现各种各样与页面内容安全相关的功能。这里只介绍两个与 HTTPS 相关的指令,更多内容可以看我之前写的《Content Security Policy Level 2 介绍》。

block-all-mixed-content

前面说过,对于 HTTPS 中的图片等 Optionally-blockable 类 HTTP 资源,现代浏览器默认会加载。图片类资源被劫持,通常不会有太大的问题,但也有一些风险,例如很多网页按钮是用图片实现的,中间人把这些图片改掉,也会干扰用户使用。

通过 CSP 的 block-all-mixed-content 指令,可以让页面进入对混合内容的严格检测(Strict Mixed Content Checking)模式。在这种模式下,所有非 HTTPS 资源都不允许加载。跟其它所有 CSP 规则一样,可以通过以下两种方式启用这个指令:

HTTP 响应头方式:

Content-Security-Policy: block-all-mixed-content

标签方式:

</meta http-equiv=”content-security-policy” content=”block-all-mixed-content”>

upgrade-insecure-requests

历史悠久的大站在往 HTTPS 迁移的过程中,工作量往往非常巨大,尤其是将所有资源都替换为 HTTPS 这一步,很容易产生疏漏。即使所有代码都确认没有问题,很可能某些从数据库读取的字段中还存在 HTTP 链接。

而通过 upgrade-insecure-requests 这个 CSP 指令,可以让浏览器帮忙做这个转换。启用这个策略后,有两个变化:

  • 页面所有 HTTP 资源,会被替换为 HTTPS 地址再发起请求;
  • 页面所有站内链接,点击后会被替换为 HTTPS 地址再跳转;

跟其它所有 CSP 规则一样,这个指令也有两种方式来启用,具体格式请参考上一节。需要注意的是 `upgrade-insecure-requests 只替换协议部分,所以只适用于 HTTP/HTTPS 域名和路径完全一致的场景。

HSTS

在网站全站 HTTPS 后,如果用户手动敲入网站的 HTTP 地址,或者从其它地方点击了网站的 HTTP 链接,依赖于服务端 301/302 跳转才能使用 HTTPS 服务。而第一次的 HTTP 请求就有可能被劫持,导致请求无法到达服务器,从而构成 HTTPS 降级劫持。

这个问题可以通过 HSTS(HTTP Strict Transport Security,RFC6797)来解决。HSTS 是一个响应头,格式如下:

Strict-Transport-Security: max-age=expireTime [; includeSubDomains] [; preload]

max-age,单位是秒,用来告诉浏览器在指定时间内,这个网站必须通过 HTTPS 协议来访问。也就是对于这个网站的 HTTP 地址,浏览器需要先在本地替换为 HTTPS 之后再发送请求。

includeSubDomains,可选参数,如果指定这个参数,表明这个网站所有子域名也必须通过 HTTPS 协议来访问。

preload,可选参数,后面再介绍它的作用。

HSTS 这个响应头只能用于 HTTPS 响应;网站必须使用默认的 443 端口;必须使用域名,不能是 IP。而且启用 HSTS 之后,一旦网站证书错误,用户无法选择忽略。

HSTS Preload List

可以看到 HSTS 可以很好的解决 HTTPS 降级攻击,但是对于 HSTS 生效前的首次 HTTP 请求,依然无法避免被劫持。浏览器厂商们为了解决这个问题,提出了 HSTS Preload List 方案:内置一份可以定期更新的列表,对于列表中的域名,即使用户之前没有访问过,也会使用 HTTPS 协议。

目前这个 Preload List 由 Google Chrome 维护,Chrome、Firefox、Safari、IE 11 和 Microsoft Edge 都在使用。如果要想把自己的域名加进这个列表,首先需要满足以下条件:

  • 拥有合法的证书(如果使用 SHA-1 证书,过期时间必须早于 2016 年);
  • 将所有 HTTP 流量重定向到 HTTPS;
  • 确保所有子域名都启用了 HTTPS;
  • 输出 HSTS 响应头:
    max-age 不能低于 18 周(10886400 秒);
    必须指定 includeSubdomains 参数;
    必须指定 preload 参数;

即便满足了上述所有条件,也不一定能进入 HSTS Preload List,更多信息可以看这里。通过 Chrome 的 chrome://net-internals/#hsts 工具,可以查询某个网站是否在 Preload List 之中,还可以手动把某个域名加到本机 Preload List。

PFS

PFS(perfect forward secrecy)正向保密 ,在密码学中也可以被称为 FS(forward secrecy),是安全通信协议的特性,要求一个密钥只能访问由它所保护的数据,用来产生密钥的元素一次一换,不能再产生其他的密钥,一个密钥被破解,并不影响其他密钥的安全性。

OCSP

OCSP(Online Certificate Status Protocol)是一个用于获取 X.509 数字证书撤销状态的网际协议,在 RCF 6960 中定义,作为证书吊销列表的替代品解决公开密钥基础建设(PKI)中使用证书吊销列表而带来的多个问题。协议数据传输过程中使用 ASN.1 编码,并通常创建在 HTTP 协议上

OCSP Stapling

OCSP 装订,是 TLS 证书状态查询扩展,作为在线证书状态协议的替代方法对 X.509 证书状态进行查询,服务器在 TLS 握手时发送事先缓存的 OCSP 响应,用户只要验证该响应的时效性而不用再向数字证书认证机构(CA)发送请求,可以加快握手速度。

CRL

CRL(Certificate revocation list 证书吊销列表)是一个已经被吊销的数字证书的名单,这些在证书吊销列表中的证书不再会受到信任,但目前 OCSP(在线证书状态协议)可以代替 CRL 实现证书状态检查。

Session ID

Session ID 完成 SSL 握手后会获得一个编号(Session ID)。如果对话中断,下次重连的时候,只要客户端给出这个编号,且服务器有这个编号的缓存,双方就可以重新使用已有的”对话密钥”,而不必重新生成一把(握手的主要开销)。 因为要缓存每个连接的握手参数,服务端存储开销会比较大。

Session Ticket

Session ticket 获得方式和 SessionID 类似,但是使用时是在每次握手时由服务器进行解密,获得加密参数。服务端无需维持握手参数,可以减少内存开销。

POODLE

POODLE(贵宾犬漏洞 CVE-2014-3566),贵宾犬漏洞的根本原因是 CBC 模式在设计上的缺陷,具体来说就是 CBC 只对明文进行了身份验证,但是没有对填充字节进行完整性校验。这使得攻击者可以对填充字节修改并且利用填充预示来恢复加密内容,让 POODLE 攻击成为可能的原因是 SSL3 中过于松散的填充结构和校验规则。

TLS POODLE

TLS POODLE(TLS 贵宾犬漏洞 CVE-2014-8730) 该漏洞的原理和 POODLE 漏洞的原理一致,但不是 SSL3 协议,而是在 TLS 协议上,TLS 协议本身没有问题,但是在其实现上。一些开发人员在进行 SSL3 到 TLS 的转换的时候,没有遵守协议规定的填充要求,使得他们的实现容易受到 POODLE 攻击的威胁

DROWN

一句话概括:“使用 SSLv2 对 TLS 进行交叉协议攻击”

DROWN(CVE-2016-0800)  DROWN 表示仅支持 SSL2 是对现代服务器和客户端的威胁,它允许攻击者通过讲探测发送到支持 SSLv2 的服务器并使用相同的私钥来解密最新客户端和服务器之间的 TLS 连接,如果如果服务器容易受到 DROWN 的影响,有两种原因:

  • 服务器允许 SSL2 连接
  • 私钥用于允许 SSL2 连接的其他服务器,即使是另一个支持 SSL/TLS 的协议,例如,Web 服务器和邮件服务器上使用相同的私钥和证书,如果邮件服务器支持 SSL2,即使 web 服务器不支持 SSL2,攻击者可以利用
    邮件服务器来破坏与 web 服务器的 TLS 连接。

使用 40bit 的出口限制RSA加密套件,单台 PC 能在一分钟内完成工具,对于攻击的一般变体(对任何 SSL2 服务起作用)也可以在 8 个小时内完成。

Logjam

Logjam(CVE-2015-4000) 使用 Diffie-Hellman 密钥交换协议的 TLS 连接很容易受到攻击,尤其是 DH 密钥中的公钥强度小于 1024bits。中间人攻击者可将有漏洞的 TLS 连接降级至使用 512 字节导出级加密。这种攻击会影响支持 DHE_EXPORT 密码的所有服务器。这个攻击可通过为两组弱 Diffie-Hellman 参数预先计算 512 字节质数完成,特别是 Apache 的 httpd 版本 2.1.5 到 2.4.7,以及 OpenSSL 的所有版本。

BEAST

BEAST(CVE-2011-3389)  BEAST 攻击针对 TLS1.0 和更早版本的协议中的对称加密算法 CBC 模式,初始化向量 IV 可以预测,这就使得攻击者可以有效的讲 CBC 模式削弱为 ECB 模式,ECB 模式是不安全的

Downgrade

Downgrade attack(降级攻击 ) 降级攻击是一种对计算机系统或者通信协议的攻击,在降级攻击中,攻击者故意使系统放弃新式、安全性高的工作方式,反而使用为向下兼容而准备的老式、安全性差的工作方式,降级攻击常被用于中间人攻击,讲加密的通信协议安全性大幅削弱,得以进行原本不可能做到的攻击。 在现代的回退防御中,使用单独的信号套件来指示自愿降级行为,需要理解该信号并支持更高协议版本的服务器来终止协商,该套件是 TLS_FALLBACK_SCSV(0x5600)

MITM

MITM(Man-in-the-middle) ,是指攻击者与通讯的两端分别创建独立的联系,并交换其所有收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个对话都被攻击者完全控制,在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。一个中间人攻击能成功的前提条件是攻击者能够将自己伪装成每个参与会话的终端,并且不被其他终端识破。

Openssl Padding Oracle

Openssl Padding Oracle(CVE-2016-2107) openssl 1.0.1t 到 openssl 1.0.2h 之前没有考虑某些填充检查期间的内存分配,这允许远程攻击者通过针对 AES CBC 会话的 padding-oracle 攻击来获取敏感的明文信息。

CCS

CCS(openssl MITM CCS injection attack CVE-2014-0224) 0.9.8za 之前的 Openssl,1.0.0m 之前的以及 1.0.1h 之前的 openssl 没有适当的限制 ChangeCipherSpec 信息的处理,这允许中间人攻击者在通信之间使用 0 长度的主密钥

FREAK

FREAK(CVE-2015-0204) 客户端会在一个全安全强度的 RSA 握手过程中接受使用弱安全强度的出口 RSA 密钥,其中关键在于客户端并没有允许协商任何出口级别的 RSA 密码套件

Export-cipher

在 1998 年 9 月之前,美国曾经限制出口高强度的加密算法。具体来说,限制对称加密强度为最大 40 位,限制密钥交换强度为最大 512 位。

CRIME

CRIME(Compression Ratio Info-leak Made Easy CVE-2012-4929),这是一种可攻击安全隐患,通过它可窃取启用数据压缩特性的 HTTPS 或 SPDY 协议传输的私密 Web Cookie。在成功读取身份验证 Cookie 后,攻击者可以实行会话劫持和发动进一步攻击。

Heartbleed

Heartbleed(心血漏洞 CVE-2014-0160) 是 Openssl 的程序漏洞,如果使用带缺陷的 Openssl 版本,无论是服务器还是客户端,都可能因此受到攻击。此问题的原因是在实现 TLS 的心跳扩展时没有对输入进行适当的验证(缺少边界检查),该程序错误属于缓冲区过读,即可以读取的数据比应该允许读取的还多。

RC4

是一种流加密算法,对称加密,密钥长度可变。由于 RC4 算法存在弱点,2015 年 2 月所发布的 RFC 7465 规定禁止在 TLS 中使用 RC4 加密算法。
Chrome 48 版本开始会拒绝与「以 RC4 做为对称加密算法的 CipherSuite」建立 TLS 连接 。

3DES

在加密套件中很多的密码使用的是 3DES_EDE_CBC 这种类型的,在维基上 3DES 提供的 bits 数是 192bits(168+24),但由于 Meet-in-the-middle attack 攻击的影响,只能提供 112bits 的安全。因此在等级评定上使用 192bits,在套件的安全性上使用 112bits

PSK

PSK 是“Pre-Shared Key”的缩写。就是 预先让通讯双方共享一些密钥(通常是对称加密密钥)。
这种算法用的不多,它的好处是:

  1. 不需要依赖公钥体系,不需要部属 CA 证书。
  2. 不需要涉及非对称加密,TLS 协议握手(初始化)时的性能好于 RSA 和 DH。
    密钥交换时通讯双方已经预先部署了若干个共享的密钥为了标识多个密钥,给每一个密钥定义一个唯一的 ID 客户端通过 ID 和服务端进行通讯。

SRP

TLS-SRP( Secure Remote Password)密码套件有两类:第一类密码套件仅使用 SRP 认证。第二类使用 SRP 认证和公共密钥证书来增加安全性。

TLS GREASE

为了保持可扩展性,服务器必须忽略未知值,
是 Chrome 推出的一种探测机制。

  1. GREASE for TLS
  2. https://tools.ietf.org/html/draft-davidben-tls-grease-01

AEAD

全称是使用关联数据的已验证加密,Authenticated Encryption with Associated Data (AEAD) algorithms。
AEAD 是用一个算法在内部同时实现 cipher+MAC,是 TLS1.2、TLS1.3 上采用的现代加密算法。

相关密码套件:
TLS_RSA_WITH_AES_128_CCM = {0xC0,0x9C}
TLS_RSA_WITH_AES_256_CCM = {0xC0,0x9D)
TLS_DHE_RSA_WITH_AES_128_CCM = {0xC0,0x9E}
TLS_DHE_RSA_WITH_AES_256_CCM = {0xC0,0x9F}
TLS_RSA_WITH_AES_128_CCM_8 = {0xC0,0xA0}
TLS_RSA_WITH_AES_256_CCM_8 = {0xC0,0xA1)
TLS_DHE_RSA_WITH_AES_128_CCM_8 = {0xC0,0xA2}
TLS_DHE_RSA_WITH_AES_256_CCM_8 = {0xC0,0xA3}

https://tools.ietf.org/html/rfc6655

AES-GCM

AES-GCM 是一种 AEAD,是目前 TLS 的主力算法,互联网上 https 流量的大部分依赖使用 AES-GCM。

ChaCha20-poly1305

ChaCha20-poly1305 是一种 AEAD,提出者是 Daniel J. Bernstein 教授,针对移动互联网优化,目前 Google 对移动客户端的所有流量都使用 ChaCha20-Poly1305

AES-CBC

关于 AES-CBC,在 AES-GCM 流行之前,TLS 主要依赖 AES-CBC,而由于历史原因,TLS 在设计之初固定选择了 MAC-then-Encrypt 结构,AES-CBC 和 MAC-then-encrypt 结合,为选择密文攻击(CCA)创造了便利条件,TLS 历史上有多个漏洞都和 CBC 模式有关。

STARTTLS

STARTTLS 是对纯文本通信协议(SMTP/POP3/IMAP)的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS 或 SSL),而不是另外使用一个端口作加密通信。
RFC 2595 定义了 IMAP 和 POP3 的 STARTTLS;RFC 3207 定义了 SMTP 的;


举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SSL 相关术语简单解释(转载)
喜欢 (0)
举个栗子
关于作者:
建筑工地上施工员,闲暇时弄个博客打发时间,
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址