Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Zertifikate mit Openssl

Anleitung Sicherheit Verschlüsselung & Zertifikate

Mitglied: ITwissen

ITwissen (Level 2) - Jetzt verbinden

24.03.2006, aktualisiert 06.11.2009, 69607 Aufrufe, 13 Kommentare

Verschlüsselte Übertragung im Web, E-Mails verschlüsseln und unterschreiben



Einleitung


Nicht jeder hier hat einen Webserver und noch weniger haben einen Webserver mit ssl Verschlüsselung, aber jeder hier hat E-Mail und sollte sich Gedanken über digitale Unterschrift oder sogar Verschlüsselung machen.

Aus diesem Grund will ich hier auf die Verwendung von Zertifikaten in Verbindung mit E-Mail eingehen und den Webserverteil vernachlässigen.

Problem


Schauen wir mal kurz in die nicht digitale Welt. Fast täglich setzen wir die Unterschrift unter Briefe auf
Papier. Hier soll der Schwung der Schrift die Zuordnung zum Unterzeichner beweisen. In ganz wichtigen Fällen muss
man aber auch in beisein einer Autorität (z.B. Notar) unterschreiben, welche dann selbst unterschreibt, dass die
Unterschrift echt ist.

Genau dieses soll nun in der digitalen Welt nachgebildet werden. Ich denke dies wurde ziemlich perfekt geschafft.

Theorie


Was brauchen wir alles? Erstens ein asymetrisches Verschlüsselungsverahren, welches keinen gemeinsamen geheimen
Schlüssel benutzt, sondern eine Schlüsselpaar bestehend aus privatem und öffentlichen Schlüssel. Zweitens eine
Hashfunktion, welche eine Art Quersumme aus einem Dokument extrahieren kann, welche eindeutig ist.

Damit können wir nun folgendes machen:
1. Verschlüsselung:
Text mit öffentlichem Schlüssel des Empfängers verschlüsseln, verschicken, Empfänger kann mit privatem Schlüssel
wieder entschlüsseln.

2. Unterschreiben:
Hashwert aus dem Text bilden, Hash mit privatem Schlüssel verschlüsseln, Text zusammen mit verschlüsseltem Hash
verschicken, verschlüsselter Hash mit öffentlichem Schlüssel entschlüsseln und mit Hash des Textes vergleichen.

Da das ganze Verfahren steht und fällt mit der Zuordnung von öffentlichem Schlüssel zur Person (E-Mailadresse in
der digitalen Welt). Das machen wir mit einer Autorität, welche die Korrektheit der Daten im Zertifikat mit ihrer digitalen Unterschrift
bezeugt. Diese nennt sich CA (Certification Authority). Windows bringt beispielsweise eine ganze Liste mit
öffentlichen Schlüsseln von CAs mit. Wer richtig mitgedacht hat wird nun feststellen, dass man den CAs blind
vertrauen muss, sonst funktioniert das nicht. Stimmt, allerdings hat es keine Schwächung der Verschlüsselnung zu Folge,
sondern einzig die Echtheit des Unterzeichners wird in Frage gestellt!

Praxis


Certification Authority


Entweder wir haben eine bekannte CA zur Hand, z.B. Verisign oder eine der CAs von der Liste der
Bundesnetzagentur

Man kann sich mit openssl aber ganz leicht eine CA selbst erstellen. Der Nachteil, die ist natürlich nicht
global bekannt und muss daher immer mitveröffentlicht werden, um die Authentizität einer Unterschrift überprüfen
zu können.

01.
openssl req -new -x509 -days 1096 -keyout cakey.pem -out cacert.pem


Jetzt haben wir eine 3 Jahre (1096 Tage) gültige CA. Welche wir später zum Unterschreiben unserer Zertifikate
benutzen. Das cacert.pem sollte man bei einer späteren Verbreitung in eine Datei mit der Endung .crt umwandeln. Dann kann Windows etwas damit anfangen.

Zertifikate


01.
openssl req -new -keyout certkey.pem -out certreq.pem
Damit erhalten wir ein Certificate Request in der Datei certreq.pem, welche wir nun mit der CA
unterschreiben. Die Fragen sollte man korrekt beantworten, die wichtigsten sind CN (Common Name) und die E-Mail.

Bei CN gibt man am besten den Vor- und Nachnamen an. Wenn es später anderst ausschaut als man will, macht man es
einfach nochmal.

01.
openssl x509 -req -in certreq.pem -CA cacert.pem -CAkey cakey.pem -CAcreateserial -out cert.pem -days 365
Den Key (privater Schluessel) und das unterschriebene Zertifikat (öffentlicher Schlüssen), wird noch
zusammengepackt und fuer Windows ins pkcs12 Format umgewandelt.

Windows:
01.
copy /b certkey.pem + cert.pem keycert.pem
Linux:
01.
cat certkey.pem cert.pem > keycert.pem
01.
openssl pkcs12 -export -in keycert.pem -out mailcert.p12 -name "email@domain.de"
Übrigens, wenn man statt der E-Mailadresse den Hostnamen eingibt, bekommt man ein Zertifikat für den Webserver
mit dem Hostnamen.

