Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Una aproximación práctica al Certificate Transparency

3,770 views

Published on

Se ofrece este documento como aproximación técnica para desmitificar esta tecnología de la que todavía no se conoce lo suficiente como para que sea usada de forma masiva y estandarizada.

Published in: Technology
  • Be the first to comment

Una aproximación práctica al Certificate Transparency

  1. 1.        
  2. 2.   
  3. 3.     # curl https://ct.googleapis.com/aviator/ct/v1/get-sth 2>>/dev/null | less { "tree_size": 46466472, "timestamp": 1480512258330, (GMT Wed, 30 Nov 2016 13:24:18.330) "sha256_root_hash": "LcGcZRsm+LGYmrlyC5LXhV1T6OD8iH5dNlb0sEJl9bA=", "tree_head_signature": "BAMASDBGAiEA/M0Nvt77aNe+9eYbKsv6rRpTzFTKa5CGqb56ea4hnt8CIQCJDE7pL6xgAewMd5i3..." } # curl https://ct.googleapis.com/pilot/ct/v1/get-sth 2>>/dev/null | less { "tree_size": 80936085, "timestamp": 1489752606399, (GMT: Fri, 17 Mar 2017 12:10:06.399) "sha256_root_hash": "0XJPjnl6yqLlK9oEqgCHrIkydL8HT1lJ5lAH1GtoBLM=", "tree_head_signature": "BAMARjBEAiAgHQKlphuqf05zkYFwzD7GnD3z4gUevG549ce7GusPlAIgf6gXP+cfVEaP66zYzSfRR..." } { "tree_size": 80995802, "timestamp": 1489757927662, (GMT: Fri, 17 Mar 2017 13:38:47.662) "sha256_root_hash": "NIexbbKuSzHDziqutjsOd9Mj7RaO0KnX4HwaDuEiQhs=", "tree_head_signature": "BAMARzBFAiEAqsyL1hNNVJqcbfYwJrl5+IAPdEm+92o4375PrxjkwBgCIDY9tNlLS05AWLW6+Mpv8..." }
  4. 4. -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEfahLEimAoz2t01p3uMziiLOl/fHT DM0YDOhBRuiBARsV4UvxG2LdNgoIGLrtCzWE0J5APC2em4JlvR8EEEFMoA== -----END PUBLIC KEY-----
  5. 5. openssl s_client -connect embed.ct.digicert.com:443 -tls1 -servername embed.ct.digicert.com | openssl x509 -text -noout
  6. 6. /* Descargar certificado del Bank Of America */ # openssl s_client -connect bankofamerica.com:443 >bank.cer /* Ver certificado descargado */ # openssl x509 -in bank.cer -noout -text /* Tomar el primer SCT Log ID */ # openssl x509 -in bank.cer -noout -text | awk '/Signed Certificate Timestamp:/,/Signature : ecdsa-with- SHA256/' /* Convertir la cadena Hex a Base64 y obtener el Log ID */ # echo "DD:EB:1D:2B:7A:0D:4F:A6:20:8B:81:AD:81:68:70:7E:2E:8E:9D:01:D5:5C:88:8D:3D:11:C4:CD:B6:EC:BE:CC" | tr -d : | xxd -r -p | base64 3esdK3oNT6Ygi4GtgWhwfi6OnQHVXIiNPRHEzbbsvsw=  ct.ws.symantec.com /* Comprobación del SHA-256 del Log ID */ # echo "pLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BA=" | base64 -d | xxd -p -u a4b90990b418581487bb13a2cc67700a3c359804f91bdfb8e377cd0ec80ddc10 # check-ct-logs -d www.elevenpaths.com
  7. 7. /* Enviar un nuevo log */ # POST https://<log server>/ct/v1/add-chain /* Consultar un log existente */ # GET https://certspotter.com/api/v0/certs?domain=elevenpaths.com 
  8. 8.  /* Descargar la Extensión TLS en formato Base64 (PEM) de Google */ # openssl s_client -serverinfo 18 -connect google.com:443 -servername google.com </dev/null 2>/dev/null | sed -n -e "/BEGIN SERVERINFO/,/END SERVERINFO/p" >google18.pem /* Obtener el formato binario (DER) */ # grep -v "---" google18.pem | base64 -d > google18.der /* Extraer y verificar el Log ID */ # cat google18.der | base64 | python -c "print raw_input()[12:55]" pLkJkLQYWBSHuxOizGdwCjw1mAT5G9+443fNDsgN3BA  ct.googleapis.com/pilot  /* Descargar el certificado de Comodo */ # openssl s_client -connect sslanalyzer.comodoca.com:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/----- END/p' | cat > comodo.pem /* Obtener la cadena de certificados (3). Se descarta el primero porque es el de Comodo (ya descargado antes) # openssl s_client -connect sslanalyzer.comodoca.com:443 2>&1 -showcerts < /dev/null | sed -n '/----- BEGIN/,/-----END/p' | perl -0777 -pe 's/.*?-{5}ENDsCERTIFICATE-{5}n//s' | cat > chain_comodo.pem /* Obtener la URL del registro OCSP para el certificado descargado */
  9. 9. # openssl x509 -noout -ocsp_uri -in comodo.pem http://ocsp.comodoca.com /* Ejecutar la validación OCSP /* # openssl ocsp -issuer chain_comodo.pem -cert comodo.pem -text -url http://ocsp.comodoca.com -header “HOST=ocsp.comodoca.com” -VAfile chain_comodo.pem Log ID: 56:14:06:9A:2F:D7:C2:EC:D3:F5:E1:BD:44:B2:3E:C7:46:76:B9:BC:99:11:5C:C0:EF:94:98:55:D6:89:D0:DD /* Extraer y verificar el Log ID */ # echo "56:14:06:9A:2F:D7:C2:EC:D3:F5:E1:BD:44:B2:3E:C7:46:76:B9:BC:99:11:5C:C0:EF:94:98:55:D6:89:D0:DD" | tr -d : | xxd -r -p | base64 VhQGmi/XwuzT9eG9RLI+x0Z2ubyZEVzA75SYVdaJ0N0=  ct1.digicert-ct.com/log

×