riseupnet / riseup_help

riseup.net help documentation
205 stars 249 forks source link

Describe better ways for certificate validation, mention Let's Encrypt and Certificate Transparency at the Riseup CA page #520

Open kradan opened 6 years ago

kradan commented 6 years ago

time is an ass, it obsoleted https://riseup.net/certificates/riseup-signed-certificate-fingerprints.txt in may 2018. Next time Riseup's Let's Encrypt certificate will be renewed in August 2018. Please update your signed message at your own comfort.

Stated fingerprint: ab1757631d84ba6f77cc0784fcbdccedd6268c217dbe625d53aa976d1de74123 Actual fingerprint: 82:48:A4:CD:FB:9B:9B:50:0F:CC:ED:7E:0F:A7:39:8E:10:F6:C8:9F:F4:5C:13:A2:E3:5F:3A:EF:B3:CA:4F:48

I would do it myself, but unfortunately I have no access to the treasurers private key. Thanks and have a good day!

micah commented 6 years ago

kardan notifications@github.com writes:

time is an ass, it obsoleted https://riseup.net/certificates/riseup-signed-certificate-fingerprints.txt in may 2018. Next time Riseup's Let's Encrypt certificate will be renewed in August 2018. Please update your signed message at your own comfort.

Stated fingerprint: ab1757631d84ba6f77cc0784fcbdccedd6268c217dbe625d53aa976d1de74123 Actual fingerprint: 82:48:A4:CD:FB:9B:9B:50:0F:CC:ED:7E:0F:A7:39:8E:10:F6:C8:9F:F4:5C:13:A2:E3:5F:3A:EF:B3:CA:4F:48

on which site do you see this fingerprint?

note the NOTE in the text:

!!! NOTE: Certificates for help.riseup.net, riseup.net and www.riseup.net are auto-renewed Let's Encrypt certificates. They are renewed approximately 3 months and we do not list their fingerprints here !!!

kradan commented 6 years ago

Update: it is the same shown in the browser for riseup.net https://share.riseup.net/#QpAHIoby7ek-9aTxHTLSbQ

I am not sure if this is the correct way to do it, but these are the commands I used:

$ openssl x509 -fingerprint -sha256 -noout -in Riseup.crt
SHA256 Fingerprint=82:48:A4:CD:FB:9B:9B:50:0F:CC:ED:7E:0F:A7:39:8E:10:F6:C8:9F:F4:5C:13:A2:E3:5F:3A:EF:B3:CA:4F:48
$ cat Riseup.crt
CONNECTED(00000003)
---
Certificate chain
 0 s:/CN=riseup.net
   i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
