As of October 31, 2018, Microsoft Office 365 will no longer support TLS 1.0 and 1.1

MS ends the support of TLS prior to 1.2 in october.

Is TLS 1.2 supported on Discourse?

Yes:

https://github.com/discourse/discourse_docker/blob/master@{2018-02-13}/templates/web.ssl.template.yml#L21

10 Likes

@sam @mpalmer should we even be supporting TLS v1? That seems positively ancient … as of 2014 all major browsers supported TLS v1.2?

3 Likes

I’m happy to nuke older browser support if you want. It’d reduce the cipher list, too, because most of the entries in there are to support older browsers. The main reason I didn’t go “full strict” last time I reviewed those settings is because while you can gracefully degrade UI on older browsers, to (at the very least) tell people “your browser is from the 90s, man!”, you can’t gracefully degrade TLS connections – if a protocol negotiation doesn’t happen successfully, it’s ugly (browser-provided) error page time, no exceptions, no chance for the site to give any useful information.

5 Likes

It looks like we are safe to disable TLS V1 at least because we don’t support IE10, and IE11 supports TLS V1.1

1 Like

Oh but Matt’s point of you don’t even get an error page or anything except for “broken cert” kind of stands.

I think that given:

TLS 1, when properly configured has no known security vulnerabilities. Newer protocols are better designed and better address the potential for new vulnerabilities.

I think we should just leave it for now. I strongly agree we should remove any ciphers that are compromised.

It is pointless though any browser so old that it only supports TLS v1 will not load Discourse’s advanced JS anyways.

Sure, but I wonder, does this mean we want to remove?

https://github.com/discourse/discourse/blob/master/vendor/assets/javascripts/browser-update.js.erb

Maybe, looking at the old dates there and market share of ancient stuff…

Just as a reference of what others are doing, GitHub (which admittedly has an audience that is rather likely to keep browsers up to date) is disabling TLS 1.0 and 1.1 now:

https://github.com/blog/2498-weak-cryptographic-standards-removal-notice

9 Likes

We should remove tls v1 @mpalmer — that seems quite safe to me.

1 Like

OK. I’ll add it to my list.

4 Likes

Righto, I think I’ve excised all the old protocol support everywhere. Next container rebuild everyone’s going to lose TLS 1.0/1.1, and all our hosted infrastructure should already be updated.

13 Likes

Cool, stripe just did the same

https://support.stripe.com/questions/how-do-i-upgrade-my-stripe-integration-from-tls-1-0-to-tls-1-2

Stripe has to do it, as TLS 1.0 is no longer PCI compliant as of 30 June 2018.

6 Likes

In the case, will TLS 1.1 be disabled in June?

Pretty sure it’s already gone per this post.

3 Likes

It is, and you can easily check as follows:

openssl s_client -connect yoursitename.com:443 -tls1_1

This is what I see:

TLS 1.0
CONNECTED(00000005)
4335930988:error:1400442E:SSL routines:CONNECT_CR_SRVR_HELLO:tlsv1 alert protocol version:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/ssl/ssl_pkt.c:1200:SSL alert number 70
4335930988:error:140040E5:SSL routines:CONNECT_CR_SRVR_HELLO:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/ssl/ssl_pkt.c:585:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Start Time: 1584841736
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
TLS 1.1
CONNECTED(00000005)
4709322348:error:1400442E:SSL routines:CONNECT_CR_SRVR_HELLO:tlsv1 alert protocol version:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/ssl/ssl_pkt.c:1200:SSL alert number 70
4709322348:error:140040E5:SSL routines:CONNECT_CR_SRVR_HELLO:ssl handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-47.11.1/libressl-2.8/ssl/ssl_pkt.c:585:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.1
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Start Time: 1584841739
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)

Both fail, in the same way as my recent builds of the standard install do.

Whereas 1.2 connects as expected, for example on Meta:

