Einführung in OpenSSL und X.509-Zertifikate. Martin Kaiser http://www.kaiser.cx/



Ähnliche Dokumente
OpenSSL in der Praxis

Netzwerksicherheit Übung 5 Transport Layer Security

X.509v3 Zertifizierungsinstanz der Universität Würzburg

Programmiertechnik II

Netzwerksicherheit Übung 5 Transport Layer Security

Installation eines SSL Zertifikates unter Apache http Server 2.x

Apache Webserver with SSL on Windows

Betriebssysteme und Sicherheit Sicherheit. Signaturen, Zertifikate, Sichere

Anleitung zur Nutzung von OpenSSL in der DFN-PKI

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

OpenVPN mit CAcert. Graben eines VPN-Tunnels mittels freien Zertifikaten

Stammtisch Zertifikate

Public Key Infrastrukturen

Erste Vorlesung Kryptographie

Public-Key-Infrastrukturen

BEKO-Forum Juni 2007 Server-Zertifikate an der Uni Bern

Rechneranmeldung mit Smartcard oder USB-Token

ViMP 3.0. SSL Einrichtung in Apache 2.2. Verfasser: ViMP GmbH

Die neue RA-Oberfläche der DFN-PKI. Jan Mönnich

Kryptographie. Ich doch hab nichts zu verbergen. IT-Security Bootcamp. Ziel. Was also tun? asymmetrisch. symmetrisch

SSL/TLS und SSL-Zertifikate

Public-Key-Infrastrukturen

Seminar Internet-Technologie

-Verschlüsselung mit GPG. Von der Key-Erzeugung zur verschlüsselten . Chemnitzer Linux-Tage März 2010 Vortrag

Digitale Signatur. Digitale Signatur. Anwendungen der Kryptographie. Secret Sharing / Splitting. Ziele SSL / TLS

Allgemeine Erläuterungen zu

Public-Key-Infrastrukturen

Apache HTTP-Server Teil 1

Einführung in PGP/GPG Mailverschlüsselung

Apache HTTP-Server Teil 1

Freie Zertifikate für Schulen und Hochschulen

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. IT-Security. Teil 2: Zertifikate, X.509, PKI Dr.

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper

Comtarsia SignOn Familie

Bei falscher Zuordnung: Verlust der Vertraulichkeit. Bei falscher Zuordnung: Verlust der Datenauthentizität

Praktikum IT-Sicherheit WLAN

11. Das RSA Verfahren und andere Verfahren

Betriebssysteme und Sicherheit

Infrastruktur: Vertrauen herstellen, Zertifikate finden

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

Anforderungen an elektronische Signaturen. Michel Messerschmidt

Ist das so mit HTTPS wirklich eine gute Lösung?

Installation eines SSL Zertifikates am Microsoft IIS 5.0 v0.4

Digital Rights Management (DRM) Verfahren, die helfen Rechte an virtuellen Waren durchzusetzen. Public-Key-Kryptographie (2 Termine)

Zertifikate an der RWTH

T.I.S.P. Community Meeting 2013 Berlin, Integritätsschutz durch Security by design

IT-Sicherheit Kapitel 11 SSL/TLS

Kleines SSL Handbuch. Inhaltsverzeichnis. Daniel Klaenbach Einleitung 2

SSL-Zertifikate. ausgestellt bzw. bezogen von den Informatikdiensten. Dieter Hennig. 25. November ETH Zürich. SSL-Zertifikate.

Henning Mohren Zertifikatsserver der Certification Authority (CA) Technische Spezifikation. Version 4.0. c 2005 FernUniversität in Hagen

Verschlüsselung der Kommunikation zwischen Rechnern

Collax NCP-VPN. Howto

Informatik für Ökonomen II HS 09

Semantic Web Technologien. Security and Trust. Sebastian Henke. Betreuer: Mark Giereth VIS 06

-Verschlüsselung mit S/MIME

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen

Public-Key-Infrastrukturen

Verschlüsselte s: Wie sicher ist sicher?

Authentikation und digitale Signatur

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

Umstellung des Schlüsselpaares der Elektronischen Unterschrift von A003 (768 Bit) auf A004 (1024 Bit)

vorab noch ein paar allgemeine informationen zur d verschlüsselung:

VPN Tunnel Konfiguration. VPN Tunnel Konfiguration IACBOX.COM. Version Deutsch

Terravis - Hinweise zur Implementierung der SSL-Verbindung

Einführung in X S/MIME

Acrolinx IQ. Sichern der Kommunikation mit Acrolinx IQ Server mit HTTPS

X.509-Zertifikate mit OpenSSL Mario Lorenz 18. November 2002

E r s t e l l u n g e i n e s Gateway-Zertifikats

Kryptographische Anonymisierung bei Verkehrsflussanalysen

Erstellen sicherer ASP.NET- Anwendungen

