Diseccionando un certificado SSL

El siguiente post que publico no es de creación propia, sino de Julia Evans.

Me ha parecido realmente interesante el post que publicó y el cual no recuerdo como llegué de entre tantas webs que veo al día, realizando así un profundo análisis de que como se compone un certificado SSL. Esos que utilizamos en los servidores WEB de todo tipo para dar un mínimo de confiabilidad a las páginas WEB y que los datos circulen cifrados.

¡Hola!

En mi networkingzine (que todo el mundo podrá ver pronto), hay una página sobre TLS/SSL (básicamente este tweet).

Pero como sucede cuando escribes 200 palabras sobre una cosa en una página, hay muchas más cosas interesantes que decir. Así que en este post vamos a diseccionar un certificado SSL y tratar de entenderlo!

No soy una experta en seguridad y no voy a darte consejos sobre seguridad para tu sitio web (¿quieres saber qué cifrados TLS deberías usar? ¡¡¡No tengo ni idea!!!).

Pero pienso que es interesante saber lo que significa «emitir un certificado SSL» y puedo explicarlo un poco.

TLS: la nueva versión de SSL

Durante bastante tiempo estuve confundida acerca de lo que era este «TLS».

Básicamente, las versiones más recientes de SSL se llaman TLS (la versión posterior a SSL 3.0 es TLS 1.0). Voy a llamarlo «SSL» en todo momento porque es mucho menos confuso para mí.

¿Qué es un certificado?

Digamos que estoy revisando mi e-mail en https://mail.google.com

mail.google.com está ejecutando un servidor HTTPS en el puerto 443.

Quiero asegurarme que estoy hablando con mail.google.com y no con algún otro servidor al azar en Internet propiedad de Satán por ejemplo.

El tema de los «certificados» fue un misterio para mí durante mucho tiempo. Un día mi genial compañero de trabajo Ray me dijo que podía conectarme a un servidor en la línea de comandos y descargar su certificado.

(Si quieres ver un certificado SSL, puedes hacer clic en el candado verde de tu navegador y obtener de forma fiable toda la información que necesitas. Pero esto es más divertido).

Así que, empecemos por mirar el certificado de mail.google.com y deconstruyámoslo un poco.

Para las pruebas Julia utiliza OpenSSL desde la línea de comandos. Puedes descargarlo desde la web oficial para tu plataforma favorita:  OpenSSL.org

Primero, ejecutaremos: openssl s_client -connect mail.google.com:443

Esto mostrará un montón de cosas en pantalla, pero nos centraremos en el certificado.

Así, es esta cosa:

Server certificate
-----BEGIN CERTIFICATE-----
MIIE2zCCA8OgAwIBAgIRAOoRK/b3p92pAgAAAABrISIwDQYJKoZIhvcNAQELBQAw
QjELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFUdvb2dsZSBUcnVzdCBTZXJ2aWNlczET
MBEGA1UEAxMKR1RTIENBIDFPMTAeFw0yMDA1MjYxNTMwMDNaFw0yMDA4MTgxNTMw
MDNaMGkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQH
Ew1Nb3VudGFpbiBWaWV3MRMwEQYDVQQKEwpHb29nbGUgTExDMRgwFgYDVQQDEw9t
YWlsLmdvb2dsZS5jb20wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASRocIxKfBS
Uqlv5RQ7PUyfuRMoyZnmsAQu4qDa4ZLpiiPDd4QuO2zZ5CyEdnCkzBu5oMdGtbku
qQzm9QGlmXm0o4ICbjCCAmowDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoGCCsG
AQUFBwMBMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFH0URltU15KHxbXgHHbUOV6T
Z3SSMB8GA1UdIwQYMBaAFJjR+G4Q68+b7GCfGJAboOt9Cf0rMGgGCCsGAQUFBwEB
BFwwWjArBggrBgEFBQcwAYYfaHR0cDovL29jc3AucGtpLmdvb2cvZ3RzMW8xY29y
ZTArBggrBgEFBQcwAoYfaHR0cDovL3BraS5nb29nL2dzcjIvR1RTMU8xLmNydDAs
BgNVHREEJTAjgg9tYWlsLmdvb2dsZS5jb22CEGluYm94Lmdvb2dsZS5jb20wIQYD
VR0gBBowGDAIBgZngQwBAgIwDAYKKwYBBAHWeQIFAzAzBgNVHR8ELDAqMCigJqAk
hiJodHRwOi8vY3JsLnBraS5nb29nL0dUUzFPMWNvcmUuY3JsMIIBAwYKKwYBBAHW
eQIEAgSB9ASB8QDvAHYAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgA
AAFyUdHNMQAABAMARzBFAiB9UxMszicvgHfuk4C9RRpPo57V7ROlErsCc7+bPLpm
jAIhAJZwVfVtRw8Yi+MJ7m/DzBoNAqMthlc2x4Eol9RhcnVBAHUAsh4FzIuizYog
Todm+Su5iiUgZ2va+nDnsklTLe+LkF4AAAFyUdHNhwAABAMARjBEAiAAkrJ8FUdC
EavoK/h/c25Zq5uZ1IlqY7Mv4jwMCiLOQgIgJd4AHbBKzIKTURJqczATlCKb3b7a
bO3+Op3ZiSPeVGowDQYJKoZIhvcNAQELBQADggEBAD5So3j+um7mqhe5sDO7R2DJ
uq2KctY7Wu3IC6Qz0UWXWul4r/iUwTv0J1BlpgPIFNeBY8utbVa+i0vDvgcXt4Cz
ecJWQa61s8pMWuEogUWjWldEEX4FYPWb+3Qtc9olSTC/iEKQIMJqMnW3HptHtbCD
G5jrqcUIOCVPm8sT82Px+js2uklznGElO4qcr0VNT7AB872qZNnlTb/1k9E9xQVn
rRcvXh596QZJjif1TJRcr9Bh+jHLwYLEzI4cH122E7KGv7i0tRU3S3sVUPFUDjNB
tQFB9GiDKhdHyua1rX55aCmpwFXR2Uq0XmPigZhkGXKufeWVij2dr1Sc7utM3KI=
-----END CERTIFICATE-----

Por ahora, esto es una locura ininteligible. «MIIE2zCCA… ¡¿Qué?!»

Resulta que esta locura es un formato llamado «X509«, y el comando openssl sabe cómo descifrarlo.

Así que guardé este texto en un archivo llamado cert.pem. Puedes guardarlo en tu ordenador desde esta lista si quieres seguir adelante.

Nuestra próxima misión es analizar este certificado. Lo haremos así:

openssl.exe x509 -in C:\tmp\cert.pem -text

Certificate:
Data:
Version: 3 (0x2)
Serial Number:
19:d6:67:ea:c1:50:7e:a1:02:00:00:00:00:6a:0d:3a
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1
Validity
Not Before: May 20 12:08:34 2020 GMT
Not After : Aug 12 12:08:34 2020 GMT
Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = mail.google.com
Subject Public Key Info:
Public Key Algorithm: id-ecPublicKey
Public-Key: (256 bit)
pub:
04:da:89:72:c4:fa:33:49:5e:a1:9a:cb:39:b2:64:
ae:74:f2:7a:fa:43:45:f7:27:cc:01:3e:16:1e:a8:
eb:bb:14:44:55:da:c9:77:7f:7f:87:d5:7a:32:e1:
83:49:95:22:7c:52:c8:2e:eb:10:fd:11:2e:ef:a4:
6e:19:e6:8c:ae
ASN1 OID: prime256v1
NIST CURVE: P-256

X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier:
A8:88:EB:B1:7F:EF:C3:A9:9E:A3:2F:87:4B:22:53:42:0A:A2:FF:7E
X509v3 Authority Key Identifier:
keyid:98:D1:F8:6E:10:EB:CF:9B:EC:60:9F:18:90:1B:A0:EB:7D:09:FD:2B

Authority Information Access:
OCSP - URI:http://ocsp.pki.goog/gts1o1
CA Issuers - URI:http://pki.goog/gsr2/GTS1O1.crt