TLS1.2
CONNECTED(00000006)
depth=4 C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority
verify return:1
depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
verify return:1
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = *.cdck-prod-meta.discourse.cloud
verify return:1
---
Certificate chain
 0 s:/CN=*.cdck-prod-meta.discourse.cloud
   i:/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
 1 s:/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
   i:/C=US/O=Amazon/CN=Amazon Root CA 1
 2 s:/C=US/O=Amazon/CN=Amazon Root CA 1
   i:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2
 3 s:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2
   i:/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFizCCBHOgAwIBAgIQAxxEG1nwikYuOjmEkmaL+zANBgkqhkiG9w0BAQsFADBG
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRUwEwYDVQQLEwxTZXJ2ZXIg
Q0EgMUIxDzANBgNVBAMTBkFtYXpvbjAeFw0xOTEyMTkwMDAwMDBaFw0yMTAxMTkx
MjAwMDBaMCsxKTAnBgNVBAMMICouY2Rjay1wcm9kLW1ldGEuZGlzY291cnNlLmNs
b3VkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnOsWDJgI/cz2AIh7
K/Qh7o/ThFzAcpgI634iGU334JS8UjT0iCLv9OScDb/L0dQQpQTvbL5VVGud0oE0
1YowkLCsgfPdt09sMVoM9SuhThmwmeCa9B37D6OWRfTLrjFmwO/9gs6Ax9A/eFuU
ZWuNQlH1qcvii6UhFS5vdDiQde2HoPPtPSok/9V3An1/myYCOcq+mgZnYUJyxT2P
VVc8bR4rhjp+zj/BMbP+tdZWJssTSv2WCQe0pliI83UQ/i38rx/nzMcsOOPTnQC9
nnKtCltzdPOhuJl4xcS+6IyNjxqz6ZuYJyb60g+QojUR6nSUzUbdpUkE2JyAnVZ3
0xONRQIDAQABo4ICjjCCAoowHwYDVR0jBBgwFoAUWaRmBlKge5WSPKOUByeWdFv5
PdAwHQYDVR0OBBYEFFu7qvRIkLe8mXq4HheQczVAeXHlMCsGA1UdEQQkMCKCICou
Y2Rjay1wcm9kLW1ldGEuZGlzY291cnNlLmNsb3VkMA4GA1UdDwEB/wQEAwIFoDAd
BgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwOwYDVR0fBDQwMjAwoC6gLIYq
aHR0cDovL2NybC5zY2ExYi5hbWF6b250cnVzdC5jb20vc2NhMWIuY3JsMCAGA1Ud
IAQZMBcwCwYJYIZIAYb9bAECMAgGBmeBDAECATB1BggrBgEFBQcBAQRpMGcwLQYI
KwYBBQUHMAGGIWh0dHA6Ly9vY3NwLnNjYTFiLmFtYXpvbnRydXN0LmNvbTA2Bggr
BgEFBQcwAoYqaHR0cDovL2NydC5zY2ExYi5hbWF6b250cnVzdC5jb20vc2NhMWIu
Y3J0MAwGA1UdEwEB/wQCMAAwggEGBgorBgEEAdZ5AgQCBIH3BIH0APIAdwCkuQmQ
tBhYFIe7E6LMZ3AKPDWYBPkb37jjd80OyA3cEAAAAW8bd5ioAAAEAwBIMEYCIQDM
vJk/Hy4Yho1TsVfKz1ho6k4AeeZrLIxeEbzFQZOBewIhAKo5qeylQ+7zwXIIPszv
45jbJiHPKm0eFoCSMKJiUbRBAHcAh3W/51l8+IxDmV+9827/Vo1HVjb/SrVgwbTq
/16ggw8AAAFvG3eZQgAABAMASDBGAiEAq7yfJ7qBk6/1/YFK5niRdakZlp0Eh1KA
6n0FEx2xv8MCIQCvURALbQ4aO/UAFrWnj8tily7jQR/+Jf25RYTq1/ZJhzANBgkq
hkiG9w0BAQsFAAOCAQEAGyoRy+Q+wkSNlSeREa42T6SdVS9XjW027ljSESx7yxZM
xdbN2slcun2yL2mxVR3ZSMkqfs1e+P2sUEzeUeGC3zY484gLonJh7ba7AkBglwJN
IgwO6q0CAgyMU3OwxX24V6Mn5KHI23aBgHX4cV4diZLYwU41Fk7PhDfc5KC5ZlSt
5xJVNUBPgF0D6HV6rHC6iKimzp2Y8AzeRZsEXqtQP9lQLznrmgXOD372ek2X72QA
zAjK02HRpWgx819HSRJ/qm+HLEBIxmc9uNe6T/zHyYpY8cZrufjzGo8shrKR+fsE
9LIo4wmKFysprMVqLGfytepQxZl8ZQsUNqVjvPRPrw==
-----END CERTIFICATE-----
subject=/CN=*.cdck-prod-meta.discourse.cloud
issuer=/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
---
No client certificate CA names sent
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 5522 bytes and written 322 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 9B7F177ECDE588D6F1AF9A35E9A584D4400727DDC422A3595EBC77BB2F516DBF
    Session-ID-ctx:
    Master-Key: 8ECB0C702931651D2CEF726A64F287AC501D04184D8F1F86776815F7765179AD8A63E7569E4F9F622E1CEE11DBA1281B
    TLS session ticket lifetime hint: 43200 (seconds)
    TLS session ticket:
    0000 - 70 a0 4b 55 6f 2d 82 f7-b7 9a 53 5c 9e 31 25 9f   p.KUo-....S\.1%.
    0010 - 6d 7b 5a 74 3b 0c d4 1b-50 8c 35 84 61 ad 7a 71   m{Zt;...P.5.a.zq
    0020 - 37 f4 5e 05 c6 a7 da ad-e6 39 86 42 95 9a 81 25   7.^......9.B...%
    0030 - ee eb db dd e2 b4 ed c5-67 12 99 5a 7b 76 83 5c   ........g..Z{v.\
    0040 - 06 61 5f fe 17 89 06 ec-ff a7 88 f1 ed 41 26 a8   .a_..........A&.
    0050 - 3e 6b 14 83 5b f4 bf ef-5c b7 bd bc 16 86 af b1   >k..[...\.......
    0060 - 6b 77 16 57 3d b3 b0 ab-2b a6 87 86 2a f1 c0 3d   kw.W=...+...*..=
    0070 - ee 18 cb f0 19 39 ca 9f-44 dd 1d 01 ad bb be 4b   .....9..D......K
    0080 - d1 01 bc 3a c3 e0 ba 73-e3 61 56 7c 41 91 cc 7a   ...:...s.aV|A..z
    0090 - 0b b3 dd 85 9a b1 ea d7-e7 84 c1 b8 e6 d7 d9 ed   ................
    00a0 - 4e 53 d3 df bb 9f 57 df-13 3e 30 b1 00 98 69 0e   NS....W..>0...i.

    Start Time: 1584841353
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---
closed
4 Likes

Oh, I only skimmed through some of these posts.

1 Like