GnuPG/Kryptografie: Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „== PGP/GPG - Pretty Good Privacy == The [https://tools.ietf.org/search/rfc4880 OpenPGP protocol] defines a set of asymmetric- and symmetric encryption algorithms, signature methods and compression protocols. [https://gnupg.org/ GnuPG], a FOSS implementation of the OpenPGP standard, is widely used for mail encryption. GnuPG signs a message, encrypts it symmetrically and encrypts the symmetric key and the hash with Bob’s public key asymmetrically. Researc…“
 
 
(53 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== PGP/GPG - Pretty Good Privacy ==
'''GnuPG''' - Pretty Good Privacy
The [https://tools.ietf.org/search/rfc4880 OpenPGP protocol] defines a set of asymmetric- and symmetric encryption algorithms, signature methods and compression protocols. [https://gnupg.org/ GnuPG], a FOSS implementation of the OpenPGP standard, is widely used for mail encryption.
GnuPG signs a message, encrypts it symmetrically and encrypts the symmetric key and the hash with Bob’s public key asymmetrically.
Research on SHA-1 conducted back in 2005 (see: [https://www.schneier.com/blog/archives/2005/02/sha1_broken.html SHA-1 Broken]) as well as the first practical successful collision in early 2017 (see: [https://shattered.io/ SHAttered]) has made clear that collision attacks are a real threat to the security of the SHA-1 hash function.
Since SHA-1 is defined as a must implementation by the OpenPGP specification, GnuPG is still using it. Currently settings should be adapted to preferably avoid using SHA-1.
When using GnuPG, there are a couple of things to take care of:* keylengths (see: [https://bettercrypto.org/#keylengths Keylengths])
* randomness (see: [https://bettercrypto.org/#rngs Random Number Generators])
* preference of symmetric encryption algorithm (see: [https://bettercrypto.org/#ciphersuites Architectural overview])
* preference of hash function (see: [https://bettercrypto.org/#ciphersuites Architectural overview])
Properly dealing with key material, passphrases and the web-of-trust is outside of the scope of this document. The [https://www.gnupg.org/ GnuPG website] has a good tutorial on GnuPG.
After 31 December 2017 GnuPG version 2.0.x is no longer supported and [https://lists.gnupg.org/pipermail/gnupg-announce/2017q3/000413.html shall not be used anymore]. Use the new long term version 2.1 instead.


=== Beschreibung ===
; PGP/GnuPG - Pretty Good Privacy
Das [https://tools.ietf.org/search/rfc4880 OpenPGP-Protokoll] definiert eine Reihe von asymmetrischen und symmetrischen Verschlüsselungsalgorithmen, Signaturverfahren und Kompressionsprotokollen. [https://gnupg.org/ GnuPG], eine FOSS-Implementierung des OpenPGP-Standards, wird häufig für die Verschlüsselung von E-Mails verwendet.
GnuPG signiert eine Nachricht, verschlüsselt sie symmetrisch und verschlüsselt den symmetrischen Schlüssel und den Hash mit dem öffentlichen Schlüssel von Bob asymmetrisch.
Forschungen zu SHA-1 aus dem Jahr 2005 (siehe: [https://www.schneier.com/blog/archives/2005/02/sha1_broken.html SHA-1 Broken]) sowie die erste erfolgreiche Kollision in der Praxis Anfang 2017 (siehe: [https://shattered.io/ SHAttered]) haben deutlich gemacht, dass Kollisionsangriffe eine echte Bedrohung für die Sicherheit der SHA-1-Hash-Funktion darstellen.
Da SHA-1 in der OpenPGP-Spezifikation als Pflichtimplementierung definiert ist, wird es von GnuPG weiterhin verwendet.
* Derzeit sollten die Einstellungen so angepasst werden, dass die Verwendung von SHA-1 möglichst vermieden wird.
; Bei der Verwendung von GnuPG gibt es einige Dinge zu beachten
* Schlüssellängen (siehe: [https://bettercrypto.org/#keylengths Keylengths])
* Zufälligkeit (siehe: [https://bettercrypto.org/#rngs Zufallszahlengeneratoren])
* Bevorzugung des symmetrischen Verschlüsselungsalgorithmus (siehe: [https://bettercrypto.org/#ciphersuites Architektonischer Überblick])
* Bevorzugung der Hash-Funktion (siehe: [https://bettercrypto.org/#ciphersuites Architektonischer Überblick])
Der korrekte Umgang mit Schlüsselmaterial, Passphrasen und dem Web-of-Trust liegt außerhalb des Rahmens dieses Dokuments.
* Die [https://www.gnupg.org/ GnuPG-Website] bietet ein gutes Tutorial zu GnuPG.
Nach dem 31. Dezember 2017 wird GnuPG Version 2.0.x nicht mehr unterstützt und [https://lists.gnupg.org/pipermail/gnupg-announce/2017q3/000413.html soll nicht mehr verwendet werden].
* Verwenden Sie stattdessen die neue Langzeitversion 2.1.
=== Beschreibung ===
; ''GnuPG'' implementiert den [[OpenPGP]]-Standard nach RFC 4880
* asymmetrischen und symmetrischen Verschlüsselungsalgorithmen
* Signaturverfahren und Kompressionsprotokollen
; GnuPG ist eine [[FOSS]]-Implementierung des [[OpenPGP]]-Standards
* Häufig für die Verschlüsselung von E-Mails verwendet
* GnuPG signiert eine Nachricht, verschlüsselt sie symmetrisch und verschlüsselt den symmetrischen Schlüssel und den Hash mit dem öffentlichen Schlüssel von Bob asymmetrisch
; SHA-1
Derzeit sollten die Einstellungen so angepasst werden, dass die Verwendung von SHA-1 möglichst vermieden wird
* Forschungen zu SHA-1 aus dem Jahr 2005 (siehe: [https://www.schneier.com/blog/archives/2005/02/sha1_broken.html SHA-1 Broken]) sowie die erste erfolgreiche Kollision in der Praxis Anfang 2017 (siehe: [https://shattered.io/ SHAttered]) haben deutlich gemacht, dass Kollisionsangriffe eine echte Bedrohung für die Sicherheit der SHA-1-Hash-Funktion darstellen
* Da SHA-1 in der OpenPGP-Spezifikation als Pflichtimplementierung definiert ist, wird es von GnuPG weiterhin verwendet
Bei der Verwendung von GnuPG gibt es einige Dinge zu beachten
* Schlüssellängen (siehe: [https://bettercrypto.org/#keylengths Schlüssellängen])
* Zufälligkeit (siehe: [https://bettercrypto.org/#rngs Zufallszahlengeneratoren])
* Bevorzugung des symmetrischen Verschlüsselungsalgorithmus (siehe: [https://bettercrypto.org/#ciphersuites Architektonischer Überblick])
* Bevorzugung der Hash-Funktion (siehe: [https://bettercrypto.org/#ciphersuites Architektonischer Überblick])
Der korrekte Umgang mit Schlüsselmaterial, Passphrasen und dem Web-of-Trust liegt außerhalb des Rahmens dieses Dokuments
* Die [https://www.gnupg.org/ GnuPG-Website] bietet ein gutes Tutorial zu GnuPG
== Anwendungen ==
=== Hashing ===
=== Hashing ===
Avoid SHA-1 by preferring better hashing methods. GnuPG. Edit <tt>$HOME/.gnupg/gpg.conf</tt>:
Vermeiden Sie SHA-1, indem Sie bessere Hashing-Methoden bevorzugen
* GnuPG


; Digest selection in GnuPG
Bearbeiten Sie <tt>$HOME/.gnupg/gpg.conf</tt>:
personal-digest-preferences SHA512
 
cert-digest-algo SHA512
Digest selection in GnuPG
default-preference-list AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 TWOFISH SHA512 SHA384 SHA256 BZIP2 ZLIB ZIP
personal-digest-preferences SHA512
cert-digest-algo SHA512
default-preference-list AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 TWOFISH SHA512 SHA384 SHA256 BZIP2 ZLIB ZIP


=== Key Generation ===
=== Key Generation ===
Because of lack of forward secrecy (see: [https://bettercrypto.org/#pfs [pfs]]) in OpenPGP it is preferable to use large asymmetric keys for long term communication protection. A RSA key of <tt>4096</tt> bits should provide enough confidentiality for the next 10 years (see: [https://www.keylength.com/ Cryptographic Key Length Recommendation]).
Because of lack of forward secrecy (see: [https://bettercrypto.org/#pfs [pfs]]) in OpenPGP it is preferable to use large asymmetric keys for long term communication protection
* A RSA key of <tt>4096</tt> bits should provide enough confidentiality for the next 10 years (see: [https://www.keylength.com/ Cryptographic Key Length Recommendation])


; New key generation with GnuPG version 2.1
; New key generation with GnuPG version 2.1
$ gpg --batch --full-gen-key $HOME/Desktop/params.txt`
$ gpg --batch --full-gen-key $HOME/Desktop/params.txt`


; Parameters for key generation with GnuPG version 2.1
; Parameters for key generation with GnuPG version 2.1
Key-Type: RSA
Key-Type: RSA
Key-Length: 4096
Key-Length: 4096
Subkey-Type: RSA
Subkey-Type: RSA
Subkey-Length: 4096
Subkey-Length: 4096
Name-Real: <your-name>
Name-Real: <your-name>
Name-Email: <your-email-address>
Name-Email: <your-email-address>
Passphrase: <password>
Passphrase: <password>
Expires: 2y
Expires: 2y
  # My preferences: AES256, CAMELLIA256, AES192, CAMELLIA192, AES128, CAMELLIA128, TWOFISH, SHA512, SHA384, SHA256, BZIP2, ZLIB and ZIP
  # My preferences: AES256, CAMELLIA256, AES192, CAMELLIA192, AES128, CAMELLIA128, TWOFISH, SHA512, SHA384, SHA256, BZIP2, ZLIB and ZIP
Preferences: S9 S13 S8 S12 S7 S11 S10 H10 H9 H8 Z3 Z2 Z1
Preferences: S9 S13 S8 S12 S7 S11 S10 H10 H9 H8 Z3 Z2 Z1
Zeile 40: Zeile 79:
|-
|-
||
||
|| The preferences parameters S9 to Z1 correspond to AES256, CAMELLIA256, AES192, CAMELLIA192, AES, CAMELLIA128, TWOFISH, SHA512, SHA384, SHA256, BZIP2, ZLIB and ZIP. The parameters 3DES, SHA-1 and uncompressed are set automatically by GnuPG.
|| The preferences parameters S9 to Z1 correspond to AES256, CAMELLIA256, AES192, CAMELLIA192, AES, CAMELLIA128, TWOFISH, SHA512, SHA384, SHA256, BZIP2, ZLIB and ZIP
* The parameters 3DES, SHA-1 and uncompressed are set automatically by GnuPG
|-
|-
|}
|}


=== ECC - Elliptic Curve Cryptography ===
=== Elliptic Curve Cryptography ===
Since the release of [https://www.gnupg.org/faq/whats-new-in-2.1.html GnuPG version 2.1] end-2014 ECC is supported. Older versions though are still widely used therefore ECC is not yet applicable in practice.
; Elliptic Curve Cryptography (ECC)
Since the release of [https://www.gnupg.org/faq/whats-new-in-2.1.html GnuPG version 2.1] end-2014 ECC is supported
* Older versions though are still widely used therefore ECC is not yet applicable in practice
 
; ECC - Elliptic Curve Cryptography
Seit der Veröffentlichung von [https://www.gnupg.org/faq/whats-new-in-2.1.html GnuPG Version 2.1] Ende 2014 wird ECC unterstützt. Ältere Versionen sind jedoch noch weit verbreitet, daher ist ECC in der Praxis noch nicht anwendbar.
 
<noinclude>
 
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/GnuPG}}
==== Dokumentation ====
{| class="wikitable options big"
|-
! RFC !! Titel
|-
| [https://www.rfc-editor.org/info/rfc4880 4880] || OpenPGP Message Format
|}
 
==== Links ====
===== Weblinks =====
# https://gnupg.org
# [https://tools.ietf.org/search/rfc4880 OpenPGP-Protokoll]
 
[[Kategorie:Kryptografie/Best Practice]]
[[Kategorie:GnuPG]]
</noinclude>

Aktuelle Version vom 13. April 2024, 12:28 Uhr

GnuPG - Pretty Good Privacy

Beschreibung

PGP/GnuPG - Pretty Good Privacy

Das OpenPGP-Protokoll definiert eine Reihe von asymmetrischen und symmetrischen Verschlüsselungsalgorithmen, Signaturverfahren und Kompressionsprotokollen. GnuPG, eine FOSS-Implementierung des OpenPGP-Standards, wird häufig für die Verschlüsselung von E-Mails verwendet.

GnuPG signiert eine Nachricht, verschlüsselt sie symmetrisch und verschlüsselt den symmetrischen Schlüssel und den Hash mit dem öffentlichen Schlüssel von Bob asymmetrisch.

Forschungen zu SHA-1 aus dem Jahr 2005 (siehe: SHA-1 Broken) sowie die erste erfolgreiche Kollision in der Praxis Anfang 2017 (siehe: SHAttered) haben deutlich gemacht, dass Kollisionsangriffe eine echte Bedrohung für die Sicherheit der SHA-1-Hash-Funktion darstellen.

Da SHA-1 in der OpenPGP-Spezifikation als Pflichtimplementierung definiert ist, wird es von GnuPG weiterhin verwendet.

  • Derzeit sollten die Einstellungen so angepasst werden, dass die Verwendung von SHA-1 möglichst vermieden wird.
Bei der Verwendung von GnuPG gibt es einige Dinge zu beachten

Der korrekte Umgang mit Schlüsselmaterial, Passphrasen und dem Web-of-Trust liegt außerhalb des Rahmens dieses Dokuments.

Nach dem 31. Dezember 2017 wird GnuPG Version 2.0.x nicht mehr unterstützt und soll nicht mehr verwendet werden.

  • Verwenden Sie stattdessen die neue Langzeitversion 2.1.

Beschreibung

GnuPG implementiert den OpenPGP-Standard nach RFC 4880
  • asymmetrischen und symmetrischen Verschlüsselungsalgorithmen
  • Signaturverfahren und Kompressionsprotokollen
GnuPG ist eine FOSS-Implementierung des OpenPGP-Standards
  • Häufig für die Verschlüsselung von E-Mails verwendet
  • GnuPG signiert eine Nachricht, verschlüsselt sie symmetrisch und verschlüsselt den symmetrischen Schlüssel und den Hash mit dem öffentlichen Schlüssel von Bob asymmetrisch
SHA-1

Derzeit sollten die Einstellungen so angepasst werden, dass die Verwendung von SHA-1 möglichst vermieden wird

  • Forschungen zu SHA-1 aus dem Jahr 2005 (siehe: SHA-1 Broken) sowie die erste erfolgreiche Kollision in der Praxis Anfang 2017 (siehe: SHAttered) haben deutlich gemacht, dass Kollisionsangriffe eine echte Bedrohung für die Sicherheit der SHA-1-Hash-Funktion darstellen
  • Da SHA-1 in der OpenPGP-Spezifikation als Pflichtimplementierung definiert ist, wird es von GnuPG weiterhin verwendet

Bei der Verwendung von GnuPG gibt es einige Dinge zu beachten

Der korrekte Umgang mit Schlüsselmaterial, Passphrasen und dem Web-of-Trust liegt außerhalb des Rahmens dieses Dokuments

Anwendungen

Hashing

Vermeiden Sie SHA-1, indem Sie bessere Hashing-Methoden bevorzugen

  • GnuPG

Bearbeiten Sie $HOME/.gnupg/gpg.conf:

Digest selection in GnuPG

personal-digest-preferences SHA512
cert-digest-algo SHA512
default-preference-list AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 TWOFISH SHA512 SHA384 SHA256 BZIP2 ZLIB ZIP

Key Generation

Because of lack of forward secrecy (see: [pfs]) in OpenPGP it is preferable to use large asymmetric keys for long term communication protection

New key generation with GnuPG version 2.1
$ gpg --batch --full-gen-key $HOME/Desktop/params.txt`
Parameters for key generation with GnuPG version 2.1
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: <your-name>
Name-Email: <your-email-address>
Passphrase: <password>
Expires: 2y
# My preferences: AES256, CAMELLIA256, AES192, CAMELLIA192, AES128, CAMELLIA128, TWOFISH, SHA512, SHA384, SHA256, BZIP2, ZLIB and ZIP

Preferences: S9 S13 S8 S12 S7 S11 S10 H10 H9 H8 Z3 Z2 Z1

The preferences parameters S9 to Z1 correspond to AES256, CAMELLIA256, AES192, CAMELLIA192, AES, CAMELLIA128, TWOFISH, SHA512, SHA384, SHA256, BZIP2, ZLIB and ZIP
  • The parameters 3DES, SHA-1 and uncompressed are set automatically by GnuPG

Elliptic Curve Cryptography

Elliptic Curve Cryptography (ECC)

Since the release of GnuPG version 2.1 end-2014 ECC is supported

  • Older versions though are still widely used therefore ECC is not yet applicable in practice
ECC - Elliptic Curve Cryptography

Seit der Veröffentlichung von GnuPG Version 2.1 Ende 2014 wird ECC unterstützt. Ältere Versionen sind jedoch noch weit verbreitet, daher ist ECC in der Praxis noch nicht anwendbar.


Anhang

Siehe auch

Dokumentation

RFC Titel
4880 OpenPGP Message Format

Links

Weblinks
  1. https://gnupg.org
  2. OpenPGP-Protokoll