Seite 1 von 1
Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Montag 23. April 2012, 14:13
von tejubin
Hallo erstmal!
Ich war mir nicht sicher, wo ich mein Problem genau posten sollte, also tue ich das erstmal hier. Ansonsten kann dies auch gerne verschoben werden.
Also, ich brauche für meine Bachelor-Arbeit eine sehr große Anzahl an öffentlichen PGP-Schlüsseln. Da ein Abruf einer solch großen Zahl nicht automatisiert von einen der Server im Internet erfolgen kann, möchte ich mir diese Schlüssel jetzt selbst generieren.
Hierfür versuche ich GnuPG zu benutzen. Meine relativ allgemein gehaltene Frage ist erstmal:
Gibt es eine Möglichkeit (da man nach meinem bisherigen Eindruck, bei jeder Schlüsselerzeugung eindeutige Daten wie Email-Adresse angeben muss) puristisch wie möglich, mehrere (sehr viele) Schlüssel zu erzeugen, ohne jedem zu erzeugenden Schlüssel solche Daten zuordnen zu müssen?
Diese öffentlichen Schlüssel brauche ich lediglich zur Mathematischen Untersuchung, für mich ist also nur der entstehende Schlüssel wichtig.
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Montag 23. April 2012, 14:18
von Leonidas
Hallo tejubin, willkommen im Forum,
Ich sehe das Problem nicht, weder der Name noch die E-Mailadresse muss in OpenPGP eindeutig sein.
grüße,
Leonidas
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Montag 23. April 2012, 14:55
von BlackJack
Wobei es auch kein Problem sein sollte diese Angaben ebenfalls programmatisch zu erzeugen. Kann man ja einfach durchnummerieren, oder so.
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 13:51
von tejubin
Ich habe jetzt den Versuch gestartet, wie von BlackJack vorgeschlagen, die Einzelnen Parameter einfach durchzunummerieren.
Es gibt bei der nicht-interaktiven Schlüsselerzeugung (interaktiv = mit der manuellen Eingabe der Parameter durch den Benutzer über die Tastatur) zwei Wege, um die Parameter automatisiert zu übergeben. Einmal ein Parameter-File, welches dann wie folgt ausschaut:
Code: Alles auswählen
%echo Generating a standard key
Key-Type: RSA
Key-Length: 1024
Subkey-Type: ELG-E
Subkey-Length: 1024
Name-Real: 1
Name-Email: 1@web.de
Passphrase: 1111111111111111111111111111
%pubring 1.pub
%secring 1.sec
# Do a commit here, so that we can later print "done" :-)
%commit
%echo done
Um dann mit
Code: Alles auswählen
os.system("gpg --batch --gen-key /path/to/the/file/above")
Den Schlüssel zu erzeugen. Diese Methode scheint mir aber zu aufwendig, da ich eine Anzahl an Schlüssel in der Größenordnung von 10^13 erzeugen muss. Und für jeden Schlüssel diese Datei wieder editieren.. ich weiß ja nicht.
Die zweite Möglichkeit läuft über stdin, wovon ich lediglich weiß, dass das die Standard-Input Pipe ist, die üblicherweise mit der Tastatur verbunden ist und mir so meines Erachtens nicht weiterhelfen kann. ?
Habt ihr Vorschläge, wie man das mit dem Parameter-File geschickter lösen kann? Ich habe schon versucht, einfach einen String statt des Parameter-Files anzugeben. Brachte nichts.
Eigentlich müsste es doch irgendwie möglich sein, einen formatierten String in einer Schleife zu übergeben...
Wäre sehr nett, wenn jemandem von euch da etwas einfallen würde. Dankeschön!

Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 17:05
von Leonidas
Du könntest doch auch ein Python-GnuPG-Binding nehmen, das könnte die Sache einfacher machen.
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 19:41
von lunar
@tejubin: Mit "subprocess.Popen" kannst Du Prozessen Eingaben über ihre Standardeingabe schicken. Das ist zwar kürzer und eleganter als eine Parameter-Datei, aber – da ein solche Datei kurzlebig ist und daher hauptsächlich im Cache vorliegt – nicht wesentlich schneller. 10^13 Schlüssel zu erstellen, dauert so oder so ewig.
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 21:49
von tejubin
Leonidas hat geschrieben:Du könntest doch auch ein Python-GnuPG-Binding nehmen, das könnte die Sache einfacher machen.
Und wie würde so etwas aussehen? Weiß jetzt nicht genau, was du damit meinst. Hast du ein bestimmtes im Hinterkopf?
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 21:52
von tejubin
lunar hat geschrieben:@tejubin: Mit "subprocess.Popen" kannst Du Prozessen Eingaben über ihre Standardeingabe schicken. Das ist zwar kürzer und eleganter als eine Parameter-Datei, aber – da ein solche Datei kurzlebig ist und daher hauptsächlich im Cache vorliegt – nicht wesentlich schneller. 10^13 Schlüssel zu erstellen, dauert so oder so ewig.
Dafür hätte ich einen Hochleistungsrechner zur Verfügung. Aber wenn du sagst, dass das nicht viel langsamer ist, könnte man das dann ja notfalls so machen. Aber das mit dem "subprocess.Popen" werde ich mir mal angucken. Danke schonmal!
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 22:09
von EyDu
tejubin hat geschrieben:Leonidas hat geschrieben:Du könntest doch auch ein Python-GnuPG-Binding nehmen, das könnte die Sache einfacher machen.
Und wie würde so etwas aussehen? Weiß jetzt nicht genau, was du damit meinst. Hast du ein bestimmtes im Hinterkopf?
Möchtest du damit sagen, dass du es bei Google mit "python gnupg" nicht einmal bis zum ersten Treffer schafst?

Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 22:34
von tejubin
EyDu hat geschrieben:tejubin hat geschrieben:Leonidas hat geschrieben:Du könntest doch auch ein Python-GnuPG-Binding nehmen, das könnte die Sache einfacher machen.
Und wie würde so etwas aussehen? Weiß jetzt nicht genau, was du damit meinst. Hast du ein bestimmtes im Hinterkopf?
Möchtest du damit sagen, dass du es bei Google mit "python gnupg" nicht einmal bis zum ersten Treffer schafst?