Das mailcert.p12 kann man nun in den Thunderbird oder Outlook importieren und seine E-Mails damit
unterschreiben (smime).

gnupg und pgp


Im wesentlichem machen diese Programme das gleiche wie openssl. Der Unterschied liegt im Verfahren um das
Vertrauen. Man vertraut einem Freund, der wieder einem Freund und so weiter. Das wäre ein anderes Tutorial Wert.
Ein kleiner Nachteil ist noch, dass man dafür noch extra Erweiterungen im Thunderbird und Outlook einbauen muss.

Adobe PDF


Mit diesem Zertifikat kann man auch PDF Dateien unterschreiben. Ich habe das mit dem Adobe Acrobat 7.0 Standard
getestet. Das Einbinden einer eigenen CA habe ich nicht geschafft.

Fazit


Ab jetzt möchte ich von jedem nur noch unterschriebene E-Mails, alles andere wird als Spam sofort gelöscht. Ja,
auch das wäre eine Möglichkeit den Werbemüll einzudämmen.

Ausserdem möchte ich nochmal auf Thawte hinweisen. Dort bekommt man umsonst ein
Zertifikat, welches von einer bekannten CA unterschrieben ist.
Update (06.11.09): Thawte hat inzwischen die kostenlose Vergabe von S/MIME eingestellt.

E-mail Client Testing for S/MIME Compliance
Mitglied: stpe
24.03.2006 um 08:24 Uhr
In diesem Zusammenhang weise ich auf die Kryptokampagne von Heise hin. Auch hier ist es möglich, sich seine GPG-Schlüssel öffentlich zertifizieren zu lassen.

Dies ist jedes Jahr auf dem Cebit-Stand bei Heise möglich (Pech für dieses Jahr, die Cebit ist gerade vorbei ) aber auch unterjährig kann man sich an der Kryptokampagne beteiligen. Infos dazu gibt's auf heise.de.

Gruss
Stefan
Bitte warten ..
Mitglied: Garfieldt
30.04.2006 um 12:15 Uhr
Da PGP in der Version 9 als E-Mail Proxy arbeitet, ist es nicht mehr nötig irgendwelche E-Mail Program PlugIns zu installieren.
Bitte warten ..
Mitglied: nullplan001
20.06.2006 um 17:19 Uhr
Mich quält da gerade eine Frage: Welche Datei muss ich an meine Freunde weitergeben, damit die auch verschlüsselte Nachrichten von mir entschlüsseln können? Und was müssen die dann damit machen? ich habe nicht soviel Ahnung von OpenSSL oder SSL im allgemeinen.
Und ganz nebenbei hat ein Zertifikat von Thawte den entscheidenden Nachteil, dass dein Name nicht drinsteht. Um das zu ändern, musst du entweder selbst WOT-Notar, Bank-Manager oder Staatsanwalt in Ausbildung sein, oder Mitglied im WOT werden. Was für 50 Punkte geht. Toll, in der Nähe von mir sind genau drei Notare, die mir, wenn sie mir alle Punkte geben, die sie geben dürfen, genau 40 Punkte geben können. Und das nur für ein lumpiges Zertifikat, dass ich auch selbst erstellen kann. Danke, verzichte zu Ungunsten anderer.
Tschö,
nullplan
Bitte warten ..
Mitglied: ITwissen
21.06.2006 um 13:44 Uhr
Mich quält da gerade eine Frage: Welche
Datei muss ich an meine Freunde weitergeben,
damit die auch verschlüsselte
Nachrichten von mir entschlüsseln
können? Und was müssen die dann
damit machen? ich habe nicht soviel Ahnung
von OpenSSL oder SSL im allgemeinen.

Siehe "Theorie" Punkt 1.

Und ganz nebenbei hat ein Zertifikat von
Thawte den entscheidenden Nachteil, dass
dein Name nicht drinsteht. Um das zu
ändern, musst du entweder selbst
WOT-Notar, Bank-Manager oder Staatsanwalt in
Ausbildung sein, oder Mitglied im WOT werden.
Was für 50 Punkte geht. Toll, in der
Nähe von mir sind genau drei Notare,
die mir, wenn sie mir alle Punkte geben, die
sie geben dürfen, genau 40 Punkte geben
können.

Du kannst dir auch bei Verisign (oder anderen, siehe Bundesnetzargentur) ein Zertifikat fuer ein Jahr kaufen. Bei Thawte hat man immerhin die Moeglichkeit eines umsonst zu bekommen. Das Verfahren von Thawte ist leider notwendig, siehe "Theorie" letzter Abschnitt.

Und das nur für ein
lumpiges Zertifikat, dass ich auch selbst
erstellen kann.

Ja, ich kann auch ein Zertifikat mit deinem Namen (und E-Mail) drin erstellen. Woher soll also bei einem selbst erstellten Zertifikat der Empfaenger wissen, dass es wirklich von dir ist?

