OpenSSL 1.1.1(Dev)最近暂不支持 CHACHA20 ? - V2EX
Servo
V2EX    SSL

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

  •  
  •   Servo 2018-04-08 23:50:22 +08:00 5885 次点击
    这是一个创建于 2769 天前的主题,其中的信息可能已经有所发展或是发生改变。

    无聊更新着玩,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 …… 
    第 1 条附言    2018-04-09 11:10:13 +08:00

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

    感谢大家回复。

    TLS

    第 2 条附言    2018-04-11 09:36:36 +08:00

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

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

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

    @kn007 多谢,不知大佬能否测试下 Openssl 主分支默认情况下是否真的暂不支持 CHACHA,说不定是我自己的问题,下午我会试试这个补丁的,多谢。
    kn007
        6
    kn007  
       2018-04-09 08:13:42 +08:00 via Android
    @Servo 我晚点试试,这几天又忙起来了。
    我不是大佬啦。
    kn007
        7
    kn007  
       2018-04-09 08:14:20 +08:00 via Android
    FF 动作真快,优化得还好,chrome 真该学习一下。
    Servo
        8
    Servo  
    OP
       2018-04-09 08:14:29 +08:00 via Android
    @winterbells beta2 应该就是 pre-4,我之前测试貌似也不行,尴尬了。
    Servo
        9
    Servo  
    OP
       2018-04-09 08:16:41 +08:00 via Android
    @kn007 小众浏览器,全靠信仰和仅存的一点自定义在用。
    msg7086
        10
    msg7086  
       2018-04-09 09:22:22 +08:00
    我来回测试了一下,感觉是 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
        11
    msg7086  
       2018-04-09 09:23:18 +08:00
    目测是 nginx 调用 openssl 设置 ciphers 时候出了问题,没设对。
    Servo
        12
    Servo  
    OP
       2018-04-09 09:32:36 +08:00 via Android
    @msg7086 看来应该是 Nginx 的锅了,多谢测试。
    300
        13
    300  
       2018-04-09 09:48:03 +08:00 via Android
    @Servo 编译 nginx 的时候是用 openssl 1.1.1 吗
    msg7086
        14
    msg7086  
       2018-04-09 10:10:14 +08:00
    @Servo 我看看这几天有没有时间做一个简单的补丁出来。
    Servo
        15
    Servo  
    OP
       2018-04-09 10:38:42 +08:00
    @winterbells 当然咯,直接拉的主分支单独编译的。


    @msg7086 好的,我也去瞧瞧有没有人给 Nginx 提 issue。
    300
        16
    300  
       2018-04-09 10:54:13 +08:00 via Android
    那这个呢
    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
        17
    Servo  
    OP
       2018-04-09 11:00:09 +08:00
    @winterbells 问题主要是无视 prefer,无论如何设置首选套件都是 TLS_AES_256_GCM_SHA384。
    300
        18
    300  
       2018-04-09 11:06:26 +08:00 via Android
    @Servo 额。不清楚了
    msg7086
        19
    msg7086  
       2018-04-09 11:22:22 +08:00
    msg7086
        20
    msg7086  
       2018-04-09 11:23:35 +08:00
    # 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
        21
    300  
       2018-04-09 11:58:15 +08:00
    Σ(っ °Д °;)っ
    原来你说的是 tls1.3 下不能用 chacha
    眼瞎了(°°〃)
    respect11
        22
    respect11  
       2018-04-09 12:00:36 +08:00
    @msg7086 大佬,夜夜版是什么意思。。刚去 google 了下 竟然是 caoliu
    Servo
        23
    Servo  
    OP
       2018-04-09 12:31:37 +08:00   1
    @msg7086 我太菜了,打上补丁还是不行,不知道为什么,不折腾了。依然十分感谢。

    @respect11 nightly (每日 /夜构建)版浏览器,每天更新一到三次。
    msg7086
        24
    msg7086  
       2018-04-09 12:48:37 +08:00
    @Servo 如果是 Stretch 用户的话,可以等我回头打包二进制。
    Servo
        25
    Servo  
    OP
       2018-04-09 12:57:33 +08:00
    @msg7086 谢谢,暂时搁置不弄了。
    msg7086
        26
    msg7086  
       2018-04-09 15:16:20 +08:00
    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
        27
    kn007  
       2018-04-09 21:43:58 +08:00
    @Servo 我测试了确实是,优先的是 TLS_AES_256_GCM_SHA384

    @msg7086 在 nginx-1.13.11 打了你的补丁也是一样,还是用了 TLS_AES_256_GCM_SHA384。
    当然如果只定义 TLS_CHACHA20_POLY1305_SHA256,确实会用到 ChaCha20。
    msg7086
        28
    msg7086  
       2018-04-09 23:10:43 +08:00
    @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

    无法复现你的结果。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2651 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 12:48 PVG 20:48 LAX 04:48 JFK 07:48
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86