SSL协议杂谈

概述

1. 安全套接字(Secure Socket Layer,SSL)协议客户端与服务器之间安全交换信息的协议

2. 允许重用已经协商过的会话

3. 协议位置:位于传输层和应用层之间

4. 子协议

(1) 握手协议

        协商通信过程中使用的加密套件(加密算法、密钥交换算法和MAC算法等)

        实现双方的身份验证

        在双方之间安全地交换密钥

 (2)密码变化协议

        通过此协议通知对方,后续报文将使用新协商的加密套件和密钥进行保护和传输。(起通知作用)

(3)警告协议

        向通信对端报告告警信息

 (4) 记录协议

        主要负责对上层的数据(SSL握手协议、SSL密码变化协议、SSL警告协议和应用层协议报文)进行分块、计算并添加MAC值、加密,并把处理后的记录块传输给对端

协议提供的安全机制

1. 数据传输的机密性

利用对称密钥算法(DES,AES等)对传输的数据进行加密

利用非对称密钥算法保证密钥本身的安全

2. 身份验证机制

CA签名过的数字证书,对服务器和客户端进行身份验证,其中客户端的身份验证是可选的

体现在SSL的握手过程

SSL利用PKI提供的机制保证公钥的真实性

3. 消息完整性验证

消息传输过程中使用MAC算法来检验消息的完整性

MAC算法要求通信双方具有相同的密钥,同样利用非对称密钥算法保证密钥本身的安全

握手过程

1. 只验证服务器的SSL握手过程

流程图

具体步骤

(1)SSL客户端通过Client Hello消息将它支持的SSL版本、加密算法、密钥交换算法、MAC算法等信息发送给SSL服务器

(2)SSL服务器确定本次通信采用的SSL版本和加密套件,并通过Server Hello消息通知给SSL客户端。如果SSL服务器允许SSL客户端在以后的通信中重用本次会话,则SSL服务器会为本次会话分配会话ID,并通过Server Hello消息发送给SSL客户端。

(3)SSL服务器将携带自己公钥信息的数字证书通过Certificate消息发送给SSL客户端。

(4) SSL服务器发送Server Hello Done消息,通知SSL客户端版本和加密套件协商结束,开始进行密钥交换。

(5)SSL客户端验证SSL服务器的证书合法后,利用证书中的公钥加密SSL客户端随机生成的premaster secret,并通过Client Key Exchange消息发送给SSL服务器

(6)SSL客户端发送Change Cipher Spec消息,通知SSL服务器后续报文将采用协商好的密钥和加密套件进行加密和MAC计算

(7)SSL客户端计算已交互的握手消息(除Change Cipher Spec消息外所有已交互的消息)的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给SSL服务器。SSL服务器利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则服务端证明了密钥和加密套件协商成功

(8) 同样地,SSL服务器发送Change Cipher Spec消息,通知SSL客户端后续报文将采用协商好的密钥和加密套件进行加密和MAC计算

(9) SSL服务器计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给SSL客户端。SSL客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则客户端证明了密钥和加密套件协商成功。

注:Change Cipher Spec消息属于SSL密码变化协议,其他握手过程交互的消息均属于SSL握手协议,统称为SSL握手消息

2. 恢复原有会话的SSL握手过程

流程图

具体步骤

(1)SSL客户端发送Client Hello消息,消息中的会话ID设置为计划重用的会话的ID

(2)SSL服务器如果允许重用该会话,则通过在Server Hello消息中设置相同的会话ID来应答。这样,SSL客户端和SSL服务器就可以利用原有会话的密钥和加密套件,不必重新协商

(...)后面四个步骤和前面一样,起验证作用

TLS协议

Transport Layer Security 安全传输层协议

互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS 1.0版

消息摘要(Message Digest)

What

将长度不固定的消息(message)作为输入参数,运行特定的Hash函数,生成固定长度的输出,这个输出就是Hash,也称为这个消息的消息摘要(Message Digest)

Why

传统的checksum是弱校验。可以将一些位翻转校验出来,但是却无法校验出一些复杂的数据错误、人为制造的数据篡改

How

计算出消息摘要,附在原始数据的尾部。到达目的地,先将原始数据(message)与消息摘要(message digest)分离,然后运行同样的Hash算法,生成自己的消息摘要,比较两个消息摘要,相同则校验通过。

算法不可逆

常见算法

CRC(循环冗余校验) 算法族

CRC32 ----32位的校验值

MD(Message-Digest Algorithm)算法族

MD2、MD4、MD5 ----128位的校验值

SHA(Secure Hash Algorithm) 算法族

SHA1 ---- 160位

SHA256 ---- 256位

SHA384 ---- 384位

SHA512 ---- 512位

MAC(Message Authentication Code)

是基于密钥和消息摘要所获得的一个值

在发送数据之前,发送方首先使用通信双方协商好的散列函数计算其摘要值。在双方共享的会话密钥作用下,由摘要值进一步生成消息验证码。

HMAC(Hash-based Message Authentication Code)

密钥参与消息摘要的运算,比MAC更安全

上文提到的常规Hash算法,如MD5、SHA,只有一个输入参数:消息

如果输入参数有两个,一个是原始数据,另外一个是密钥(Key),将会生成一个加密的消息摘要HMAC。那第三方即使篡改数据,由于没有密钥,很难生成一个全新的加密摘要而不被终点主机发现并丢弃。

应用场景---数字证书签名

将主机(服务器)的数字证书(明文)作为输入参数,生成Message Digest

然后用CA的私钥加密,这个加密过的Message Digest就变成了CA的数字签名,附在原始数字证书(明文)的末尾,成为一个整体,此整体即为CA签名过的数字证书(数字证书明文+私钥加密过的摘要)

PKI(Public Key Infrastructure)

公开密钥基础设施,也就是利用公开密钥机制建立起来的基础设施

三要素

数字证书

本质是是一个包含用户的公钥及其身份信息的文件

证书的格式和验证方法普遍遵循X.509 国际标准

由权威机构——CA签发,并由CA保证数字证书的真实性

认证机关CA

本质是一个网络应用程序

在技术上,伪造证明书是非常简单的。认证机关的可信度,直接与证书的可信度挂钩。在很多国家认证机关都是由政府在主导建设,常常被视作一个社会性基础设施的一个环节。

证书库

证书信任链

证书之间的信任关系,是可以嵌套的

根证书

除了根证书C,其它证书都要依靠上一级的证书来证明自己

根证书不需要被证明

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

推荐阅读更多精彩内容