X509v3 Subject Alternative Name:
DNS:mail.google.com, DNS:inbox.google.com
X509v3 Certificate Policies:
Policy: 2.23.140.1.2.2
Policy: 1.3.6.1.4.1.11129.2.5.3

X509v3 CRL Distribution Points:

Full Name:
URI:http://crl.pki.goog/GTS1O1.crl

X509v3 Subject Alternative Name:
DNS:mail.google.com, DNS:inbox.google.com
X509v3 Certificate Policies:
Policy: 2.23.140.1.2.2
Policy: 1.3.6.1.4.1.11129.2.5.3

X509v3 CRL Distribution Points:

Full Name:
URI:http://crl.pki.goog/GTS1O1.crl

CT Precertificate SCTs:
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : B2:1E:05:CC:8B:A2:CD:8A:20:4E:87:66:F9:2B:B9:8A:
25:20:67:6B:DA:FA:70:E7:B2:49:53:2D:EF:8B:90:5E
Timestamp : May 20 13:08:34.560 2020 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:46:02:21:00:88:87:58:3E:E0:91:83:9A:AD:F5:26:
A2:8C:82:2C:EC:5B:AA:7A:5A:1E:9C:35:74:A4:F5:A6:
6B:B1:A5:AB:BB:02:21:00:F5:45:C1:92:F5:D3:EA:3D:
6D:76:E6:70:47:04:16:A0:BD:06:84:2C:85:F0:84:1F:
CE:20:8E:67:00:17:A4:18
Signed Certificate Timestamp:
Version : v1 (0x0)
Log ID : 5E:A7:73:F9:DF:56:C0:E7:B5:36:48:7D:D0:49:E0:32:
7A:91:9A:0C:84:A1:12:12:84:18:75:96:81:71:45:58
Timestamp : May 20 13:08:34.600 2020 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:20:53:85:0E:1D:92:3C:AB:9C:3C:EE:7D:0E:
DE:28:0A:AD:31:D1:1F:8B:CC:E1:92:64:0F:F6:C1:79:
1F:E8:EB:88:02:21:00:A9:02:2F:3B:7A:8D:81:FC:C5:
C4:1D:B0:97:51:49:32:26:20:63:CA:47:EB:21:61:97:
E8:52:68:CF:75:89:4E

Signature Algorithm: sha256WithRSAEncryption
44:1a:75:47:ae:0e:d0:b0:a1:a7:1a:bf:5f:69:d3:31:71:2f:
cf:80:6e:96:ba:25:03:d8:32:fe:90:99:bc:56:56:84:a2:f2:
3d:cd:ff:88:d7:ea:03:1b:7b:5d:f1:8c:5a:59:70:65:8a:d6:
47:83:1d:93:ef:f6:82:90:a6:50:45:c2:23:2c:89:58:c1:fc:
91:1a:24:34:2a:7b:8c:89:49:e7:fe:7b:a1:de:29:64:b0:8e:
9d:f6:44:5d:3c:ac:cf:eb:ff:8e:cc:84:12:f3:77:77:8e:13:
07:74:b3:2a:78:08:1e:99:1f:8e:2d:5a:2d:fc:63:e2:5a:a9:
e0:cd:e9:0a:ce:c7:ce:07:49:90:d7:02:9c:36:59:c6:fc:08:
3c:44:7d:dd:b0:5e:50:5e:54:ab:8f:6a:dd:ca:4c:16:23:bd:
f1:30:5e:05:86:b4:37:93:2b:64:98:fe:83:e6:40:ad:b6:a8:
71:5e:10:ba:10:10:a4:4a:dc:d4:68:32:1c:6a:ea:13:13:b3:
b1:75:ab:2d:78:17:7e:80:ef:02:37:5a:21:f4:99:82:04:e5:
08:95:3c:e1:69:18:32:c8:d5:58:9c:f5:1c:76:d9:50:74:63:
3f:d4:b3:1e:a0:2f:42:24:48:8c:80:dc:d3:ef:1b:c5:bb:d8:
5b:54:cb:94

