GnuPG/Agent: Unterschied zwischen den Versionen

Aus Foxwiki
Robertquies (Diskussion | Beiträge)
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“
 
(51 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Ist ein Hintergrundprogramm das automatisch von GnuPG für die Eingabe und das Cachen von Passwörtern verwendet wird.
'''GnuPG-Agent''' - Hintergrundprogramm für gecachte Passwörter


=Funktion=
== Beschreibung ==
Dieser Artikel beschreibt die Einrichtung des GPG-Agenten,  Beispielsweise muss bei der Benutzung von Psi (Abschnitt „mit-OpenPGP-GnuPG“) mit signiertem Status nicht bei jeder Statusänderung das Passwort neu eingegeben werden. Der Agent speichert das Passwort in einem Cache und fragt nur nach festlegbaren Zeitintervallen erneut danach.
Wie der ssh-agent (bei [[OpenSSH]]) dient der gpg-agent, der seit GnuPG 2.0.x integraler Bestandteil ist, unter anderem dazu, die Passphrase für einen konfigurierbaren Zeitraum im Arbeitsspeicher zu halten, sodass eine erneute Eingabe entfällt; gpg-agent speichert die Passphrase aber nicht nur, sondern übernimmt auch ihre Abfrage vom Anwender (über ein konfigurierbares Hilfsprogramm)
* Anders als bei OpenSSH ist der gpg-agent allerdings ab Version 2 von GnuPG zwingender Bestandteil; in der künftigen Version 2.1 werden sogar alle Operationen, die private Schlüssel beinhalten, an gpg-agent ausgelagert, was es ermöglicht, die Schlüssel auf einem anderen Rechner zu speichern und nur noch indirekt zu verwenden
* Die zweite wichtige Aufgabe von gpg-agent bei GnuPG 2.0.x ist der Zugriff auf Smartcards


=weiterführende Artikel=
Der Kontakt zu einer Instanz von gpg-agent, die nicht den Standardsocket verwendet (es können mehrere gleichzeitig laufen, was aber meist nicht sinnvoll ist), wird über eine Umgebungsvariable ermöglicht
*[[Sicherheit:Verschlüsselung:GPG]]
* Ein Beispiel: Über den Befehl <code>gpg-agent --daemon thunderbird</code> wird der Mailclient [[Mozilla Thunderbird|Thunderbird]] gestartet, und zwar mit der Umgebungsvariable <code>GnuPG_AGENT_INFO</code>
*[[Sicherheit:pinentry-curses]]
* Diese enthält eine Zeichenkette wie <code>/tmp/gpg-xY9Q7R/S.gpg-agent:2244:1</code> (Pfad des Socket, PID von gpg-agent (wird ignoriert) und Versionsnummer des Protokolls)
*[[Sicherheit:Backup:duply]]
* Hierdurch kann das Mailprogramm Kontakt mit dem jeweiligen gpg-agent aufnehmen und ihm den Umgang mit den privaten Schlüsseln (und deren Passphrase) überlassen


=Quellen=
Bei den meisten unixoiden Desktopumgebungen wird der gpg-agent gleich beim Start aktiviert
[https://wiki.ubuntuusers.de/GPG-Agent/ https://wiki.ubuntuusers.de/GPG-Agent/]
* Dadurch, dass das Startscript der Desktopumgebung diese Umgebungsvariable exportiert, haben alle Programme Zugriff darauf
* Wenn gpg-agent nicht läuft (oder nicht gefunden wird), wird es von gpg, gpgsm und gpgconf automatisch gestartet
* Zugriff auf einen laufenden gpg-agent kann man in der Konsole über das Programm ''gpg-connect-agent'' bekommen
* Mit dem Server kann man dann über das textbasierte Assuan-Protokoll kommunizieren
* Man kann gpg-agent daher auch unabhängig von OpenPGP und OpenSSH zur Verwaltung von Passphrasen für eigene Programme nutzen. Über die Konfigurationsdatei gpg-agent.conf wird u.&nbsp;a
* festgelegt, über welchen Zeitraum eine Passphrase gecacht wird


[[Category:Sicherheit]]
Man kann nicht direkt abfragen, welche Einträge gpg-agent gerade speichert, aber man kann testen, ob ein konkreter Eintrag vorhanden ist (und sich den auch anzeigen lassen)
* GnuPG legt die Passphrase eines Schlüssels unter dessen Fingerprint ab (ggf
* dem des betroffenen Unterschlüssels):
 
> gpg-connect-agent "GET_PASSPHRASE --data --no-ask 4F7E9F723D197D667842AE115F048E6F0E4B4494 t1 t2 t3" /bye
D fubar
OK
 
Ebenso kann man eine Passphrase setzen, sodass sie nicht vom Anwender abgefragt werden muss (etwa bei automatisierten Prozessen)
* Dafür gibt es sogar eine eigene Anwendung: gpg-preset-passphrase
 
Mit gpg-connect-agent kann man auch auf einfache Weise testen, ob gpg-agent überhaupt läuft (bzw.&nbsp;so läuft, dass es unmittelbar verwendet werden kann):
 
# gpg-connect-agent /bye
gpg-connect-agent: can't connect to the agent: IPC "connect" Aufruf fehlgeschlagen
 
; Funktion
*Das automatisch von GnuPG für die Eingabe und das Cachen von Passwörtern verwendet wird
*Speichert das Passwort in einem Cache und fragt nur nach festlegbaren Zeitintervallen erneut danach
 
== Installation ==
Wichtig ist außerdem, dass man noch ein Passworteingabeprogramm,z.&nbsp;B.&nbsp;[[pinentry-curses|pinentry-curses]] für die jeweilige Desktop-Umgebung benötigt
# apt install gnupg-agent pinentry-curses
 
== Aufruf ==
=== Optionen ===
{|class="wikitable"
!Option !! Beschreibung
|-
| --daemon || Normaler Aufruf, um den Dämon zu starten
|-
| --ignore-cache-for-signing || Erzwingt eine erneute Passworteingabe, um andere Schlüssel zu signieren
|-
| --default-cache-ttl n || Setzt die Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 600
|-
| --max-cache-ttl n || Setzt die maximale Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 7200 (2 Stunden)
|-
| --pinentry-program filename || Setzt explizit das Passworteingabeprogramm auf filename
|}
 
=== Parameter ===
=== Umgebung ===
=== Rückgabewert ===
== Anwendung ==
=== Problembehebung ===
== Konfiguration ==
=== Dateien ===
<noinclude>
 
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
----
* [[GnuPG]]
* [[pinentry-curses]]
 
==== Sicherheit ====
==== Dokumentation ====
===== RFC =====
===== Man-Page =====
 
==== Links ====
===== Projekt =====
===== Weblinks =====
# https://wiki.ubuntuusers.de/GnuPG-Agent/
# https://wiki.ubuntuusers.de/GnuPG/
</noinclude>
[[Kategorie:GnuPG]]

Aktuelle Version vom 12. November 2024, 18:41 Uhr

GnuPG-Agent - Hintergrundprogramm für gecachte Passwörter

Beschreibung

Wie der ssh-agent (bei OpenSSH) dient der gpg-agent, der seit GnuPG 2.0.x integraler Bestandteil ist, unter anderem dazu, die Passphrase für einen konfigurierbaren Zeitraum im Arbeitsspeicher zu halten, sodass eine erneute Eingabe entfällt; gpg-agent speichert die Passphrase aber nicht nur, sondern übernimmt auch ihre Abfrage vom Anwender (über ein konfigurierbares Hilfsprogramm)

  • Anders als bei OpenSSH ist der gpg-agent allerdings ab Version 2 von GnuPG zwingender Bestandteil; in der künftigen Version 2.1 werden sogar alle Operationen, die private Schlüssel beinhalten, an gpg-agent ausgelagert, was es ermöglicht, die Schlüssel auf einem anderen Rechner zu speichern und nur noch indirekt zu verwenden
  • Die zweite wichtige Aufgabe von gpg-agent bei GnuPG 2.0.x ist der Zugriff auf Smartcards

Der Kontakt zu einer Instanz von gpg-agent, die nicht den Standardsocket verwendet (es können mehrere gleichzeitig laufen, was aber meist nicht sinnvoll ist), wird über eine Umgebungsvariable ermöglicht

  • Ein Beispiel: Über den Befehl gpg-agent --daemon thunderbird wird der Mailclient Thunderbird gestartet, und zwar mit der Umgebungsvariable GnuPG_AGENT_INFO
  • Diese enthält eine Zeichenkette wie /tmp/gpg-xY9Q7R/S.gpg-agent:2244:1 (Pfad des Socket, PID von gpg-agent (wird ignoriert) und Versionsnummer des Protokolls)
  • Hierdurch kann das Mailprogramm Kontakt mit dem jeweiligen gpg-agent aufnehmen und ihm den Umgang mit den privaten Schlüsseln (und deren Passphrase) überlassen

Bei den meisten unixoiden Desktopumgebungen wird der gpg-agent gleich beim Start aktiviert

  • Dadurch, dass das Startscript der Desktopumgebung diese Umgebungsvariable exportiert, haben alle Programme Zugriff darauf
  • Wenn gpg-agent nicht läuft (oder nicht gefunden wird), wird es von gpg, gpgsm und gpgconf automatisch gestartet
  • Zugriff auf einen laufenden gpg-agent kann man in der Konsole über das Programm gpg-connect-agent bekommen
  • Mit dem Server kann man dann über das textbasierte Assuan-Protokoll kommunizieren
  • Man kann gpg-agent daher auch unabhängig von OpenPGP und OpenSSH zur Verwaltung von Passphrasen für eigene Programme nutzen. Über die Konfigurationsdatei gpg-agent.conf wird u. a
  • festgelegt, über welchen Zeitraum eine Passphrase gecacht wird

Man kann nicht direkt abfragen, welche Einträge gpg-agent gerade speichert, aber man kann testen, ob ein konkreter Eintrag vorhanden ist (und sich den auch anzeigen lassen)

  • GnuPG legt die Passphrase eines Schlüssels unter dessen Fingerprint ab (ggf
  • dem des betroffenen Unterschlüssels):
> gpg-connect-agent "GET_PASSPHRASE --data --no-ask 4F7E9F723D197D667842AE115F048E6F0E4B4494 t1 t2 t3" /bye
D fubar
OK

Ebenso kann man eine Passphrase setzen, sodass sie nicht vom Anwender abgefragt werden muss (etwa bei automatisierten Prozessen)

  • Dafür gibt es sogar eine eigene Anwendung: gpg-preset-passphrase

Mit gpg-connect-agent kann man auch auf einfache Weise testen, ob gpg-agent überhaupt läuft (bzw. so läuft, dass es unmittelbar verwendet werden kann):

# gpg-connect-agent /bye
gpg-connect-agent: can't connect to the agent: IPC "connect" Aufruf fehlgeschlagen
Funktion
  • Das automatisch von GnuPG für die Eingabe und das Cachen von Passwörtern verwendet wird
  • Speichert das Passwort in einem Cache und fragt nur nach festlegbaren Zeitintervallen erneut danach

Installation

Wichtig ist außerdem, dass man noch ein Passworteingabeprogramm,z. B. pinentry-curses für die jeweilige Desktop-Umgebung benötigt

# apt install gnupg-agent pinentry-curses

Aufruf

Optionen

Option Beschreibung
--daemon Normaler Aufruf, um den Dämon zu starten
--ignore-cache-for-signing Erzwingt eine erneute Passworteingabe, um andere Schlüssel zu signieren
--default-cache-ttl n Setzt die Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 600
--max-cache-ttl n Setzt die maximale Zeit, wie lange ein Passwort im Cache bleibt, auf n Sekunden. Standard ist 7200 (2 Stunden)
--pinentry-program filename Setzt explizit das Passworteingabeprogramm auf filename

Parameter

Umgebung

Rückgabewert

Anwendung

Problembehebung

Konfiguration

Dateien

Anhang

Siehe auch


Sicherheit

Dokumentation

RFC
Man-Page

Links

Projekt
Weblinks
  1. https://wiki.ubuntuusers.de/GnuPG-Agent/
  2. https://wiki.ubuntuusers.de/GnuPG/