V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
colinlet
V2EX  ›  酷工作

送上一张 HTTPS 通信原理图,祝各位 phper 面试顺利, 新年找份好工作

  •  
  •   colinlet · 2019-02-15 11:37:23 +08:00 · 3454 次点击
    这是一个创建于 1887 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https 通信原理图

    https://github.com/colinlet/PHP-Interview-QA

    结合实际 PHP 面试遇到的问题,尝试提供简洁准确的答案

    感觉不错的话,欢迎 Star~~

    第 1 条附言  ·  2019-02-15 14:20:49 +08:00
    主要参考的是《图解 HTTP 》 p163
    附上书上原图

    21 条回复    2019-02-19 10:10:00 +08:00
    frylkrttj
        1
    frylkrttj  
       2019-02-15 11:52:40 +08:00
    左边的小图和右边的大图有什么关系
    Hieast
        3
    Hieast  
       2019-02-15 13:06:04 +08:00 via Android
    用 PHP 这么痛苦吗,我感觉这部分知识应该归属于运维、安全领域
    lhx2008
        4
    lhx2008  
       2019-02-15 13:08:53 +08:00 via Android
    恕我直言,知道原理也看不懂楼主画的图,楼主可以参考下 cloudflare 的教程的图
    vipppppp
        5
    vipppppp  
       2019-02-15 13:54:26 +08:00
    最近也在面试,昨晚还和面试讲述 https 的过程。。。
    这图是错的吧?(瑟瑟发抖,难不成我昨晚讲错了)
    服务端是 CA 的私钥加密,客户端是公钥加密。。。
    与其说加密,我更认为叫做私钥签章(签名), 公钥验章(校验签名)
    LewisW
        6
    LewisW  
       2019-02-15 14:03:18 +08:00 via iPhone
    chairuosen
        7
    chairuosen  
       2019-02-15 14:11:50 +08:00
    /t/534275
    顺便贴一下前两天问的 HTTPS 问题,到现在也没能得到一个明确答案


    @vipppppp RSA 方式的公私钥对有两对,你弄混了,数字签名是 CA 的私钥把证书 hash 加密(证书里是服务器公私钥对的公钥),然后客户端用 CA 公钥解出 hash 验证签名,拿到安全的服务器公钥
    colinlet
        8
    colinlet  
    OP
       2019-02-15 14:14:21 +08:00
    @Hieast php 啥都会,php 啥都不会
    @lhx2008 应该是这张图吧,http://www.ruanyifeng.com/blogimg/asset/2014/bg2014092003.png
    frylkrttj
        9
    frylkrttj  
       2019-02-15 14:27:38 +08:00
    还是书里的图看得懂
    colinlet
        10
    colinlet  
    OP
       2019-02-15 14:30:26 +08:00
    @chairuosen 可以翻翻这本书,看看里面对称加密章节,一堆公式推导,还看不懂
    《深入浅出密码学——常用加密技术原理与应用》
    colinlet
        11
    colinlet  
    OP
       2019-02-15 14:31:35 +08:00
    @frylkrttj [捂脸]
    chairuosen
        12
    chairuosen  
       2019-02-15 14:34:17 +08:00
    @colinlet 这是一个逻辑问题,不是密码学问题。原帖很多人像这样说,你去看看 A 吧,你去看看 B 吧,比如 DH 和 RSA 原理,其实与此无关。我希望有人能一针见血的指出来,你这样就无法 XXX 了。
    chairuosen
        13
    chairuosen  
       2019-02-15 14:38:30 +08:00
    @chairuosen 刚刚找到了答案,居然也是 V2EX 的,/t/438683
    SakuraKuma
        14
    SakuraKuma  
       2019-02-15 14:47:58 +08:00
    vipppppp
        15
    vipppppp  
       2019-02-15 16:01:50 +08:00
    @chairuosen 不是杠,想问清楚,找工作怕讲错
    RSA 有两对?指哪两对? https 不是采用对称加密(AES)+非对称加密(RSA)。我看了一些资料都是这样介绍的?难道是我理解错了?

    我刚才的回答主要是基于我理解的是:AES+RSA 的方式。
    @colinlet
    我的疑惑就是 LZ 的自己画的图,那个"非对称加密对",这个密钥对指的是服务器的密钥对吧,这个是对称密钥对吧?
    ft7138
        16
    ft7138  
       2019-02-15 16:34:17 +08:00
    赞楼主~ 借楼内推,我可以内推瓜子,PHP/JAVA/Go 都有坑,需要的同学请私信我,不是 hr。
    chairuosen
        17
    chairuosen  
       2019-02-15 16:39:24 +08:00
    @vipppppp 没事都是友好讨论。一对公私钥是 CA 的,一对是服务器的。我觉得你理解错的地方是 “客户端是公钥加密,与其说是加密.......应该叫做公钥验章” 这句话。 客户端有公钥加密的地方的,就是传回 preMasterSecret 的时候,客户端用 CA 公钥验证签名与这个是两回事,所以我觉得你弄混了。
    chairuosen
        18
    chairuosen  
       2019-02-15 16:50:48 +08:00
    @vipppppp 对称加密密钥是用 服务器的公钥传送 preMasterSecret 到服务器后,双方各自生成的。
    stellar
        19
    stellar  
       2019-02-15 16:59:36 +08:00
    [https://howhttps.works]( https://howhttps.works)
    wpby
        20
    wpby  
       2019-02-15 22:04:26 +08:00
    @ft7138 求 php 坑位
    ft7138
        21
    ft7138  
       2019-02-19 10:10:00 +08:00
    @wpby 有意向的话,加我微信 ft7138
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5591 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 05:51 · PVG 13:51 · LAX 22:51 · JFK 01:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.