GnuPG-Verschlüsselung erklärt

(Last Updated On: 24. April 2015)

dieser Post ist noch in Arbeit…

GnuPG ist eine Verschlüsselungssoftware, die unter Anderem verwendet wir zur:

  • Verschlüsselung von E-Mail-Nachrichten und Authentifzierung des Absenders (nur die Nachricht für die verschlüsselung des Mailverkehrs ist hingegen SSL oder TLS zuständig)
  • Authentifizierung und Zugriff auf Linux-Paketquellen

die Technischen Grundlagen

Verschlüsselung von Daten funktioniert zunächst einmal so, dass Nachrichten mit einem bestimmten Schlüssel verändert werden, so dass nur derjenige, der den Schlüssel besitzt, diese wieder entschklüsseln und somit im klartext lesen kann. Jeder, der die Nachricht ohne den Schlüssel zu lesen versucht, liest nur unverständliches Wirrwarr.

Dabei gibt es grundsätzlcih zwei Verfahren. Bei der symmetrischen Verschlüsselung benutzt man zum Verschlüsseln und zum Entschlüsseln von Daten den gleichen Schlüssel. Dieses Verfahren sit also vergleichbar mit einer tür zu einem Raum und dem passenden Schlüssel. Jemand ohne Schlüssel sieht nur die Tür und kann mti dem raum nichts anfangen. Nur wer einen baugleichen Schlüssel hat zu dem, mit dem die Tür zuvor verschlossen wurde, kann in den raum reinsehen.

Dabei gibt es grundsätzlich zwei PRobleme

  • wenn Ihnen der „Abschließer“ der Tür erlauben will, die Tür zu dem Raum zu öffnen, muss er Ihnen den Schlüssel auf sicherem Wege zustellen. In der Realität wären hier Probleme, dass er Ihnen den Schlüssel also nicht einfach unter die matratze legen oder ihn per Post verschicken kann, da er in beiden Szenarien verloren gehen könnte. Im Bezug auf Daten müssen Sie den Schlüssel irgendwo sicher an den empfänger der Daten übermittlen, damit er diese lesen kann. Wenn Sie den Schlüssel dabei beispielsweise über E-Mail verschicken, kann der systemadministrator des Postfachs den Schlüssel mitlesen – und wenn sogar ein unverschüsseltes Protokoll zum senden oder empfangen genutzt wird, kann sogar jemand, der das Netzwerk abhört, das Passwort im klartext lesen. Schicken Sei den Schlüssel beispielsweise über Skype, könnte jemand beispielsweise den Schlüssel abfangen, der Systemadministrator eines Messaging-Servers könnte zugucken und jemand der ihrem partner über die schulter guckt oder an seinen nicht-gesperrten Arbeitsplatz geht, könnte den Schlüssel abfangen.
  • Desweiterne bneötigt amn für jeden Kommuniklationsweg einen eigenen Schlüssel, da ja der eine Kommunikationspartner mit seinem Schlüssel nicht die Daten des anderen Kommunikationspartners sehen können soll. Das heißt: Wenn Sie als Vermieter einem Mieter einen Schlüssel geben, soll der ja mit diesem Schlüssel nicht in die Wohnung eines anderen mieters können.

Deswegen wird in vielen Fällen das asymmetrische Verfahren genutzt. Es werden hierbei zwei schlüssel verwendet, die durch einen mathematischen Algorithmus zueinander in Beziehung stehen. Da dieser amthemtaische algorithmus bekannt ist, muss man auch heir minimum einen geheimen schlüssel haben, den man nicht öffentlich teilen darf. Beim asymmetrischen Verfahren gibt es zwein SChlüssel – einen öffentlichen Schlüssel und einen privaten Schlüssel. Das asymmetrische Verfahren können Sie sich so vorstellen: der öffentliche Schlüssel ist ein Bügelschloss, welches Sie an Ihre kommunikationspartner ausgeben (aber nicht den Schlüssel dazu), damit diese Daten, die diese an Sie senden wollen, mit diesem Bügelschloss verschlüsseln können, indem Sie es zuschnappen lassen. Öffnen können das Bügelschloss nach der Verschlüsselung nur noch Sie selbst mit ihrem privaten Schlüssel, der in das Bügelschloss rein passt. Dabei können Sie den öffentlichen Schlüssel in aller Öffentlichkeit rausposaunen und auch auf unsicherem Wege teilen, da es kein Problem darstellt, wenn irgendjemand das Bügelschloss in die hände kriegt – denn das einzige was er damit machen kann ist, Daten abzuschließen – anstatt sie zu öffnen. Dies hat die beiden Vorteile:

  • Sie können den Schlüssel auf einem nicht-geheimen Weg einfach verbreiten. Sie könnten ihn beispielsweise ohne Bedenken als Anhang zu einer unverschlüsselten e-Mail senden – oder Sie könnten ihn auf Ihrer Website als Download anbieten
  • Für jeden ihrer kommunikationspartner brauchen Sie nur diesen einen öffentlichen Schlüssel, den Sie diesen zur Verfügung stellen müssen. Alle partner können sich den schlüssel beispielsweise von Ihrer WEbsite herunterladen und damit die an Sei gerichteten Daten damit verschülsseln. Insgesamt gerechnet brauchen alel kommunikationspartner weniger Schlüssel als beim symmetrischen Weg.

Der nachteil der asymmetrischen Verschlüsselung ist, dass es im Gegensatz zum symmetrischen Verfahren sehr rechenaufwendig ist. Deswegen werden mit dem asymmetrischen Verfahren meist nur Daten vershlüsselt, die nicht sofort zur Verfügung stehen müssen. Live-Daten, die schnell betrachtet werden müssen, also beispielsweise Chat-Gespräche, Websiten usw. – werden hingegen symmetrisch verschlüsselt

 

