PGP und Kryptographie


Sicherheitsaspekte

==> Problem bei vertraulichen Informationen

==> sichere Übertragung ist erforderlich um Nutzungsmöglichkeiten des Internets zu erhöhen

Sicherheitsbegriffe

C/S und Lauscher

Pakete können

werden.

Sicherheit ist

Client/Server selber müssen sicher sein


Einfhrung Kryptographie

Transformation von Nachrichten (messages, plain text) in verschlsselte Nachrichten (cipher text) mit Hilfe von Algorithmen / Programmen (cipher suites) und Schlsseln (keys).

Kryptographische Basisalgorithmen

Symmetrisch
 
  • gleicher Schlüssel für Ver- und Entschlüsselung

  • sehr schnell

  • Problem: Anzahl der Schlüssel bei n Partnern

  • Problem: sicherer Austausch der Schlüssel

  • Beispiele: DES, RC4, Triple-DES (3DES), RC2, IDEA (International Data Encryption Algorithm), Fortezza (PINs, TANs)

Asymmetrisch
 
  • unterschiedliche Schlüssel für Ver- und Entschlüsselung

  • ”ffentliche und private Schlssel (public und private key)

  • relativ langsam

  • bei richtiger Wahl der Parameter sehr / beliebig sicher

  • Sicherheit basiert auf der Schwierigkeit der Faktorisierung grosser Zahlen,
    bzw. der Berechung des diskreten Logarithmus (in endlichen K”rpern)

  • Beispiele: RSA, DSA, Diffie-Hellman

  • Diffie-Hellman (exponential key exchange): zum Aufbau von sicheren Verbindungen aus einem unsicheren Zustand (allerdings ohne Authentifizierung)

Message Digests
 
  • Prüfsummenbildung (Hash Verfahren)

  • Berechnung einer Zahl aus einer Nachricht

  • Zahl verändert sich, wenn sich die Nachricht ändert

  • die Nachricht kann nicht aus der Zahl rekonstruiert werden

  • Beispiele: MD5, SHA, SHA1

  • Message Authentication Code (MAC)

Kryptographische Basistechniken

Digitale Signatur, Digitale Unterschriften
 
  • basiert auf Digest (Hash) und asymmetrischer Verschlüsselung

  • Berechnung und Verschlüsselung der Prüfsumme

  • gewährleistet Authentizität

Certification, Zertifizierung
 
  • ben”tigt unabh„ngige Verwalter: Certification Authority (CA),
    sichert die Authentizit„t von Schlsseln zu.

  • basiert auf asymmetrischer Verschlüsselung,
    die CA codiert public keys von Teilnehmern mit ihrem private key

  • Server verschickt sein Zertifikat an Client
    bzw. auch umgekehrt: Client verschickt sein Zertifikat an Server

  • Zertifikat bestätigt Echtheit des Servers (Echtheit = Zuordnung Server zu public key)

  • public key der CA muß dem Client bekannt sein

Blinde Unterschriften
 
  • l”st Anonymit„tsproblem bei digitalem Geld

  • Unterschrift durch Umschlag mit Kohlepapier

  • zB. Zertifizierung von eCash unter Wahrung der Anonymität


Pretty Good Privacy (PGP)

Untersttzte kryptografische Verfahren bei GnuPG:

”ffentliche Schlssel
RSA, RSA-E, RSA-S, ELG-E, DSA, ELG
symmetrische Verschlsselung
3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Prfsummen
MD5, SHA1, RIPEMD160

Arbeitsschritte mit GnuPG

  1. Erzeugen eines eigenen Schlsselpaars mit ”ffentlichem und privatem Teil

  2. Versenden des eigenen ”ffentlichen Schlssels

  3. Entgegennehmen von ”ffentlichen Schlsseln anderer Leute

  4. Verwalten der (”ffentlichen und privaten) Schlsseln am Schlsselbund (key ring)

  5. Ver- und Entschlsseln von Dokumenten

  6. Signieren und Verifizieren von Dokumenten

  7. Editieren von Schlsseln, d.h. Žndern von Optionen, z.B. Gltigkeitsdauer verl„ngern

  8. Zurckrufen / Ungltigmachen von Schlsseln

  9. šberprfen der Schlssel anderer Leute

  10. Verwalten der Vertrauensbeziehungen

  11. Nutzung von Schlssel-Servern

