GNUPG

GNUPG basiert auf Phil Zimmermann's PGP. Sicherheit wird bei PGP neben ausgefeilten Verschlüsselungsalgorithmen (die bisher als nicht geknackt gelten) auf "Vertrauen" aufgebaut. Vertrauen auch in der Form, daß im Falle von GNUPG der komplette Programmcode im Quelltext vorliegt und auf Fehler und/oder Fallen von jedermann überprüft werden können. Nun ist aber leider nicht jeder Mensch ein Programmierer, geschweige denn ein Experte auf dem Gebiet der Verschlüsselungstechnik. Damit man nun sicherstellen kann, daß man unveränderte Originalquellen heruntergeladen hat kann man auf verschiedene Art und Weise überprüfen ob das Archiv einwandfrei ist. An dieser Stelle kann man jedoch in ein "Henne - Ei" Problem geraten, denn wenn man (wie vorgesehen) die heruntergeladenen GNU-PG Version mit GNUPG überprüft, so kann man das selbstverständlich nicht sinnvoll mit der Version tun, die man gerade heruntergeladen hat. Man braucht also eine andere Version, die man für vertrauenswürdig hält, um die Überprüfung der Integrität vorzunehmen. Wenn man keine absolute vertrauenswürdige Quelle kennt, hilft es vielleicht den Versuch mit mehreren GNUPG von völlig verschiedenen Servern aus verschiedenen Weltregionen durchzuführen. Wenn alle Überprüfungen gleich und gut ausfallen, dann dürfte die Chance gering sein, daß das Archiv absichtlich manipuliert wurde.

Dazu lädt man von der GNUPG homepage nicht nur das betreffende Archiv, sondern zusätzlich noch die entsprechende Signaturdatei und den Public Key eines der Herausgebers. Der Key wird in einer ASCII Datei pubkey.asc im selben Verzeichnis wie Archiv und Signaturdatei abgelegt. Zu einem bestimmten Archiv gehört immer eine bestimmte Signaturdatei. Die Integritätsüberprüfung des Archives muß außerdem durchgeführt werden bevor das Archiv entpackt wird. Im folgenden Beispiel wird mit dem GNUPG 1.4.7 aus unserem AIX Downloadbereich die im Okt. 2010 aktuellen Pakete für GNUPG 1.4.10 überprüft.

Integritätsüberprüfung der GNUPG Archive

1) Zunächst wird gnupg einmal ausgeführt um die Benutzerumgebung zu vervollständigen.

(0)cserver:/mydaten/gnupg 111# /opt/freeware/gnupg/bin/gpg --verify gnupg-1.4.10.tar.bz2.sig

gpg: directory `/home/root//.gnupg' created

gpg: new configuration file `/home/root//.gnupg/gpg.conf' created

gpg: WARNING: options in `/home/root//.gnupg/gpg.conf' are not yet active during this run

gpg: keyring `/home/root//.gnupg/pubring.gpg' created

gpg: Signature made Wed Sep 2 19:05:36 DFT 2009 using RSA key ID 1CE0C630

gpg: Can't check signature: public key not found

(2)cserver:/mydaten/gnupg 112#

Im nächsten Schritt wird der Öffentliche Schüssel des Herausgebers in den eigenen Schlüsselbund importiert.

(0)cserver:/mydaten/gnupg 107# /opt/freeware/gnupg/bin/gpg --import pubkey.asc

gpg: invalid armor header: mQGiBDWiHh4RBAD+l0rg5p9rW4M3sKvmeyzhs2mDxhRKDTVVUnTwpMIR2kIA9pT4\n

gpg: key 57548DCD: public key "Werner Koch (gnupg sig) <dd9jn@gnu.org>" imported

gpg: key 1CE0C630: public key "Werner Koch (dist sig) <dd9jn@gnu.org>" imported

gpg: Total number processed: 2

gpg: imported: 2 (RSA: 1)

gpg: no ultimately trusted keys found

Mit dem importierten Öffentlichen Schlüssel erfolgt die Integritätsüberprüfung.

(0)cserver:/mydaten/gnupg 117# for i in gnupg-1.4.10.tar.bz2.sig gnupg-2.0.16.tar.bz2.sig libassuan-2.0.1.tar.bz2.sig libgcrypt-1.4.6.tar.bz2.sig libgpg-error-1.9.tar.bz2.sig libksba-1.0.8.tar.bz2.sig; do print $i; /opt/freeware/gnupg/bin/gpg --verify $i; print; done

gnupg-1.4.10.tar.bz2.sig

gpg: Signature made Wed Sep 2 19:05:36 DFT 2009 using RSA key ID 1CE0C630

gpg: Good signature from "Werner Koch (dist sig) <dd9jn@gnu.org>"

gpg: Note: This key has expired!

Primary key fingerprint: 7B96 D396 E647 1601 754B E4DB 53B6 20D0 1CE0 C630

gnupg-2.0.16.tar.bz2.sig

gpg: Signature made Mon Jul 19 10:26:31 DFT 2010 using RSA key ID 1CE0C630

gpg: Good signature from "Werner Koch (dist sig) <dd9jn@gnu.org>"

gpg: Note: This key has expired!

Primary key fingerprint: 7B96 D396 E647 1601 754B E4DB 53B6 20D0 1CE0 C630

libassuan-2.0.1.tar.bz2.sig

gpg: Signature made Mon Aug 9 12:41:57 DFT 2010 using RSA key ID 1CE0C630

gpg: Good signature from "Werner Koch (dist sig) <dd9jn@gnu.org>"

gpg: Note: This key has expired!

Primary key fingerprint: 7B96 D396 E647 1601 754B E4DB 53B6 20D0 1CE0 C630

libgcrypt-1.4.6.tar.bz2.sig

gpg: Signature made Tue Jul 13 17:49:33 DFT 2010 using RSA key ID 1CE0C630

gpg: Good signature from "Werner Koch (dist sig) <dd9jn@gnu.org>"

gpg: Note: This key has expired!

Primary key fingerprint: 7B96 D396 E647 1601 754B E4DB 53B6 20D0 1CE0 C630

libgpg-error-1.9.tar.bz2.sig

gpg: Signature made Wed Jul 21 10:02:42 DFT 2010 using RSA key ID 1CE0C630

gpg: Good signature from "Werner Koch (dist sig) <dd9jn@gnu.org>"

gpg: Note: This key has expired!

Primary key fingerprint: 7B96 D396 E647 1601 754B E4DB 53B6 20D0 1CE0 C630

libksba-1.0.8.tar.bz2.sig

gpg: Signature made Thu Jul 15 20:23:41 DFT 2010 using RSA key ID 1CE0C630

gpg: Good signature from "Werner Koch (dist sig) <dd9jn@gnu.org>"

gpg: Note: This key has expired!

Primary key fingerprint: 7B96 D396 E647 1601 754B E4DB 53B6 20D0 1CE0 C630

(0)cserver:/mydaten/gnupg 119#

Als Nebeneffekt sehen wir an den abgelaufenen Schlüsselen, daß auch auf der GNUPG homepage nicht immer alles aktuell ist.

<nach oben>

Kompilieren von GNUPG mit GCC

In Arbeit ...

GNUPG Pakete für AIX

Die GNUPG Pakete für AIX wurden mit GCC kompiliert.

GNUPG 1.4.7

GNUPG 1.4.10