Content protection keys
When you or a user turns on content protection for a BlackBerry® device, the BlackBerry device generates a content protection key. The content protection key is designed to encrypt user data on the BlackBerry device when it is locked.
When the BlackBerry device is locked, an encryption process begins. The BlackBerry device frees the memory that it associates with the content protection key and ECC private key that it stores in RAM. The BlackBerry device then uses the ECC public key to encrypt new data that it receives.
When a user unlocks a BlackBerry device, the BlackBerry device decrypts the content protection key and ECC private key in flash memory. When the user wants to view data, the BlackBerry device uses the content protection key or ECC private key to decrypt the data before the BlackBerry device displays it. An unlocked BlackBerry device uses the content protection key to encrypt new data that the user types or adds to the BlackBerry device, or that the BlackBerry device receives.
- The BlackBerry Enterprise Server performs the following actions:
- The device performs the following actions:
When the device permanently deletes d, the device is designed so that a potentially malicious user cannot use the data that remains on the device to recover K. Only the BlackBerry Enterprise Server knows b and can recalculate K = dB = dbP = bD if the BlackBerry Enterprise Server is provided with D. The BlackBerry Enterprise Solution uses K when it resets the device password when content protection is turned on.
Process flow: Generating a content protection key on a device
- Uses a DRBG function to generate a content protection key (if the device is not operating in FIPS mode, the device uses a DSA PRNG function)
- Generates an ECC key pair with a bit length that you or the user determines
- Prompts the user to type the device password
- Derives an ephemeral 256-bit AES encryption key from the device password, using PKCS #5
- Uses the ephemeral key to encrypt the content protection key and ECC private key
- Stores the encrypted content protection key, encrypted ECC private key, and ECC public key in flash memory
The content protection key is a semi-permanent 256-bit AES encryption key. If the user changes the device password, the device uses the new password to derive a new ephemeral key. The device uses the new ephemeral key to re-encrypt the versions of the content protection key and ECC private key that are in flash memory.
For more information about the DRBG function, see NIST Special Publication 800-90. For more information about the DSA PRNG function, see Federal Information Processing Standard - FIPS PUB 186-2. For more information about PKCS #5, visit www.rsa.com to see PKCS #5: Password-Based Cryptography Standard.
Process flow: Deriving an ephemeral key that protects a content protection key and ECC private key
A BlackBerry® device uses an ephemeral key to encrypt a content protection key and ECC private key. The BlackBerry device derives the ephemeral key, which is an AES-256 encryption key, from the BlackBerry device password using PKCS #5.
- selects a
64-bit salt (which is random data that the BlackBerry device mixes with the BlackBerry device
The salt prevents two identical passwords from turning into the same key.
- concatenates the salt, password, and salt again into a byte array (for example, Salt|Password|Salt)
- hashes the byte array with SHA-256
- stores the resulting hash in a byte array that is called a key
(key) = SHA256(Salt|Password|Salt)
- hashes the key 18 more times and stores the result in the key each time
The final hash creates the ephemeral key.
For more information, visit www.rsa.com to see PKCS #5: Password-Based Cryptography Standard.