Damit versuche ich es ja bereits die ganze Zeit. Und bekomme ja nicht das hin, was ich will..
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 23:15
von cofi
Das hoert sich mir aber ziemlich genau nach dem an was du willst:
http://packages.python.org/python-gnupg ... ating-keys
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Dienstag 24. April 2012, 23:22
von tejubin
Ah, ich sehe auch gerade, dass ich doch etwas anderes benutze, was dem ähnlich sieht. So, versuche mich mal daran, dass zu installieren.
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Donnerstag 26. April 2012, 04:56
von tejubin
Ich habe es jetzt endlich hinbekommen, das zu installieren!
Nun versuche ich, es wie in der Documentation
http://packages.python.org/python-gnupg/ beschrieben zu benutzen.
Aber alleine das initialisieren des Interfaces
klappt nicht, da 'gnupg' nicht bekannt ist. Auch nicht, wenn ich es importiere. Ich arbeite und bin neu unter Ubuntu. Die installation von gnupg war erfolgreich. Muss ich noch zusätzliche Einstellungen vornehmen (irgendwelche Pfade setzen?), damit das klappt?
Danke für Eure Geduld..
Re: Generierung öffentlicher Schlüssel mit GnuPG
Verfasst: Donnerstag 26. April 2012, 05:59
von BlackJack
@tejubin: Wenn Du ``import gnupg`` durchgeführt hast, dann ist danach auch der Name `gnupg` an das Modul gebunden. Oder Du bekommst einen `ImportError` weil das Modul/Paket nicht korrekt installiert wurde. Dann müsstest Du mal beschreiben, wie Du es installiert hast.
Auf der anderen Seite verstehe ich nicht warum Du nicht etwas aus der Paketverwaltung von Ubuntu installierst. Da gibt es gleich mehrere Anbindungen an GnuPG für Python, alleine zwei an die ``libgpgme``, die das verwenden von GnuPG aus Anwendungen heraus vereinfachen soll. Bei beiden gibt es ein Beispielskript zum generieren von Schlüsseln.