User Interface Issues
The nShield CSP supports hardware keys protected by either the module itself or by OCSs. Protecting keys with OCSs raises some user interface issues because the user interface needs to be displayed both at key-creation time and at key-loading time.
The choice of using module-protected keys or keys protected by OCSs is made in the install wizard. If, however, you generate keys protected by OCSs and then switch to module protection, then in most cases the keys protected by OCSs still require the user interface to be displayed in order to load them.
At key-generation time, if the always display UI at key gen
flag is unset and an automatic Operator Card is present, the CSP uses the Card Set to protect the key, loading the shares automatically on all modules that contain a suitable card.
(The flag is set using the install wizard.)
Otherwise the CSP displays the user interface and blocks until the user interface is completed.
At key-loading time, if the key is protected by an automatic OCS, and the Card Set is present, then the key is loaded on all modules that contain a suitable card. Otherwise, the CSP displays the user interface and blocks until the user interface is completed; this requires the same steps as for key generation except for choosing the Card Set.
An automatic OCS means a card from a 1/N Card Set that is not protected by a passphrase. At either time, the user interface is completed when the user has chosen a Card Set and the modules on which to load the key and has performed the card and passphrase operations.
The CSP requires authorization to import keys (including public keys) and to generate keys when you have initialized your modules in the mode compatible with FIPS 140 Level 3. This means that you must have a card from your current Security World in the slot when you attempt any of these operations, even if you are generating a module-protected key. If a card is not present, the operation blocks, and the CSP displays a user interface that prompts you to insert a card.
The CSP honors the CRYPT_SILENT
flag to CryptAcquireContext
.
If this flag is passed in and the CSP would otherwise have to put up the user interface for any of the reasons in the two previous paragraphs, it fails with the appropriate error message.
If the CSP is being loaded from a service process (for example when used from within IIS or the main Certificate Authority process), then that process does not necessarily have access to the user’s desktop. This means that any UI displayed by the CSP may not appear on an attended desktop (or at all), and the underlying operation may well time out.
If this is the case (and you are not using the CRYPT_SILENT
flag, for whatever reason), we recommend that either you do not use OCS-protected keys or you use an automatic Card Set, so that the CSP does not display the UI.