Neben diesen beiden Verfahren gibt es ein hybridges Verfahren. Bei diesem Hyridverfahren wird eigentlich das asymmetrische Verfahren verwendet. Die Daten selbst werden jedoch symmetrisch verschlüsselt, indme intern ein „Einweg-Schlüssel“ erwendet wird. Mit diesem symmetrischen Schlüssel wird zunächst die anchirhct verschlüsselt. dieser symmetrische schlüssel wird nun mit dem assymmetrischen öffentlichen schlüssel wiederum verschlüsselt und abgesichert. Die Entschlüsselung des symmetrischen Schlüssel braucht wesentlicher Zeit und Rechenpower als die asymmetrische Versclüsselung der kompletten Nachricht. der jetzt asymmetrisch gesicherte symmetrische schlüssel wird dann zusammen mit der über den symmetrisch gesicherten anchricht versandt. Der empfänger nutzt seinen privaten Schlüssekl, um zugang zum symmetrischen Schlüssel zu erlangen, und kann damit die symmetrisch verschlüsselte Nachricht entschlüsseln. somit kann asymmetrischer schlüsselaustausch stattfinden und dennoch eine schnelle Bereitstellung der klartextdaten beim Empfänger gewährleistet werden.

GnuPG nutzt stnadardmäßig diese hybridge Verschlüsselung, bei der wie beschrieben der asymmetrische Schlüsselaustausch im Vordergrudn steht. Alternativ untersüttzt GnuPG auch eine rein symmetrische verschlüsselung, die jedoch nur in sehr seltenen Fällen durch gesonderte Konfiguration verwendet wird. In diesem Fall einigen sich beide kommunikationspartner wie bei der symmetrischen Verschlüsselung üblich im Vorfeld auf einen symmetrischen schlüssel, beispielsweise also ein Passwort.

Authentifizierung und sichere Kanäle

Bisher haben wir lediglich Verafhren kennengelernt, mit dem wir unsere Daten und anchrihcte verschlüsseln können. Doch wie könnenw ir sicher sein, dass ein öffentlicher schlüssel wirklcih zu einer bestimmten Person gehört? Der empfänger usnerre nachricht könnte beispielsweise seinen öffentlichen Schlüssel auf seiner Website zum download zur Verfügung stellen. Woher wissen wir denn, dass nicht ein Hacker einen manipulierten öffentlichen Schlüssel stattdessen hochgeladen hat, wozu dieser das Kennwort kennt? der hacker braucht dann im Anschluss nr noch beispielsweise die mit diesem öffentlichen schlüssel verschlüsselte Nachricht abfangen oder mithören und kann diese dannim Klartext lesen. Deswegen brauchen wir neben einer Maßnhame zur Verschlüsselung der Nachrichten auch eine Maßnahme zur Verfiizierung und Authentfiizierung des Schlüsselausstellers.

Nachdem sich der Asbender den föfentlichen Schlüssel des empfängers geholt hat, muss er sicherstellen, dass A auch wirklich diesen Schlüssel ausgestellt hat. Jeder Schlüssel aht deshalb eine ID, eine unverwechselbare Kennung. diese Kennung ist etwas um die 40 Zeichen lang und lässt sich beispielsweise vorlesen, Sie könne die vorgelesene Kennung mit der Kennung des Schlüssels vergleichen. Bei ener digitalen Übermittlung dieses fingerabdrucks beispeilsweise per E-Mail könnte Ihnen jedoch ein Hacker erneut einen falschen Fingerabdruck unterjubeln. Daher muss zur Übermittlung des fingersabdrucks ein sicherer aknal genutzt werden, der nicht manipuliert werden kann. Nicht manipuliert heßit aber nicht, dass dieser Kanal geheim sein muss. Jeder darf theoretisch zuhören, wenn der empfänger dem Absender den Fingerabdruck seines öffentlichen Schlüssels vorliest – die Zuhörer können nichts damit anfangen.

Solche sichere Kanäle sind beispielsweise direkter Kontakt von Auge zu Auge oder ein Telefonat, wenn die Stimme des Empfängers beaknnt ist. ÄIst ein direkter Kontakt nicht möglich,

Was Sie aber später noch lernen werden, ist, dass wenn Sie einen öffentlichen Schlüssel an viele viele Nutzer schicken wollen, Sie beispielsweise einen öffentlichen Keyserver nutzen werden. Auf einem solchen Keyserver können Nutzer nach einem Schlüssel suchen, der zu Ihnen gehört. Hier ist es natürlich ein Einfaches, das jemand Anderes einen Schlüssel auf den Keyserver hochlädt und behauptet, dies wäre Ihr öffentlicher Schlssel.

Deshalb lässt amn solche Schlüssel in öffentlichen Kanälen von Drittparteien signieren – sogenanten Certificate Authorities (CAs). Diese stellen Zertifikate aus, die bescheinigen, dass der öffentliche Schlüssel wirklich vom empfänger einer Nachricht stammt. Dazu muss der empfänger einer nachricht be dieser CA einen Antrag stellen, in dem er seinen öffentlichen SChlüssel einreicht und sich dabei ausweist. Wenn Sie als Absender dann den föfentlichen Schlüssel runterladen, können Sie bei der CA prüfen, ob dieser öffentliche Schlüssel wirklich vom Aussteller/Empfänger stammt. Eine solche hierarchie finden Sie beispielsweise der OpenSSL-Signierung von symmetrischen SSL-schlüsseln.

Das OpenPGP-System benutzt ein ähnliches hierarchisches System zur Authentifzierung von Schlüsseln, welches sich web of Trust nennt. hierbei signieren jedoch keine öffentlich anekrannten CAs den Schlüssel, sondern hier signiert Benutzer A den Schlüssel von Benutzer B. Dabei muss man zuvorderst sicherstellen, dass Benutzer A vertrauenswürdig ist. Jeder kann im Web of Trust den Schlüssel eines anderen Benutzers als vertrauenswürdig einstufen. Hierbei muss jeder Benutzer für sich selsbt entschieden, ob die Einstufungen der anderen Benutzer vertrauenswürdig sind. Theoretisch gilt: Je seriöser ein Anbieter von öffentlichen Schlüsseln ist,d esto mehr positive Bewertungen von anderen Nutzern wird er bekommen. Ein guter Anhalt für die Authentifzhierung des Schlüssels von Benutzer B ist also, wie viel andere Benutzer die Vertrauenswürdigkeit der Schlüssel von Benutzer B bisher bestätigt haben.

