TLS简述

Http有不少缺陷,安全就是其中之一。Http使用明文传输,并且在传输过程中可被截获,产生不少的安全隐患。并且自身上难以解决问题,新的协议Https应运而生。

Https

Https保留了Http的工作原理,在TCP和Http两层之间添加了SSL/TLS层,具体位于OSI模型的会话层。SSL/TLS也称为传输层安全协议。

安全通信必须实现四个特性:机密性、完整性,身份认证和不可否认。片面来讲,传输内容需经过加密,数据接收方可以验证传输内容的完整性,传输双方都可确认彼此身份,不能否认已经发生过的行为。

SSL/TLS

SSL(安全套接层)在发展成熟后改名为TLS(传输层安全),正式标准化。TLS处于OSI模型的会话层,用于在会话层对传输进行加密、身份验证等。用到了对称加密、非对称加密、身份认证等密码学技术。

TLS必须选用一组加密算法,称为加密套件。加密套件由固定部分组成,通常形式是“密匙交换算法+签名算法+对称加密算法+摘要算法”。TLS底层使用了OpenSSL,是一个加密算法工具包。

机密性实现

实现机密性的最主要方式为加密,加密方式大体分为对称加密和非对称加密。被加密的数据称为明文,加密规则称为秘钥,加密后的数据成为密文,将密文还原成明文称为解密。加密算法是开源的,但加密后需要特定的秘钥才可解密,所以秘钥的保存至关重要。

对称加密

对称加密在加密和解密时使用同一个秘钥。运行机制为:传输端将报文加密为密文(避免明文传输)传输到接收端,接收端用相同的算法、秘钥解密。

TLS 里有非常多的对称加密算法可供选择,比如 RC4、DES、3DES、AES、ChaCha20 等,但前三种算法都被认为是不安全的,通常都禁止使用,目前常用的只有 AES 和 ChaCha20。

ChaCha20算法密匙长度为256位,算法的纯软件性能较优。AES安全强度高、性能好,并且在硬件层面上做了优化,使用更加广泛。

非对称加密

对称加密的思路很清晰,但在两个端点,一方如何知道另一方设置的秘钥呢?和密文一起发送的话,秘钥也会被加密,无限循环。因此出现了非对称加密用于秘钥交换。

非对称加密在加密解密两端使用不同的秘钥,称为公钥和私钥。加密和解密时对立的,即公钥加密私钥解密或者私钥加密公钥解密。公钥可公开,私钥须严格保密。

通常由网站保管私钥,公钥可分发出去,双方共用一套加密算法。用户通过公钥加密明文为密文,网站则根据私钥将密文解密为明文。如此就实现了秘钥交换。

但是非对称算法的设计比对称算法难的多,都是根据数学难题设计而成,常见的有REA、ECC。REA的秘钥推荐长度我1024,历史更加悠久;ECC的秘钥推荐长度仅为160位以上,更加新兴,因为秘钥长度更短所以计算性能更好。

混合加密

非对称加密虽然在功能上更加安全且可以解决秘钥交换,但其计算性能太差,而这在计算机通信中根本不可接受。非对称加密和对称加密组合是更为可行的方案。

即明文的直接加密解密还是由对称加密算法解决。但是对称加密的秘钥通过非对称加密在客户端和网站之间交换。

混合加密的流程(图片来自透视Http协议课程)

至此,已经实现了安全传输的机密性。

完整性实现

有个机密性后,解决了明文传输产生的问题,但密文在传输过程中仍可被截获。虽不能被识别,但可被修改、重组然后再交给接收方,甚至可凭借彼此之间的交换对应关系破解密匙,但双方可能都察觉不到。所以,需加入完整性检测。

摘要算法

摘要算法可根据具体数据生成固定的独一无二的一串字符。类似于生成了数据的指纹。

摘要算法推荐使用的是SHA-2系列算法,具体包含SHA224、SHA256、SHA384,分别能够生成 28 字节、32 字节、48 字节的摘要。

在发送端使用摘要算法,生成摘要字符串,伴随数据一起传输到接收端后,接收端用相同的摘要算法生成摘要字符串,与发送过来的摘要字符串对比,不相同则表明数据不完整。完整性也需建立在机密性之上,生成的摘要字符串也需加密,不然忙活了半天功亏一篑。

身份认证实现

实现了机密性和完整性基本解决了传输过程中的安全问题,但两端点的安全问题还在。作为用户可能会访问到伪装的恶意网站,作为网站服务方也可能会收到黑客伪装的用户请求。所以身份认证目的在于确定两端点都是可信的。日渐普及的网络实名认证在很久很久之前已在Https中实现了,只不过没那么具体,只需判断请求来自真实的用户。

数字签名

实现认证需要独一无二的东西,可以证明身份。联系之前所接触东西,摘要算法可生成独一无二的摘要字符串;而非对称加密中的私钥为用户所私有。结合摘要算法和私钥即可生成代表用户身份的数字签名。


数字签名与验签过程(图片来自透视Http协议专栏课程)

数字证书

实现的思路已经有了,那么其中用来解密的公钥又有什么问题呢。公钥每个人都可发布,所以并不是所有公钥都有可信度。这时候需要引入第三方公信机构掌控公钥的可信度。

这个第三方机构就是证书认证机构(CA),负责给公钥签名,用自身的公信保证公钥的可信度。签名包含公钥的序列号、用途、颁发者、有效时间,将这些信息打包签名,形成数字证书。

CA也有大有小,分不同层级,小CA需要大CA认证,一直向上直到根CA,根CA不需要其他认证,集中了CA的公信。

数字证书的验证

通常情况下,服务器需向客户端发送数字证书,客户端进行验证。在操作系统和浏览器中已经内置了各大根证书,所发数字证书逐级向上验证,直到根证书,验证完成。

至此实现了也就身份验证和不可否认。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,135评论 6 514
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,317评论 3 397
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,596评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,481评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,492评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,153评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,737评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,657评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,193评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,276评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,420评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,093评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,783评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,262评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,390评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,787评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,427评论 2 359