Erzeugen eines Schlsselpaars mit GnuPG

Schlsselerzeugung mit gpg --gen-key

> gpg --gen-key

gpg (GnuPG) 1.2.2-rc1-SuSE; Copyright (C) 2002 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen
gpg: /home/krabel/.gnupg: Verzeichnis erzeugt
gpg: Neue Konfigurationsdatei `/home/krabel/.gnupg/gpg.conf' erstellt
gpg: WARNUNG: Die Optionen in `/home/krabel/.gnupg/gpg.conf' sind in diesem Programml
auf noch nicht aktiv
gpg: Schlsselbund `/home/krabel/.gnupg/secring.gpg' erstellt
gpg: Schlsselbund `/home/krabel/.gnupg/pubring.gpg' erstellt
Bitte w„hlen Sie, welche Art von Schlssel Sie m”chten:
   (1) DSA und ElGamal (voreingestellt)
   (2) DSA (nur signieren/beglaubigen)
   (5) RSA (nur signieren/beglaubigen)
Ihre Auswahl? 1
Das DSA-Schlsselpaar wird 1024 Bit haben.
Es wird ein neues ELG-E Schlsselpaar erzeugt.
              kleinste Schlssell„nge ist  768 Bit
              standard Schlssell„nge ist 1024 Bit
      gr”áte sinnvolle Schlssell„nge ist 2048 Bit
Welche Schlssell„nge wnschen Sie? (1024)  
Die verlangte Schlssell„nge betr„gt 1024 Bit
Bitte w„hlen Sie, wie lange der Schlssel gltig bleiben soll.
         0 = Schlssel verf„llt nie
      <n>  = Schlssel verf„llt nach n Tagen
      <n>w = Schlssel verf„llt nach n Wochen
      <n>m = Schlssel verf„llt nach n Monaten
      <n>y = Schlssel verf„llt nach n Jahren
Wie lange bleibt der Schlssel gltig? (0) 10
Key verf„llt am Sam 24 Mai 2004 11:15:26 CEST
Ist dies richtig? (j/n) j
                         
Sie ben”tigen eine User-ID, um Ihren Schlssel eindeutig zu machen; das
Programm baut diese User-ID aus Ihrem echten Namen, einem Kommentar und
Ihrer E-Mail-Adresse in dieser Form auf:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Ihr Name ("Vorname Nachname"): Hanno Krabel
E-Mail-Adresse: krabel@uni-mannheim.de  
Kommentar: Testen von PGP                
Sie haben diese User-ID gew„hlt:
    "Hanno Krabel (Testen von PGP) <krabel@uni-mannheim.de>"

Žndern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? F
Sie ben”tigen ein Mantra, um den geheimen Schlssel zu schtzen.
eingabe des mantra
Wir mssen eine ganze Menge Zufallswerte erzeugen.  Sie k”nnen dies
untersttzen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++
+++++++++++..++++++++++...+++++++++++++++++++++++++>++++++++++.......................
................+++++
Wir mssen eine ganze Menge Zufallswerte erzeugen.  Sie k”nnen dies
untersttzen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
.++++++++++++++++++++.+++++.+++++.+++++++++++++++.++++++++++++++++++++...++++++++++++
+++.++++++++++++++++++++..++++++++++.++++++++++...++++++++++>.+++++..................
.................+++++^^^
gpg: /home/krabel/.gnupg/trustdb.gpg: trust-db erzeugt
™ffentlichen und geheimen Schlssel erzeugt und signiert.
Schlssel ist als uneingeschr„nkt vertrauenswrdig gekennzeichnet.

pub  1024D/ABDFB5BB 2004-05-14 Hanno Krabel (Testen von PGP) <krabel@uni-mannheim.de>
 Schl.-Fingerabdruck = D611 446D 2208 E2EB CA7D  2A50 BAF0 ABDF 9016 B5BB
sub  1024g/FECD33F5 2004-05-14 [verf„llt: 2004-05-24]

Erzeugung eines Wiederrufs fr den Schlssel mit gpg --gen-revoke

gpg --output revoke-krabel.asc --gen-revoke krabel
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen

sec  1024D/30066B17 2004-05-18   Hanno Krabel (Testen von GnuPG) <krabel@uni-mannheim.de>

