Deploying the software with tokens or smart cards
Introduction
The SN VPN Client Exclusive supports a great number of tokens and smart cards that can be used for strong multi-factor authentication (MFA) using one of the following APIs: CNG (default) or PKCS#11.
NOTE
The list of tokens and smart cards compatible with the SN VPN Client Exclusive is available on TheGreenBow’s website at: https://www.thegreenbow.com/en/support/integration-guides/compatible-vpn-tokens/.
CNG
CNG stands for “Cryptography API: Next Generation”. It is an API to access cryptographic tokens and smart cards, currently provided by Microsoft. The SN VPN Client Exclusive uses it by default, and it does not require any additional configuration.
PKCS#11
PKCS#11 is an API to access cryptographic tokens and smart cards that has been standardized by RSA Labs. Most tokens and smart cards are compatible with PKCS#11. For the SN VPN Client Exclusive to be able to use the PKCS#11 API, a middleware provided by the manufacturer of the token or smart card must first be installed on the target computer.
To force the SN VPN Client Exclusive to use the PKCS#11 API instead of the CNG API, use the Force PKCS#11 API usage option (refer to the section entitled “PKI Options” in the SN VPN Client Exclusive “Administrator’s Guide”) or the MSI property PKCS11ONLY when installing the software (see section PKCS11ONLY).
The SN VPN Client Exclusive supports PKCS#11-compatible tokens or smart cards from leading manufacturers (Gemalto, IN Groupe, Neowave, Feitian, Yubico, etc.) without any additional configuration.
The tokens and smart cards compatible with the SN VPN Client Exclusive are the ones listed on TheGreenBow’s website at: https://www.thegreenbow.com/en/support/integration-guides/compatible-vpn-tokens/ and for which the PKCS11 box is checked.
For tokens or smart cards that are not recognized as standard by the SN VPN Client Exclusive, the software allows you to specify their characteristics in a PKCS#11 initialization file called vpnconf.ini, described below.
vpnconf.ini file
To enable the SN VPN Client Exclusive to support tokens or smart cards that are not recognized as standard, you must create a vpnconf.ini file in the VPN Client’s installation directory (C:\Program Files\Stormshield\Network VPN Client Exclusive\ by default). You can create the file using a standard text editor (e.g. Notepad).
The parameters to be specified in the vpnconf.ini file are broken down into several sections:
-
A series of (optional) ATR sections used to define the attributes of tokens or smart cards that are not recognized as standard by the software
-
An (optional) ROAMING section to specify the token or smart card to be used when initializing the software
ATR sections
ATR stands for “Answer To Reset”. It is an identifier that the token or smart card returns upon receiving a reset command. This identifier is related to the manufacturer and model of the token or smart card.
Each ATR section describes the required characteristics to access a token or smart card, or a family of tokens or smart cards that are not yet known to the software.
The parameters to be specified in the ATR section are detailed in the following table:
Parameter |
Meaning |
[ATR#] |
ATR of the token or smart card to be added |
mask |
Mask to be used with this ATR. Details regarding ATRs and ATR masks are provided by the manufacturers of tokens or smart cards. If in doubt, you can configure a mask containing only FF. The lengths of the ATR and the mask must be identical. The mask line can thus be as follows: mask=FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF |
scname |
Name of the token or smart card (strictly descriptive field) |
manufacturer |
Name of the manufacturer (strictly descriptive field) |
pkcs11dllname |
Name of the PKCS#11 DLL |
dllpath |
Path to the PKCS#11 DLL. The path is the complete path. It must also contain the DLL name. At least one of the two parameters dllpath or registry must be defined. |
registry |
Name of the key in the registry specifying the path to the middleware. At least one of the two parameters dllpath or registry must be defined |
EXAMPLE
[3B:0F:52:4E:42:4F:24:00:23:00:00:00:00:00:00:00:01]
mask="FF:FF:FF:FF:FF:FF:FF:00:FF:00:00:FF:FF:00:00:00:FF"
scname="Card Name"
manufacturer="Company Name"
pkcs11dllname="mdlw.dll"
dllpath=”C:\path\to\middleware\mdlw.dll"
ROAMING section
The ROAMING section is used to specify the token or smart card reader to be used when the option Use the token or SC reader specified in the VPN Config. is selected (refer to the section entitled “PKI Options” in the SN VPN Client Exclusive “Administrator’s Guide”) or when the software has been installed with the SMARTCARDROAMING property set to 2 or 3 (see section SMARTCARDROAMING).
The parameters to be specified in the ROAMING section are detailed in the following table:
Parameter |
Meaning |
SmartCardReader |
Name of the smart card reader or token to use |
SmartCardMiddleware |
DLL file used to communicate with the token or smart card |
SmartCardMiddlewareType |
Type of middleware. PKCS#11 is the only value possible for the SmartCardMiddlewareType parameter. |
SmartCardMiddelwarePath |
Path to the middleware including the middleware name. At least one of the two parameters SmartCardMiddlewarePath or SmartCardMiddlewareRegistry must be defined. |
SmartCardMiddlewareRegistry |
Name of the key in the registry specifying the path to the middleware. At least one of the two parameters SmartCardMiddlewarePath or SmartCardMiddlewareRegistry must be defined. |
NOTE
The parameters for accessing the Windows registry must comply with the following syntax:
PRIMARY_KEY:path\\to\\specific\\key:value
EXAMPLE
[ROAMING]
SmartCardReader="Card Name"
SmartCardMiddleware="mdlw.dll"
SmartCardMiddlewareType="PKCS#11"
SmartCardMiddlewareRegistry=”HKEY_LOCAL_MACHINE:SOFTWARE\\Vendor\\Prod\\CK:PKCS#11DLL"