GPG E-Mails Signieren

Bash, Shell, PHP, Python, Perl, CGI
greenrover
Posts: 203
Joined: 2004-12-17 19:34

GPG E-Mails Signieren

Post by greenrover »

Hallo,

Kann mir einer etwas in Perl oder sont wie geben, womit ich einfach einen Text als datepfad oder parameter angebe, und dann eine Datei oder ausgabe erhalte, welche mir dann das ganze als --clearsign ausgibt?

Mein hauproble ist, das ich mit PHP arbeite und damit die nachträglich Abrage nach dem Passphrase nicht beantworten kann.

Ich hoffe ihr versteht was ich meine und könnt helfen.

... Das ganze ist gedacht um Mails zu signieren, die vom Server versendet werden sollen.
creek
Posts: 76
Joined: 2003-07-29 08:52
Location: Stuttgart

Re: GPG E-Mails Signieren

Post by creek »

hmm sicher kannst du auf die abfrage antworten. weiß zwar gar net wie aber such mal in den docs nach exec und system oder wie die ganzen commands heißen
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

ja, die befehle kenn ich, aber dann verate mir mal genau wie, da ich ja warten muß bis mich GPG nach dem PW fragt und das dan übergeben muß.
creek
Posts: 76
Joined: 2003-07-29 08:52
Location: Stuttgart

Re: GPG E-Mails Signieren

Post by creek »

greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

ja, das ist das was ich suche,

aber sry, ich raffe es leider nicht wirklich.

Wie müsste es jetzt ausehen, wenn ich

gpg --clearsign /test.txt

aufrufen möchte:

und sobald GPG "Enter passphrase:" ausgiebt, soll das PHP script "geheim" schreiben.

Würde mic hecht freuen, wenn du das posten könntest
creek
Posts: 76
Joined: 2003-07-29 08:52
Location: Stuttgart

Re: GPG E-Mails Signieren

Post by creek »

auf der seite ist doch nen recht gutes beispiel musst es nur anpassen.
ist auch dokumentiert.
brauchst ansich nur den befehlt anpassen und das was in fwrite steht, da kommt dein geheim rein.
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

Aber wie macht man das, er auf die eingabe wartet. Poste es doch einfach fix.
creek
Posts: 76
Joined: 2003-07-29 08:52
Location: Stuttgart

Re: GPG E-Mails Signieren

Post by creek »

du brauchst nicht auf die frage zur eingabe zu warten.
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

und wiso nicht? die kommt doch leicht verzögert?

Oder wie soll das sonst gehen?
creek
Posts: 76
Joined: 2003-07-29 08:52
Location: Stuttgart

Re: GPG E-Mails Signieren

Post by creek »

versuch es doch einfach? wieso muss man dir alles vorkauen?
suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: GPG E-Mails Signieren

Post by suntzu »

Wieso setzt du für den Schlüssel kein leeres Passwort? Wenn jemand an den Schlüssel kommt, dann käme derjenige ja vermutlich auch an dein Skript und könnte das Passwort auslesen - ergo kein Sicherheitsgewinn.
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

Weist du ob sich der Fingerprintoder public key dadurch verändern?
suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: GPG E-Mails Signieren

Post by suntzu »

Ã?ndert sich nix. Was auch logisch ist, wenn man das Private/Public Key System verstanden hat...
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

Joa, da harpert es noch etwas.
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

So, ich habe das jetzt mit PHP teilweise zum laufen bekommen.

im error log steht:

gpg: WARNING: using insecure memory!
gpg: please see http://www.gnupg.org/faq.html for more information
gpg: fatal: /root/.gnupg: can't create directory: Permission denied
secmem usage: 0/0 bytes in 0/0 blocks of pool 0/32768

kann mann den Arbeitspfad nicht ändern?
Und diese fehlermeldung kommt auch wenn /root/.gnupg 777 rechte besitzt. Wer kann das erklären?
creek
Posts: 76
Joined: 2003-07-29 08:52
Location: Stuttgart

Re: GPG E-Mails Signieren

Post by creek »

lies die paramterliste und das beispiel.
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

mann wenn ich daraus schlau geworden währe, dann hätte ich ja wohl nicht gefragt ?!
greenrover
Posts: 203
Joined: 2004-12-17 19:34

Re: GPG E-Mails Signieren

Post by greenrover »

Also ich bin jetzt von alleine ein stückchen weiter gekommen.

mittels:

Code: Select all

error_reporting(E_ALL);

$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("file", "error-output.txt", "a") // stderr is a file to write to
);

$out="";

$process = proc_open('/srv/www/htdocs/web100/html/gnupg/bin/gpg --no-tty --homedir /var/lib/wwwrun/.gnupg --clearsign /srv/www/htdocs/web100/html/test/rubriken.html', $descriptorspec, $pipes);

if (is_resource($process)) {
   fwrite($pipes[0], 'geheim');
   fwrite($pipes[0], 'y');
   fclose($pipes[0]);

   while (!feof($pipes[1])) {
       $out .= fgets($pipes[1], 1024);
   }
   echo $out;
   fclose($pipes[1]);

   // It is important that you close any pipes before calling
   // proc_close in order to avoid a deadlock
   $return_value = proc_close($process);

   echo "command returned $return_valuen";
} else { echo "FAILER"; }
bekomme ich es hin, das ich auf die schlüssel zugreifen kann, jedoch hat ja der user wwwrun nur bin/flase und darf somit keine tty`s öffnen.

Deshalb kommt folgende Meldung:

gpg: please see http://www.gnupg.org/faq.html for more information
gpg: cannot open `/dev/tty': No such device or address

Aber wie soll ich dne passphrase eingeben ohne ein tty?!

Nun ist die frage, kann man das auch mit anderen Benutzerrechten ausführen lassen oder wer sieht eine Möglichkeit.

finde es mit passphrase etwas sicherer als ohne...