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 BlackBerry device performs the following actions:
When the BlackBerry device permanently deletes d, the BlackBerry device is designed so that a potentially malicious user cannot use the data that remains on the BlackBerry device to recover K. Only the BlackBerry Enterprise Server knows b and can recalculate K = dB = dbP = bD if it is provided with d.
- uses a DSA PRNG function to randomly generate a content protection key
- generates an ECC key pair with a bit length that you or the user determines
- prompts the user to type the BlackBerry device password
- derives an ephemeral key that uses AES-256 encryption from the BlackBerry 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 key that uses AES-256 encryption. If the user changes the BlackBerry device password, the BlackBerry device uses the new password to derive a new ephemeral key. The BlackBerry 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 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.