ASA und mehrere CAs
Die Cisco ASA kann mit mehreren CAs umgehen, aber wann kommen welche Zertifikate zur Anwendung? Wie funktioniert das mit mehren CA? Wie überlebt man den Rollover von CA-Schlüsseln?
Hier kommt fast ausschließlich L2TP over IPSec zum Einsatz, weil dieses von praktisch allen Betriebssystemen nativ unterstützt wird. Es ist also keine Clientsoftware notwendig. Für diesen Artikel wird auch nur der Fall behandelt, wenn überhaupt eine Zertifikatsauthenisierung stattfindet.
Was im Hintergrund passiert
Wählt sich ein VPN-Client ein, präsentiert er zuerst sein Zertifikat (aggressive Mode). Zu diesem Zeitpunkt hat die ASA noch keinerlei weitere Informationen und prüft das Client-Zertifikat gegen alle konfigurierten trust-points.
Wurde das Nutzerzertifikat für gültig befunden, schaut die ASA anhand der Angaben des Client-Zertifikats in den certificate map nach, welche Kennung in der tunnel-group-map nachgeschlagen werden soll. Dort findet sich dann die entsprechende tunnel-group. Diese Indirektion gestattet es verschiedene Zertifikatseigenschaften zu analysieren die dann doch nur auf wenigetunnel-groups zusammenfallen.
Fehlt ein passender Eintrag in der certificate-map, wird versucht, den OU-Eintrag im Subject des Client-Zertifikats alstunnel-group Bezeichner zu finden.
Schlägt auch dieses fehl, so wird die Gruppe DefaultRAGroup genutzt.
Nun steht fest, welche tunnel-group genutzt werden soll. Von dort holt sich die ASA den zu verwendenden trust-point. Dieser legt fest, welches Server-Zertifikat ausgewählt wird.
Steht in der tunnel-group auch das Kommando chain, so wird nicht nur das Server-Zertifikat, sondern die ganze Zertifikatskette dieses trust-points mitgeschickt.
CA-Rollover
Es ist möglich, als CA-Zertifikat eines Trust-Points auch ein Zwischenzertifikat (intermediate) einzuspielen. In Verbindung mit derchain Option liefert die ASA dann die Zertifikatskette aus, die der Client zur Validierung benötigt.
Die bisherige aktive CA besteht, weil nach wie vor von ihr ausgestellte CA-Zertifikate im Umlauf sind, die validiert werden müssen. Das Zertifikate der ASA unter dieser CA ist allerdings abgelaufen.
asa-hosting# sh crypto ca certificates iks2013 | in ^C|cn|Name|ate: Certificate Issuer Name: cn=CA der IKS Service GmbH (SIGN) 2013 Subject Name: cn=asa-hosting.net.iks-jena.de Validity Date: start date: 09:15:08 CET Jan 10 2013 end date: 09:15:08 CET Jan 10 2014 CA Certificate Issuer Name: cn=CA der IKS Service GmbH (SIGN) 2013 Subject Name: cn=CA der IKS Service GmbH (SIGN) 2013 Validity Date: start date: 16:48:03 CET Jan 9 2013 end date: 16:48:03 CET Feb 8 2015
Zuerst einmal wird die CA des neuen Jahres von der alten CA signiert. Diese Zwischenzertifikat ist der Ersatz für die bisherige alte "iks2013". Überall, wo ikev1 trust-point iks2013, steht nun ikev1 trust-point iks2013-14.
asa-hosting# sh crypto ca certificates iks2013-14 | in ^C|cn|Name|ate: Certificate Issuer Name: cn=CA der IKS Service GmbH (SIGN) 2014 Subject Name: cn=asa-hosting.net.iks-jena.de Validity Date: start date: 02:50:30 CET Jan 10 2014 end date: 02:50:30 CET Jan 10 2015 CA Certificate Issuer Name: cn=CA der IKS Service GmbH (SIGN) 2013 Subject Name: cn=CA der IKS Service GmbH (SIGN) 2014 Validity Date: start date: 22:09:53 CET Jan 8 2014 end date: 22:09:53 CET Jan 18 2016
Dazu kommt noch das CA des neuen Jahres, die überall dort als trust-point verwendet wird, wo keine alten Zertifikate mehr im Umlauf sind.
asa-hosting# sh crypto ca certificates iks2014 | in ^C|cn|Name|ate: Certificate Issuer Name: cn=CA der IKS Service GmbH (SIGN) 2014 Subject Name: cn=asa-hosting.net.iks-jena.de Validity Date: start date: 02:50:30 CET Jan 10 2014 end date: 02:50:30 CET Jan 10 2015 CA Certificate Issuer Name: cn=CA der IKS Service GmbH (SIGN) 2014 Subject Name: cn=CA der IKS Service GmbH (SIGN) 2014 Validity Date: start date: 22:08:13 CET Jan 8 2014 end date: 22:08:13 CET Feb 7 2016
Mittels der crypto ca certificate map Regeln werden die Tunnel-Gruppen so ausgewählt, daß dem Client das jeweils passende Server-Zertifikat vorgelegt wird.
Praktisch genügt es überall, iks2013-14 zu verwenden, weil jeder Client die alte oder neue CA kennt. Mit dem Zwischenzertifikat können beide Clientarten korrekt validieren. Man kann aber mit diesen drei Trust-Points die alten CA-Zertifikate stückweise und im laufenden Betrieb entfernen.