Desweiteren muss sichergestellt werden, dass falls mal jemand Ihren geheimen SChlüssel klaut, weil er sich beispielsweise in IHren Computer gehackt hat – Sie die Vertrauenswürdigkeit von Schlüsseln, die Sei auf einem Keyserver hochgeladen haben, selber widerrufen können. d:eswegen werden sie im praxisteil lernen, wie Sie ein Widerrufszertifikat erstellen, mit dem Sie die gültigkeit eines Schlüssels so widerrufen können, dass alle Benutzer ihres öffentlichen Schlüssels Wind davon bekommen. dieses Widerrufszertifikat müssen Sei aber genau so sensibel behandeln wie ihren geheimen Schlüssel, da bei Diebstahl des Widerrufszertifikats ein Internet-Troll Ihre Zertifikat ungültig machen kann. Sie sollten das Widerrufszertifikat zusätzlich getrennt vom geheimen Schlüssel aufbewahren.

Installation und Anwendung unter Linux

sudo apt-get install gnupg-doc

Sie können in GnuPG Schlüssel erzeugen und Schlüssel verwalten – sowohl eigene als auch remde.

Grafische Schlüsselverwaltungstools

Seahorse

seahorse ist das grafische Schlüsselverwlatungstool unter gnome/Unity.

KGpq

GBA

ist ein grafisches Schlüsselverwaltungstool sowohl für KDe als auch für Gnome.

Schlüssel manuell über die Konsole pflegen

GnuPG speichert alle Schlüssel, die man mit der Zeit sammelt, an einem Schlüsselbund. Dieser befindet sich im Verzeichnis ~/.gnupg/. dabei handelt es sich um zwei Dateien. Die eine Datei secring.gpg enthält alle eigenen geheimen Schlüssel, und die pubring.gpg enthält alle öffentlichen Schlüssel – sowohl die eigenen als auch die Schülssel der kommunikationspartner.

 

Als erste lernen wir, wie wir die bereits bestehenden Schlüssel an unserem Schlüsselbund auflisten.  für die geheimen Schlüssel

gpg --list-secret-keys
#oder
gpg -K

Für die öffentlichen SChlüssel

gpg --list-keys
gpg -k

Wichtige information bei den ekys ist immer die Key-ID.

Jetzt lernen wir,w ie man sich den unverwechselbaren Fingerprint eines Schlüssels anzeigen lassen kann, mit dem wir sicherstellen können, dass der Schlüssel zu unserem kommunikationspartner gehört.

gpg --finterprint <Id oder anme des Schlüssels>

die Ausgbae sitin der Regel eine vierzig zeichen lange ausgabe unterteilt in Blöcken von 4 Zeichen.

Mit dem foglenden Befehl kann der fingerprint einer Schlüsseldatei angezegit werden ohne diese vorher in den Schlüsselbund imporiteren zu müssen

gpg --with-finterprint <Pfad zur Schlüsseldatei>

sie können mit GnuPG ein neues schlüsselpaar aus privatem und öffentlicem Schlüssel erzeugen.

gpg --gen-key

Dabei ist RSA eigentlich immer die richtige wahl. Als länge empfehlen Sicherheitsexperten minimum 3072 bits. Bei der gültigkeit gibt man in der Regel einen angemessensen Wert zwischen 1 und 5 Jahren ein

Zum Schluss geben Sei noch Namen und E-mail ein, für die der schlüssel gelten soll. Wenn Sie mit dem selben Schlüssel mehrere E-Mail-Adressen bestücken wollen, müssen Sie nach der fertigen Erstellung des Keys noch

gpg --edit-key <Schlüssel-ID des neuen Keys>
Befehl>adduid

angeben, um im folgenden dialog weitere Identitäten / E-maisl agneben zu können. Jede identität bestätigen Sie mit der F-Taste, danach müssen Sie wieder adduid für eine weitere Identität ausführen. Zum Schluss speichern Sei die neuen IDentitäten mit

Befehl>save

sie bruachen dann noch eine Passphrase, mti der sei ihren geheimen Schlüssel vor unberechtigtem Zugriff schützen können. Nur mit dieser Passphrase können Sie sptäer beispieslweise e-maisl signieren.

die Schlüssel liegen nun jeweils in ~/.gnupg als secring.gpg

Jetzt müssen Sei den öffentlichen Schlüssel veröffentlichen. als erstes müssen Sie den föfentlichen Schlüssel als Datei aus dem Schlüsselbund exportieren, damit Sie diese Datei irgendwie veröfefntlichen oder verschicen können.

gpg -a --output <Dateiname des öffentlcihen Schlüssels>.asc --export [optional Schlüssel-ID oder Name]

 

Der schlüssel sit jetzt als <Dateiname>.asc extrahiert und kann von Ihnen veröffentlicht werden. am einfachsten wäre es, sie laden ihn beispeislweise auf eine website hoch oder verschiekn ihn per E-Mail. Wenn Sie den key einer großen Anzahl von Leuten zugänglich machen wollen, emfpiehlt es sich, den Schlüssel auf einen Keyserver hochzuladen, wo Leute nach Schülsseln von ihnen suchen können. mögliche keyserver sind etwa subkeys.pgp.net, wwwkeys.eu.pgp.net, pgp.mit.edu. Es ist egal, auf welchen Server man den eky hochlädt, da diese sich untereinander synchronisieren. ein einmal hochgeladener Schlüssel kann nicht mehr entfert werden. Es kann außerdem sein, dass Sei an dei angegeben E-Mail-Adresse Spam-Maisl bekommen.

Einen bevorzugten ekyserver können sei in der Datei ~/.gnupg/gpg.conf angeben.

keyserver <SERVERNAME>

Das hochladen eines öffentlichen Schlüssels geht über

gpg --send-key <Eigene Key-ID öffentlicher Schlüssel>

Ebenso das Suchen nach einem fremden öffentlichen Schlüssel