-----BEGIN CERTIFICATE-----
MIIE1DCCA7ygAwIBAgIQGdZn6sFQfqECAAAAAGoNOjANBgkqhkiG9w0BAQsFADBC
MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMRMw
EQYDVQQDEwpHVFMgQ0EgMU8xMB4XDTIwMDUyMDEyMDgzNFoXDTIwMDgxMjEyMDgz
NFowaTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcT
DU1vdW50YWluIFZpZXcxEzARBgNVBAoTCkdvb2dsZSBMTEMxGDAWBgNVBAMTD21h
aWwuZ29vZ2xlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNqJcsT6M0le
oZrLObJkrnTyevpDRfcnzAE+Fh6o67sURFXayXd/f4fVejLhg0mVInxSyC7rEP0R
Lu+kbhnmjK6jggJoMIICZDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYB
BQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUqIjrsX/vw6meoy+HSyJTQgqi
/34wHwYDVR0jBBgwFoAUmNH4bhDrz5vsYJ8YkBug630J/SswZAYIKwYBBQUHAQEE
WDBWMCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5wa2kuZ29vZy9ndHMxbzEwKwYI
KwYBBQUHMAKGH2h0dHA6Ly9wa2kuZ29vZy9nc3IyL0dUUzFPMS5jcnQwLAYDVR0R
BCUwI4IPbWFpbC5nb29nbGUuY29tghBpbmJveC5nb29nbGUuY29tMCEGA1UdIAQa
MBgwCAYGZ4EMAQICMAwGCisGAQQB1nkCBQMwLwYDVR0fBCgwJjAkoCKgIIYeaHR0
cDovL2NybC5wa2kuZ29vZy9HVFMxTzEuY3JsMIIBBQYKKwYBBAHWeQIEAgSB9gSB
8wDxAHcAsh4FzIuizYogTodm+Su5iiUgZ2va+nDnsklTLe+LkF4AAAFyMjMugAAA
BAMASDBGAiEAiIdYPuCRg5qt9SaijIIs7FuqeloenDV0pPWma7Glq7sCIQD1RcGS
9dPqPW125nBHBBagvQaELIXwhB/OII5nABekGAB2AF6nc/nfVsDntTZIfdBJ4DJ6
kZoMhKESEoQYdZaBcUVYAAABcjIzLqgAAAQDAEcwRQIgU4UOHZI8q5w87n0O3igK
rTHRH4vM4ZJkD/bBeR/o64gCIQCpAi87eo2B/MXEHbCXUUkyJiBjykfrIWGX6FJo
z3WJTjANBgkqhkiG9w0BAQsFAAOCAQEARBp1R64O0LChpxq/X2nTMXEvz4Bulrol
A9gy/pCZvFZWhKLyPc3/iNfqAxt7XfGMWllwZYrWR4Mdk+/2gpCmUEXCIyyJWMH8
kRokNCp7jIlJ5/57od4pZLCOnfZEXTysz+v/jsyEEvN3d44TB3SzKngIHpkfji1a
Lfxj4lqp4M3pCs7HzgdJkNcCnDZZxvwIPER93bBeUF5Uq49q3cpMFiO98TBeBYa0
N5MrZJj+g+ZArbaocV4QuhAQpErc1GgyHGrqExOzsXWrLXgXfoDvAjdaIfSZggTl
CJU84WkYMsjVWJz1HHbZUHRjP9SzHqAvQiRIjIDc0+8bxbvYW1TLlA==
-----END CERTIFICATE-----

