Systemverwaltungshandbuch: IP Services

ProcedureSo konfigurieren Sie IKE mit selbst-signierten PublicKey-Zertifikaten

Selbst-designierte Zertifikate erfordern weniger Aufwand als öffentliche Zertifikate von einer CA, lassen sich jedoch nicht einfach skalieren.

  1. Nehmen Sie über die Systemkonsole die Rolle eines Primäradministrators an, oder melden Sie sich als Superuser an.

    Die Rolle des Primäradministrators enthält das Primary Administrator-Profil. Informationen zum Erstellen von Rollen und Zuweisen von Rollen zu Benutzern finden Sie in Kapitel 2, Working With the Solaris Management Console (Tasks) in System Administration Guide: Basic Administration.


    Hinweis –

    Eine remote Anmeldung führt zu sicherheitskritischem Datenverkehr, der abgehört werden könnte. Auch wenn Sie eine remote Anmeldung schützen, wird die Sicherheit des Systems auf die Sicherheit der remoten Anmeldesitzung reduziert. Verwenden Sie den Befehl ssh, um sich sicher remote anzumelden.


  2. Fügen Sie ein selbst-signiertes Zertifikat in die Datenbank ike.privatekeys ein.


    # ikecert certlocal -ks|-kc -m keysize -t keytype \
    -D dname -A altname \
    [-S validity-start-time] [-F validity-end-time] [-T token-ID]
    -ks

    Erstellt ein selbst-signiertes Zertifikat.

    -kc

    Erstellt eine Zertifikatanforderung. Informationen hierzu finden Sie unter So konfigurieren Sie IKE mit Zertifikaten, die von einer CA signiert wurden.

    -m Schlüsselgröße

    Die Größe des Schlüssels. Schlüsselgröße kann 512, 1024, 2048, 3072 oder 4096 annehmen.

    -t Schlüsseltyp

    Gibt den zu verwendenden Algorithmustyp an. Schlüsseltyp kann rsa-sha1, rsa-md5 oder dsa-sha1 annehmen.

    -D dname

    Der X.509-Distinguished Name (DN) für das Zertifikatssubjekt. dname hat in der Regel folgende Form: C=Land, O= Organisation, OU= Organisationseinheit, CN= allgemeiner Name. Gültige Tags sind C, O, OU und CN.

    -A altname

    Der Alternativname für das Zertifikat. altname hat im allgemeinen das Format Tag=Wert. Gültige Tags sind IP, DNS, email und DN.

    -S Gültigkeit-Anfang

    Ist das absolute oder relative Anfangsdatum der Zertifikatsgültigkeit.

    -F Gültigkeit-Ende

    Ist das absolute oder relative Enddatum der Zertifikatsgültigkeit.

    -T Token-ID

    Ermöglicht, dass ein PKCS&;#11-Hardwaretoken die Schlüssel erzeugt. Die Zertifikate werden dann auf der Hardware gespeichert.

    1. Der Befehl auf dem System partym sieht in etwa wie folgt aus:


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
      -A IP=192.168.13.213
      Creating software private keys.
        Writing private key to file /etc/inet/secret/ike.privatekeys/0.
      Enabling external key providers - done.
      Acquiring private keys for signing - done.
      Certificate: 
       Proceeding with the signing operation.
       Certificate generated successfully (…/publickeys/0)
      Finished successfully.
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. Der Befehl auf dem System enigma sieht in etwa wie folgt aus:


      # ikecert certlocal -ks -m 1024 -t rsa-md5 \
      -D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
      -A IP=192.168.116.16
      Creating software private keys.
        …
      Certificate added to database.
      -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  3. Speichern Sie das Zertifikat und senden Sie es an das remote System.

    Sie können das Zertifikat in eine E-Mail einfügen.

    1. So können Sie das folgende partym-Zertifikat an den Administrator von enigma senden:


      To: admin@ja.enigmaexample.com
      From: admin@us.partyexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICLTCCAZagAwIBAgIBATANBgkqhkiG9w0BAQQFADBNMQswCQYDVQQGEwJVUzEX
      …
      6sKTxpg4GP3GkQGcd0r1rhW/3yaWBkDwOdFCqEUyffzU
      -----END X509 CERTIFICATE-----
    2. Der Administrator von enigma sendet Ihnen das folgende enigma-Zertifikat:


      To: admin@us.partyexample.com
      From: admin@ja.enigmaexample.com
      Message: -----BEGIN X509 CERTIFICATE-----
      MIICKDCCAZGgAwIBAgIBATANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzEV
      …
      jpxfLM98xyFVyLCbkr3dZ3Tvxvi732BXePKF2A==
      -----END X509 CERTIFICATE-----
  4. </remark>Fügen Sie auf jedem System das empfangene Zertifikat ein.

    1. Kopieren Sie den PublicKey aus der E-Mail des Administrators.

    2. Geben Sie den Befehl ikecert certdb -a ein, und drücken Sie die Eingabetaste.

      Wenn Sie die Eingabetaste drücken, werden keine Eingabeaufforderungen angezeigt.


      # ikecert certdb -a Press the Return key
      
    3. Fügen Sie den PublicKey ein, und drücken Sie die Eingabetaste. Drücken Sie dann Strg-D, um den Eintrag zu beenden.


      -----BEGIN X509 CERTIFICATE-----
      MIIC…
      …
      ----END X509 CERTIFICATE----- Press the Return key
      <Control>-D
      
  5. Prüfen Sie gemeinsam mit dem anderen Administrator, dass das Zertifikat von diesem Administrator stammt.

    Beispielsweise können Sie mit dem anderen Administrator telefonieren und die Werte des PublicKey-Hash vergleichen. Das PublicKey-Hash für das gemeinsam genutzte Zertifikat muss auf beiden Systemen gleich sein.

    1. Listen Sie das gespeicherte Zertifikat auf Ihrem System auf.

      So befindet sich das öffentliche Zertifikat z. B. auf dem System partym in Slot 1 und das private Zertifikat in Slot 0.


      partym # ikecert certdb -l
      Certificate Slot Name: 0   Type: rsa-md5 Private Key
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: B2BD13FCE95FD27ECE6D2DCD0DE760E2
      
      Certificate Slot Name: 1   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 0) Points to certificate's private key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
      
    2. Vergleichen Sie diesen Wert mit dem PublicKey-Hash auf dem System enigma.

      Sie können den PublicKey-Hash über das Telefon vorlesen.


      enigma # ikecert certdb -l
      Certificate Slot Name: 4   Type: rsa-md5 Private Key
          Subject Name: <C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax>
          Key Size: 1024
          Public key hash: DF3F108F6AC669C88C6BD026B0FCE3A0
      
      Certificate Slot Name: 5   Type: rsa-md5 Public Certificate
          (Private key in certlocal slot 4)
          Subject Name: <C=US, O=PartyCompany, OU=US-Partym, CN=Partym>
          Key Size: 1024
          Public key hash: 2239A6A127F88EE0CB40F7C24A65B818
      
  6. Richten Sie auf den Systemen eine Vertrauensstellung für die beide Zertifikate ein.

    Ändern Sie die Datei /etc/inet/ike/config so, dass die Zertifikate erkannt werden.

    Der Administrator des remoten Systems stellt die Werte für die Parameter cert_trust, remote_addr und remote_id zur Verfügung.

    1. Auf dem System partym enthält die ike/config-Datei Folgendes:


      # Explicitly trust the following self-signed certs
      # Use the Subject Alternate Name to identify the cert
      
      # Verified remote address and remote ID
      # Verified public key hash per telephone call from administrator
      cert_trust "192.168.13.213" Local system's certificate Subject Alt Name
      cert_trust "192.168.116.16" Remote system's certificate Subject Alt Name
      
      ## Parameters that may also show up in rules.
      
      p1_xform 
        { auth_method preshared oakley_group 5 auth_alg sha encr_alg des }
      p2_pfs 5
      
      {
       label "US-partym to JA-enigmax"
       local_id_type dn
       local_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
       remote_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
      
       local_addr  192.168.13.213
       remote_addr 192.168.116.16
      
       p1_xform
        {auth_method rsa_sig oakley_group 2 auth_alg sha1 encr_alg aes}
      }
    2. Geben Sie auf dem System enigma die enigma-Werte für lokale Parameter in die Datei ike/config ein.

      Für die remoten Parameter verwenden Sie partym-Werte. Achten Sie darauf, dass der Wert für das Schlüsselwort label einmalig ist. Der Wert muss sich von dem label-Wert des remoten Systems unterscheiden.


      …
      {
       label "JA-enigmax to US-partym"
       local_id_type dn
       local_id "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax"
       remote_id "C=US, O=PartyCompany, OU=US-Partym, CN=Partym"
      
       local_addr  192.168.116.16
       remote_addr 192.168.13.213
      …

Beispiel 23–4 Prüfen Sie, ob das Zertifikat vom anderen Administrator gültig ist

In diesem Beispiel verwenden die Administratoren den „Subject Name“ um sicherzustellen, dass die Zertifikate identisch sind.

Der erste Administrator speichert die Ausgabe des Erzeugens und Auflistens des Zertifikats in einer Datei. Da die Ausgabe des ikecert-Befehls in den Standardfehler druckt, leitet der Administrator den Standardfehler an die Datei um.


sys1# cd /
sys1# ikecert certlocal -ks -m1024 -t rsa-md5 \
-D"C=US, O=TestCo, CN=Co2Sys" 2>/tmp/for_co2sys
Certificate added to database.
sys1# ikecert certdb -l "C=US, O=TestCo, CN=Co2Sys" 2>>/tmp/for_co2sys

Der Administrator überprüft den Inhalt der Datei.


sys1# cat /tmp/for_co2sys
Creating private key.
-----BEGIN X509 CERTIFICATE-----
MIIB7TCCAVagAwIBAgIEZkHfOTANBgkqhkiG9w0BAQQFADAxMQwwCgYDVQQGEwNV
U0ExEDAOBgNVBAoMB3Rlc3RfY28xDzANBgNVBAMTBkVuaWdtYTAeFw0wODAxMTUx
OTI1MjBaFw0xMjAxMTUxOTI1MjBaMDExDDAKBgNVBAYTA1VTQTEQMA4GA1UECgwH
dGVzdF9jbzEPMA0GA1UEAxMGRW5pZ21hMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQCPxGv0rUzHMnFtkx9uwYuPiWbftmWfa9iDt6ELOEuw3zlboy2qtuRUZohz
FIbCxAJevdCY6a+pktvYy3/2nJL0WATObO5T0FKn3F0bphajinLYbyCrYhEzD9E2
gkiT2D9/ttbSiMvi9usphprEDcLAFaWgCJiHnKPBEkjC0vhA3wIDAQABoxIwEDAO
BgNVHQ8BAf8EBAMCBaAwDQYJKoZIhvcNAQEEBQADgYEAL/q6xgweylGQylqLCwzN
5PIpjfzsNPf3saTyh3VplwEOW6WTHwRQT17IO/1Oc6Jnz9Mr0ZrbHWDXq+1sx180
F8+DMW1Qv1UR/lGMq3ufDG3qedmSN6txDF8qLlPCUML0YL8m4oGdewqGb+78aPyE
Y/cJRsK1hWbYyseqcIkjj5k=
-----END X509 CERTIFICATE-----
Certificate Slot Name: 2   Key Type: rsa
        (Private key in certlocal slot 2)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

Dann sendet der Administrator die Datei in einer E-Mail an den zweiten Administrator.

Der zweite Administrator fügt die Datei in ein sicheres Verzeichnis ein und importiert dann das Zertifikat aus der Datei.


sys2# cd /
sys2# ikecert certdb -a < /sec/co2sys

Der Befehl ikecert importiert nur den Text zwischen den Zeilen -----BEGIN und -----END. Der Administrator überprüft, ob das lokale Zertifikat den gleichen öffentlichen Key-Hash wie in der Datei co2sys aufweist.


sys2# ikecert certdb -l
Certificate Slot Name: 1   Key Type: rsa
        (Private key in certlocal slot 1)
        Subject Name: <C=US, O=TestCo, CN=Co2Sys>
        Key Size: 1024
        Public key hash: C46DE77EF09084CE2B7D9C70479D77FF

Um sicherzustellen, dass der erste Administrator diese E-Mail gesendet hat, telefoniert der zweite Administrator, um die Richtigkeit des „Subject Name“ des Zertifikats zu bestätigen.



Beispiel 23–5 Einrichten von Anfangs- und Enddatum für die Gültigkeit eines Zertifikats

In diesem Beispiel gibt der Administrator des Systems partym vor, wie lange ein Zertifikat gültig ist. Das Zertifikat ist um 2 1/2 Tage zurückdatiert und gilt für vier Jahre und sechs Monate ab dem Erstellungsdatum.


# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=US, O=PartyCompany, OU=US-Partym, CN=Partym" \
-A IP=192.168.13.213 \
-S -2d12h -F +4y6m

Der Administrator des Systems enigma gibt die Daten an, innerhalb denen das Zertifikat gültig ist. Das Zertifikat wurde um zwei Tage zurückdatiert und gilt bis Mitternacht am 31. Dezember 2010.


# ikecert certlocal -ks -m 1024 -t rsa-md5 \
-D "C=JA, O=EnigmaCo, OU=JA-Enigmax, CN=Enigmax" \
-A IP=192.168.116.16 \
-S -2d -F "12/31/2010 12:00 AM"