gpg --search-keys "<Vorname Nachname>"

einen fremden Schülssel lädt man mit folgendem Befehl herunter

gpg --recv-keys <Key-ID>

schlüssel können sich mit der Zeit ändern, etwa weil Sie widerrufen werden (siehe weiter unten). Um einen Schlüssel im eigenen Schlüsselring auf den neuestne stand zu brignen nutzt man

gpg --refresh-keys [optional Key-ID]

Wenn Sie einen öffentlichen Schlüssel einer großen Anzahl von leuten über einen Keyserver zur Verüfgung stellen, gibt es keine Möglichkeit ihrerseits, festzustellen, wer genau jetzt den föfentlichen Schlüssel heruntergeladen hat. Deshalb wissen Sie auch nicht genau, wen Sei informieren müssen, falls Ihr geheimer schlüssel geklaut und geknackt wird – denn dann ist ja eine sichere übertragung über diesen öffentlcihen Schlüssel nicht mehr gewährleistet.

Damit Sie dennoch die Halter des öffentlichen Schlüssels vor solch einer Gefahr warnen können, müssen Sie sich ein Widerrufszertifikat generieren, mit der sie die gültigkeit des schlüssels widerrufen können.

gpg --output <Dateiname>.asc --gen-revoke <Key-ID oder Benuztername des keys>

nachdem das widerrufszertifikat erstellt wurde, sollten Sie es wegsichern udn getrennt vom geheimen Schlüssel aufbewahren – am besten als ASCII-Ausdruck auf papier.

Wenn Sie irgendwann die Vertrauenswürdigkeit Ihrer Schlüssel widerrufen wollen, müssen Sie das Widerrufszertifikat wieder in dateiform bringen und dann zunächst in Ihren Schlüsselbund aufnehmen

gpg --import <Dateiname>.asc

Jetzt sit der schlüssel bereits in ihrem lokalen Schlüsselring widerrufen, falls er dort noch liegen sollte. Das bedeutet Sie können damit schon mal nicht mehr versehentlich irgendetwas verschülsseln oder signieren. Jetzt müssen Sie den gesperrtenöffentlcihen Schlüssel an Ihre Kommunikationspartner übergeben, die sich Ihren öffentlichen SChülssel schonaml heruntergeladen haben. Dazu sollten Sie als allererstes dieses Widerrufszertifikat wieder auf einen Keyserver hochladen. Sie sollten diesen auch wieder auf Ihre Website neu hochladen usw. Entweder sieht nun ein kommunikationspartner, dass der Schlüssel aktualsiiert wurde und lädt den enuen, gesperrten Schlüssel herunter, oder er nutzt den Befehl gpg –refresh-keys und erhält somit automatisch den gesperrten Schlüssel.

Selten komtm es vor, dass Sie auch einen geheimen Schlüssel mit anderen teilen wollen, weil beispielsweise auch hire kollegen oder vertraute Personen mit dem Schlüssel arbeiten können sollen. Auch heir müssen sei den geheimen Schlüssel erst als .asc-Datei exportieren

gpg -a --output <Dateiname>.asc --export-secret-keys [optional Schlüssel-ID oder name]

Desweiteren können Sie beim Erstellen der Schlüssel eine Vertrauensstufe angben, also für wie vertrauenswürdig sie als Aussteller den Schlüssel halten. Deise information können sie exportieren über

gpg --export-ownertrust > trust.txt

Sie emrken schon, in dem Befehl kann man ekine Schlüssel-Id angeben. Deswegen wird die Ownertrust-Infomrationen zu jedem einzelnen Schülssel im Schlüsselbund exportiert. Das kann man leider nicht einschränmken.

die so erzeugte Ownertrust-Datei aknn man auf dem anderen Rechner mit

gpg --import-ownertrust < trust.txt

wieder importieren.

Jetzt, da sie wissen, wie man einen Schlüssel erstellt und veröffentlicht, müssen Sie lernen, wie man die Schlüssel von anderen importiert. Auf keinen Fall sollten Sie hierbei ungeprüfte schlüssel verwenden. Ihnen muss irgendwie auf einem sicheren Kanal vom eindeutig identifizierten Aussteller des Schlüssels ein Fingerprint büermittelt worden sein. Diesen prüfen sie jetzt mit dem Fingerprint des von Ihnen heruntergeladenen Schlüssels.

gpg --with-fingerprint <Pfad zur Shlüsseldatei>

Wenn der fingerprint in ordnung ist, importieren sie den Schlüssel

gpg --import <Pfad zur Schülsseldatei>

Wenn Sie einen Schlüssel über eine öffentliche Quelle, wie beispielsweise von einem Key-Server, heruntergeladen haben, können Sie trotz richtigem Fingerprint nicht sicher sein, dass der schlüsseö wirklich von der entsprechenden Person kommt. Denn ein Cyberpunk könnte den Key und den zugehörigen Fingerprint auf den Serer hochgeladen haben und behaupten, der Key sowie der fingerprint gehörten zur entsprechenden Person.

Deswegen gibt es da im Theoreitel bereits angesprochene Web of Trust. Hierbei soll durch die Reputation einer community so weit wie möglich (aber leider nie wirklich 100%ig) die Vertrauenswürdigkeit eines Schlüssels sichergestellt werden.

Wenn Sie einen Schlüssel heruntergeladen haben, können Sie sich anschauen, wie viele Signings ein öffentlciher Schlüssel von der Web of trust Community hat, über

gpg --list-sigs <key-ID>

Im Gegenzug ist man als Unterzeichner von öffentlcihen Schlüsseln dazu angehalten, das Ergebnis nicht zu verfälschen und einen Schlüssel nur zuunterzeichnen, wenn man scih von der Identität des ausstellers überzeugt hat.

Wenn man nun den Key eines austellers für die Communtiy signieren möchte, kann man das so machen

gpg --edit-key <ID oder name>

hat der aussteller mehrere Benutzer-IDs im Schlüssel verwendet, aknn man druch wiederholtes Angeben der verschiedenen einstelligen Nummern die verschiedenen IDs auswählen, die amn sginieren will. Ohne angegebene ID werden alle IDs des Schlüssels signiert. Nach Asuwahl einer ID unterzeichnet man eienn SChlssel mit

