[strongSwan] strongSwan with eToken

Peter Winterer winterer at informatik.uni-freiburg.de
Wed Nov 10 14:54:41 CET 2010


Hi Martin,
thank you very much!, your comments makes things clearer.

Since our gateway supports only IKEv2, I build strongSwan with
"--enable-pkcs11" and without --enable-smartcard.

I have modified the configs accordingly. (see below)

However, it doesent work. It seems to me that our certificates are not
suitable enough ? I set the following extensions for our client
certificates:
..
 X509v3 extensions:
   X509v3 Subject Alternative Name:
      mail:[user]@vpn

Do I need to set the "Extended Key Usage"?
X509v3 Extended Key Usage:
      TLS Web Client Authentication


Here are the logs:
ipsec start:

00[DMN] Starting IKEv2 charon daemon (strongSwan 4.5.0)
00[CFG] loaded PKCS#11 v2.1 library 'eToken-module'
(/usr/lib/libeTPkcs11.so)
00[CFG]   Aladdin Ltd.: eToken PKCS#11 v5.0
00[CFG]   found token in slot 'eToken-module':1 (AKS ifdh 00 00)
00[CFG]     eToken (Aladdin Knowledge Systems Ltd.: eToken)
00[CFG] C_FindObjectsInit() failed: ATTRIBUTE_TYPE_INVALID
00[CFG] C_FindObjectsInit() failed: ATTRIBUTE_TYPE_INVALID
00[KNL] listening on interfaces:
00[KNL]   eth0
...
00[CFG] loading ca certificates from '/etc/ipsec.d/cacerts'
00[CFG]   loaded ca certificate "C=DE, O=MoPo WLAN Uni Freiburg, CN=MoPo
Root-CA" from '/etc/ipsec.d/cacerts/root.pem'
00[CFG] loading aa certificates from '/etc/ipsec.d/aacerts'
00[CFG] loading ocsp signer certificates from '/etc/ipsec.d/ocspcerts'
00[CFG] loading attribute certificates from '/etc/ipsec.d/acerts'
00[CFG] loading crls from '/etc/ipsec.d/crls'
00[CFG] loading secrets from '/etc/ipsec.secrets'
00[CFG]   loaded private key from
%smartcard1 at eToken:33423544384442423444303736374239
00[DMN] loaded plugins: aes des sha1 sha2 md5 random x509 revocation
pubkey pkcs1 pgp pem fips-prf gmp pkcs11 xcbc hmac attr kernel-netlink
resolve socket-raw stroke updown
....

ipsec up mopo:
...
13[CFG] received stroke: initiate 'mopo'
14[IKE] initiating IKE_SA mopo[1] to ip-gw
14[ENC] generating IKE_SA_INIT request 0 [ SA KE No N(NATD_S_IP)
N(NATD_D_IP) ]
14[NET] sending packet: from ip-client 500] to ip-gw[500]
15[NET] received packet: from ip-gw[500] to ip-client[500]
15[ENC] parsed IKE_SA_INIT response 0 [ SA KE No N(NATD_S_IP)
N(NATD_D_IP) CERTREQ N(MULT_AUTH) ]
15[IKE] received cert request for "C=DE, O=MoPo WLAN Uni Freiburg,
CN=MoPo Root-CA"
15[IKE] sending cert request for "C=DE, O=MoPo WLAN Uni Freiburg,
CN=MoPo Root-CA"
Nov 10 14:27:03 lralap05 charon: 15[IKE] no private key found for
'winterer at vpn'
...

ipsec.secrets:
 : PIN %smartcard1 at eToken:33423544384442423444303736374239 XXXX

ipsec.conf:
.....
conn mopo
      left=%defaultroute
      keyexchange=ike
      leftsourceip=%config
      leftid=winterer at vpn
      leftfirewall=no
      right=ip-gw
      rightsubnet=0.0.0.0/0
      rightid=root at vpn
      auto=add
...

strongswan.conf:
....
libstrongswan {

        #  set to no, the DH exponent size is optimized
        #  dh_exponent_ansi_x9_42 = no
         # ...
  plugins {
    pkcs11 {
      modules {
          eToken {
          path = /usr/lib/libeTPkcs11.so
        }
      }
    }
  }
}
....

Regards
peter

Am 10.11.2010 10:39, schrieb Martin Willi:
> Hi Peter,
> 
>> I build strongSwan Version 4.5.0 with "--enable-smartcard" and
>> "--enable-pkcs11"
> 
> The --enable-smartcard option enables PKCS#11 support for pluto, the new
> --enable-pkcs11 module is more generic and used by charon (and the pki
> tool).
> 
> At some point we probably will switch to the new smartcard interface in
> pluto.
> 
>> config setup
>>         plutostart=no
>>         pkcs11module=/usr/lib/libeTPkcs11.so
> 
> If you do not use pluto, the new PKCS#11 backend is required only. It
> supports multiple PKCS#11 libraries. These are not configured in
> ipsec.conf anymore, but in strongswan.conf.
> 
> A complete HOWTO is currently missing, but you can find the
> configuration syntax for modules at [1] (only the syntax of
> strongswan.conf applies, the rest is NetworkManager specific).
> 
>>       leftcert=%smartcard
> 
>> opening '/etc/ipsec.d/certs/%smartcard' failed: No such file or directory
> 
> The new backend does not require explicit loading of smartcard
> certificates. It automatically loads all certificates found on any token
> during startup. Just make sure you have a leftid that matches to the
> gateway certificate.
> 
>> ipsec.secrets
>>  : PIN %smartcard1 %prompt
> 
> man ipsec.secrets has a little more details about the syntax:
> 
>> IKEv1 uses the format 
>>
>>   %smartcard[<slot nr>[:<key id>]]
>>
>> The IKEv2 daemon supports multiple modules with the format
>>
>>   %smartcard[<slot nr>[@<module>]]:<keyid>
> 
> The keyid is always required (33423544384442423444303736374239 in your
> case). We might change this requirement, but I don't like to end up
> using the PIN on the wrong token.
> 
> %prompt should work with IKEv2 if you enter it using "ipsec secrets".
> 
> Regards
> Martin
> 
> [1]http://wiki.strongswan.org/projects/strongswan/wiki/NetworkManager#Smartcard-requirements
> 




More information about the Users mailing list