-Verschlüsselung

Sicherheitskonzept und Sicherheitspru fung. Internetanbindung Befundserver MVZ Labor PD Dr. Volkmann und Kollegen GbR

Attribut Kürzel Beispiele Bemerkungen Country Name C DE bitte Großbuchstaben State or Province Name ST Nordrhein-Westfalen

Webseiten mit HTTPS bereitstellen und mit HSTS und HPKP sichern

Eine Praxis-orientierte Einführung in die Kryptographie

Dateien und s verschlüsseln mit GPG

Anleitung Thunderbird Verschlu sselung

SSL Secure Socket Layer Algorithmen und Anwendung

VPN-IPSec Verbindung zwischen IPhone und bintec Router mit Zertifikaten on Demand

UH-CA: Zertifikate für digitale Signaturen und Verschlüsselung an der Universität Hannover

IT-Sicherheit Kapitel 5 Public Key Infrastructure

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

etoken unter Linux 13. Dezember 2010 etoken unter Linux Dominik Russenberger

Installationsdokumentation BKW E-Commerce Zertifikate. b2b-energy client Zertifikat 3 Jahre Kunde installiert das Zertifikat

IT-Sicherheit WS 2012/13. Übung 5. zum 28. November 2012

Beantragen eines Serverzertifikates. Registrierungsstelle der Ernst Moritz Arndt Universität Greifswald (UG-RA)

Verschlüsselung des -Verkehrs mit GnuPG

Nachrichten- Verschlüsselung Mit S/MIME

USB-Tokens. Technik und Einsatzgebiete

Kontakt: Bundesdruckerei GmbH Oranienstraße 91, D Berlin Tel +49 (0) Fax +49 (0)

Einsatz der Digitalen Signatur in PDF-Dateien. GxP-Seminare 2002 von IDS Scheer

Installationsanleitung SSL Zertifikat

Merkblatt: Sichere -Kommunikation zur datenschutz cert GmbH

Sicherheit von PDF-Dateien

A B A C U S KONFIGURATION MOBILE ID. November 2014 / om. Version 1.3

A-CERT CERTIFICATION SERVICE 1

Entwurf und Implementierung eines Authentifikations-Proxys für das WWW

Eine Open Source SSL VPN Lösung. Patrick Oettinger Deutsche Telekom AG 2. Ausbildungsjahr

Diese Anleitung dient der Implementierung von PGP Verschlüsselung in Mozilla Thunderbird.

Transkript:

Einführung in OpenSSL und X.509-Zertifikate Martin Kaiser http://www.kaiser.cx/

Über mich Elektrotechnik-Studium Uni Karlsruhe System-Ingenieur UNIX und IP-Netze (2001-2003) Embedded Software-Entwicklung Digital-TV (seit 2003) Schwerpunkt Pay-TV (DVB Common Interface) Pay-TV Standard CI+

Inhalt OpenSSL Zertifikate Einsatzbereich Aufbau Codierung Erstellen und Verifizieren von Zertifikaten Anwendungsbeispiel Programmierung

OpenSSL Implementierung der SSL/TLS Protokolle Open source, Lizenz nicht kompatibel zur GPL libssl, libcrypto Symmetrische und Public-Key Verschlüsselungsverfahren Hashes X.509 Zertifikate ASN.1 BIO BIGNUM Primzahlen... Kommandozeilentools

Public-Key Kryptographie Schlüsselpaar öffentlicher Schlüssel privater Schlüssel Verschlüsselung A verschlüsselt mit Bs öffentlichem Schlüssel B entschlüsselt mit seinem privaten Schlüssel Signatur A signiert mit seinem privaten Schlüssel B verifiziert mit As öffentlichem Schlüssel

Zertifikat Datenstruktur, die einen öffentlichen Schlüssel mit Informationen über dessen Inhaber verknüpft Aussteller signiert das Zertifikat, bestätigt damit die Identität des Inhabers Revocation-Liste, um Zertifikate zu widerrufen Benutzer D Certificate Authority B Certificate Authority A Benutzer E Certificate Authority C Benutzer F

Aufbau eines X.509 Zertifikats (I) Version Seriennummer Signatur-Algorithmus Issuer Gültigkeit (von, bis) Subject eindeutige Nummer, vom Aussteller vergeben begrenzte zeitliche Gültigkeit Namen entsprechend X.501 C = DE, ST = Hessen, L = Frankfurt, O = Test GmbH, OU = Personalabteilung, CN = Martin Kaiser

Aufbau eines X.509 Zertifikats (II) Subject Public Key Info Public Key Algorithmus Subject Public Key Eindeutige ID von Aussteller und Inhaber (optional) Erweiterungen (optional) Signatur-Algorithmus Signatur Textdarstellung meistens RSA Aufbau ID Flag: kritisch? Inhalt Beispiele Basic constraints Key usage Private Erweiterungen über alle Felder von Version bis Erweiterungen openssl x509 -in mycert.pem -noout -text