Create a revocation certificate for this key? yes
Please select the reason for the revocation:     
  0 = Kein Grund angegeben
  1 = Hinweis: Dieser Schlssel ist nicht mehr sicher
  2 = Schlssel ist berholt
  3 = Schlssel wird nicht mehr benutzt
  Q = Cancel
(Probably you want to select 1 here)
Ihre Auswahl? 1
Enter an optional description; end it with an empty line:
> fuer alle faelle
>                  
Reason for revocation: Hinweis: Dieser Schlssel ist nicht mehr sicher
fuer alle faelle
Is this okay? yes
                 
Sie ben”tigen ein Mantra, um den geheimen Schlssel zu entsperren.
Benutzer: "Hanno Krabel (Testen von GnuPG) <krabel@uni-mannheim.de>"
1024-Bit DSA Schlssel, ID 30066B17, erzeugt 2004-05-18
eingabe des mantra
gpg: GPG-Agent ist in dieser Sitzung nicht vorhanden
ASCII armored output forced.
Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!

Verteilen des eigenen ”ffentlichen Schlssels

Speichern des (eigenen) ”ffentlichen Schlssels gpg --export

gpg --armour --export krabel
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

mQGiBD5CCYkRBAC0yeXR92PpxwqAeu5u/4jGN+Tv+Mcrl21bJmRhc1NR1bonbWKt
...
CQANLwAACgkQuvCQFqvftbt+7gCgklW5dmBwdm3h2dSeLpo+Mhea4s4AoJ/TETgm
kY2mUPI2L6CIwU7FU/CK
=/dgh
-----END PGP PUBLIC KEY BLOCK-----

Importieren von ”ffentlichen Schlsseln

Einfgen eines ”ffentlichen Schlssels gpg --import

gpg --import krabel.pub                
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen
gpg: Schlssel D9689977: "Hanno Krabel (Testen von GnuPG) <krabel@uni-mannheim.de>" Nicht ge„ndert
gpg: Anzahl insgesamt bearbeiteter Schlssel: 1
gpg:                             unver„ndert: 1

Ver- und Entschlsseln

Verschlsseln gpg --encrypt

gpg --armour --output maildoc.sec --encrypt --recipient krabel maildoc.txt
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen
Datei 'maildoc.sec' existiert bereits. šberschreiben (j/N)? j

Verschlsselte Datei:

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

hQEOA5gA7p1IVxqJEAQA3fPS7jWYAWqF4o5fItzqDldXw/+v1WNC/ulZj414CpKP
...
4viqnRXziOhoP6eSCOgZX+AOCW02qMqOQ9efZep7xU+0EnG3q57OUFD+oiFZvGsG
gJPkk6wC
=vNiC
-----END PGP MESSAGE-----

Entschlsseln mit gpg --decrypt

gpg --output maildoc.decrypt --decrypt maildoc.sec
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen

Sie ben”tigen ein Mantra, um den geheimen Schlssel zu entsperren.
Benutzer: "Hanno Krabel (Testen von GnuPG) <krabel@uni-mannheim.de>"
1024-Bit ELG-E Schlssel, ID B2B73599, erzeugt 2004-05-18 (Hauptschlssel-ID 30021B17)
eingabe des mantra
gpg: GPG-Agent ist in dieser Sitzung nicht vorhanden
gpg: verschlsselt mit 1024-Bit ELG-E Schlssel, ID B2B73599, erzeugt 2004-05-18
      "Hanno Krabel (Testen von GnuPG) <krabel@uni-mannheim.de>"

Signieren von Dateien und Verifizieren

Signieren mit gpg --sign oder gpg --clearsign oder gpg --detach-sign

gpg --armour --output maildoc.sign --sign maildoc.txt
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen

Sie ben”tigen ein Mantra, um den geheimen Schlssel zu entsperren.
Benutzer: "Helmut Knebel (Testen von GnuPG) <knebel@.uni-mannheim.de>"
1024-Bit DSA Schlssel, ID 30366B17, erzeugt 2004-05-18

gpg: GPG-Agent ist in dieser Sitzung nicht vorhanden

Inhalt der Datei mit Signatur:

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.2.2-rc1-SuSE (GNU/Linux)