Ich empfehle dir dich noch etwas weiter in die Materie Verschluesselung/digitale Unterschriften einzuarbeiten.
Bitte warten ..
Mitglied: VSdux
27.05.2007 um 10:00 Uhr
Irgendwie versteh ich das nicht.
Ich habe nun ein Zertifikat erzeugt und das in Thunderbird importiert. Als Email habe ich mein@name.de angegeben (Beispiel).
Wenn ich nun eine Nachricht verfasse und unter S/MIME auf "Sicherheitsinformationen anzeigen" gehe erhalte ich für den Empfänger mein@name.de den Status "ungültig" und für alle anderen Empfänger den Status "nicht gefunden"

Kann ich mit dem Zertifikat nur an eine Emailadresse Mails verschicken? Warum ist mein Zertifikat ungültig?
Bitte warten ..
Mitglied: nullplan001
28.05.2007 um 10:45 Uhr
Ich weiß nicht genau, wo dein Problem liegt, aber: mit einem privaten Schlüssel kannst du nur eine Adresse, nämlich deine, Versorgen. Den öffentlichen Schlüssel kannst du an alle, die es wissen wollen, verteilen. Damit können alle, die einen öffentlichen Schlüssel erhalten haben, dir eine verschlüsselte Mail schicken. Um einem anderen eine verschlüsselte Mail zu schicken, muss du seinen öffentlichen Schlüssel haben (und er den dazugehörigen privaten Schlüssel). Jetzt verstanden?
Bitte warten ..
Mitglied: flugfaust
13.01.2008 um 15:08 Uhr
Wie kann ich ein P12 Zertifikat für Mail for Exchange erstellen?
Blicke da nicht so wirklich durch
Bitte warten ..
Mitglied: Garfieldt
13.01.2008 um 18:16 Uhr
Wie kann ich ein P12 Zertifikat für Mail
for Exchange erstellen?
Blicke da nicht so wirklich durch

Ich blicke nur nicht durch, was das mit OpenSSL zu tun haben soll.
Bitte warten ..
Mitglied: flugfaust
20.01.2008 um 17:49 Uhr
Wieso sollte das nichts mit OpenSSl zu tun haben?
Bitte warten ..
Mitglied: chrihech
12.03.2008 um 08:39 Uhr
hallo. kann mir bitte jemand sagen wie ich die Server-IP-Adresse in das Zertifikat integrieren kann?
danke lg
Bitte warten ..
Mitglied: ITwissen
12.03.2008 um 08:56 Uhr
Ich nehme an du willst, im Gegensatz zum oben Beschriebenen, ein Zertifikat fuer deinen Webserver erstellen. Dann musst du den IP-Namen des Webservers im "Common Name" eingeben. Du musst dort genau die Adresse reinschreiben, die der User in seinen Web-Browser schreibt.

z.B. User schreibt im Webbrowser:
01.
https://www.wasauchimmerhirsteht.de
dann muss als "Common Name" folgendes eingetragen werden:
01.
www.wasauchimmerhirsteht.de
Ansonsten wird der Webbrowser beim Ansurfen der Seite jammern, dass das Zertifikat nicht vom Server kommt.
Bitte warten ..
Mitglied: chrihech
12.03.2008 um 09:20 Uhr
Danke für die schnelle antwort. Ich brauche das Zertifikat jedoch eigentlich für eine 802.1x Implementierung und wenn ich die IP-Adresse des RADIUS-Servers nicht in das Zertifikat integriere akzeptiert es der Supplicant nicht und sendet "Fatal decrypten error", da ja sonst nur der Name des Servers zur verifizierung verwendet wird und das könnte ja dann jeder sein(etc\hosts...).
Weist du zufällig wie das geht?
lg
Bitte warten ..
Mitglied: chrihech
21.03.2008 um 14:58 Uhr
Hat sich erledigt. Das Problem war nicht die IP-Adresse, da diese auch einfach als common name integriert werden kann. Das Problem waren die für Windows und 802.1x notwendigen OIDs. Habe diese mit "-extensions" und einer "xpextensions"-Datei integriert und des funktioniert.
Dankeschön trotzdem für die Antwort
lg
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Verschlüsselung & Zertifikate
S MIME Zertifikate für gesamtes Unternehmen implementieren (2)

Frage von Xartor zum Thema Verschlüsselung & Zertifikate ...

Verschlüsselung & Zertifikate
gelöst Wieso kann eine CA Zertifikate ausstellen und ein normaler Nutzer nicht? (7)

Frage von Mimetype zum Thema Verschlüsselung & Zertifikate ...

Verschlüsselung & Zertifikate
Admins aufgepasst: SHA1-Zertifikate vor dem endgültigen Aus

Link von sabines zum Thema Verschlüsselung & Zertifikate ...

Internet
Zertifikate: Auch Google wirft Wosign und Startcom raus

Link von Kraemer zum Thema Internet ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...