Befehl>trust # Eisntufung des Schlüssels für das web of Trust
# im Folgenden Angabe der Vertrauensstufe
Befehl>sign # Unterzeichnen des Schlüssel sfür das web of Trust

Die darauffolgende sicherheitsabfrage bestätigt man mit y und speichert die Änderung mit

Befehl>save

Der unterzeichnete key muss nun entweder an einen Keyserver geschickt werden

gpg --send-key <ID>

oder man mailt den unterzeichneten Key verschlüsselt an die in der UId angegebene Mailadresse

gpg --export AABBCCDD | gpg --encrypt -a --recipient AABBCCDD - | mutt -s "Dein signierter Key" test@beispiel.de

Der empfägner kann den Schlüssel dann selbst importieren und die neue Signatur an den EKyserver schicken mit

gpg --decrypt <Datei-mit-Key | gpg --import
gpg --send-key AABBCCDD

 

 

Dateien über GnuPG verschlüsseln

Unter Linux

grafisch

Beispielhaft unter Ubuntu. Wir starten die Synaptic-Paketverwaltung und installieren seahorse sowie die seahorse-plugins.

Nach der installation melden Sie sich kurz ab und wieder an.

Jetzt könne sie im grafischen Dateibrowser auf eien beliebgie Datei rechtsklicken und Verschlüsseln auswählen. Wählen sie den öffentlichen Schlüssel desjenigen aus, dem Sie die Datei zuschicken wollen. Wie Sie den Schlüssel importieren, haben wri ja in der Überschirft Verwendung unter Windows gezeigt. Sie erhalten eine Kopie der Datei mit der zusatzendung .gpg. Diese Datei verschicken Sie. Die kann der empfänger dann mit seinem privaten Schlüssel entschlüsseln.

Entschlüsseln können sie eine an Sie geschickte datei einfach über rechtsklick / Mit Datei entschlüsseln öffnen.

Konsole

Im folgenden verschlüsseln wir die Datei test.txt. dazu legen wir zuvor eien sicherheitskopie der test.txt an

cp test.txt test.txt.bak
gpg --encrypt -a --recipient <Name oder Key-ID öffentlicher Schlüssel des Empfängers> test.txt

Nur der Herausgeber des öffentlichen Schlüssels kann jetzt die Datei noch öffnen. Wenn man selbst nicht im Besitz dieses öffentlichen Schlüssels ist, kann man die datie so nicht öffnen. Sie können entweder eine unverschlsüselte Version der Datei behalten oder zusätzlich die Datei mit einem eigenen öffentlichen Schlüssel encrypten. Das ginge folgendermaßen in einem Rutsch:

gpg --encrypt -a --recipient <Name oder Key-ID öffentlicher Schlüssel des Empfängers> --recipient <Name oder Key-Id Ihres eigenen öffentlichen Schlüssels> test.txt

Wir haben die Option -a gewählt, weil wir die datei büer das Netz verschicken wollen. Wenn Sie hingegen eine große Datei mit Ihrem eigenen Schlüssel verschlüsseln und auf der festplatte speichern wollen, empfehlen wir das Weglassen der -a Option. -a oder auch –armor speichert eine Datei im ASCI-Armor Format speichert die datei in einer Form, die aus druckbaren Zeicehn besteht. dadurch sit sie besser zur übertragung überdas Internet geeignet. Wenn Sie –armor weglassen, wir die Datei im Binärformat gespeichert, was 33 Proznet speicherplatz spart und daher plattenspeicherreundlicher ist.

Wenn Sie eine verschlüsselte datei zugeschickt bekommen, die mit ihrem öffentlichen Schlüssel verschlüselt wurd,e können Sie die Datei wieder entschlüsseln

gpg --decrypt --output entschluesselte_datei.txt test.txt.asc

Wir haben jetzt zwar die Dateien verschlüsselt und entschlüsselt – aber es gibt noch kenen Beweis dafür, dass die Dateien von uns sind. Aus diesem Grund bietet GnuPG die möglichkeit, Dateien zu signieren.

Das geht so

gpg --detach-sign -a test.txt --local-user <Schlüssel zum Verschülsseln der Datei>

Nun müssen Sie die Passphrase Ihres geheimen Schlüssels eingeben, daraufhin erahtlen Sei die Datei test.txt.asc. Diese enthält eine digitale signatur der Originaldatei, mti der sich die Atuhentizität beweisen lässt. Diese Datei enthält nicht die UIrsprungsdatei. Sie müssen die test.txt-Datei zusmamen mit der test.txt.asc-Datei zum Dwonloda anbieten. Interessierte Nutzer können dann die test.txt.asc-datei mit herunterladen und somit die echtzeit überprüfen.

sie können eine test.txt.asc mit oriignaldatei verschicken, indem sie die Option -b verwenden. Dann muss der Nutzer aber die Originaldatei herausfrickeln, um sie verwenden zu können.

Hat nun ihr Benutzer die Datei + Signatur geladen, kann er die sgiantur gegenprüfen

gpg --verify <signaturedatei>.asc <geladene Datei>

zusätzlich muss der öffentliche Schlüssel des Absenders im Schlüsselbund hbaen.

unter Windows

sie installieren gpg4win und installieren es. melden sie sich ab und wieder an. sie können ab jetzt auf beliebige Dateien rechtsklicken und im Kontextmenü signieren und verschlüsseln auswählen. Sie müssen den öffentlichen Schlüssel des empfängers auswählen, an den Sie die Datei verschicken wollen. sie erhalten wieder eien Kopie der Datei mit Zusatzendung .gpp, die nun verschlüsselt ist. Diese Datei schicken Sei nun an den Empfänger.

eine Datei, die verschlüsselt und an Sie geschickt wurde, rechtsklicken Sie und wählen Entschlüsseln und überprüfen. Wählen Sie im nächsten Fenster Entschlüsseln und Prüfen aus. Nun haben sie die entschülsselte datei im Ordner.

