Device transport keys
The device transport key encrypts the message keys that help protect the data sent between a BlackBerry® Enterprise Server and BlackBerry device. The BlackBerry Enterprise Server and BlackBerry device generate the device transport key when a user activates the BlackBerry device.
The BlackBerry Enterprise Server and BlackBerry device do not send the device transport key over the wireless network when they generate the device transport key or when they exchange messages.
The BlackBerry® Enterprise Solution is designed so that only the BlackBerry Enterprise Server and BlackBerry device know the value of the device transport key. The BlackBerry Enterprise Server and BlackBerry device reject a data packet if they do not recognize the format of a data packet or do not recognize the device transport key that protects the data packet.
States for device transport keys
The BlackBerry® Enterprise Solution generates device transport keys on a regular basis so that a potentially malicious user cannot access all data sent between a BlackBerry® Enterprise Server and BlackBerry device if that user compromises a device transport key. As the BlackBerry Enterprise Solution generates device transport keys, the device transport keys change state from pending to current to previous.
Where the BlackBerry Enterprise Solution stores device transport keys
The BlackBerry® Enterprise Solution stores current, pending, and previous device transport keys in the BlackBerry Configuration Database, in the messaging environment, and on each BlackBerry device.
A BlackBerry device stores the device transport keys in a key store database in flash memory. The key store database is designed to prevent a potentially malicious user from copying the device transport keys to a computer by trying to back up the device transport keys. A potentially malicious user cannot extract key data from flash memory.
To avoid compromising the device transport keys that are stored in the BlackBerry Configuration Database or in the messaging environment, you must protect the BlackBerry Configuration Database and the storage location of the device transport key in the messaging environment.
Where the BlackBerry Enterprise Solution stores device transport keys in a Microsoft Exchange environment
- message of class RIM.BlackBerry.Handheld.Config that contains the user's configuration information, including the device transport key
- device transport keys in binary form with tags that indicate whether the status of the device transport keys is pending (0x6002 tag), current (0x6003 tag), or previous (0x6004 tag)
Where the BlackBerry Enterprise Solution stores the device transport keys in an IBM Lotus Domino environment
In an IBM® Lotus® Domino® environment, the BlackBerry® Enterprise Solution stores the device transport keys in a Lotus Domino database that is named BlackBerryProfiles.nsf. The BlackBerry profiles database contains configuration information for every user account that exists in the Data directory. The BlackBerry profiles database stores an account record that contains the RIMCurrentEncryptionKeyText field, RIMPendingEncryptionKeyText field, and RIMPreviousEncryptionKeyText field. The fields stores the device transport keys for every user account in a hexadecimal string using alphanumeric characters.
Generating device transport keys
Generating the first device transport key for a BlackBerry device during the activation process
If a user connects a BlackBerry® device to a computer for the first time and activates the BlackBerry device, the BlackBerry® Desktop Software generates the device transport key and sends it to the BlackBerry device and messaging server.
If a user activates the BlackBerry device over the wireless network, the BlackBerry® Enterprise Server and BlackBerry device negotiate to select the strongest algorithm that they both support (either AES or Triple DES) and use that algorithm to generate a device transport key. To generate public keys for key rollover on the BlackBerry device and create a strong, cryptographically protected connection between the BlackBerry Enterprise Server and BlackBerry device, the BlackBerry® Enterprise Solution uses the SPEKE authentication method and the activation password for the BlackBerry device.
For more information about the SPEKE authentication method, visit http://standards.ieee.org/ to read Password-Based Public Key Cryptography (P1363.2).
Security characteristics for generating the first device transport key
Generating subsequent device transport keys for a BlackBerry device
By default, the BlackBerry® Enterprise Server and BlackBerry device generate subsequent device transport keys every 30 days. If a pending device transport key exists and a user connects a BlackBerry device to a computer, the current device transport key on the BlackBerry device becomes the previous device transport key and the pending device transport key becomes the current device transport key. If no pending device transport key exists, you, the user, or the BlackBerry® Desktop Software can generate a device transport key.
The BlackBerry Enterprise Server and BlackBerry device generate the device transport key using existing long-term public keys and the ECMQV key exchange algorithm to negotiate a device transport key. This method is designed so that a potentially malicious user is unable to calculate the device transport key. The BlackBerry Enterprise Server and BlackBerry device discard the key pair after they generate the device transport key.
For more information about the ECMQV key exchange algorithm, see NIST: Special Publication 800-56: Recommendation on Key Establishment schemes, Draft 2.0 and the Guide to Elliptic Curve Cryptography.
Security characteristics for generating subsequent device transport keys
Characteristics |
Description |
|---|---|
authentication |
Authentication means that only a BlackBerry® device that a user authenticates with or a BlackBerry® Enterprise Server can generate subsequent device transport keys. Authentication is designed so that a potentially malicious user cannot use another device to impersonate an activated BlackBerry device and generate a device transport key. |
password independent |
Password independent means that the user does not require an activation password and you do not have to perform any actions when you or a user generates a subsequent device transport key. |
flexible initiation |
Flexible initiation means that you or a user can generate a subsequent device transport key at any time. |
PFS |
PFS means that subsequent device transport keys are independent of previous device transport keys. A device transport key does not help the potentially malicious user decrypt data that another device transport key protects. |
Generating a device transport key manually
To generate a device transport key on an activated BlackBerry® device, a user can click Regenerate Encryption Key, in the BlackBerry device options, in the security options. The BlackBerry device sends the request to generate a device transport key to the BlackBerry® Enterprise Server over the wireless network.
A user can also generate a device transport key using the BlackBerry® Desktop Manager. By default, the BlackBerry Enterprise Server sends a request to the BlackBerry Desktop Manager every 30 days to prompt the user to generate a new device transport key on the BlackBerry device, even if the user chooses to generate the device transport key manually using the BlackBerry Desktop Manager.
You can use the BlackBerry Administration Service to start the process to generate a new device transport key.
Process flow: Generating a device transport key using BlackBerry Desktop Software version 4.0 or later
In BlackBerry® Desktop Software version 4.0 or later, the process to generate a device transport key uses the current time and cursor movements as the seeds to generate random data.
To generate the device transport key, the BlackBerry Desktop Software performs the following actions:
- prompts the user to move the cursor
- uses the srand function of the C programming language to examine the lowest 12
bits of the x and y co-ordinates of the new cursor
location
If the bits are different from the previous sample, the BlackBerry Desktop Software stores the bits, which generates 3 bytes of randomness. If the bits are the same as the bits in the previous sample, the BlackBerry Desktop Software does not store any bits.
- uses the srand function to examine the next
bits, after the srand function waited for a random interval between
50 milliseconds and 150 milliseconds
The srand function continues to wait for random intervals and examine bits until the BlackBerry Desktop Software stores 384 bytes of randomness.
- retrieves 384 bytes of randomness from the Microsoft® Cryptographic API, for a total of 768 bytes
- hashes the 384 bytes of randomness from the cursor co-ordinates and the 384 bytes of randomness from the Microsoft Cryptographic API with SHA-512 to produce 512 bits of data
- frees the computer memory that is associated with the unused bits
- generates the device transport key using the first 256 bits of data if the BlackBerry Desktop Software supports AES encryption, or the first 128 bits of data if the BlackBerry Desktop Software supports Triple DES encryption
- deletes any bits of data that it does not use to generate the device transport key
Process flow: Generating a device transport key using a BlackBerry Desktop Software version or BlackBerry Enterprise Server version that is earlier than version 4.0
In BlackBerry® Enterprise Server or BlackBerry® Desktop Software versions that are earlier than version 4.0, the process that generates a device transport key uses the current time and the cursor movements as the seeds to generate random data.
- The BlackBerry Desktop Software prompts the user to move the cursor.
- The BlackBerry Enterprise Server or BlackBerry Desktop Software generates 2 bits or 4 bits when the user moves the cursor, depending on whether the cursor movement changed one or both of the x and y axes. The BlackBerry Enterprise Server or BlackBerry Desktop Software generates bit samples in this way until it accumulates at least 8 bits.
- The srand function of the C programming language generates a random integer.
- The BlackBerry Enterprise Server
or BlackBerry Desktop Software
performs the following actions:
- examines the least significant bit
of the integer.
If the bit is a 1, the BlackBerry Enterprise Server or BlackBerry Desktop Software stores the complement of 1 bit of the accumulated 8 bits. Otherwise, the BlackBerry Enterprise Server or BlackBerry Desktop Software stores the unmodified accumulated 8 bits. This process is designed to make sure that, even if a user can replicate a previous user's cursor movements, the resulting value is still unique.
- generates a sample of 256 random bits from the cursor movements of the user
- uses the SHA-1 function to hash the 256 bits
- generates the device transport key of the BlackBerry device using the first 128 bits of the hash
- examines the least significant bit
of the integer.