OpenFIPS201 v1_10_0 #44
makinako
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The latest revision of OpenFIPS201 is ready! Here are a few features and enhancements that have been added:
Documentation
Dynamic Configuration
All
FEATURE
compilation constants are now gone and been replaced with a more extensive set of configuration registers for controlling aspects of applet behaviour. This means there is no longer a need to modify or build from source code in order to configure it.All configuration elements can be updated either individually, or batched into a single command (using OPTIONAL ASN.1 elements). If you choose not to update the configuration, you can just use the default values that have all been defined to adhere to PIV, or if PIV doesn't specify something then sensible default values have been used.
Pre-Personalisation Interface
The PUT DATA ADMIN command has changed a bit due to dynamic configuration. The following BER-TLV structures are defined:
Your current pre-perso will still work via the
Legacy Operation
, but you will not be able to take advantage of some of the extended features, notably dynamic configuration. We encourage you to migrate over to the new commands, which have been kept as similar as possible to ease the transition.Bulk Pre-Personalisation
You can combine any number of the above pre-perso commands into the same APDU to reduce the command overheads of sending so many of them!
The command is identical to the normal
PUT DATA ADMIN
format, with the exception that you have an outer BER-TLV tag that contains a SEQUENCE OF individual commands.You can also mix and match different kinds of updates in one (i.e. Keys, Data Objects and Config).
PIN Enhancements
The applet supports a number of additional useful enhancements to PIN functionality:
numeric
,alpha numeric
,alpha numeric (case insensitive)
orraw
(any byte value)[n]
consecutive digits from being used (for example, 123456).PIV Impacts:
numeric
will not work with any middleware that enforces numeric-only digits.Dynamic Admin Keys
For each data object and asymmetric key, you can now optionally define which symmetric key is responsible for managing it. This gives you the capacity to give write / key generation access to targeted objects. This feature is optional and if you do not specify an admin key, objects will default to the
9B
key.PIV Impact: PIV defaults to the
9B
key as the administrative key, so to maintain compatibility, simply define this key or don't specify the key.User Manageable Data Objects
For asymmetric keys and data objects, it is possible to now add the
User Admin
access mode privilege. If this is set, the data object can be written to, or the key generated as long as the access conditions for that card have been met. This can be separated for contact / contactless and the special 'always' access mode may not be paired with this.This has been included to permit the possibility of lower security applications whereby it is useful for regularly-changing operational data to be managed on the card without the requirement for administrative keys. Of course if the thought of this horrifies you, do nothing to your pre-perso scripts and the functionality will stay disabled.
Optional Cryptographic Mechanisms
The applet now attempts to instantiate all the required cryptographic mechanisms, but if there are any that it can't this now only results in those corresponding mechanisms being disabled, not prevention of the entire applet install.
PIV Impact: None, provided the card is able to support at least one of the asymmetric key pair types.
Other
Admin
key attribute has now been deprecated as it replaced by theadminKey
optionPermit Mutual
key attribute has been added for symmetric keys so it needs to be explicitly enabled. For legacy operations this attribute is automatically applied to maintain compatibility.FEATURE_STRICT_APDU_CHAINING
has been removed as ISO7816 is pretty clear that you should be able to interrupt chained commands without an error.FEATURE_DISCOVERY_OBJECT_DEFAULT
has been removed now that the discovery object generates every call.FEATURE_PIV_TEST_VECTORS
has been removed as it's usefulness reduced with ECC support and FIPS 140 doesn't like test values.Options.restrictContactlessGlobal
configuration parameter has been added, which will make the applet non-selectable over the contactless interface.Options.restrictContactlessAdmin
configuration parameter has been added, which prevents SCP03 administration over contactless.Options.restrictSingleKey
configuration parameter has been added, which will prevent the applet from allowing the same key to be defined with multiple mechanisms.GET STATUS
andGET VERSION
are improved (more additions and improvements will follow in the coming months, but compatibility with the current response bytes will be maintained so don't hard-code length requirements into your code!).This discussion was created from the release OpenFIPS201 v1_10_0.
Beta Was this translation helpful? Give feedback.
All reactions