BlackBerry Dynamics SDK
support for personal certificates (PKCS12 or PKI certs)
BlackBerry Dynamics SDK
support for personal certificates (PKCS12 or PKI certs)The
BlackBerry Dynamics SDK
has been enhanced to support personal certificates for authentication of applications at
runtime.No programming is required by the BlackBerry developer on any of the
client
BlackBerry Dynamics SDK
platforms
to take advantage of this feature. All operations are carried about by the BlackBerry
Dynamics
Runtime. The app
must use the BlackBerry
Dynamics
Secure Communication Networking APIs provided in prior releases, the employee’s account
must be correctly configured, and the GC must be the 2.0.xx.yy release later.An enterprise can deploy corporate services requiring two-way SSL/TLS
mutual authentication in order to authenticate their employees. Through the enterprise,
the employee may be issued or otherwise obtain a password protected Personal Information
Exchange file (PKCS12/p12/pfx) containing a SSL/TLS client certificate and private key
required by such services for authentication purposes. This file may be installed on
various machines and devices, including
BlackBerry
Dynamics
apps, so that
access can be granted to these services.Setup in Good Control
Requirements of the certificates themselves are described in Certificate requirements and troubleshooting.
To deploy Personal Information Exchange files with
BlackBerry
Dynamics
apps, the
following steps must be taken to configure the GC and employee’s account. For more
information, see the Good Control and Good Proxy Admin
Help.- After the GC is installed, an administrator may choose to extend the default 24-hour period that an employee’s protected Personal Information Exchange file shall be cached by the GC server.
- An administrator must add allBlackBerry Dynamicsapps that access services requiring client authentication to theCertificates -> App Usagetab,
- An administrator must enableUse PKCS12 Certificate Managementin the employee's security policy,
- An administrator or employee must upload their Personal Information Exchange files to theCertificatestab.
Behavior of personal certificates in the app
After the employee activates a
BlackBerry
Dynamics
app enabled
for access to server resources requiring client authentication, it receives their
Personal Information Exchange files, provided they are still cached on the GC. For
each file, the employee is asked to enter their password protecting the file
contents, so the identification material can be installed. Once installed, provided
the identification is correct, the BlackBerry
Dynamics
app is
granted access to server resources requiring two-way SSL/TLS mutual authentication
when connecting.If there is more than one Personal Information Exchange file required
per employee, the
BlackBerry
Dynamics
Runtime ensures that the certificate chosen to send to the
server meets all of the following criteria:- Only client certificates suitable for SSL/TLS client authentication are eligible for sending to the server. That is, certificates that have no Key Usage and Extended Key Usage, or Key Usage contains “Digital Signature" or "Key Agreement”, or Extended Key Usage contain "TLS Web Client Authentication”, and those whose Key Usages and Extended Key Usages do not contradict allowances for SSL/TLS client auth.
- If the server advertises the client certificate authority in the SSL/TLS handshake, only client certificates issued by these authorities will be considered
- Only current client certificates will be considered (that is, certificates that have not expired or are not yet valid)
Usually this is sufficient to identify the correct client
certificate, but if there is still more than one certificate meeting all of the
above criteria then the first one is used. If the certificate chosen is not the
desired one, the administrator or employee can manage this by removing the undesired
client certificate from Good Control. The administrator can also increase the chance
of success by ensuring the server is configured to advertise the client certificate
authority in the SSL/TLS handshake.