Pretty Good Privacy: Unterschied zwischen den Versionen

Aus Wiki StuRa HTW Dresden
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
= Pretty Good Privacy =
[[w:de:Pretty Good Privacy|Pretty Good Privacy]] (OpenPGP) ist der bekannteste und am weitesten verbreitete [[offener Standard|offene Standard]] für die [[Verschlüsselung]] von Dateien und [[E-Mail]]s. Die bekanntesten Implementierungen dieser asynchronen Kryptografie nach dem [[w:de:Kerckhoffs’ Prinzip|Kerckhoff-Prinzip]] ist [[GnuPG]].
 
[[w:de:Pretty_Good_Privacy|OpenPGP]] ist der bekannteste und am weitesten verbreitete [[Offene Standards|offene Standard]] für Datei- und [[E-Mail]]-[[Verschlüsselung]]. Die bekanntesten Implementierungen dieser asynchronen Kryptografie nach dem [[w:de:Kerckhoffs’_Prinzip|Kerckhoff-Prinzip]] ist [[GnuPG]].


== die Schlüssel ==
== die Schlüssel ==
Ein [http://vimeo.com/17610424 kleines Video] erklärt das Prinzip der verteilten Briefumschläge/Schlösser (alias öffentliche Schlüssel) und der nicht veröffentlichten privaten Schlüssel.
Ein [http://vimeo.com/17610424 kleines Video] erklärt das Prinzip der verteilten Briefumschläge/Schlösser (alias öffentliche Schlüssel) und der nicht veröffentlichten privaten Schlüssel.


=== Privater Schlüssel ===
=== Privater Schlüssel ===
 
Ist ein Geheimer Schlüssel mit dem eine [[digitale Unterschrift]] unter beliebige Daten gesetzt werden kann. Diese kann dann durch Besitzer des Öffentlichen Schlüssels mathematisch verifiziert werden. Dieses Signatur-Verfahren stellt die [[Integrität]] der unterschriebenen Daten sicher.
Ist ein Geheimer Schlüssel mit dem eine [[digitale Unterschrift]] unter beliebige Daten gesetzt werden kann. Diese kann dann durch Besitzer des Öffentlichen Schlüssels mathematisch verfiziert werden. Dieses Signatur-Verfahren stellt die [[Integrität]] der unterschriebenen Daten sicher.
<!--
 
Weiterhin können  
Weiterhin können  
-->


=== Öffentlicher Schlüssel ===
=== Öffentlicher Schlüssel ===
Bildlich gesprochen ist das die Blaupause für einen Briefumschlag den nur der Besitzer des privaten Schlüssels öffnen kann. Darin können beliebige Daten abgelegt oder versendet werden, damit kann die Vertraulichkeit von Daten gesichert werden.
Bildlich gesprochen ist das die Blaupause für einen Briefumschlag den nur der Besitzer des privaten Schlüssels öffnen kann. Darin können beliebige Daten abgelegt oder versendet werden, damit kann die Vertraulichkeit von Daten gesichert werden.


Zeile 22: Zeile 18:


== Web of Trust ==
== Web of Trust ==
 
Das Web of Trust ist ein Netzwerk gegenseitigen Vertrauens. Es basiert auf der Annahme, dass
Ein Netzwerk gegenseitigen Vertrauens. Es basiert auf der Annahme, dass
# Menschen sich über n Ecken kennen und
 
# der Aufwand zur Überprüfung von [[Fingerabdruck|Fingerabdrücken]] der Schlüssel damit beherrschbarer wird
# Menschen sich über n Ecken kennen  
# und der Aufwand zur Überprüfung von [[Fingerabdruck|Fingerabdrücken]] der Schlüssel damit beherrschtbarer wird
# Menschen ohne persönliche Bekanntschaft über gemeinsame Bekannte systematisch verifizieren können ob das Gegenüber vertrauenswürdig ist .
# Menschen ohne persönliche Bekanntschaft über gemeinsame Bekannte systematisch verifizieren können ob das Gegenüber vertrauenswürdig ist .


Diese Annahmen sind natürlich nicht immer zutreffend.
Diese Annahmen sind natürlich nicht immer zutreffend.


== Praxis mit GnuPG ==
== [[GnuPG]] ==


=== [[GNU/Linux]] ===
=== Praxis mit GnuPG ===


;ein guter Start sind diese beiden:
{{Anpassungsmerker}}


* $<code>man gpg</code>
==== GnuPG mit [[GNU/Linux]] ====
* $<code>gpg --help</code>
Einen guten Start bieten die Seiten zur Erklärung:
: <code>[[debian-man:gpg|man gpg]]</code>
: <code>gpg --help</code>


==== Einstellungen zu [[GnuPG]] ====
===== Einstellungen zu [[GnuPG]] =====


Für Einstellungen des Nutzers sollte die Datei ~/.gnupg/gpg.conf unbedingt selbst bearbeitet werden.
Für Einstellungen des Nutzers sollte die Datei ~/.gnupg/gpg.conf unbedingt selbst bearbeitet werden.
Zeile 46: Zeile 42:
Näheres auf [https://help.riseup.net/it/security/message-security/openpgp/best-practices Empfehlung von riseup]
Näheres auf [https://help.riseup.net/it/security/message-security/openpgp/best-practices Empfehlung von riseup]


==== Schlüssel erstellen ====
===== Schlüssel erstellen =====


===== Basics =====
====== Basics ======


Auf Linux Shell mit [[GnuPG]] sieht das dann so aus:
Auf der Kommandozeile mit [[GnuPG]] sieht das dann so aus:
 
# <code>gpg --gen-key</code>
# $<code>gpg --gen-key</code>
# 1
# 1
# 4096
# 4096
Zeile 65: Zeile 60:
# warten auf Zufallswerte, geht schneller wenn man nebenbei an dem Rechner arbeitet oder spezielle Hardware dafür hat
# warten auf Zufallswerte, geht schneller wenn man nebenbei an dem Rechner arbeitet oder spezielle Hardware dafür hat


===== Mit Enigmail (in Thunderbird etc) =====
====== Mit Enigmail (in Thunderbird etc) ======


===== Ambitioniert =====
====== Ambitioniert ======


tbc: mit gesondertem Schlüssel zum Wiederrufen
tbc: mit gesondertem Schlüssel zum Wiederrufen


===== Kinderleicht =====
====== Kinderleicht ======


Der Schwierigkeitsgrad der Handhabung ist eine Frage der Sicherheit. Je einfacher das System ist, desto weniger Sicherheitsmaßnahmen (technisch, organisatorisch) können angewendet werden.
Der Schwierigkeitsgrad der Handhabung ist eine Frage der Sicherheit. Je einfacher das System ist, desto weniger Sicherheitsmaßnahmen (technisch, organisatorisch) können angewendet werden.
Zeile 77: Zeile 72:
Dennoch macht es Sinn auch ohne große Sicherheitsvorkehrungen Kryptografie zu verwenden, ein gutes Beispiel hierfür ist [[w:de:Pretty_Easy_privacy|p≡p]] (noch im [https://www.indiegogo.com/projects/pep-pretty-easy-privacy Crowdfunding]).
Dennoch macht es Sinn auch ohne große Sicherheitsvorkehrungen Kryptografie zu verwenden, ein gutes Beispiel hierfür ist [[w:de:Pretty_Easy_privacy|p≡p]] (noch im [https://www.indiegogo.com/projects/pep-pretty-easy-privacy Crowdfunding]).


==== Private Schlüssel auflisten ====
===== Private Schlüssel auflisten =====


Wenn man wissen will, welche privaten Schlüssel dem Nutzer bereitstehen oder ggf. noch importiert werden müssen:
Wenn man wissen will, welche privaten Schlüssel dem Nutzer bereitstehen oder ggf. noch importiert werden müssen:


$<code>gpg -K</code>
: <code>gpg -K</code>




==== Wiederrufszertifikat erstellen ====
===== Wiederrufszertifikat erstellen =====


tbc ...
tbc ...


==== Wiederrufszertifikat benutzen ====
===== Wiederrufszertifikat benutzen =====


==== Schlüssel von Kommunikationspartnern suchen/importieren ====
===== Schlüssel von Kommunikationspartnern suchen/importieren =====


===== aus einer Datei =====
====== aus einer Datei ======


$<code>gpg --import ${datei}</code>
: <code>gpg --import ${datei}</code>


===== von einem Server =====
====== von einem Server ======


Schlüssel können auf zwei Arten von Keyservern importiert werden
Schlüssel können auf zwei Arten von Keyservern importiert werden


* $<code>gpg --search-keys ${emailadresse}</code>
: <code>gpg --search-keys ${emailadresse}</code>
* $<code>gpg --recv-key ${key-id}</code>
: <code>gpg --recv-key ${key-id}</code>


==== Schlüsseln von Kommunikationspartnern vertrauen - lokal signieren ====
===== Schlüsseln von Kommunikationspartnern vertrauen - lokal signieren =====


;lokal signieren mit lsign - lokale Signaturen werden nicht auf Server übertragen
; lokal signieren mit lsign - lokale Signaturen werden nicht auf Server übertragen


Statt lsign kann auch sign verwendet werden, aber diese Signatur wird '''[[Pretty_Good_Privacy#.28.C3.96ffentlich.29_Signieren|dann ggf. öffentlich]]'''. Dies kann im Sinne des [[WoT]] aber auch gewollt sein.
Statt lsign kann auch sign verwendet werden, aber diese Signatur wird '''[[Pretty_Good_Privacy#.28.C3.96ffentlich.29_Signieren|dann ggf. öffentlich]]'''. Dies kann im Sinne des [[WoT]] aber auch gewollt sein.
Zeile 118: Zeile 113:
# save
# save


==== (Öffentlich) Signieren ====
===== (Öffentlich) Signieren =====
Auch hier wird dem Schlüssel Vertrauen verliehen, aber dies ggf. öffentlich.


Auch hier wird dem Schlüssel Vertrauen verliehen, aber dies ggf. öffentlich.
Daher sollte hier auch sorgfältig geprüft werden, ob die Person zu dem Schlüssel gehört den man gerade unterschreiben möchte.
Daher sollte hier auch sorgfältig geprüft werden, ob die Person zu dem Schlüssel gehört den man gerade unterschreiben möchte.


# Dazu eignet sich grundsätzlich mindestens der Fingerprint und ggf. die anderen Eigenschaften des Schlüssel
# Dazu eignet sich grundsätzlich mindestens der Fingerprint und ggf. die anderen Eigenschaften des Schlüssel
:: <code>gpg --fingerprint ${key-id oder ein bestandteil von name oder mail-adresse}</code>
#: <code>gpg --fingerprint ${key-id oder ein bestandteil von name oder mail-adresse}</code>


Dieser angezeigte Fingerprint sollte mit der Angabe der Person (z.B. vorgelesen, abgedruckt auf einer Visitenkarte etc.) verglichen werden!
Dieser angezeigte Fingerprint sollte mit der Angabe der Person (z.B. vorgelesen, abgedruckt auf einer Visitenkarte etc.) verglichen werden!<br />
Zusätzliche Eigenschaften wie Algorithmus und Schlüssellänge sollten auch übereinstimmen, gerade ungewöhnliche Schlüssellängen könnten sogar ein Hinweis auf einen [http://www.pgp.net/pgpnet/pgp-faq/pgp-faq-keys.html#key-public-key-forgery-detect gefälschten Schlüssel (forget key)] sein.
Zusätzliche Eigenschaften wie Algorithmus und Schlüssellänge sollten auch übereinstimmen, gerade ungewöhnliche Schlüssellängen könnten sogar ein Hinweis auf einen [http://www.pgp.net/pgpnet/pgp-faq/pgp-faq-keys.html#key-public-key-forgery-detect gefälschten Schlüssel (forget key)] sein.


Der Rest ist einfach; [[#Schl.C3.BCsseln_von_Kommunikationspartnern_vertrauen_-_lokal_signieren|s.o.]], verwende <code>sign</code> statt <code>lsign</code>.
Der Rest ist einfach; [[#Schlüsseln von Kommunikationspartnern vertrauen - lokal signieren|s.o.]], verwende <code>sign</code> statt <code>lsign</code>.
 
===== Schlüssel an Server senden =====


==== Schlüssel an Server senden ====
: <code>gpg --send-keys ${liste von schlüssel-ids}</code>


$<code>gpg --send-keys ${liste von schlüssel-ids}</code>
===== Signatur einer Nachricht überprüfen =====


==== Signatur einer Nachricht überprüfen ====
===== eine Nachricht verschlüsseln =====


==== eine Nachricht verschlüsseln ====
===== eine Nachricht entschlüsseln =====


==== eine Nachricht entschlüsseln ====
==== GnuPG mit Windows ====


== siehe auch ==
===== mit gpg4win =====
: z.B. für Outlook
 
== Siehe auch ==
* [[wikipedia:de:Pretty Good Privacy]]


Etwas detaillierter bieten andere Quellen Aufklärung:
Etwas detaillierter bieten andere Quellen Aufklärung:
* [https://emailselfdefense.fsf.org/de/ Verteidigung gegen die dunklen Künste] mit der [[FSF]] in vielen Sprachen
* [https://emailselfdefense.fsf.org/de/ Verteidigung gegen die dunklen Künste] mit der [[FSF]] in vielen Sprachen
* [https://wiki.fsfw-dresden.de/doku.php?id=doku:software:gpg:anleitungen_zu_pgp Schritt für Schritt Anleitung] zur [[Pretty Good Privacy]]-Einrichtung von der [[FSFW Dresden]]
* Die [http://www.pgpi.org/doc/whypgp/ Dokumentation des Projektes] hat schon von Anbeginn gute Gründe geliefert
* Die [http://www.pgpi.org/doc/whypgp/ Dokumentation des Projektes] hat schon von Anbeginn gute Gründe geliefert
* [https://netzpolitik.org/2013/anleitung-so-verschlusselt-ihr-eure-e-mails-mit-pgp/ Anleitung von Netzpolitik.org]
* [https://netzpolitik.org/2013/anleitung-so-verschlusselt-ihr-eure-e-mails-mit-pgp/ Anleitung von Netzpolitik.org]
* [http://www.www-kurs.de/pgp.htm ein www-Kurs zu PGP]
* [http://www.www-kurs.de/pgp.htm ein www-Kurs zu PGP]
* [https://help.riseup.net/en/security/message-security/openpgp/gpg-keys on managing PGP keys]
* [https://help.riseup.net/en/security/message-security/openpgp/gpg-keys on managing PGP keys]
* [https://www.datenschmutz.de/gc/html/sicherumziehen.html neuen Schlüssel erzeugen]
Technische Hintergründe zu und geschichtliche Entwicklung von Verschlüsselungstechniken
* https://www.cryptool.org
[[Kategorie:Datenkultur]]
[[Kategorie:Software]]

Aktuelle Version vom 5. Januar 2017, 11:06 Uhr

Pretty Good Privacy (OpenPGP) ist der bekannteste und am weitesten verbreitete offene Standard für die Verschlüsselung von Dateien und E-Mails. Die bekanntesten Implementierungen dieser asynchronen Kryptografie nach dem Kerckhoff-Prinzip ist GnuPG.

die Schlüssel[Bearbeiten]

Ein kleines Video erklärt das Prinzip der verteilten Briefumschläge/Schlösser (alias öffentliche Schlüssel) und der nicht veröffentlichten privaten Schlüssel.

Privater Schlüssel[Bearbeiten]

Ist ein Geheimer Schlüssel mit dem eine digitale Unterschrift unter beliebige Daten gesetzt werden kann. Diese kann dann durch Besitzer des Öffentlichen Schlüssels mathematisch verifiziert werden. Dieses Signatur-Verfahren stellt die Integrität der unterschriebenen Daten sicher.

Öffentlicher Schlüssel[Bearbeiten]

Bildlich gesprochen ist das die Blaupause für einen Briefumschlag den nur der Besitzer des privaten Schlüssels öffnen kann. Darin können beliebige Daten abgelegt oder versendet werden, damit kann die Vertraulichkeit von Daten gesichert werden.

Je nach Verwendungszweck sind diese Schlüssel für jeden auffindbar - durch einen Namen oder sogar ergänzende Informationen wie E-Mail-Adressen, Kommentare oder Bilder gekennzeichnet - oder nur an gewünschte Kommunikationspartner übergeben.

Die tatsächliche Erkennung des Schlüssels ist jedoch über den Fingerabdruck möglich.

Web of Trust[Bearbeiten]

Das Web of Trust ist ein Netzwerk gegenseitigen Vertrauens. Es basiert auf der Annahme, dass

  1. Menschen sich über n Ecken kennen und
  2. der Aufwand zur Überprüfung von Fingerabdrücken der Schlüssel damit beherrschbarer wird
  3. Menschen ohne persönliche Bekanntschaft über gemeinsame Bekannte systematisch verifizieren können ob das Gegenüber vertrauenswürdig ist .

Diese Annahmen sind natürlich nicht immer zutreffend.

GnuPG[Bearbeiten]

Praxis mit GnuPG[Bearbeiten]

In diesem Abschnitt befinden sich Inhalte, welche noch angepasst werden müssen, da Sie auf noch nicht verfassten Inhalten basieren.

GnuPG mit GNU/Linux[Bearbeiten]

Einen guten Start bieten die Seiten zur Erklärung:

man gpg
gpg --help
Einstellungen zu GnuPG[Bearbeiten]

Für Einstellungen des Nutzers sollte die Datei ~/.gnupg/gpg.conf unbedingt selbst bearbeitet werden.

Näheres auf Empfehlung von riseup

Schlüssel erstellen[Bearbeiten]
Basics[Bearbeiten]

Auf der Kommandozeile mit GnuPG sieht das dann so aus:

  1. gpg --gen-key
  2. 1
  3. 4096
  4. 1y
  5. j
  6. (irgend)ein Name (z.B. der Nutzer-Anteil der Email-Adresse)
  7. mailadresse@fakultativ.foo
  8. Kommentare sind oft unsinn
  9. F
  10. Das sichere Passwort
  11. Das sichere Passwort
  12. warten auf Zufallswerte, geht schneller wenn man nebenbei an dem Rechner arbeitet oder spezielle Hardware dafür hat
Mit Enigmail (in Thunderbird etc)[Bearbeiten]
Ambitioniert[Bearbeiten]

tbc: mit gesondertem Schlüssel zum Wiederrufen

Kinderleicht[Bearbeiten]

Der Schwierigkeitsgrad der Handhabung ist eine Frage der Sicherheit. Je einfacher das System ist, desto weniger Sicherheitsmaßnahmen (technisch, organisatorisch) können angewendet werden.

Dennoch macht es Sinn auch ohne große Sicherheitsvorkehrungen Kryptografie zu verwenden, ein gutes Beispiel hierfür ist p≡p (noch im Crowdfunding).

Private Schlüssel auflisten[Bearbeiten]

Wenn man wissen will, welche privaten Schlüssel dem Nutzer bereitstehen oder ggf. noch importiert werden müssen:

gpg -K


Wiederrufszertifikat erstellen[Bearbeiten]

tbc ...

Wiederrufszertifikat benutzen[Bearbeiten]
Schlüssel von Kommunikationspartnern suchen/importieren[Bearbeiten]
aus einer Datei[Bearbeiten]
gpg --import ${datei}
von einem Server[Bearbeiten]

Schlüssel können auf zwei Arten von Keyservern importiert werden

gpg --search-keys ${emailadresse}
gpg --recv-key ${key-id}
Schlüsseln von Kommunikationspartnern vertrauen - lokal signieren[Bearbeiten]
lokal signieren mit lsign - lokale Signaturen werden nicht auf Server übertragen

Statt lsign kann auch sign verwendet werden, aber diese Signatur wird dann ggf. öffentlich. Dies kann im Sinne des WoT aber auch gewollt sein.

  1. $gpg --edit-key ${key-id oder bestandteil von email bzw. name}
  2. >help
  3. >trust
  4. ?3
  5. >lsign
  6. ?j
  7. :${Das geheime Passwort}
  8. save
(Öffentlich) Signieren[Bearbeiten]

Auch hier wird dem Schlüssel Vertrauen verliehen, aber dies ggf. öffentlich.

Daher sollte hier auch sorgfältig geprüft werden, ob die Person zu dem Schlüssel gehört den man gerade unterschreiben möchte.

  1. Dazu eignet sich grundsätzlich mindestens der Fingerprint und ggf. die anderen Eigenschaften des Schlüssel
    gpg --fingerprint ${key-id oder ein bestandteil von name oder mail-adresse}

Dieser angezeigte Fingerprint sollte mit der Angabe der Person (z.B. vorgelesen, abgedruckt auf einer Visitenkarte etc.) verglichen werden!
Zusätzliche Eigenschaften wie Algorithmus und Schlüssellänge sollten auch übereinstimmen, gerade ungewöhnliche Schlüssellängen könnten sogar ein Hinweis auf einen gefälschten Schlüssel (forget key) sein.

Der Rest ist einfach; s.o., verwende sign statt lsign.

Schlüssel an Server senden[Bearbeiten]
gpg --send-keys ${liste von schlüssel-ids}
Signatur einer Nachricht überprüfen[Bearbeiten]
eine Nachricht verschlüsseln[Bearbeiten]
eine Nachricht entschlüsseln[Bearbeiten]

GnuPG mit Windows[Bearbeiten]

mit gpg4win[Bearbeiten]
z.B. für Outlook

Siehe auch[Bearbeiten]

Etwas detaillierter bieten andere Quellen Aufklärung:

Technische Hintergründe zu und geschichtliche Entwicklung von Verschlüsselungstechniken