https传输过程及原理

参考文章: https://www.jianshu.com/p/dc31bb2e51f1
https://www.jianshu.com/p/bad8a99de24c

1. 基础知识

  • SSL:一般情况下,网站使用的都是明文方式传输数据,但是在涉及到一些隐私信息时(如银行交易),这个时候网站就会跳转到 SSL,SSl的功能就是提供加密数据。这样的话,TCP/IP协议只要做好的自己的事情,数据加密就全权委托给SSL协议完成

  • TLS:TLS是对SSL的扩展和优化,他可以提供数据安全的同时,确保数据的完整性

  • HTTPS:超文本传输安全协议。就是http+ssl/tls,可以理解为安全版http

  • 对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据

  • 非对称加密:使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密

  • 证书认证:个人生成的公钥和私钥是不被信任的,只有经过CA认证后后才会被认为是可信任的密钥。目前大多浏览器都内置了国际知名CA的根证书中心,如果我们的密钥被CA中心签名过,那么就是合法的数字证书。但其CA验证密钥过程复杂,所以很多人使用自签名的数字证书

非对称加密使用的是公钥加密和私钥解密机制

2. 图解https的传输过程

  1. 客户端发起https请求,连接到服务端的443端口
  2. 服务端采用的https有一套数字证书,这个证书可以自己配置,也可以像证书管理组织申请,证书的本质是公钥(发给任何人)和私钥(服务端保留)
  3. 服务端将公钥传送证书传递给客户端,证书中包含了很多信息,比如证书的颁发机构,过期时间,网址,公钥等
  4. 客户端解析证书,由客户端的TLS完成,首先会验证公钥是否有效,比如颁发机构,过期时间等。如果有异常,就会弹出警告信息。(这个我们上网应该遇到过,一般都是提示说该网站的证书不可信任,是否继续等)。证书没问题后会随机生成随机值(这个很重要,用于对称加密),然后使用第三步中的证书对这个随机值进行非对称加密
  5. 将证书非对称加密后的随机值传到服务器
  6. 服务器使用私钥对其进行非对称解密后,得到客户端的随机值,然后把内容通过该随机值进行对称加密
  7. 服务端将对称加密后的信息发给客户端
  8. 客户端用之前的生成的随机值来进行对称解密,获取内容明文

3. CA

SSL/TLS 工作流-图二

CA: 证书授权中心 (certificate authority)。 它呢,类似于国家出入境管理处一样,给别人颁发护照;也类似于国家工商管理局一样,给公司企业颁发营业执照。
它有两大主要性质:

    1. CA 本身是受信任的 // 国际认可的
    1. 给他受信任的申请对象颁发证书 // 和办理护照一样,要确定你的合法身份,你不能是犯罪分子或造反派。
      当然,你需要被收保护费,同时,CA 可以随时吊销你的证书
3.1 CA证书详细的工作流

1)申请认证:服务器需自己生成公钥私钥对 pub_svr & pri_svr,同时根据 pub_svr 生成请求文件 csr, 提交给 CA,csr 中含有公钥、组织信息、个人信息 (域名) 等信息。(图二中 server.req 就是 csr 请求文件)
2)审核信息:CA 通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等。
3)签发证书:如信息审核通过,CA 会向申请者签发认证文件 - 证书。 证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。 签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名。(图二中生成 server.crt)
4)返回证书:client 如果请求验证服务器,服务器需返回证书文件。(图二中 handshake 传回 server.crt
5)client 验证证书:client 读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA 的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法。客户端然后验证证书相关的域名信息、有效时间是否吊销等信息。 客户端会内置信任 CA 的证书信息 (包含公钥),如果 CA 不被信任,则找不到对应 CA 的证书,证书也会被判定非法。(图二中 check 可选,我们可以选择不验证服务器证书的有效性)
6)秘钥协商:验证通过后,Server 和 Client 将进行秘钥协商。接下来 Server 和 Client 会采用对称秘钥加密。(对称加密时间性能优)(图二中 pre-master/change_cipher_spec/encrypted_handshake_message 过程)
7)数据传输:Server 和 Client 采用对称秘钥加密解密数据。

3.2 创建一个自签名的SSL证书(X509)

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

推荐阅读更多精彩内容