Installation und anwendung unter Windows

Schlüssel erzeugen

Schlüssel auf einen Keyserver hochladen

Im OpenPGP Schlüssel verwalten Menü rechtsklicken sie Ihren Schlüssel und wählen Auf Schlüssel-Server hochladen. sie geben die Adresse eines Schlüsselservers ein, etwa pgp.mit.edu. sie drücken erst auf OK, dann auf Abbrechen. Erst jetzt wird hochgeladen.

Öffentliche Schlüssel von anderen einpflegen

ist der Schlüssel auf einem Schlsüselserver hochgeladen, können Sie im openPGP-Schlsüselverwaltungstool unter Schlüssel-Server / Nach schlüssel suchen nach dem Namen des Schlüssels aufd em entsprehcenden Server suchen. Wählen sie auch heir erst OK, später Abbrechen. Wählen Sie den gefunden Schlüssel aus und laden ihn herunter.

E-Mails mit GnuPG signieren und verschlüsseln

Um E-maisl mit GnuPG signieren oder verschlüsseln zu können, benötigt man ein eigenes Schlüsselpaar. Dabei wird ein öffentlciher Schlüssel erstellt, den man ohne Bedenken öffentlich teilen kann (mit diesem Schlüssel werden Nachrichten an den empfänger, also an Sie, verschlüsselt), und ein privater Schlüssel, den man privat halten muss (mit diesem Nachricht werden an Sie gesendete und mit dem föfentlichen Schlüssel versiegelte Nachrichten wieder entschlüsselt). Der öffentliche Schlüssel ist das Bügelschloss, der private Schlüssel ist der Schlüssel für dieses schloss.

Unter Windows

Unter windows installieren sie das programm Gpg4win. Einfach durhcinstallieren.

Mozilla Thunderbird

Im thunderbird gehen sie auf Extras / addons und installieren das addon Enigmail. In den einstellungen von gpg4win und danach in enigmail legen sie die Pfade zur gpg.exe fest.

Jetzt erstellen wir einen privaten Schülssel für uns und klciekn dazu im thunrebrid auf OpenPGP / Schlüssel verwalten / erzeugen / Neues Schlüsselpaar. Sie können beim Erzueugen des privaten Schlüssels den Haken keine Passphrase anhaken und das Kommentar kein Passwort löschen, wenn Sie sicher sind, dass Sie – und nur Sie – an dem Rechner sitzen, von welchem Sie aus E-Mails, die mit ihrem öffentlichen Schlüssel verschlüsselt wurden, gelesen werden. die Passphrase ist nämlich die Passphrase, mit dem sie ihren privaten Schlüssel sichern, also den sie eingeben müssen, wenn Sie diesen PGP-Schlüssel in ein neue Installation von mozilla Thunderbird einspeisen wollen, damit sie mit diesem Nachrichten entschlüsseln können, die über ihren öffentlichen Schlsüsel verschlsüselt und an Sie geschickt wurden. Wenn Sei ejdoch den Rechner mit anderen Personen teilen und nicht wollen, dass die anderen personen am Rechner ihre mails lesen können, dann vergeben Sie eine Passphrase. Aktivieren sie den Haken bei Schülssel läuft nie ab und klciekn dann auf schlüsselpfad erzeugen. Danach wählen Sie noch Zertifikat erzeugen. Das zertifikat ist ihr Widerrufszertifikat. Speichern Sie das zertifikat als .rev-Datei irgendwo ab. Dergeschlossene Schlüssel ist nun in der openPGP-Übersicht sichtbar.  Den Schlüssel können Sie sich wegsichern, indem sie ihn im Schlüssel verwalten-Menü rehtscklicken und In datei exporiteren wählen.

Jetzt müssen Sie noch ihren kommunikationspartnern Ihren öffentlichen Schlüssel mitteilen. sie können beispieslweise im thunderbird eine neue E-Mail erstellen und dann im Menü unter openPGP / meinen föfentlichen Schlüssel anhängen diesen als Anhang mitsenden. Wenn Sie jetzt aufgefordert werden, eine Empfägnerregel anzgueben, klicken Sie diese einfach noch mit OK weg.

Alternativ können Sie, wenn Sie den Schlüssel von einem Kommunikationspartner als E-Mail-Anhang bekommen haben, auf das Anhangssymbol rechtsklicken und OpenPGP-Schlüssel importieren wählen.

Wenn Sie den Schlüssel importiert haben, müssen Sie dem Schlüssel noch vertrauen. Dazu msüsen Sie erstmal sichergehen, dass der Schlüssel auch wirklich von Ihrem kommunikationspartner stammt. Dem müssen Sie entweder blind vertrauen, oder Ihr Partner hat ihnen den fingerprint auf einem sicheren Weg zuvor mitgeteilt.Dazu im Thunderbird auf OpenPGP / Schlüssel verwlaten / Standardmäßiga lle Schlüssel anzeigen / Öffentlichen Schlüssel des Partners anweählen / Rechtsklick / Besitzervertrauen festlegen / Ich vertraue ihm absolut.

Wenn Sie jetzt einen öffentlichen Schlüssel von einem anderen kommunikationspartner importiert haben und nachrichten an diesen Partner mti dessen öffentlichen Schlüssel verschlüsseln möchten, dann müssen Sie für diesen Empfänger eine sogenannte OpenPGP-Empf#ängerregel erstellen, in deR sie den öffentlichen schlüssel des Empfängers hinterlegen. dort können Sie dann mit der option folgenden Schlüssel verwenden den Schlüssel angeben, mit dem sie künftig verschlüsseln wollen. es macht sinn, einzustellen, dass die E-Mails an diesen Empfänger in zukunft immer verschlüsselt werden.

