GnuPG 1.4.1rc1 + Smart Card reader package for Knoppix/Kanotix

Dany Nativel dany_list at natzo.com
Sun Feb 6 15:01:14 CET 2005


Hello,

In a previous post (Any LiveCD with GnuPG 1.4?) I was asking about a 
potential LiveCD that supports Gnupg 1.4 (at least).
Thanks everyone for the valuable comments you've provided.
I received a private email from David Lorch suggesting recompiling gpg 
and associated libraries under Knoppix by mounting some ramdisk.

I kind of tried but it didn't go very far. Finally I found a way to get 
gpg 1.4.1rc1 to run under Knoppix without much hassle (using a SCM 
SCR331 reader which has a driver built-in gnupg). In fact it was as easy 
as ./configure and make !
I then added additional drivers for various readers using the Klik 
technology. In the end I had a handy package that contained gpg1.4.1rc1 
as well as drivers that I could carry around and use with almost any 
Knoppix/Kanotix LiveCD. This is very convenient when it comes to key 
generation (on-card for example with off-card backup for example).

1)  Boot from Knoppix CD (3.7 12/08)  or even better from Kanotix BH X
IMPORTANT : for Knoppix I only used boot: knoppix26    .... I couldn't 
get most of my USB peripherals to work with regule knoppix (2.4).
Kanotix is 2.6 by default so no problems.

2) Download and extract gnupg-1.4.1-rc from 
ftp://ftp.gnupg.org/gcrypt/alpha/gnupg/gnupg-1.4.1rc1.tar.bz2   for 
example in your home directory (/home/knoppix)

3) Compile GnuPG
cd ~/gnupg-1.4.1rc1
./configure
make

the executable is available in ~/gnupg-1.4.1rc1/g10

4) Smart Card Reader

a) CCID reader directly supported by gnupg (e.g. USB SCM SCR331)
Nothing to do ... just use it :   ~/gnupg-1.4.1rc1/g10/gpg --card-status

b) CCID reader supported by libccid    (see 
http://pcsclite.alioth.debian.org/ccid.html for a list of supported readers)
I've used it with the Gemplus GemTwin USB.

In order to use libccid you need the pcscd which can be downloaded as a 
"klik" application for Knoppix.

Knoppix  users you need an extra step to get the klik client up and 
running  (Kanotix users... go to the next step):
# Press Alt-F2 and paste:
# wget klik.atekon.de/client/install -O -|sh

Go to the following address 
http://klik.atekon.de/details.php?section=misc&package=pcscd   and 
"klik" to install  
or
even faster open a web browser and enter : klik://pcscd

Now killall pcscd session that may have been opened during the 
installation process. I noticed that the pcscd would only work if 
launched with debug options.
This pcscd packages includes the libccid drivers by default so it's 
ready to go.

Unfortunately gnupg is looking for libpcslite.so so a link has to be 
created :

ln /tmp/klik/pcscd/usr/lib/libpcsclite.so.1 
/tmp/klik/pcscd/usr/lib/libpcsclite.so

Now it's time to start the pcscd from the command line (not the icon on 
your desktop)
/tmp/klik/pcscd/wrapper pcscd -af

NB: this worked fine under Knoppix but not under Kanotix,   sudo 
/tmp/klik/pcscd/wrapper pcscd -af    solved the problem

Before starting gpg you need to set the path to libpcsclite.so :
export LD_LIBRARY_PATH=/tmp/klik/pcscd/usr/lib/:$LD_LIBRARY_PATH

You can now start gnupg but remember that if you're using a CCID reader 
not supported by GnuPG itself you must disable ccid when calling GnuPG 
so it won't try to talk to the reader directly. For example the GemTwin 
will fail if not started with the extra option.
~/gnupg-1.4.1rc1/g10/gpg --card-status --disable-ccid 

NB: SCR331 can also be used with libccid (it's supported by both gnupg 
and libccid)

c) Other Smart Card readers
If none of your reader is supported by the above solutions you need to 
install an additional driver.
Klik provides a convenient way to download precompiled drivers. Below is 
a list of available drivers:
- libasedrive-serial | PC/SC driver for the Athena ASEDrive IIIe serial 
smart card reader
- libasedrive-usb | PC/SC driver for the Athena ASEDrive IIIe USB smart 
card reader
- libcteco50000 | Orga Eco 5000 smartcard reader PCSC and CT-API driver
- libetoken | PC/SC Driver for Aladdin's eToken usb plug
- libgcr410 | PC/SC driver for GemPlus GCR410 serial SmartCard interface
- libgempc410 | PC/SC driver for the GemPC 410, 412, 413 and 415 smart 
card readers
- libgempc430 | PC/SC driver for the GemPC 430, 432, 435 smart card readers
- libslbreflex2 | Reflex 62/64 smartcard reader PCSC and CT-API driver
- libtowitoko2 | Towitoko smartcard reader PCSC and CT-API driver

Example  :  USB Towitoko Chipdrive Micro 130
After "kliking" on libtowitoko2 
(http://klik.atekon.de/details.php?section=libs&package=libtowitoko2)  
you'll find a new directory under /temp/klik called towitoko2
The drivers files need to be placed under the pcscd directory and 
according to a specific directory organization

mkdir /tmp/klik/pcscd/usr/lib/pcsc/drivers/ifd-towitoko2.bundle
mkdir /tmp/klik/pcscd/usr/lib/pcsc/drivers/ifd-towitoko2.bundle/Contents
mkdir 
/tmp/klik/pcscd/usr/lib/pcsc/drivers/ifd-towitoko2.bundle/Contents/Linux
cp /tmp/klik/libtowitoko2/usr/lib/libtowitoko.so.2.0.0 
/tmp/klik/pcscd/usr/lib/pcsc/drivers/ifd-towitoko2.bundle/Contents/Linux
cp /tmp/klik/libtowitoko2/usr/share/towitoko/Info.plist 
/tmp/klik/pcscd/usr/lib/pcsc/drivers/ifd-towitoko2.bundle/Contents

and then start pcscd the same way :
/tmp/klik/pcscd/wrapper pcscd -af    (with sudo if using Kanotix)

Don't forget to set the path to libpcsclite.so before running gnupg :
export LD_LIBRARY_PATH=/tmp/klik/pcscd/usr/lib/:$LD_LIBRARY_PATH

~/gnupg-1.4.1rc1/g10/gpg --card-status

NB: Serial reader may also be used but they'll need a little bit more 
tweaking for properly configuring the serial port and so on. I tried to 
play a little bit with the GCR415 without success.

5) Conclusion
Now that you've got your reader up and running you probably don't want 
to go to this process next time you're booting from Knoppix/Kanotix.

The only thing you need to save (on a USB drive for example) is the 
/tmp/klik directory and gpg executable files
You can also use the convenient persistent home directory and just move 
the klik to it so it will be available all the time. Don't forget to 
adjust the export LD_LIBRARY_PATH accordingly !

I've packaged a pre-compiled gpg-1.4.1rc1, pcsd (including libccid) and 
towitoko driver so you can just extract it under /home/knoppix and 
follow the instructions found in the short readme file.

The file can be downloaded from http://natzo.com/klik-gpg1.4.1rc1.tar.gz

This should help users seeking to generate their keys on-card and save a 
backup copy off-card. For more security you should probably recompile 
gpg yourself (it doesn't take that long). One could also disable network 
connections (Knoppix sets them up automatically) and use encrypted swap 
file (especially if swap is mounted on a hdd).

Dany





More information about the Gnupg-users mailing list