lysS
V2EX  ›  问与答

加密一般时分组加密,那 tls 是怎么和 tcp 结合起来的喃?

  •  
  •   lysS · Mar 30, 2022 · 1536 views
    This topic created in 1509 days ago, the information mentioned may be changed or developed.
    难道是 tls 层也有自己的数据包结构?
    rozbo
        1
    rozbo  
       Mar 30, 2022
    你对层的理解还不够充分啊,所谓层其实就是 layer ,实际上就是包装了一层的。
    连 tcp 都是一层(难道你没想过对方是怎么知道你的 ip 地址的吗)
    ref: datatracker.ietf.org/doc/html/rfc8446
    lysS
        2
    lysS  
    OP
       Mar 30, 2022
    @rozbo 你看我下面的描述:

    如果 tls 层没有单独的包结构,那么数据就是单纯地被分组加密、如 AES ,那么每组加密数据的大小肯定是固定的,接收的时候读取到固定大小的数据后解密得到原始数据。要是分组不固定,接收方是不知道一个加密后分组的 tail 的。
    但是固定分组大小这种策略有个问题是:假如分组大小为 1KB ,sender 发送 5B 数据后一段时间才又发送了一些数据。那么这种情况下那 5B 数据将会阻塞。
    基于以上,我猜测 tls 需要独立的包结构才能解决上述问题。
    moonmagian
        3
    moonmagian  
       Mar 30, 2022 via Android
    tls 用的是 CTR 工作模式,相当于转化成流密码了,不会有这个问题。即使不用 CTR 转成流密码也有 PKCS7 之类的填充手段填充分组
    lysS
        4
    lysS  
    OP
       Mar 30, 2022
    @moonmagian 懂了,非常感谢
    monkeyWie
        5
    monkeyWie  
       Mar 30, 2022
    你好,有的。 用 wireshark 抓包看看就知道了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2942 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:35 · PVG 10:35 · LAX 19:35 · JFK 22:35
    ♥ Do have faith in what you're doing.