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.