-----BEGIN CERTIFICATE-----
MIIG/zCCBeegAwIBAgISBG7NlzgSGdBQ8fxctVRKR2dNMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODA1MTAwNDI3MjZaFw0x
ODA4MDgwNDI3MjZaMBUxEzARBgNVBAMTCnJpc2V1cC5uZXQwggIiMA0GCSqGSIb3
DQEBAQUAA4ICDwAwggIKAoICAQDcdLR/3uZET887fFSJezNN1SEL5iL38tQ+pRyQ
Lmsg3GldLN9p94Q8HVlEzXH8z87lNsF5f70kf+CtBY2Xi97W6aeawMLi3A8RAdsE
iE8nzlu2e5bKx35i6Um+x+K/ALxs+dAG8SMImqJyeziq8uZRLXcmAl3ogyu9EgNV
xV0FmSPCbR8B+9/J99U1NZJ1BeVPpJkno4CggLDrlcDVUro3ZNczKw8y4xQOrXEE
oFDvu0YI4v/3d3Vr3PrypFxbhlmYK3Sw9ZmC1q8iuqrvr4QsRfg3mkIEkndXPC2N
emS04iDYjswFU8VRYKZ5fLveCk1noY4ngoSSfdymSWlOQ+OWYxCBBY/n2skq96Y9
pzvo1DTEFtkcUOmBob9vxejIVsvwrJpEHSgVt6Dzndwrk5oaf7byQX9dEyTO8lD0
VBX1lMv4aZd66u/8M11XGlt8N6bMGwcAhDTQOMtJeasMaujJ7+Ci+xQ5Kl9eOFwr
AF5FAU7E9EqNIpzzP73srV/ZCAFteDgG3kuZ5TmZyA+O0ble2QgZP4vmuXJJ1j+k
clK+RGpCeaHOiV+sLEQrZNkcY7rHLruyMIiJNaDXMtRQVp6xt102LMKq/d50eThK
UTCltflyKOpp0QUrvM0uDdJIwisLP9nmjE5MXYXiPMORmspp0CqK5Bh5SlKI/V+d
osWXXQIDAQABo4IDEjCCAw4wDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsG
AQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTG28DIhnnf
nDPoVilLX9yNpzcs/TAfBgNVHSMEGDAWgBSoSmpjBH3duubRObemRWXv86jsoTBv
BggrBgEFBQcBAQRjMGEwLgYIKwYBBQUHMAGGImh0dHA6Ly9vY3NwLmludC14My5s
ZXRzZW5jcnlwdC5vcmcwLwYIKwYBBQUHMAKGI2h0dHA6Ly9jZXJ0LmludC14My5s
ZXRzZW5jcnlwdC5vcmcvMBUGA1UdEQQOMAyCCnJpc2V1cC5uZXQwgf4GA1UdIASB
9jCB8zAIBgZngQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIBFhpo
dHRwOi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtUaGlz
IENlcnRpZmljYXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlpbmcg
UGFydGllcyBhbmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRpZmlj
YXRlIFBvbGljeSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9yZXBv
c2l0b3J5LzCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2ANt0r+7LKeyx/so+cW0s
5bmquzb3hHGDx12dTze2H79kAAABY0iEtTEAAAQDAEcwRQIhAOX3HIxE7cPrk/QC
bdNiEbi9HIsi0ACJlPp/giAYZhkIAiBiGgMaqpNgh1d9KPfD1t0DBM+BFPoDsSrM
Tc3AKTr6IQB2ACk8UZZUyDlluqpQ/FgH1Ldvv1h6KXLcpMMM9OVFR/R4AAABY0iE
tRMAAAQDAEcwRQIhANDGWPeZfqkwSM2h1WyMCsPXAPRjgScJl5bjkxi+E93bAiBa
VnKf7J2vWGG6cL4ooUzsvbrAarUG5uDXmosvXoTzcDANBgkqhkiG9w0BAQsFAAOC
AQEAjfw9n/E6MDNEGjDgLcnkBMCp/oFZR+eqFHQA9YPfiaf019trUQO9o1jRnKcn
wnTl2akgc+96bAOyWKl0GlBDkY6W6ck0A6JrRHkkw2EwEJmVRUCT3Av635d7E+8H
YFbzwH+vkmoIx68vf8ROnfDy1m4sljzIUhf4a0QZOMJyaqCwfcXy5XmKjnUvXPAg
WfWqeF305Vb3lZkyo/CsCGWiZtNxaKe9OL4LE9evQ1LjBaqr9SLg5F0F2y1HknxY
QztoEUPyNtY/6GRgvq4wdnTcvzKXoHwyTcUnFZTWxpBeXerBSTX8nk2JSm9RQwmt
vbqyyWjWc9VC+CL09WcCznIcCw==
-----END CERTIFICATE-----
 1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
   i:/O=Digital Signature Trust Co./CN=DST Root CA X3
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----
---
Server certificate
subject=/CN=riseup.net
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3934 bytes and written 321 bytes
Verification: OK
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 4096 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: BE2EA557D043E88180C1BBCC01AC9D7127774074D9FF4C6F2EBDECC01C8F2812
    Session-ID-ctx: 
    Master-Key: 5745825D478644A9C5C2882CAA5CB0A7F13182434D31ECF4B4E53CBFC3BBE245819F4DD84EC1F12BF13FEAE5A6C8CAB1
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 89 2c f6 aa cd f4 01 52-04 23 e1 7f c9 2f 8a a9   .,.....R.#.../..
    0010 - 46 cd d2 87 27 82 72 6a-ed b6 5b 8d b9 c2 43 80   F...'.rj..[...C.
    0020 - a8 eb c3 38 35 0d 15 ce-77 4c b7 da 42 51 6e cc   ...85...wL..BQn.
    0030 - b5 6a 5f a9 1a c5 e0 5a-e7 f0 1f 68 3f 28 ea 01   .j_....Z...h?(..
    0040 - c6 28 5a 30 78 67 87 0d-17 5c 06 cd 2b c7 bd 64   .(Z0xg...\..+..d
    0050 - 56 16 7c ed 30 dc 1c e9-30 fa b3 46 cf 66 11 f7   V.|.0...0..F.f..
    0060 - 96 bf 62 f8 d3 56 0f 73-3b d7 76 41 1f c0 11 0a   ..b..V.s;.vA....
    0070 - 0a 6c a0 50 e9 69 7f 4f-f4 a4 cf 16 41 66 9a 25   .l.P.i.O....Af.%
    0080 - 8f 6a 32 5e 6c b3 57 45-89 a5 fe bc 82 f5 98 ce   .j2^l.WE........
    0090 - 3f 74 fe 2d 1a 23 71 c5-25 34 f3 31 26 9e d0 17   ?t.-.#q.%4.1&...
    00a0 - ce ff cf 1b 6a 34 26 dc-c3 1a 8f 3e 29 c6 d0 70   ....j4&....>)..p
    00b0 - 0a c7 4f e4 a2 e0 4e f1-99 16 d3 04 25 da 70 1c   ..O...N.....%.p.
    00c0 - fa b4 7f a5 58 60 aa 98-5e fe ed 48 31 0e 8f ae   ....X`..^..H1...

    Start Time: 1530905999
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
---
micah commented 6 years ago

kardan notifications@github.com writes:

I am not sure if this is the correct way to do it, but these are the commands I used:

$ openssl x509 -fingerprint -sha256 -noout -in Riseup.crt

the question I'm asking is - where do you get Riseup.crt from?

kradan commented 6 years ago

via

$ openssl s_client -servername riseup.net -connect riseup.net:443 </dev/null > Riseup.crt
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = riseup.net
verify return:1
SHA256 
$ openssl x509 -fingerprint -sha256 -noout -in Riseup.crt
Fingerprint=82:48:A4:CD:FB:9B:9B:50:0F:CC:ED:7E:0F:A7:39:8E:10:F6:C8:9F:F4:5C:13:A2:E3:5F:3A:EF:B3:CA:4F:48
DONE

or

$ openssl s_client -servername riseup.net -connect riseup.net:443 </dev/null |openssl x509 -fingerprint -sha256 -noout -in -
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = riseup.net
verify return:1
SHA256 Fingerprint=82:48:A4:CD:FB:9B:9B:50:0F:CC:ED:7E:0F:A7:39:8E:10:F6:C8:9F:F4:5C:13:A2:E3:5F:3A:EF:B3:CA:4F:48
DONE
micah commented 6 years ago

kardan notifications@github.com writes:

via

I mean where did you get the file Riseup.crt.

kradan commented 6 years ago

it's created by openssl directly from riseup.net: openssl s_client -servername riseup.net -connect riseup.net:443 </dev/null > Riseup.crt

micah commented 6 years ago

kardan notifications@github.com writes:

it's created by openssl directly from riseup.net: openssl s_client -servername riseup.net -connect riseup.net:443 </dev/null > Riseup.crt

oooh, ok, I misunderstood. We do have a cert called "Riseup.crt" which is for the red vpn, so I thought maybe you were referring to that.

but... this is where that note on the cert verification page is important:

NOTE: Certificates for help.riseup.net, riseup.net and www.riseup.net are auto-renewed Let's Encrypt certificates. They are renewed approximately 3 months and we do not list their fingerprints here

this cert you are getting with openssl is the riseup.net one, which is a lets encrypt certificate, which we are not listing fingerprints for. The listed fingerprints are for the other domains.

kradan commented 6 years ago

thanks, that clears my head .. a bit. I still have trouble to understand the whole, also in respect to the help pages https://riseup.net/certificates and https://riseup.net/en/security/network-security/riseup-ca because the statement is a bit confusing - for me.

. *.riseup.net, riseup.net SHA-256 fingerprint: ab1757631d84ba6f77cc0784fcbdccedd6268c217dbe625d53aa976d1de74123

!!! NOTE: Certificates for help.riseup.net, riseup.net and www.riseup.net are auto-renewed Let's Encrypt certificates. They are renewed approximately 3 months and we do not list their fingerprints here !!!

According to below tests the sha256 sums for

I am happy with *.riseup.net referring to only some of them, however the actual fingerprint for riseup.net clearly contradicts the statement.

$ cat riseup-sha256
function sha256_fingerprint {
  domain=$@
  echo -n "$domain: "
  openssl s_client -servername $domain --connect $domain:443 < /dev/null 2>/dev/null | \                        
   openssl x509 -fingerprint -sha256 -noout -in -|cut -f2 -d'='                                                 
}
sha256_fingerprint riseup.net
for subdomain in $@
do sha256_fingerprint $subdomain.riseup.net; done
$ riseup-sha256 account support mail smtp www help pad share
riseup.net: 82:48:A4:CD:FB:9B:9B:50:0F:CC:ED:7E:0F:A7:39:8E:10:F6:C8:9F:F4:5C:13:A2:E3:5F:3A:EF:B3:CA:4F:48
account.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
support.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
mail.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
smtp.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
www.riseup.net: A2:C9:94:73:89:01:52:F2:7B:A3:B5:3B:5A:64:32:44:30:04:11:96:8E:B0:E1:D3:74:B9:EF:3E:47:A5:9F:57
help.riseup.net: 07:41:D6:DE:3B:3A:74:24:88:F1:93:45:EE:DE:BF:4A:08:E0:5E:93:0C:22:70:80:E9:F0:12:32:02:78:25:FD
pad.riseup.net: 67:69:68:72:ED:42:53:F4:C5:BD:E3:9E:0E:44:BF:BD:28:EA:1D:8E:B9:D4:45:54:95:BD:E3:1C:87:A9:AC:F4
share.riseup.net: 2F:B7:FC:0F:E3:92:59:47:A6:8C:E4:1A:35:CD:00:63:FD:6A:03:C0:22:27:BD:60:36:E7:4A:F2:A7:FF:43:C0

I have to admit I am not aware what the -servername $domain option does, but when I leave it out I see a different result:

riseup.net: 07:41:D6:DE:3B:3A:74:24:88:F1:93:45:EE:DE:BF:4A:08:E0:5E:93:0C:22:70:80:E9:F0:12:32:02:78:25:FD
account.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
support.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
mail.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
smtp.riseup.net: AB:17:57:63:1D:84:BA:6F:77:CC:07:84:FC:BD:CC:ED:D6:26:8C:21:7D:BE:62:5D:53:AA:97:6D:1D:E7:41:23
www.riseup.net: 07:41:D6:DE:3B:3A:74:24:88:F1:93:45:EE:DE:BF:4A:08:E0:5E:93:0C:22:70:80:E9:F0:12:32:02:78:25:FD
help.riseup.net: 07:41:D6:DE:3B:3A:74:24:88:F1:93:45:EE:DE:BF:4A:08:E0:5E:93:0C:22:70:80:E9:F0:12:32:02:78:25:FD
pad.riseup.net: 67:69:68:72:ED:42:53:F4:C5:BD:E3:9E:0E:44:BF:BD:28:EA:1D:8E:B9:D4:45:54:95:BD:E3:1C:87:A9:AC:F4
share.riseup.net: 2F:B7:FC:0F:E3:92:59:47:A6:8C:E4:1A:35:CD:00:63:FD:6A:03:C0:22:27:BD:60:36:E7:4A:F2:A7:FF:43:C0

Now riseup.net, www.riseup.net, help.riseup.net appear as identical.

Excuse me, but I claim no user will take anything from it, especially no confidence for security. Can we replace the instructions to verify the certificate fingerprint with something like:

Since 2013 Riseup uses Let's Encrypt and we trust the idea of Certificate Transparency. You can make sure, that the certificate shown in your browser is identical to the one at https://crt.sh/?q=riseup.net

But there seems to be no way to automatically compare it. Please correct me.