Zur Prüfung von TLSA RECORDS gibt es inzwischen viele lustige Tools und Webseiten im Internet. Wenn man es aber einmal selbst gemacht hat, dann wird einem klar was überhaupt passiert.

In meinem Beispiel geht es um die Prüfung des TLSA-RECORDS meines Mailservers. Dazu baue ich erst per openssl eine Verbindung zu Postfix auf und starte dann mittelst STARTTLS die gesicherte Verbindung. Dabei wird das Serverzertifikat übermittelt (Bild).

$ openssl s_client -starttls smtp -connect smtp.kernel-error.de:25

Hier kopiert man sich nun den Zertifikatsteil heraus und speichert diesen einfach in einer Textdatei zwischen (Bild). Als nächstes erstelle ich die SHA256 Checksumme über das öffentliche Zertifikat meines Postfix.

$ openssl x509 -in test.crt -outform DER | openssl sha256
(stdin)= 94c8e1bdfff4f6d3fec0c4e2f26293d78870650bfd3534e77b93cdaccb77eb95

 Als Vergleich muss nun der TLSA-RECORD herhalten. Diesen hole ich mir mit dig aus der DNS-Zone. Die 1 beutet dabei das die komplette Zertifikatskette gültig sein muss, damit dieses Zertifikat als gültig angesehen wird. Die 0 bedeutet das die Checksumme über das komplette Zertifikat erstellt wurde und die 1 bedeutet das es eine SHA256 Checksumme sein muss.

$ dig _25._tcp.smtp.kernel-error.de IN TLSA +short
1 0 1 94C8E1BDFFF4F6D3FEC0C4E2F26293D78870650BFD3534E77B93CDAC CB77EB95

Nun vergleiche ich die beiden Checksummen:

94c8e1bdfff4f6d3fec0c4e2f26293d78870650bfd3534e77b93cdaccb77eb95
94C8E1BDFFF4F6D3FEC0C4E2F26293D78870650BFD3534E77B93CDACCB77EB95

Sind sie identisch, ist alles perfekt. Möchte man nun einen TLSA RECORD eines anderen Anbieters prüfen greift man sich am besten zuerst dessen TLSA RECORD aus dem DNS. Dann sieht man welche Checksumme in welcher Art erstellt werden muss. Ebenfalls wird klar ob man die komplette Zertifikatskette prüfen muss oder nicht.

Viel Spaß!


Ich hatte es ja bereits erwähnt… Wer „einfach“ testen möchte ob sein Mailserver bzw. seine RECORDS für diesen korrekt sind, nutzt am besten posttls-finger:

# posttls-finger -t30 -T180 -c -L verbose,summary kernel-error.de
posttls-finger: initializing the client-side TLS engine                                                                                                                                                                          
posttls-finger: using DANE RR: _25._tcp.smtp.kernel-error.de IN TLSA 1 0 1 94:C8:E1:BD:FF:F4:F6:D3:FE:C0:C4:E2:F2:62:93:D7:88:70:65:0B:FD:35:34:E7:7B:93:CD:AC:CB:77:EB:95                                                       
posttls-finger: setting up TLS connection to smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25                                                                                                                                  
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: TLS cipher list "aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH:!aNULL"                                                                                        
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=1 verify=0 subject=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA                      
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=1 verify=0 subject=/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Class 2 Primary Intermediate Server CA                      
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=0 verify=1 subject=/description=y0xkuso3gx7t8h0o/C=DE/ST=Nordrhein-Westfalen/L=Sprockh\xF6vel/O=Sebastian Van De Meer/CN=smtp.kernel-error.de/emailAddress=postmaster@kernel-error.de                                                                                                                                                                                                   
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: depth=0 matched end entity certificate sha256 digest 94:C8:E1:BD:FF:F4:F6:D3:FE:C0:C4:E2:F2:62:93:D7:88:70:65:0B:FD:35:34:E7:7B:93:CD:AC:CB:77:EB:95         
posttls-finger: smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: subject_CN=smtp.kernel-error.de, issuer_CN=StartCom Class 2 Primary Intermediate Server CA, fingerprint=E1:92:93:D4:CA:E9:5D:44:B5:CC:A4:15:1F:12:A6:E0:B5:C2:97:56, pkey_fingerprint=E9:84:8E:51:47:99:90:53:0B:2C:2E:1E:70:6E:DE:CA:A4:65:8A:C5                                                                                                                                             
posttls-finger: Verified TLS connection established to smtp.kernel-error.de[2a02:c200:0:10:3:0:4297:1]:25: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)