互联网|万字长文拿下HTTPS,面试不再慌!( 三 )
本文插图
机密性实现:加密
实现机密性最常用的手段是加密(encrypt) , 就是把消息用某种方式转换成谁也看不懂的乱码 , 只有掌握特殊钥匙的人才能再转换出原始文本 。
这里的钥匙就叫做密钥(key) , 加密前的消息叫明文(plain text/clear text) , 加密后的乱码叫密文(cipher text) , 使用密钥还原明文的过程叫解密(decrypt) 。
所有的加密算法都是公开的 , 任何人都可以去分析研究 , 而算法使用的密钥则必须保密 。
这个关键的密钥又是什么呢?由于 HTTPS、TLS 都运行在计算机上 , 所以密钥就是一长串的数字 , 但约定俗成的度量单位是位(bit) , 而不是字节(byte) 。
比如 , 说密钥长度是 128 , 就是 16 字节的二进制串 , 密钥长度 1024 , 就是 128 字节的二进制串 。
按照密钥的使用方式 , 加密可以分为两大类:
对称加密
非对称加密
对称加密
很好理解 , 就是指加密和解密时使用的密钥都是同一个 , 是对称的 , 只要保证了密钥的安全 , 那整个通信过程就可以说具有了机密性 。
举个例子 , 你想要登录某网站 , 只要事先和它约定好使用一个对称密码 , 通信过程中传输的全是用密钥加密后的密文 , 只有你和网站才能解密 。
黑客即使能够窃听 , 看到的也只是乱码 , 因为没有密钥无法解出明文 , 所以就实现了机密性 。
本文插图
TLS 里有非常多的对称加密算法可供选择 , 比如 RC4、DES、3DES、AES、ChaCha20 等 , 但前三种算法都被认为是不安全的 , 通常都禁止使用 , 目前常用的有 AES-128、AES-192、AES-256 和 ChaCha20 。
DES 的全称是 Data Encryption Standard(数据加密标准), 它是用于数字数据加密的对称密钥算法 。
尽管其 56 位的短密钥长度使它对于现代应用程序来说太不安全了 , 但它在加密技术的发展中具有很大的影响力 。
AES 的意思是高级加密标准(Advanced Encryption Standard) , AES-128 , AES-192 和 AES-256 都是属于 AES。
密钥长度可以是 128、192 或 256 。 它是 DES 算法的替代者 , 安全强度很高 , 性能也很好 , 而且有的硬件还会做特殊优化 , 所以非常流行 , 是应用最广泛的对称加密算法 。
ChaCha20 是 Google 设计的另一种加密算法 , 密钥长度固定为 256 位 , 纯软件运行性能要超过 AES , 曾经在移动客户端上比较流行 , 但 ARMv8 之后也加入了 AES 硬件优化 , 所以现在不再具有明显的优势 。
分组模式
对称算法还有一个分组模式的概念 , 它可以让算法用固定长度的密钥加密任意长度的明文 , 把小秘密(即密钥)转化为大秘密(即密文) 。
最早有 ECB、CBC、CFB、OFB 等几种分组模式 , 但都陆续被发现有安全漏洞 , 所以现在基本都不怎么用了 。
最新的分组模式被称为 AEAD(Authenticated Encryption with Associated Data) , 在加密的同时增加了认证的功能 , 常用的是 GCM、CCM 和 Poly1305 。
把上面这些组合起来 , 就可以得到 TLS 密码套件中定义的对称加密算法 。
比如 , AES128-GCM , 意思是密钥长度为 128 位的 AES 算法 , 使用的分组模式是 GCM;ChaCha20-Poly1305 的意思是 ChaCha20 算法 , 使用的分组模式是 Poly1305 。
非对称加密
对称加密看上去好像完美地实现了机密性 , 但其中有一个很大的问题:如何把密钥安全地传递给对方 , 术语叫密钥交换 。
因为在对称加密算法中只要持有密钥就可以解密 。 如果你和网站约定的密钥在传递途中被黑客窃取 , 那他就可以在之后随意解密收发的数据 , 通信过程也就没有机密性可言了 。
推荐阅读
- 互联网|上线半年收获6700万用户,这款聚焦下沉用户的陌生人社交APP是怎么做到的?
- 互联网|5G商用一周年,华为云向互联网企业大抛绣球
- 互联网|中台产品经理实战(14):中台与SaaS、微服务关系
- 互联网|行业观察 | 你所不知道的5G消息
- 互联网|多名知名人物推特被黑,拜登奥巴马都“中招”,比尔盖茨也在其内
- 互联网|发放高利贷,还要窃取用户信息?这些金融APP在秀“道德底线”
- 互联网|东莞先知:数字智能,先觉“先知”
- 云计算|从互联网到AI崛起,上海能弯道超车吗?
- 行业互联网,5G|江苏有线顺利完成园区5G信号开通测试
- 行业互联网,AI人工智能|城市教育大脑以“ AI+ 大数据”为核心 , 引领教育变革