owGbwMvMwCS4yEfxvAFbtjjjmvlJ3LmJmTkp+cl6JRUldifdPrpm5ikEJ5ZUKVSV
...
zOFl/Hd+er34byHl4Jd8mpyzyp5/f8MwP1hF8WDu86Uimvwn+8Mi10/rWXM4EAA=
=9+OW
-----END PGP MESSAGE-----

Verifizieren erfolgt mit gpg --verify

gpg --verify maildoc.sign
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/de/faq.html fr weitere Informationen
gpg: Unterschrift vom Mon 19 Mai 2004 23:04:49 CEST, DSA Schlssel ID 30366B17
gpg: Korrekte Unterschrift von "Helmut Knebel (Testen von GnuPG) <knebel@rz.uni-mannheim.de>"

Anzeigen und Pflegen der Schlssel

Anzeigen erfolgt mit gpg --list-keys oder gpg --list-public-keys oder gpg --list-secret-keys

gpg --list-keys                            
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/faq.html fr weitere Informationen
/home/heinz/.gnupg/pubring.gpg
------------------------------
pub  1024D/578126CA 2004-06-14 Karl Dall (Komiker) <dall@karl.de>
sub  1024g/8FBEEFC6 2004-06-14 [verf„llt: 2004-07-14]
gpg --fingerprint     
gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/faq.html fr weitere Informationen
/home/heinz/.gnupg/pubring.gpg
------------------------------
pub  1024D/578126CA 2004-06-14 Karl Dall (Komiker) <dall@karl.de>
  Schl.-Fingerabdruck = 549C F204 1680 E453 2081  8823 4024 42B1 5781 26CA
sub  1024g/8FBEEFC6 2004-06-14 [verf„llt: 2004-07-14]

Die Pflege der Schlssel erfolgt (auch interaktiv) mit gpg --edit-key

gpg --edit-key 578126CA
gpg (GnuPG) 1.2.2; Copyright (C) 2003 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: WARNUNG: Sensible Daten k”nnten auf Platte ausgelagert werden.
gpg: siehe http://www.gnupg.org/faq.html fr weitere Informationen
Geheimer Schlssel ist vorhanden.

pub  1024D/578126CA  erstellt: 2004-06-14 verf„llt: 2004-07-14 Vertrauen: u/u
sub  1024g/8FBEEFC6  erstellt: 2004-06-14 verf„llt: 2004-07-14
(1). Karl Dall (Komiker) <dall@karl.de>

Befehl> help
quit       Men verlassen
save       speichern und Men verlassen

fpr        "Fingerabdruck" anzeigen
list       Schlssel und User-IDs auflisten
check      Liste der Signaturen
sign       Den Schlssel signieren
delsig     Signatur entfernen
expire     Žndern des Verfallsdatums
toggle     Umschalten zwischen Anzeige geheimer und ”ffentlicher Schlssel
passwd     Die Passphrase „ndern
trust      Den "Owner trust" „ndern
revsig     Signaturen widerrufen
disable    Schlssel abschalten

Verwalten der Vertrauensbeziehungen

Die gesammelten ”ffentlichen Schlssel k”nnen nach Vertrauensleveln klassifiziert werden:

unbekannt
es gibt keine berprften Informationen ber den Schlssel
keine
es ist bekannt, das der Eigentmer nicht vertrauenswrdig ist
marginal
dem Eigentmer des Schlssels wird im Wesentlichen vertraut
voll
dem Eigentmer des Schlssels wird voll vertraut

šber diese Klassifizierung k”nnen dann auch Schlssel fr gltig eingestuft werden, die man nicht selbst berprft hat.

Danach ist ein Schlssel gltig, wenn folgende Bedingungen erfllt sind:

  1. der Schlssel ist von gengend gltigen Schlsseln signiert, d.h.

    1. von mir pers”nlich, oder

    2. durch einen, dem ich voll vertraue, oder

    3. die mindestens drei, denen ich marginal vertraue

  2. die Anzahl der Signierschritte zwischen dem Schlssel und dem eigenen Schlssel betr„gt weniger als fnf


Teil 1 erstellt unter Verwendung eines Seminarvortrags von Robert Schulz.

© Universität Mannheim, Rechenzentrum, 1998-2007.

Heinz Kredel

Last modified: Sun May 4 20:35:37 CEST 2008