Wenn Sie jetzt eine verschlüsselte e-Mail an einen Kommunikationspartner schicekn wollen, dann schreiben Sie die E-Mail und wählen dann OpenPGP / Nachricht verschlüsseln. Wenn der haken dran ist und unten rechts der Schlüssel hell ist, passt alles. Beim Abschicken werden sie jetzt evtl. aufgefordert, eine Empfängerregel einzustellen, falls diese noch nicht erstellt wurde. Dort wählen Sie auch den Schlüssel aus, mit dem die nachricht verschlüsselt werden soll. Gehen Sei dazu auf Auswählen… und wählen Sie den öffentlichen Schlüssel des empfängers aus.

Jetzt kann der empfänger ihrer E-mail aber noch nicht sicher sein, dass die E-Mail wirklcih von ihnen ist, obwohl Sie mit seinem öffentlichen Schlüssel signiert wurde. Deswegen sollten Sie die E-Mail zusätzlich noch signieren. Wenn der Empfänger zuvor IHREN öffentlichen Schlüssel von Ihnen bekommen hat, können Sie mit ihrem privaten Schlsüsel diese Nachricht über OpenPGP / Nachricht unterschreiben signieren. Wenn der empfänger Ihren öffentlichen Schlüssel hat, kann er die Signatur ihres privaten Schlüssels überprüfen und somti sicher sein, dass die Nachricht wirklich von Ihnen ist – da nur Sie selbst über den privaten Schlüssel verfügen können.

Verschlüsselte E-Mails, die an Sie geschickt werden, werden automatisch entschlüsselt, wenn ihr privater schlüssel in das mailrpogramm zuvor eingepflegt wurde – was wir ja gemacht haben.

Zunächst einmal wollen wir testen, ob eine e-Mail-Verschlüsselung klappt. Einen guten Service zum test bietet das Gnu Privacy Project den dienst Adele an, mit dem man eine unverschlüsselte E-M;ail mit dem eigenen öffentlichen Schlüssel an adele@gnupp.de senden kann. Der Betreff sollte „mein öffentlicher Schlüssel“ lauten. Adele antwortet dann mti einer verschlüsselten E-Mail, die wir dann mit unserem geheimen Schlüssel entschlüsseln können.

adele schickt außerdem seinen öffentlchen Schlüssel mit Namen adele_public_key.asc zurück, mit dem wir unsererseits jetzt eine verschlüsselte mail an adele senden können.

Texte verschlüsseln

Mit dem Tool xsel können beliebige Teste ver-/entschlüsselt werden im Folgenden hier Skripte, die sie nach dem Kopieren eiens textes in die Zwsicenablage ausführen können, um diesen Text entweder zu verschlüsseln, zu entschlüsseln oder zu signieren. Vorher müssen die pakete gpg und xsel installiert werden. Für weitere Recherche empfehle ich wiki.ubuntuusers.de/GnuPG

sudo apt-get install xsel gpg
#!/bin/bash

# Verschlüsseln von Text.
# Erforderliche Linux Pakete: gpg, xsel

usage()
{
cat << EOF
usage: $0 options

Dieses Script verschlüsselt mit OpenPGP Text
in der Zwischenablage und gibt ihn in eine Datei oder die
Standardausgabe aus.

Damit die Ausgabe zusätzlich in eine Datei ausgegeben wird,
muss das Script mit der Option -o aufgerufen werden.

-m Angabe der Empfänger E-Mailadresse
EOF
}

while getopts .hom:. OPTION
do
case $OPTION in
                h)
                        usage
                        exit 1
                        ;;
                o)
                        Dateiausgabe="true"
                        ;;
m)
Mail="${OPTARG}"
;;
                ?)
                        usage
                        exit
                        ;;
        esac
done

echo "Clipboard Inhalt vor Verschlüsselung:"
echo "*************************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Mit GnuPG verschlüsseln ...:"
echo "****************************"
echo ""
xsel --clipboard | gpg --verbose --encrypt -a --recipient $Mail | xsel --clipboard

echo ""
echo ""
echo ""
echo "Clipboard Inhalt nach Verschlüsselung:"
echo "**************************************"
echo ""
xsel --clipboard
if [[ "$Dateiausgabe" == true ]]; then
xsel --clipboard > encrypted.txt
fi

# Only works with bash (and not sh):
echo ""
echo ""
echo ""
read -s -n 1 -p "Press any key to continue…"
#!/bin/bash

# Entschlüsseln von Text.
# Erforderliche Linux Pakete: gpg, xsel

usage()
{
cat << EOF
usage: $0 options

Dieses Script entschlüsselt mit OpenPGP verschlüsselten Text
in der Zwischenablage und gibt ihn in eine Datei oder die
Standardausgabe aus.

Damit die Ausgabe zusätzlich in eine Datei ausgegeben wird,
muss das Script mit der Option -o aufgerufen werden.
EOF
}

while getopts .ho. OPTION
do
case $OPTION in
h)
usage
exit 1
;;
o)
Dateiausgabe="true"
;;
?)
usage
exit
;;
esac
done

echo "Clipboard Inhalt vor Entschlüsselung:"
echo "*************************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Mit GnuPG entschlüsseln ...:"
echo "****************************"
echo ""
xsel --clipboard | gpg --verbose --decrypt -a | xsel --clipboard

echo ""
echo ""
echo ""
echo "Clipboard Inhalt nach Entschlüsselung:"
echo "**************************************"
echo ""
xsel --clipboard
if [[ "$Dateiausgabe" == true ]]; then
xsel --clipboard > decrypted.txt
fi

# Only works with bash (and not sh):
echo ""
echo ""
echo ""
read -s -n 1 -p "Press any key to continue…"
#!/bin/bash

# Signieren von Text.
# Erforderliche Linux Pakete: gpg, xsel

echo "Clipboard Inhalt vor Signierung:"
echo "********************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Mit GnuPG signieren ...:"
echo "************************"
echo ""
xsel --clipboard | gpg --clearsign --detach-sign -a | xsel --clipboard

echo ""
echo ""
echo ""
echo "Clipboard Inhalt nach Signierung:"
echo "*********************************"
echo ""
xsel --clipboard

echo ""
echo ""
echo ""
echo "Signatur prüfen ...:"
echo "************************"
echo ""
xsel --clipboard | gpg --verify -a | xsel --clipboard

