Access control files (ACFs) describe the access rights of applications to connect to applets on the UICC Secure Element (SE).
BlackBerry 10 devices support access control using the GlobalPlatform (GP) and the Gemalto access control applets.
To describe the details of the ACF verification process, we use the case of an application attempting to connect to an applet as an example. Note that the developer must sign the BAR file and install the application on the device.
When an app attempts to connect to an applet on the SE, the platform verifies that:
The GP applet is checked if it is available. If the applet is not present, a fall-through mechanism chooses the PKCS #15 applet.
If the PKCS #15 applet is used, the applet itself and the object identifier (OID 1.2.840.114283.200.1.1) in the Data Object Directory File (DODF) must be present. Otherwise, the fall-through mechanism chooses the Gemalto applet.
If the Gemalto applet is used, the applet itself and the OID (1.2.840.114283.200.1.1) in the DODF must be present.
If none of the application identifiers (AIDs) above is found, or if the OIDs (in the case of PKCS #15 and Gemalto) are not present, or if there is a structural error in the ACF scheme itself, no ACF cache is built and access is denied.
Although the Gemalto specifications state that the EFdir file should be checked if the main Gemalto and PKCS #15 AIDs are not found, we do not specifically enforce this rule.
The GP and Gemalto AIDs are proprietary, while the PKCS #15 AID is not.
It is possible for a carrier to customize the ordering in which the platform checks the above access control file schemes, or to even have certain schemes ignored. This customization is performed by associating a certain ordering with a specific set of mobile country codes and/or mobile network codes (MCC/MNC). When a UICC is inserted into a device, the MCC/MNC are read from the UICC, and if any custom access control ordering rules need to be enforced for that specific MCC/MNC, that custom ordering will be used instead of the default order listed above.
Only the owners of a UICC (for example, carriers) can request this customization. To request customization, the carrier should consult the appropriate carrier technical manager at BlackBerry.
There are some differences in ACF behavior between BlackBerry 7 and BlackBerry 10:
The BlackBerry 10 Native SDK contains the tools you need to build and sign a BAR file that requires access to the secure element. BAR files must be signed using an RSA based certificate or certificate chain.
You need the BlackBerry 10 Native SDK to sign BAR files using RSA certificates. To sign a BAR file, you create a keystore, then use the blackberry-signer command to sign the BAR file. The following steps demonstrate how to sign a BAR file using the command line.