V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lysS
V2EX  ›  问与答

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

  •  
  •   lysS · 2022-03-30 09:52:54 +08:00 · 944 次点击
    这是一个创建于 1000 天前的主题,其中的信息可能已经有所发展或是发生改变。
    难道是 tls 层也有自己的数据包结构?
    rozbo
        1
    rozbo  
       2022-03-30 10:16:29 +08:00
    你对层的理解还不够充分啊,所谓层其实就是 layer ,实际上就是包装了一层的。
    连 tcp 都是一层(难道你没想过对方是怎么知道你的 ip 地址的吗)
    ref: datatracker.ietf.org/doc/html/rfc8446
    lysS
        2
    lysS  
    OP
       2022-03-30 11:38:36 +08:00
    @rozbo 你看我下面的描述:

    如果 tls 层没有单独的包结构,那么数据就是单纯地被分组加密、如 AES ,那么每组加密数据的大小肯定是固定的,接收的时候读取到固定大小的数据后解密得到原始数据。要是分组不固定,接收方是不知道一个加密后分组的 tail 的。
    但是固定分组大小这种策略有个问题是:假如分组大小为 1KB ,sender 发送 5B 数据后一段时间才又发送了一些数据。那么这种情况下那 5B 数据将会阻塞。
    基于以上,我猜测 tls 需要独立的包结构才能解决上述问题。
    moonmagian
        3
    moonmagian  
       2022-03-30 12:15:06 +08:00 via Android
    tls 用的是 CTR 工作模式,相当于转化成流密码了,不会有这个问题。即使不用 CTR 转成流密码也有 PKCS7 之类的填充手段填充分组
    lysS
        4
    lysS  
    OP
       2022-03-30 12:35:00 +08:00
    @moonmagian 懂了,非常感谢
    monkeyWie
        5
    monkeyWie  
       2022-03-30 14:05:04 +08:00
    你好,有的。 用 wireshark 抓包看看就知道了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3014 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:38 · PVG 21:38 · LAX 05:38 · JFK 08:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.