HTTPS的加密原理你知道吗?什么是中间人攻击?什么是对称加密什么是非对称加密?

原文来自于公众号:三不猴子

1、什么是HTTPS?

是一种通过计算机网络进行安全通信的传输协议。HTTPS是在HTTP上建立SSL/TLS加密层,并对传输数据进行加密,简单来说就是安全版的HTTP协议。

2、TLS/SSL 协议介绍

TLS/SSL 的功能实现主要依赖于三类基本算法:散列算法 、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。

SSL 协议介绍

3、加解密相关知识介绍

3.1、对称加密

  加密和解密同用一个密钥的方式称为对称加密,也被叫做共享密钥加密(Common key crypto system)。
  常见的对称加密有:DES(Data Encryption Standard)、AES(Advanced Encryption Standard)、RC4、IDEA

3.2、非对称加密

  非对称加密加密使用一对非对称的密钥。一把叫做私有密钥
(private key),另一把叫做公开密钥(public key)。顾名思
义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发
布,任何人都可以获得。也被称为公开密钥加密

(1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
(2)甲方获取乙方的公钥,然后用它对信息加密。
(3)乙方得到加密后的信息,用私钥解密。

常见的非对称加密有:RSA算法、ECC算法

3.2、数字签名

  数字签名,简单来说就是通过提供可鉴别的数字信息验自身身份的一种方式。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。分别由 发送者持有能够 代表自己身份 的 私钥 (私钥不可泄露),由接受者持有与私钥对应的公钥,能够在接受到来自发送者信息时用于验证其身份。数字签名具有验证身份和确保信息完整新的作用。

3.2.1、数字签名生成
image.png

  将一段文本通过哈希(hash)生成消息摘要,再通过私钥加密处理后生成数字签名。

3.2.2、数字签名校验
image.png

  假设A和B通信,A将消息和签名一起发送给B,B收到后就可以校验信息是不是A发送的,以及是不是被篡改了。
  假设B知道A的公钥,通过公钥就可以解密被加密的消息摘要,然后利用哈希(hash)对收到的原文产生一个消息摘要,与上一步得到的消息摘要进行对比,如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。

3.2.3、证书颁发机构

  在前文中,校验数字签名的时候,是假设知道公钥的,问题的关键是和消息一样,公钥本身不在不安全的网络中直接发送。此时,就引入了证书颁发机构(Certificate Authority,简称CA)。CA数量并不多,B客户端内置了所有受信任CA的证书。CA对A的公钥(和其他信息)数字签名后生成证书。

  A将证书发送给B后,B通过CA证书的公钥验证证书签名。
B信任CA,CA信任A 使得 Bob信任A,信任链(Chain Of Trust)就是这样形成的。
事实上,B客户端内置的是CA的根证书(Root Certificate),HTTPS协议中服务器会发送证书链(Certificate Chain)给客户端。

3.2.4、证书

证书包含:

  • 证书颁发机构的名称
  • 证书本身的数字签名
  • 证书持有者公钥
  • 证书签名用到的Hash算法
image.png

数字证书认证机构的业务流程:

  • 服务器的运营人员向第三方机构CA提交公钥、组织信息、个人信息(域名)等信息并申请认证;
  • CA通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;
  • 如信息审核通过,CA会向申请者签发认证文件-证书。证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。 其中签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA的私钥对信息摘要进行加密,密文即签名;
  • 客户端 Client 向服务器 Server 发出请求时,Server 返回证书文件;
  • 客户端 Client 读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即服务器的公开密钥是值得信赖的。
  • 客户端还会验证证书相关的域名信息、有效时间等信息; 客户端会内置信任CA的证书信息(包含公钥),如果CA不被信任,则找不到对应 CA的证书,证书也会被判定非法。
    四、 HTTPS工作流程

二、HTTPS与HTTP区别

1、http信息是明文传输;https 则是具有安全性的SSL/TLS加密传输协议。
2、http使用的默认端口是80;https的默认端口是443
3、https对搜索引擎更友好,利于SEO,谷歌、百度优先索引HTTPS网页;

三、HTTPS对比HTTP

HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用
SSL(Secure Socket Layer)和 TLS(Transport Layer Security)协议代
替而已。

HTTPS和HTTP
  1. 内容加密:内容经过对称加密,每个连接生成一个唯一的加密密钥,来保证传输过程中的数据安全;
  2. 身份认证: 确认网站的真实性,第三方无法伪造服务端(客户端)身份
  3. 数据完整性: 内容传输经过完整性校验,防止内容被第三方冒充或者篡改

四、HTTPS工作流程

image.png
  1. Client发起一个HTTPS(https://yanyuzhe.com/)的请求,根据RFC2818的规定,Client知道需要连接Server的443(默认)端口。
  2. Server把事先配置好的公钥证书(public key certificate)返回给客户端。
  3. Client验证公钥证书:比如是否在有效期内,证书的用途是不是匹配Client请求的站点,是不是在CRL吊销列表里面,它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书(操作系统内置的Root证书或者Client内置的Root证书)。如果验证通过则继续,不通过则显示警告信息。
  4. Client使用伪随机数生成器生成加密所使用的会话密钥,然后用证书的公钥加密这个会话密钥,发给Server。
  5. Server使用自己的私钥(private key)解密这个消息,得到会话密钥。至此,Client和Server双方都持有了相同的会话密钥。
  6. Server使用会话密钥加密“明文内容A”,发送给Client。
  7. Client使用会话密钥解密响应的密文,得到“明文内容A”。
  8. Client再次发起HTTPS的请求,使用会话密钥加密请求的“明文内容B”,然后Server使用会话密钥解密密文,得到“明文内容B”。

参考文章

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

推荐阅读更多精彩内容