# Only works with bash (and not sh):
echo ""
echo ""
echo ""
read -s -n 1 -p "Press any key to continue…"

 

 

 GnuPG im Instant Messaging verwenden

GnuPG für paketquellen verwenden

GnuPG ist eigentlich nur bei Linux verbreitet, um die Richtigkeit/Originalität von installierbaren Paketen zu verfiizieren.

Grundsätzlich ist es ja allgemein üblich, dass man die Echtheit einer Datei über eine Hashsumme der download-Datei verfiiziert.

Beispiel: microsoft stellt auf seiner Website microsoft.com ein Update zum Download bereit und schreibt auf der download-Seite den Md5-Hashwert der Datei hin. Ihr ladet euch die datei herunter und stellt mit einem Tool wie beispielsweise winmd5sum sicher, dass der MD5-hashwert dieser Datei mit dem angegeben Hashwert auf der downloadseite übereinstimmt.

diese Art der Verifikation schützt auch davor, wenn euch ein Angreifer über Manipulation eures Browsers ein falsches Update unterschieben möchte.

Diese Art der Verifizierung schützt aber NICHT davor, wenn ein Hackerdie microsoft.com-Seite hackt und eine falsche Datei inklusvie falschem Hashwert dort einpflegt.

eine sichere Variante wäre hier, sich von einer sicheren Qeulle den offiziellen öffentlichen GnuPG-Schlüssel von beispielsweise Ubuntu herunterzuladen. Wie wir wissen, funktioniert die Verifikation dabei so, dass Ubuntu als Herausgeber des öffentlichen Schlüssels ein Paket mit seinem privaten Schlüssel signiert. Wir als Besitzer des öffentlichen Schlüssels können dann im Anschluss feststellen, dass das paket mit dem privaten Schlüssel signiert wurde. da es sehr unwahrscheinlich ist, dass jemand den privaten Schlüssel von Ubuntu kompromittiert hat (und selbst wenn, hätte Ubuntu den privaten Schlüssel mit dem Widerrufszertifikat noch widderufen können, sodass wir das mitbekommen). So können wir sicher gehen, dass das paket echt ist. die meisten paketverwaltungen amchen es sogar so, dass wenn ein Paket nicht mitn dem offiziellen privaten Schlüssel des Distributionsheruasgebers signiert wurde, es sich gar nicht erst installieren lässt.

Damit diese prüfung möglich ist, muss natürlich erstmal der offizielle öffentliche Schlüssel des Distributionsherausgebers in ihren Keyring gespeichert werden. dieser offizielle Schlüssel leigt meist in der installations-DVD. sie können ihn aber auch in der Regel von Keyservern herunterladen und müssen sich dazu dann anschauen, ob es genug Vertrauenswürdige Bestätigungen der User gibt – so dass es sich eindeutig um den echten öffentlichen Schlüssel handelt.

Und genau diese Art von Verfiizierung nutzen Herausgeber von Paketen, um die Echtheit ihrer installierbaren Pakete zu beweisen. sie als Anwender sollten, wenn möglich, von dieser Möglcihkeit gebraucht machen, um immer sicher zu sein, dass Sie offizielle Pakete herunterladen und installieren, die vom Herausgeber stammen – und nicht von irgendeinem Angreifer eingeschmuggelt wurden.

Red Hat

Von der red hat installations-DVd hat können sie den Schlüssel beispielsweise in Ihren Keyring folgendermaßen importieren

rpm --import /mnt/cdrom/RPM-GPG-KEY

Der Key ist dann unter /etc/pki/rpm-gpg/ gespeichert.

Um eien Liste aller Schlüssel auszugeben, die für die RPM Verifikation installiert wurden, geben wir ein

rpm -qa gpgp-pubkey*

Um Details über einen sepziellen Key einzublenden, geben wir ein

rpm -qi gpg-pubkey-<ID>

es sit wichtig, die Signatu rder RPM-Dateien zu vergleichen ebvor man se isntalliert. somit geht man sciher, dass die pakete nicht geändert wurden. Um alle geodnwloadeten APkete auf einmal zu verfiizeiren, nutzt man

rpm -K /root/updates/*.rpm

für jedes apket, von dem der Key stimmt, kommt die Rückmeldung OK am Schluss mit dem genutzten Hashwert in klammern. Pakete, die nicht diesen Prozess mit OK bestehen,sollten nicht isntalliert werden.

Alternativ kann man mit dem tool yum erreichen, dass in Zukunft NUR NOCH signierte Pakete überhautp heruntergeladen und im Anschlsus isntalliert werden. yum aktiviert automatisch die GPGP-Verifikation für alle Paket-Repositories. Yum wird sich weigern, nicht gpg-signierte pakete zu installieren, wenn für dasjeweilige Rpository GPG-Verifikation aktiviert ist. Damit das automatishc geschieht, muss in der [main]-Sektion der /etc/yum.conf stehen:

gpgcheck=1

die pakete können dann mit yum installiert werden über

yum install <kerneldatei>

Man kann jedoch auch Pakete manuell nur dann installieren lassen, wenn sie signiert sind. Normale Pakete über

rpm -Uvh <paketdatei>

und Kernel-Pakete über

rpm -ivh <paketdatei>

 

 

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren...

3 Antworten

  1. Klasse Beitrag!

    Viele Wichtige Informationen enthalten, so wie es sich gehört, hat mir sehr geholfen.

    Nur eine Kleinigkeit: sit statt ist und aknn statt kann – das liest sich auf dauer etwas komisch.

    Danke für den Beitrag!

    • DaFRK sagt:

      hallo Klaus,

      sorry, bei meinen Beiträgen haue ich desöfteren Tippfehler rein ;). Bräuchte eigentlich noch nen Praktikanten, der den ganzen Tag nichts anderes macht, als meine Tippfehler auszumerzen 😀

  2. Hmmm…. Ich glaube der Praktikant heisst F7 🙂

    Zumindest bei mir erledigt er seinen Dienst ohne zu murren, zumindest meistens.

Kommentar verfassen

This site uses Akismet to reduce spam. Learn how your comment data is processed.