Esto son un montón de cosas. Aquí están las partes que entiendo

  • CN=mail.google.com es el «nombre común». En contra de la intuición, deberías ignorar este campo y mirar en su lugar el campo «subject alternative name«.
  • La fecha de caducidad: Not After : Aug 12 12:08:34 2020 GMT
  • En la sección X509v3 Subject Alternative Name: se encuentra la lista de dominios permitidos para este certificado. Se trata de mail.google.com e inbox.google.com, lo que tiene sentido, ya que ambos son dominios de correo electrónico.
  • La sección Public Key Info nos dice la clave pública que vamos a usar para comunicarnos con el dominio mail.google.com. No tenemos tiempo para explicar la criptografía de clave pública ahora mismo, pero esta es básicamente la clave de cifrado que vamos a usar para hablar en privado.
  • Por último, la firma es algo muy importante. Básicamente cualquiera podría hacer un certificado para mail.google.com. ¡Yo podría hacer uno ahora mismo! Pero si te diera ese certificado, no tendrías ninguna razón para creer que es un certificado real

Así que hablemos sobre la firma del certificado.

Firma del certificado

Cada certificado en Internet son básicamente dos partes unidas:

  • Un certificado (el nombre de dominio para el que es válido, la clave pública y otros datos).
  • Una firma de otra persona. Esto básicamente dice, «oye, esto está bien, VISA lo dice»

Tengo un montón de certificados en mi ordenador en /etc/ssl/certs. Esos son los certificados en los que mi ordenador confía para firmar otros certificados.

Por ejemplo, tengo /etc/ssl/certs/Staat_der_Nederlanden_EV_Root_CA.pem en mi portátil.

¡Un certificado de los Países Bajos! ¡Quién sabe!

Si firmaran un certificado de mail.google.com, mi ordenador diría «sí, se ve muy bien, suena genial».

Si alguna persona al azar al otro lado de la calle firmara un certificado, mi ordenador diría «No tengo ni idea de quién eres», y rechazaría el certificado.

El certificado de mail.google es:

  • s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
  • which is signed by a “Google Internet Authority G2” certificate
  • which is signed by a “GeoTrust Global CA” certificate
  • which is signed by an “Equifax Secure Certificate Authority” certifiate

Tengo un archivo /etc/ssl/certs/GeoTrust_Global_CA.pem en mi ordenador, por lo que creo que es por lo que confío en este certificado de mail.google.com. (Geotrust firmó el certificado de Google, y Google firmó mail.google.com)

¿Cómo se obtiene un certificado?

Cuando se emite un certificado, básicamente es así como funciona:

  • Generas la primera mitad del certificado («jvns.ca! expira en la fecha X! Esta es mi clave pública!»). Esta parte es pública.
  • Al mismo tiempo, genera una clave privada para su certificado. Lo mantienes en secreto y seguro y no se lo muestras a nadie. Usarás esta clave cada vez que establezcas una conexión SSL.
  • Pagas a una entidad de certificación (CA) en la que confían los otros ordenadores para que firme tu certificado por ti. Se supone que las autoridades de certificación tienen integridad, por lo que se supone que deben asegurarse de que cuando firmen los certificados, la persona a la que le entreguen el certificado sea realmente la propietaria de ese dominio.
  • ¡Configuras tu sitio web con tu certificado firmado y lo usas para probar que eres realmente tú! ¡Éxito!

Esto de «se supone que las entidades certificadoras deben tener algo de integridad» creo que es el motivo por el que la gente se enfada tanto cuando hay problemas como éste con Symantec, donde generaron certificados de prueba «para dominios no registrados y dominios para los que Symantec no tenía autorización del propietario del dominio».

Transparencia del certificado

Lo último de lo que vamos a hablar es de la transparencia de los certificados. Esto es algo súper interesante y tiene un buen sitio web y es casi seguro que voy a destrozarlo.

¡Lo voy a intentar de todas formas!

Así que dijimos que las autoridades de certificación «se supone que tienen integridad».

¡Pero hay TANTAS autoridades de certificación en las que mi ordenador confía! Y en cualquier momento uno de ellos podría firmar un certificado falso para mail.google.com. Eso no es nada bueno.

No se trata de una cuestión hipotética – la página web de transparencia de certificados habla de más de un caso en el que una CA se ha visto comprometida o ha cometido un error.

Así que, este es el trato. En cualquier momento, Google conoce todos los certificados válidos que se supone que existen para mail.google.com (probablemente sólo hay uno o algo así). Por lo tanto, la transparencia de los certificados es básicamente una forma de asegurarse de que si hay un certificado en circulación para mail.google.com que NO conocen, puedan averiguarlo.

