Benutzer-Werkzeuge

Webseiten-Werkzeuge


einzelne_dateien_mit_gpg_verschluesseln

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
einzelne_dateien_mit_gpg_verschluesseln [2021-08-11 10:57:26] – [anwenden] manfredeinzelne_dateien_mit_gpg_verschluesseln [2021-11-27 20:18:22] (aktuell) – [einzelne Dateien mit GPG verschlüsseln] manfred
Zeile 1: Zeile 1:
 +====== einzelne Dateien mit GPG verschlüsseln ======
 +
 +siehe auch: [[::Daten packen]]
 +
 +Die Stärke der Sicherheit der drei besten Cipher/[[::Verschlüsselungsarten]] ist wie folgt, der sicherste steht oben:
 +  - **serpent** //(der sicherste in ''[[Verschlüsselung mit CryptSetup|CryptSetup]]'' - ganzes Dateisystem verschlüsseln)//
 +  - **twofish** //(der sicherste in ''[[::einzelne Dateien mit GPG verschlüsseln|GPG]]'' - einzelne Dateie verschlüsseln) -> **[[::GPG-Verschlüsselung mit Passwort]]**//
 +  - **blowfish** //(der sicherste in ''[[::einzelne Dateien mit openSSL verschlüsseln|openSSL]]'' - einzelne Dateie verschlüsseln) -> [[::OpenSSL-Verschlüsselung mit Passwort]]//
 +
 +
 +===== Installation von GnuPG auf FreeBSD 12.1 =====
 +
 +
 +==== GnuPG auf FreeBSD aus dem Repository installieren ====
 +
 +  [root@freebsd ~]# pkg install security/gnupg
 +  ...
 +  =====
 +  Message from gnupg-2.2.23:
 +  
 +  --
 +  GnuPG, when run on hosts without IPv6 connectivity, may fail to connect to
 +  dual-stack hkp servers [1].  As a workaround, add
 +  
 +  disable-ipv6
 +  
 +  to
 +  
 +  /usr/local/etc/dirmngr.conf
 +  
 +  [1] https://dev.gnupg.org/rGecfc4db3a2f8bc2652ba4ac4de5ca1cd13bfcbec
 +
 +  [root@freebsd ~]# gpg --help
 +  gpg (GnuPG) 2.2.24
 +  libgcrypt 1.8.5
 +  Copyright (C) 2020 Free Software Foundation, Inc.
 +  License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
 +  This is free software: you are free to change and redistribute it.
 +  There is NO WARRANTY, to the extent permitted by law.
 +
 +  Home: /root/.gnupg
 +  Unterstützte Verfahren:
 +  Öff. Schlüssel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
 +  Verschlü.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
 +             CAMELLIA128, CAMELLIA192, CAMELLIA256
 +  Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
 +  Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2
 +
 +  Aufruf: gpg [Optionen] [Dateien]
 +  Signieren, prüfen, verschlüsseln, entschlüsseln.
 +  Die voreingestellte Operation ist abhängig von den Eingabedaten
 +
 +  Befehle:
 +  ...
 +
 +
 +==== GnuPG auf FreeBSD aus dem Ports-Tree installieren ====
 +
 +hier kann man selber entscheiden, mit welchen Optionen GnuPG gebaut werden soll und manchmal bekommt man hier auch eine etwas neuere Version:
 +  [root@freebsd ~]# cd /usr/ports/security/gnupg
 +  [root@freebsd /usr/ports/security/gnupg]# make config
 +  [root@freebsd /usr/ports/security/gnupg]# make && make install && make clean
 +
 +  [root@freebsd ~]# gpg (GnuPG) 2.2.24
 +  libgcrypt 1.8.5
 +  Copyright (C) 2020 Free Software Foundation, Inc.
 +  License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>
 +  This is free software: you are free to change and redistribute it.
 +  There is NO WARRANTY, to the extent permitted by law.
 +  
 +  Home: /root/.gnupg
 +  Unterstützte Verfahren:
 +  Öff. Schlüssel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
 +  Verschlü.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
 +             CAMELLIA128, CAMELLIA192, CAMELLIA256
 +  Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
 +  Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2
 +  
 +  Aufruf: gpg [Optionen] [Dateien]
 +  Signieren, prüfen, verschlüsseln, entschlüsseln.
 +  Die voreingestellte Operation ist abhängig von den Eingabedaten
 +  
 +  Befehle:
 +  ...
 +
 +
 +===== Verschlüsselung mit Passwort =====
 +
 +[[::GPG-Verschlüsselung mit Passwort]]
 +
 +
 +===== Verschlüsselung mit RSA-Schlüssel =====
 +
 +Will man einem Freund eine Nachricht verschlüsselt zukommen lassen,
 +dann muss der Freund einen privaten samt öffentlichen Schlüssel
 +generieren und mir den öffentlichen Schlüssel zukommen lassen.
 +Alle Nachrichten bzw. Dateien, die ich mit diesem öffentlichen
 +Schlüssel verschlüsselt habe, kann er mit dem privaten Schlüssel
 +wieder entschlüsseln.
 +
 +  * [[http://wiki.ubuntuusers.de/GnuPG]]
 +    * [[http://www.gnupg.org/documentation/manuals/gnupg/OpenPGP-Options.html]]
 +  * [[http://www.online-tutorials.net/security/gnupg-gpg-tutorial/tutorials-t-69-124.html]]
 +
 +mit diesem Kommando kann man dem Zufallsgenerator helfen schneller Zufallszahlen zu erzeugen:
 +  [root@freebsd ~]# for i in $(seq 1 1000);do dd if=/dev/zero of=/tmp/u count=4096 bs=1M;done 2>&1 | cat > /dev/null &
 +
 +privates Schüsselpaar erzeugen:
 +  [root@freebsd ~]# gpg --full-generate-key
 +  gpg (GnuPG) 2.2.24; Copyright (C) 2020 Free Software Foundation, Inc.
 +  This is free software: you are free to change and redistribute it.
 +  There is NO WARRANTY, to the extent permitted by law.
 +  
 +  gpg: Warning: using insecure memory!
 +  Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
 +     (1) RSA und RSA (voreingestellt)
 +     (2) DSA und Elgamal
 +     (3) DSA (nur signieren/beglaubigen)
 +     (4) RSA (nur signieren/beglaubigen)
 +     (14) Vorhandener Schlüssel auf der Karte
 +  Ihre Auswahl? 1
 +  RSA-Schlüssel können zwischen 1024 und 4096 Bit lang sein.
 +  Welche Schlüssellänge wünschen Sie? (3072) 4096
 +  Die verlangte Schlüssellänge beträgt 4096 Bit
 +  Bitte wählen Sie, wie lange der Schlüssel gültig bleiben soll.
 +           0 = Schlüssel verfällt nie
 +        <n>  = Schlüssel verfällt nach n Tagen
 +        <n>w = Schlüssel verfällt nach n Wochen
 +        <n>m = Schlüssel verfällt nach n Monaten
 +        <n>y = Schlüssel verfällt nach n Jahren
 +  Wie lange bleibt der Schlüssel gültig? (0) 20y
 +  Key verfällt am So. 23 Dez. 00:34:16 2040 MET
 +  Ist dies richtig? (j/N) j
 +  
 +  GnuPG erstellt eine User-ID, um Ihren Schlüssel identifizierbar zu machen.
 +  
 +  Ihr Name ("Vorname Nachname"): Fritz Fratz
 +  Email-Adresse: fritz@default.de
 +  Kommentar: Das ist ein Test
 +  Sie haben diese User-ID gewählt:
 +      "Fritz Fratz (Das ist ein Test) <fritz@default.de>"
 +  
 +  Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(A)bbrechen? f
 +  Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
 +  unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
 +  tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
 +  Bitte geben Sie die Passphrase ein,
 +  um Ihren Schlüssel zu schützen.
 +  Passphrase:
 +  Nochmal:
 +  Wir müssen eine ganze Menge Zufallswerte erzeugen.  Sie können dies
 +  unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas
 +  tippen, die Maus verwenden oder irgendwelche anderen Programme benutzen.
 +  gpg: Schlüssel 769D0C1DBBDEFE91 ist als ultimativ vertrauenswürdig gekennzeichnet
 +  gpg: Verzeichnis `/root/.gnupg/openpgp-revocs.d' erzeugt
 +  gpg: Widerrufzertifikat wurde als '/root/.gnupg/openpgp-revocs.d/FA49E770EA1BA875AC37E8E4769D0C1DBBDEFE91.rev' gespeichert.
 +  Öffentlichen und geheimen Schlüssel erzeugt und signiert.
 +  
 +  pub   rsa4096 2020-12-27 [SC] [verfällt: 2040-12-22]
 +        FA49E770EA1BA875AC37E8E4769D0C1DBBDEFE91
 +  uid                      Fritz Fratz (Das ist ein Test) <fritz@default.de>
 +  sub   rsa4096 2020-12-27 [E] [verfällt: 2040-12-22]
 +
 +den öffentlichen Schlüssel exportieren (damit können uns andere eine Nachricht schicken):
 +  [root@freebsd ~]# gpg --export -a -o public_key_-_Fritz.key Fritz
 +
 +einen öffentlichen Schlüssel importieren; damit können wir eine Nachricht verschlüsseln, den nur der andere (Franzi) wieder entschlüsseln kann:
 +  [root@freebsd ~]# gpg --import gpg-key_-_Franzi.asc
 +
 +öffentlichen Schlüssel anzeigen:
 +  [root@freebsd ~]# gpg -k
 +
 +private Schlüssel anzeigen:
 +  [root@freebsd ~]# gpg --list-secret-keys
 +
 +
 +==== Verschlüsselungstest mit unserem selbst erstellten Schlüssel (Fritz) ====
 +
 +Probiertext erstellen:
 +  # echo 'Der blubbfish geht um!' > test.txt
 +  # cat test.txt
 +  Der blubbfish geht um!
 +
 +Textdatei verschlüsseln:
 +  # gpg -ear "Fritz" test.txt
 +
 +Textdatei löschen:
 +  # rm test.txt
 +
 +Textdatei entschlüsseln:
 +  # gpg -dr "Fritz" -o test.txt test.txt.asc
 +
 +entschlüsselten Text lesen:
 +  # cat test.txt
 +  Der blubbfish geht um!
 +
 +
 +=== /root/bin/gpg_verschl.sh ===
 +
 +  #!/bin/bash
 +  
 +  SCHL_NAME="${1}"
 +  
 +  if [ -r "${2}" ] ; then
 +        gpg --recipient "${SCHL_NAME}" --encrypt --armor ${2}
 +        ls -lh ${2}.*
 +  else
 +        echo "${0} Fritz geheim.txt"
 +  fi
 +
 +
 +=== /root/bin/gpg_entschl.sh ===
 +
 +  #!/bin/bash
 +  
 +  SCHL_NAME="${1}"
 +  
 +  if [ -r "${2}" ] ; then
 +        gpg --recipient "${SCHL_NAME}" --decrypt ${2} > ${2}.txt
 +        ls -lh ${2}.*
 +  else
 +        echo "${0} Fritz geheim.txt.asc"
 +  fi
 +
 +
 +==== einen fremden öffentlichen Schlüssel verwenden ====
 +
 +Textdatei mit einem fremden öffentlichen Schlüssel verschlüsseln:
 +  # gpg --recipient "Freund" --encrypt --armor test.txt
 +  gpg: CD3EC75A: There is no assurance this key belongs to the named user
 +  
 +  pub  2048g/CD3EC75A 2012-05-31 Freund <freund@domain.net>
 +   Primary key fingerprint: 71D9 3DF5 5F09 75D2 2EEC  0807 692D 96D3 F42B 5607
 +        Subkey fingerprint: 59FD 6FAF 83A2 BE3F 13EF  3227 283D 7965 CD3E C75A
 +  
 +  It is NOT certain that the key belongs to the person named
 +  in the user ID.  If you *really* know what you are doing,
 +  you may answer the next question with yes.
 +  
 +  Use this key anyway? (y/N)
 +
 +Damit diese Meldung nicht mehr kommt,
 +müssen wir GPG sagen, dass wir diesem Schlüssel vertrauen:
 +  # gpg --edit-key Freund
 +  gpg (GnuPG) 1.4.10; Copyright (C) 2008 Free Software Foundation, Inc.
 +  This is free software: you are free to change and redistribute it.
 +  There is NO WARRANTY, to the extent permitted by law.
 +  
 +  
 +  pub  1024D/F42B5607  created: 2012-05-31  expires: 2014-05-31  usage: SC  
 +                       trust: unknown       validity: unknown
 +  sub  2048g/CD3EC75A  created: 2012-05-31  expires: 2014-05-31  usage: E   
 +  [ unknown] (1). Freund <freund@domain.net>
 +  
 +  Command> trust
 +  pub  1024D/F42B5607  created: 2012-05-31  expires: 2014-05-31  usage: SC  
 +                       trust: unknown       validity: unknown
 +  sub  2048g/CD3EC75A  created: 2012-05-31  expires: 2014-05-31  usage: E   
 +  [ unknown] (1). Freund <freund@domain.net>
 +  
 +  Please decide how far you trust this user to correctly verify other users' keys
 +  (by looking at passports, checking fingerprints from different sources, etc.)
 +  
 +    1 = I don't know or won't say
 +    2 = I do NOT trust
 +    3 = I trust marginally
 +    4 = I trust fully
 +    5 = I trust ultimately
 +    m = back to the main menu
 +  
 +  Your decision? 5
 +  Do you really want to set this key to ultimate trust? (y/N) y
 +  
 +  pub  1024D/F42B5607  created: 2012-05-31  expires: 2014-05-31  usage: SC  
 +                       trust: ultimate      validity: unknown
 +  sub  2048g/CD3EC75A  created: 2012-05-31  expires: 2014-05-31  usage: E   
 +  [ unknown] (1). Freund <freund@domain.net>
 +  Please note that the shown key validity is not necessarily correct
 +  unless you restart the program.
 +  
 +  Command> q
 +
 +
 +==== Datenstrom von StdIn/Pipe verschlüsseln ====
 +
 +Das funktioniert nur mit GPG-Schlüssel (''gpg -k'')!
 +
 +Einen Datenstrom von StdIn verschlüsseln und nach StdOut wieder ausgeben:
 +  [root@erde ~]# cat /tmp/datei.txt | gpg --digest-algo sha512 --compress-algo bzip2 -ear Fritz
 +
 +Einen Datenstrom von StdIn verschlüsseln und in einer Datei ablegen:
 +  [root@erde ~]# cat /tmp/datei.txt | gpg --digest-algo sha512 --compress-algo bzip2 -ear Fritz -o /tmp/datei.txt.gpg
 +