Was ist ein digitales Zertifikat?
Das Aussehen eines Zertifikates
Unterschied zwischen "Server-Zertifikat" und E-Mail Zertifikat"?
Muss das Zertifikat geheim gehalten werden?
Welche "Certifying Authority"
ist die Richtige für mich?
Was
ist ein digitales Zertifikat?
Ein digitales Zertifikat
ist eine Bescheinigung über die Identität, welche von einer unabhängigen und
vertrauenswürdigen dritten Partei, der "Certification Authority (CA)",
unterzeichnet wird. Also eine Art elektronische Urkunde oder die digitale Variante eines
Ausweises. Normalerweise folgt ein solches Zertifikat den Regeln des X.509 Standards, aber
dies ist nicht zwingend notwendig. Die "CA" verbürgt sich mit ihrer
Unterschrift für die Richtigkeit der im Zertifikat enthaltenen Daten.
Ein Zertifikat besteht
aus:
Subjekt Name und
Attributs-Informationen
Dies sind Information über die Partei, welche zertifiziert werden soll.
Bei Personen also Informationen wie der Name, die Nationalität, die E-Mail-Adresse, der
Arbeitsgeber dieser Person. Ausserdem kann das Subjekt auch ein Bild, die Fingerabdrücke
oder die Pass-Nummer, usw. beinhalten.
Public Key-Informationen
Dies ist der Public Key der zu zertifizierenden Partei.
Der Sinn des Zertifikates ist es, den Public Key an die unter 1 beschriebenen
Informationen über das zu zertifizierende Objekt (die Person / den Server) zu binden,
bzw. zuzuordnen. Der Public Key kann irgendein asymmetrischer Schlüssel sein, meistens
ist es aber ein RSA-Schlüssel.
"Certifying
Authority" Signatur
Durch das Unterschreiben der ersten beiden Elemente beglaubigt die
"Certifying Authority", also die anerkannte Beglaubigungsstelle, das Zertifikat.
Das
Aussehen eines Zertifikates?
Ein Zertifikat ist ein
allgemeiner Ausdruck für ein beglaubigtes Dokument, welches den Namen und die Public
Key-Informationen der zu zertifiziertenden Person enthält. Es existieren mittlerweile
mehrere Standards zum Beschreiben des Aussehens eines Zertifikates.
Der sich abzeichnende Zertifizierungs-Standard ist das X.509-Zertifizierungs-Format,
welches schon seit mehreren Jahren verwendet wird und welches Teil der OSI Standard-Gruppe
ist. Auch SSL verwendet x.509.
X.509 verwendet die Spezifikationssprache ASN.1 (Abstract Syntax Notation
1) zur Beschreibung der Synatx eines Zertifikates. Ein Bsp:
Certificate:
Data:
Version: 0 (0x0)
Serial Number: 988 (0x3dc)
Signature Algorithm: md5withRSAEncryption
Issuer: C=ZA, SP=Western Cape, L=Cape Town, O=Thawte Consulting
cc, OU=Certification Services Division, CN=Thawte Server
CA/Email=server-certs@thawte.com
Validity
Not Before: May 26 16:57:21 1997 GMT
Not After : May 26 16:57:21 1998 GMT
Subject: C=DE, SP=Bavaria, L=Regensburg, O=WWW-Service AG,
OU=Secure Service, CN=www.www-service.de
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Modulus:
|
00:de:16:f9:6a:73:59:9f:b6:f5:48:56:e6:30:f7:
d2:e0:3f:97:d8:6b:68:27:8a:cf:29:d4:9e:fb:d1:
38:38:42:d7:da:c6:94:9d:49:98:33:cf:bb:e8:b2:
6a:36:34:98:23:f1:4b:17:c7:3e:a0:5d:0f:04:09:
69:aa:a3:53:5b |
Exponent: 65537 (0x10001)
Signature Algorithm: md5withRSAEncryption
|
30:42:20:b2:7e:3d:a4:63:44:1c:b7:08:ad:b6:a6:c5:a8:c3:
40:12:45:3c:34:9d:8b:a6:de:47:1b:3b:a9:c4:ac:63:8a:e0:
cb:dd:ac:22:35:12:16:d5:1b:c7:8a:9d:1b:5a:6b:84:1e:f3:
d5:88:4c:33:d7:49:3c:8b:97:6f:74:16:70:42:92:7e:14:a1:
af:5b:08:5e:b0:c3:58:88:4a:16:d9:56:c9:74:91:fa:fe:31:
89:51:ad:7f:37:c2:68:6f:5e:c3:95:d0:bd:13:0d:5e:35:e3:
5e:b8:39:87:64:f1:87:54:95:2c:1c:4f:6e:22:70:64:e0:f9:
b5:c1 |
Darin enthalten sind z.B.
die Seriennummer (988), der Name der Ausgabestelle (Issuer: CN=Thawte Server
CA/Email=server-certs@thawte.com), der Name der Person/des Servers(Subject:
CN=www.www-service.de), die Gültigkeitsdauer (Validity), das verwendete
Publik-Key-Verfahren (Public Key Algorithm: rsaEncryption) und der Öffentliche Schlüssel
der Person/des Servers.
Danach folgt die digitale
Unterschrift, die Signatur der Person/des Servers (Modulus und Exponent). Das Verfahren
mit welchem diese Signatur hergestellt wurde, heisst: md5withRSAEncryption. Die
Hash-Funktion MD5 verarbeitet die Zertifizirungs-Informationen zu einer Art Prüfsumme und
schliesslich wird diese Summe mit dem RSA-Algorithmus verschlüsselt.
BEMERKUNG:
In vielen E-Mail-Systemen ist nur der Versand von ASCII-Texten möglich. Wenn ein
Zertifikat versendet werden soll, so muss es zuerst im ASCII-Format dargestellt werden.
Zur Umwandlung einer binären Datei in einen ASCII-Text wird häufig Base64 berwendet. Das
Ergebnis sieht dann beispielsweise so aus:
-----BEGIN
CERTIFICATE-----
MIICdzCCAeACAgPcMA0GCSqGSIb3DQEBBAUAMIHEMQswCQYDVQQGEwJaQTEVMBMG
A1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xHTAbBgNVBAoT
FFRoYXd0ZSBDb25zdWx0aW5nIGNjMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNl
cnZpY2VzIERpdmlzaW9uMRkwFwYDVQQDExBUaGF3dGUgU2VydmVyIENBMSYwJAYJ
KoZIhvcNAQkBFhdzZXJ2ZXItY2VydHNAdGhhd3RlLmNvbTAeFw05NzA1MjYxNjU3
MjFaFw05ODA1MjYxNjU3MjFaMIGFMQswCQYDVQQGEwJERTEQMA4GA1UECBMHQmF2
YXJpYTETMBEGA1UEBxMKUmVnZW5zYnVyZzEZMBcGA1UEChMQV1dXLVNlcnZpY2Ug
R21iSDEXMBUGA1UECxMOU2VjdXJlIFNlcnZpY2UxGzAZBgNVBAMTEnd3dy53d3ct
c2VydmljZS5kZTBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQDeFvlqc1mftvVIVuYw
99LgP5fYa2gnis8p1J770Tg4QtfaxpSdSZgzz7vosmo2NJgj8UsXxz6gXQ8ECWmq
o1NbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEAMEIgsn49pGNEHLcIrbamxajDQBJF
PDSdi6beRxs7qcSsY4rgy92sIjUSFtUbx4qdG1prhB7z1YhMM9dJPIuXb3QWcEKS
fhShr1sIXrDDWIhKFtlWyXSR+v4xiVGtfzfCaG9ew5XQvRMNXjXjXrg5h2Txh1SV
LBxPbiJwZOD5tcE=
-----END CERTIFICATE-----
Wo
liegt der Unterschied zwischen einem "Server-
Zertifikat" und einem "persönlichen Zertifikat" (Personal
Certificate)?
Ein Personal
Certificate und eine Server-Zertifikat richten sich exakt nach den gleichen
Vorlagen. Allerdings werden meist geringfügig unterschiedliche Informationen
in die Eingabe-Felder der Zertifizierung eingetragen und verschlüsselt,
z.B. würde in das Eingabe-Feld "Common Name" einer Server-Zertifizierung
normalerweise der Host Name eingetragen werden, während bei einem persönlichen
Zertifikat der volle Name der Person angegeben wird.
Muss
das Zertifikat geheim gehalten werden?
Nein! Ihr Zertifikat
sollte so weit wie möglich verbreitet werden, da der darin enthaltene Public Key ja
benötigt wird, um eine von Ihnen unterschriebene und verschlüsselte Mitteilung zu lesen.
Ihr Privater
Schlüssel oder auch Secret Key muss unter allen Umständen
geheim gehalten werden, damit niemand in Ihrem Namen Nachrichten unterschreiben kann!
Ihr Zertifikat an sich
beinhaltet keine vertraulichen Informationen. Es ist sogar so, dass Ihre SSL-Software
immer, wenn Sie eine sichere Verbindung zu einem Server aufbauen möchten, und dieser Sie
nach Ihrer Berechtigung hin überprüft, Ihr Zertifikat als Teil dieser
Überprüfungs-Prozedur zum Server sendet.
Welche
"Certifying Authority" ist die Richtige
für mich?
Das kommt ganz darauf an,
wofür Sie ein Zertifikat benötigen.
Wenn es z.B. für einen
Intranet Server sein soll bei dem jeder, der sich mit diesem verbindet, die
Server-Software benutzt die Sie anbieten, so sollten Sie am besten Ihre eigene
"Certifying Autority" gründen. Dann können Sie das Zertifikat ausgeben und die
Standard-Software entsprechend Ihrer "CA" konfigurieren.
Wenn Sie mit Kunden aus
der ganzen Welt Geschäfte abwickeln wollen, dann sollten Sie eine "CA"
auswählen, die von den meistverwendetsten Browsern unterstützt wird.
Wenn Sie einen Intranet
Server betreiben und wollen, dass sich Ihre Angestellten dort mit eigenen
Personal-Zertifikaten anmelden und identifizieren, so ist es wohl am geschicktesten, sich
sowas wie den Netscape Zertifizierungs-Server zuzulegen und dann die Zertifizierungen
selbst auszugeben.
Wenn Sie
dagegen einen digitalen Service anbieten und wollen, dass nur Kunden mit persönlichen
E-Mail Zertifikaten Zutritt zu Ihren Diensten erhalten, so sollten
Sie nur eine der hochqualifizierten "CA's" verwenden. ATvirtual.NET hat sich für
Thawte entschieden.
|