Aquí están los pasos, tal como los entiendo:

  1. Cada vez que una CA firma un certificado, se supone que debe colocar en un «registro de certificados» público global.
  2. También el Googlebot coloca cada certificado que encuentra en Internet en el registro de certificados.
  3. Si un certificado no está en el registro, entonces mi navegador no lo aceptará (o dejará de aceptarlo en un futuro).
  4. Cualquiera puede mirar el registro en cualquier momento para saber si hay certificados falsos ahí.

Por lo tanto, si esa CA de los Países Bajos firma un certificado de mail.google.com maligno, tiene que ponerlo en el registro público (y Google se enterará de sus malas prácticas) o bien dejarlo fuera del registro público con lo que los navegadores lo rechazarán.

Configurar las cosas del SSL es difícil

¡De acuerdo! Hemos descargado un certificado SSL, lo hemos diseccionado y hemos aprendido algunas cosas sobre él.

¡Esperemos que algunos de vosotros hayáis aprendido algo!

Elegir los ajustes correctos para sus certificados SSL y la configuración de SSL en su servidor web es confuso.

Por lo que yo entiendo, hay alrededor de 3 mil millones de configuraciones.

Aquí hay un ejemplo de un resultado de SSL Labs para mail.google.com. Hay todo esto como OLD_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 en esa página (de verdad, eso es algo real.)

Cipher Suites
# TLS 1.3 (server has no preference)
TLS_AES_128_GCM_SHA256 (0x1301)   ECDH x25519 (eq. 3072 bits RSA)   FS128
TLS_AES_256_GCM_SHA384 (0x1302)   ECDH x25519 (eq. 3072 bits RSA)   FS256
TLS_CHACHA20_POLY1305_SHA256 (0x1303)   ECDH x25519 (eq. 3072 bits RSA)   FS256
# TLS 1.2 (suites in server-preferred order)
 
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)   ECDH x25519 (eq. 3072 bits RSA)   FS128
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)   ECDH x25519 (eq. 3072 bits RSA)   FS256P
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)   ECDH x25519 (eq. 3072 bits RSA)   FS256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)   ECDH x25519 (eq. 3072 bits RSA)   FS   WEAK128
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)   ECDH x25519 (eq. 3072 bits RSA)   FS   WEAK256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)   ECDH x25519 (eq. 3072 bits RSA)   FS128
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)   ECDH x25519 (eq. 3072 bits RSA)   FS256P
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)   ECDH x25519 (eq. 3072 bits RSA)   FS256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)   ECDH x25519 (eq. 3072 bits RSA)   FS   WEAK128
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)   ECDH x25519 (eq. 3072 bits RSA)   FS   WEAK256
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x9c)   WEAK128
TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d)   WEAK256
TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)   WEAK128
TLS_RSA_WITH_AES_256_CBC_SHA (0x35)   WEAK256
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0xa)   WEAK112
# TLS 1.1 (suites in server-preferred order)
# TLS 1.0 (suites in server-preferred order)
(P) This server prefers ChaCha20 suites with clients that don't have AES-NI (e.g., Android devices)

Estoy feliz de que haya herramientas como SSL Labs que ayudan a los mortales a darle sentido a todo esto.

Alguien me dijo que SSL Labs es una forma de elegir una configuración segura de SSL si no estás seguro de qué hacer. No sé si es bueno o no.

Let’s encrypt es increíble

También Let’s encrypt es realmente genial!

Te permiten tener un certificado para tu sitio y hacerlo seguro, y ni siquiera necesitas entender todo esto sobre cómo funcionan los certificados en el interior!

Y es GRATIS, eso si, si tienes la web hospedada en un proveedor este tiene que ser capaz de soportarlo y no ponga trabas para configurar (limitaciones a la hora de implementarlo). Aunque caducan cada 90 días y el método de renovación es recomendable automatizarlo para que no se nos olvide.

© Julia Evans.