Servo
V2EX  ›  SSL

OpenSSL 1.1.1(Dev)最近暂不支持 CHACHA20 ?

  •  
  •   Servo · Apr 8, 2018 · 6730 views
    This topic created in 3132 days ago, the information mentioned may be changed or developed.

    无聊更新着玩,OpenSSL 1.1.1-pre5-dev (即 Draft 26 ),密码套件把 ChaCha20 放最前面,但不管是浏览器(每夜版)还是 testssl 测试 TLS1.3 时都是 TLS_AES_256_GCM_SHA384。印象中在 Draft 23 的时候貌似还是 CHACHA20 的 emmm

    ssl_ciphers TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256 ……
    
    Supplement 1  ·  Apr 9, 2018

    个人初步判定,应该是 OpenSSL 改变了相关 API ,Nginx 还没跟进的样子。 emmm 不折腾了 …

    感谢大家回复。

    TLS

    Supplement 2  ·  Apr 11, 2018

    补充:受制于 Nginx 的 Bug /feature ?暂不支持新的 TLS1.3 密码套件指定选项,TLSv1.3 ciphersuite 将会与 1.1/1.2 分开配置,所以暂不支持 CHACHA20-POLY1305-SHA256 密码套件。

    28 replies  •  2018-04-09 23:10:43 +08:00
    msg7086
    msg7086
    Apr 9, 2018
    1
    哦?有夜夜版浏览器支持 26 了么?搭了个服务器正愁没浏览器用……
    love4taylor
    love4taylor
    Apr 9, 2018 via Android
    2
    FF ?目前 Chrome 全线都是 23, 我还是依旧 pre2 得了 23333
    300
    300
    Apr 9, 2018 via Android
    4
    beta2 是可以的
    Servo
    Servo
    OP
    Apr 9, 2018 via Android
    5
    @msg7086 FF Nightly 上个月就更新 26 了。

    @Love4Taylor 嗯,顺带一提,Nginx 把那个编译错误修复了。

    @kn007 多谢,不知大佬能否测试下 Openssl 主分支默认情况下是否真的暂不支持 CHACHA,说不定是我自己的问题,下午我会试试这个补丁的,多谢。
    kn007
    kn007
    Apr 9, 2018 via Android
    6
    @Servo 我晚点试试,这几天又忙起来了。
    我不是大佬啦。
    kn007
    kn007
    Apr 9, 2018 via Android
    7
    FF 动作真快,优化得还好,chrome 真该学习一下。
    Servo
    Servo
    OP
    Apr 9, 2018 via Android
    8
    @winterbells beta2 应该就是 pre-4,我之前测试貌似也不行,尴尬了。
    Servo
    Servo
    OP
    Apr 9, 2018 via Android
    9
    @kn007 小众浏览器,全靠信仰和仅存的一点自定义在用。
    msg7086
    msg7086
    Apr 9, 2018
    10
    我来回测试了一下,感觉是 nginx 的锅,因为我用 openssl s_client 连上去也有 cipher 问题。

    ssl_protocols TLSv1.3;
    ssl_ciphers TLS13-AES-128-GCM-SHA256;

    New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
    Server public key is 256 bit
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
    No ALPN negotiated
    Early data was not sent
    SSL-Session:
    Protocol : TLSv1.3
    Cipher : TLS_AES_256_GCM_SHA384
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1523236776
    Timeout : 7200 (sec)
    Verify return code: 20 (unable to get local issuer certificate)
    Extended master secret: no
    msg7086
    msg7086
    Apr 9, 2018
    11
    目测是 nginx 调用 openssl 设置 ciphers 时候出了问题,没设对。
    Servo
    Servo
    OP
    Apr 9, 2018 via Android
    12
    @msg7086 看来应该是 Nginx 的锅了,多谢测试。
    300
    300
    Apr 9, 2018 via Android
    13
    @Servo 编译 nginx 的时候是用 openssl 1.1.1 吗🤔
    msg7086
    msg7086
    Apr 9, 2018
    14
    @Servo 我看看这几天有没有时间做一个简单的补丁出来。
    Servo
    Servo
    OP
    Apr 9, 2018
    15
    @winterbells 当然咯,直接拉的主分支单独编译的。


    @msg7086 好的,我也去瞧瞧有没有人给 Nginx 提 issue。
    300
    300
    Apr 9, 2018 via Android
    16
    那这个呢🤐
    ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:!MD5;

    ssl_prefer_server_ciphers on;
    Servo
    Servo
    OP
    Apr 9, 2018
    17
    @winterbells 问题主要是无视 prefer,无论如何设置首选套件都是 TLS_AES_256_GCM_SHA384。
    300
    300
    Apr 9, 2018 via Android
    18
    @Servo 额。不清楚了
    msg7086
    msg7086
    Apr 9, 2018
    20
    # nginx -V
    nginx version: nginx/1.13.12
    built with OpenSSL 1.1.1-pre4-dev 28 Mar 2018

    ssl_protocols TLSv1.3;
    ssl_ciphers TLS_CHACHA20_POLY1305_SHA256;


    New, TLSv1.3, Cipher is TLS_CHACHA20_POLY1305_SHA256
    Server public key is 256 bit
    Secure Renegotiation IS NOT supported
    Compression: NONE
    Expansion: NONE
    No ALPN negotiated
    Early data was not sent
    SSL-Session:
    Protocol : TLSv1.3
    Cipher : TLS_CHACHA20_POLY1305_SHA256
    300
    300
    Apr 9, 2018
    21
    Σ(っ °Д °;)っ
    原来你说的是 tls1.3 下不能用 chacha
    眼瞎了(°ー°〃)
    respect11
    respect11
    Apr 9, 2018
    22
    @msg7086 大佬,夜夜版是什么意思。。刚去 google 了下 竟然是 caoliu
    Servo
    Servo
    OP
    Apr 9, 2018❤️1
    23
    @msg7086 我太菜了,打上补丁还是不行,不知道为什么,不折腾了。依然十分感谢。

    @respect11 nightly (每日 /夜构建)版浏览器,每天更新一到三次。
    msg7086
    msg7086
    Apr 9, 2018
    24
    @Servo 如果是 Stretch 用户的话,可以等我回头打包二进制。
    Servo
    Servo
    OP
    Apr 9, 2018
    25
    @msg7086 谢谢,暂时搁置不弄了。
    msg7086
    msg7086
    Apr 9, 2018
    26
    Debian Stretch Docker 编译脚本,给想要测试的朋友:
    https://g.x86.men/root/nginx-compiler

    ./build.sh stretch-tls13

    # nginx -V
    nginx version: nginx/1.13.12
    built with OpenSSL 1.1.1-pre5-dev 8 Apr 2018
    kn007
    kn007
    Apr 9, 2018
    27
    @Servo 我测试了确实是,优先的是 TLS_AES_256_GCM_SHA384

    @msg7086 在 nginx-1.13.11 打了你的补丁也是一样,还是用了 TLS_AES_256_GCM_SHA384。
    当然如果只定义 TLS_CHACHA20_POLY1305_SHA256,确实会用到 ChaCha20。
    msg7086
    msg7086
    Apr 9, 2018
    28
    @kn007
    ssl_protocols TLSv1.3;
    ssl_ciphers TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384;

    #apps/openssl s_client -connect x:443

    SSL-Session:
    Protocol : TLSv1.3
    Cipher : TLS_CHACHA20_POLY1305_SHA256

    =====

    ssl_protocols TLSv1.3;
    ssl_ciphers TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384;

    #apps/openssl s_client -connect x:443

    SSL-Session:
    Protocol : TLSv1.3
    Cipher : TLS_AES_128_GCM_SHA256

    无法复现你的结果。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1391 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
    ♥ Do have faith in what you're doing.