HTTPS加密过程

我不是生产者,我只是个搬运工。(o)/~


1.HTTP和HTTPS的区别与联系:
  • 二者都是网络传输协议,https是http的升级版、安全版,https是在http基础上进行加密的。
  • 连接方式不同:http的连接很简单,是无状态的;https 协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  • http是超文本传输协议,信息是明文传输;https则是具有安全性的ssl加密传输协议。
  • http的端口是80;https的端口是443。
  • https需要ca证书申请,一般免费证书较少,因而需要一定费用(证书其实就是一对公钥和私钥)。
2. HTTPS的加密过程
HTTPS加密过程
  1. 客户端发起HTTPS请求
    • 用户在浏览器里输入一个HTTPS网址,然后连接到服务端的443端口。
  2. 服务端的配置
    • 采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。证书其实就是一对公钥和私钥
    • 如果对公钥不太理解,可以想象成一把钥匙和一个锁头,只是世界上只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。
  3. 给客户端传送证书
    • 这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。
    • 【避免篡改】用哈希算法对报文提取定长摘要;用私钥对摘要进行加密,作为数字签名;将数字签名附加到报文末尾发送给客户端;
  4. 客户端解析证书
    • 【避免篡改】用公钥对服务器的数字签名进行解密;用同样的算法重新计算出报文的数字签名;比较解密后的签名与自己计算的签名是否一致,如果不一致,说明数据被篡改过;如果发现异常,则会弹出一个警示框,提示证书存在的问题。
    • 如果证书没有问题,那么就生成一个随机值。然后用证书(也就是【公钥】)对这个【随机值进行加密】。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。
  5. 给服务端传送加密信息
    • 传送的是用证书加密后的随机值,目的是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个【随机值来进行加密解密】了。
  6. 服务端解密信息
    • 服务端用私钥解密后,得到了客户端传过来的随机值,然后把内容通过该随机值进行对称加密,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
  7. 传输给客户端加密后的信息
    • 服务端用私钥加密后的信息,可以在客户端用随机值解密还原。
  8. 客户端解密信息
    • 客户端用之前生产的私钥解密服务端传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

【个人理解】:

  1. 客户端请求https,服务端返回证书公钥,同时将通过哈希计算的定长报文进行私钥加密可以生成的数字签名返回。
  2. 客户端进行公钥认证,然后通过解密数字签名与重新计算报文的数字签名进行对比,看发送的数据是否被篡改。若验证通过,则生成随机值使用公钥加密发送给服务端。
  3. 服务端使用私钥解密出随机值,再把要发送的内容使用随机值加密发送给客户端
  4. 客户端再使用随机值解密,得到服务端发送的内容。

【公钥】:就是传给客户端的证书,让其加密内容传给服务端得到数据,而这个数据内容就是随机值。
【随机值】:就充当了一个密钥的作用,进行客户端和服务端的加密解密的工作,来保证数据的安全性。


3.HTTPS如何解决HTTP存在的缺点

(1) 如何防止窃听

  • HTTP的一个缺陷就是明文传输,数据包被别人捕获之后就可获取其中的信息。但经过HTTPS传输的数据是经过加密的,而解密用的秘钥是经过双方协商的一次性秘钥,只有通信双方持有。所以其他人即使抓到了HTTPS数据包,也无法看到其中的内容,从而起到防止窃听的作用。

(2) 如何防止伪装

  • 非对称加密方式存在的问题:就是无法证明公开密钥本身就是货真价实的公开密钥。HTTPS通过数字证书认证的方式防止伪装

(3) 如何识别内容已被篡改

  • 网络传输过程中需要经过很多中间节点,虽然数据无法被解密,但可能被篡改。HTTPS通过校验数字签名来识别内容是否被篡改

(4)什么是数字签名

  • 所谓数字签名,就是对报文进行散列算出的数字摘要。即:明文 -> 散列运算 -> 摘要 -> 私钥加密 -> 数字签名

(5) 怎么校验数字签名

  • 服务器在发送报文之前做了3件的事

    • 用哈希算法对报文提取定长摘要;
    • 用私钥对摘要进行加密,作为数字签名;
    • 将数字签名附加到报文末尾发送给客户端;
  • 客户端接收到报文后

    • 用公钥对服务器的数字签名进行解密;
    • 用同样的算法重新计算出报文的数字签名;
    • 比较解密后的签名与自己计算的签名是否一致,如果不一致,说明数据被篡改过;

参考链接:https://juejin.im/post/5db0652451882564793a4906
参考链接:https://juejin.im/post/5a4f4884518825732b19a3ce

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

推荐阅读更多精彩内容