pkcs11 Plugin
Purpose
The pkcs11
plugin for libstrongswan
implements the PKCS#11
smart card
interface and can be used by both the IKE charon
daemon and the pki tool. Besides RSA
keys the plugin also
supports ECDSA
, DH/ECDH
and RNG
.
The plugin is disabled by default and can be enabled with the
./configure
option
--enable-pkcs11
Configuration
The pkcs11
plugin is configured using the following options in the
charon.plugins.pkcs11
section of strongswan.conf
:
Key | Default | Description |
---|---|---|
modules |
This section lists available |
|
modules.<name>.path |
Full path to the shared object file of this |
|
modules.<name>.os_locking |
|
Whether OS locking should be enabled for this module |
modules.<name>.load_certs |
|
Whether the |
reload_certs |
|
Whether the |
use_dh |
|
Whether the |
use_ecc |
|
Whether the PKCS#11 modules should be used for |
use_hasher |
|
Whether the |
use_pubkey |
|
Whether the |
use_rng |
|
Whether the |
use_rsa_pss_hashers |
|
Whether the |
Example:
libstrongswan { # ... plugins { pkcs11 { modules { my-xy-module { path = /path/to/pkcs11/lib.so } } } } }
Behavior
Certificates stored on smart cards are loaded automatically when the daemon is
started. If the PKCS#11
module supports hot-plugging, the certificates are
reloaded when a token gets inserted or removed later. The first certificate
matching the local identity
connections.<conn>.local<suffix>.id
in swanctl.conf will be used.
Specific certificates can also be loaded via swanctl.conf using sections of the form
connections.<conn>.local<suffix>.cert<suffix>
To access the private key you have to specify the associated PIN in swanctl.conf in section of the form
secrets.token<suffix>
Depending on the configuration reloading the secrets will prompt the user for the PIN.
[[NetworkManager#Smart-card-requirements|NetworkManager]] makes the use of smart cards with IKEv2 even easier.