Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
public:gnupg:luks_gnupg_card_stretch [2017/08/21 11:17] – [Update der Initramdisk] jankow@datenkollektiv.net | public:gnupg:luks_gnupg_card_stretch [2019/06/14 18:03] (aktuell) – [Cardreader ohne Pinpad] jankow@datenkollektiv.net | ||
---|---|---|---|
Zeile 110: | Zeile 110: | ||
Die folgenden Skripte sind für Lesegeräte gedacht, die nicht vom internen ccid-Treiber des gnupg-Binaries unterstützt werden sondern einen laufenden pcsc Daemon benötigen. Falls der Kartenleser vom internen ccid unterstützt wird, können und müssen die entsprechenden Zeilen ausgelassen werden. Ob mit laufendem pcscd auch Kartenleser unterstützt werden, die diesen normalerweise nicht benötigen, habe ich noch nicht getestet. | Die folgenden Skripte sind für Lesegeräte gedacht, die nicht vom internen ccid-Treiber des gnupg-Binaries unterstützt werden sondern einen laufenden pcsc Daemon benötigen. Falls der Kartenleser vom internen ccid unterstützt wird, können und müssen die entsprechenden Zeilen ausgelassen werden. Ob mit laufendem pcscd auch Kartenleser unterstützt werden, die diesen normalerweise nicht benötigen, habe ich noch nicht getestet. | ||
</ | </ | ||
+ | |||
+ | ==== Cardreader ohne Pinpad ==== | ||
+ | |||
+ | Seit Stretch funktioniert der Hack nach meiner Erfahrung so (s.u. #Cardreader mit Pinpad) nicht mehr für Cardreader ohne Pinpad. Genau habe ich das noch nicht analysiert - aber es hat wohl was mit der Art, wie die gnupg2 Version die pinentry Funktion aufruft, zu tun. | ||
+ | |||
+ | Hier gibt es eine funktionierende Anleitung: | ||
+ | * https:// | ||
+ | |||
+ | Auf unser Szenario bezogen benötigen wir folgende Dateien (beide müssen ausführbar sein): | ||
+ | |||
+ | <file bash / | ||
+ | #!/bin/sh | ||
+ | |||
+ | set -e | ||
+ | |||
+ | PREREQ=" | ||
+ | |||
+ | prereqs() | ||
+ | { | ||
+ | echo " | ||
+ | } | ||
+ | |||
+ | case $1 in | ||
+ | prereqs) | ||
+ | prereqs | ||
+ | exit 0 | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | . / | ||
+ | |||
+ | if [ ! -x ${DESTDIR}/ | ||
+ | exit 0 | ||
+ | fi | ||
+ | |||
+ | |||
+ | # Deploy the keyring. | ||
+ | cp -a /etc/keys/ " | ||
+ | |||
+ | # Deploy terminfo (required for pinentry-curses). | ||
+ | mkdir -p " | ||
+ | cp -a / | ||
+ | |||
+ | # Deploy GnuPG binaries and pinentry-curses. | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | |||
+ | # some more libs for pcscd | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | if uname -r | grep -q amd64; then | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | else | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | fi | ||
+ | |||
+ | # we need some more stuff from gnupg2 | ||
+ | copy_exec / | ||
+ | copy_exec / | ||
+ | |||
+ | |||
+ | echo " | ||
+ | |||
+ | exit 0 | ||
+ | </ | ||
+ | |||
+ | chmod 755 / | ||
+ | |||
+ | <file bash / | ||
+ | #!/bin/sh | ||
+ | |||
+ | # This is the safest way to ensure the GnuPG home directory is correctly set. | ||
+ | export GNUPGHOME=/ | ||
+ | |||
+ | # quick hack for starting pcscd | ||
+ | mkdir -p /var/run | ||
+ | pcscd & | ||
+ | |||
+ | sleep 3 | ||
+ | |||
+ | |||
+ | gpg2 --no-tty --decrypt / | ||
+ | </ | ||
+ | |||
+ | chmod 750 / | ||
==== Cardreader mit Pinpad ==== | ==== Cardreader mit Pinpad ==== | ||
Zeile 119: | Zeile 211: | ||
Am Anfang des Skripts wird eine kleine Abfrage gemacht, ob ein Kartenleser existiert. Wenn nicht, fragt das Skript nach der Passphrase. Diese Unterscheidung ist nötig, weil " | Am Anfang des Skripts wird eine kleine Abfrage gemacht, ob ein Kartenleser existiert. Wenn nicht, fragt das Skript nach der Passphrase. Diese Unterscheidung ist nötig, weil " | ||
- | Wir können diesen Umstand ausnutzen, um auch Kartenleser ohne Pinpad zu nutzen. Wenn der Kartenleser erst eingesteckt wird, wenn das Skript sich schon in der Schleife mit " | + | <del>Wir können diesen Umstand ausnutzen, um auch Kartenleser ohne Pinpad zu nutzen. Wenn der Kartenleser erst eingesteckt wird, wenn das Skript sich schon in der Schleife mit " |
<file bash / | <file bash / | ||
Zeile 255: | Zeile 347: | ||
exit 0 | exit 0 | ||
- | </ | ||
</ | </ | ||