Codierung, Speicherung Zertifikat wird codiert in ASN.1 Tag (Datentyp), Length, Value Datentyp z.b. Sequenz, Objekt, Bitstring, Integer ASN.1 Darstellung des Signatur-Algorithmus askja:/etc/ssl/guug# openssl asn1parse -in./mycert.pem... 956:d=1 hl=2 l=13 cons: SEQUENCE 958:d=2 hl=2 l= 9 prim: OBJECT :sha256withrsaencryption 969:d=2 hl=2 l= 0 prim: NULL Speicherung direkt als ASN.1 Bytefolge (DER) oder als PEM

Selbstsigniertes Zertifikat Schlüsselpaar erzeugen Certificate Request (CSR) erzeugen Certificate Request signieren openssl req -x509 -out mycert.pem \ -newkey rsa:2048 -keyout mykey.pem \ -nodes -sha256 -days 1000 mykey.pem enthält den privaten RSA-Schlüssel mycert.pem enthält das selbstsignierte Zertifikat

Aufgaben Certificate Authority (CA) Erzeugen von Benutzerzertifikaten durch Signieren von Certificate Requests Revocation-Liste Grundkonfiguration openssl.cnf: Algorithmen, Gültigkeitsdauer Root-Zertifikat, privater Schlüssel askja:/etc/ssl/guug# mkdir newcerts private askja:/etc/ssl/guug# chmod 700 private askja:/etc/ssl/guug# touch index.txt askja:/etc/ssl/guug# echo 1001 > serial

CA (II) Benutzer erstellt seinen CSR openssl req -new -keyout clientkey.pem \ -out clientcsr.pem CA signiert den Benutzer-CSR openssl ca -in clientcsr.pem -notext Benutzerzertifikat newcerts/<serial>.pem Nummer in der Datei serial wird inkrementiert Neuer Eintrag in index.txt V 101113173819Z 1007 unknown /C=DE/ST=Hessen/L=...

Revocation-Liste, Verifikation Zertifikat auf die Revocation-Liste setzen openssl ca -revoke newcerts/1007.pem index.txt: Flag R, Widerrufszeitpunkt Revocation-Liste erzeugen aus index.txt openssl ca -gencrl -out mylist.crl Zertifikat verifizieren openssl verify -crl_check mycert.pem /etc/ssl/certs/: Root-Zertifikate, Revocation-Listen c_rehash: erzeugt Symlinks für *.pem, *.crt

Apache (I) Apache Webserver Apache-Modul mod_ssl nutzt OpenSSL X.509 Zertifikate für SSL-Verbindungen (HTTPS) Server- und Client-Zertifikate Server-Zertifikat SSLCertificateFile /path/to/apacheservercert.pem SSLCertificateKeyFile /path/to/apacheserverkey.pem Browser verifiziert das Zertifikat des Webservers Browser enthält eine Anzahl von Root-Zertifikaten Import des eigenen Root-Zertifikats zur Verifikation von selbst erstellten Zertifikaten

Apache (II) Client-Zertifikat, Revocation-Liste nur Clients mit gültigem Zertifikat dürfen zugreifen SSLVerifyClient require SSLCACertificateFile /path/to/mycacert.pem SSLVerifyDepth 1 SSLCARevocationFile /path/to/mycrl.pem Import von Client-Zertifikat und Private Key in den Browser als PKCS12 openssl pkcs12 -export -clcerts \ -in mycert.pem -inkey mykey.pem \ -out myclient.p12

Import von Zertifikaten in Firefox

Programmierung (I) Beispiel: Verifikation eines X.509-Zertifikats Struktur X509: ein Zertifikat typedef struct x509_st { X509_CINF *cert_info; X509_ALGOR *sig_alg; ASN1_BIT_STRING *signature;... } X509; Struktur X509_STORE: Parameter für eine Verifikation typedef struct x509_store_st { STACK_OF(X509_OBJECT) *objs; /* cert, crl, pubkey */ X509_VERIFY_PARAM *param; /* depth, flags,... */ int (*verify_cb)(int ok,x509_store_ctx *ctx);... } X509_STORE;

Programmierung (II) Struktur X509_STORE_CTX: Store + Zertifikate typedef struct x509_store_ctx_st { X509_STORE *ctx; X509 *cert; STACK_OF(X509) *untrusted;... X509 *current_cert; X509 *current_issuer; } X509_STORE_CTX; Verifikation eines Zertifikats int X509_verify_cert(X509_STORE_CTX *ctx) Callback-Funktion für jedes zu prüfende Zertifikat int mycb(int ok, X509_STORE_CTX *ctx) Rückgabewert ist der neue Fehlerzustand

Danke für Ihr Interesse Fragen? Folien zum Download -> http://www.kaiser.cx/