Java Reference
In-Depth Information
there are several types of implementations with various types of keys including keys used
for authentication and keys used to generate random numbers, but we shall not include the
same in our implementation.
8.2.4.2 Generation of Keys
he following guidelines are to be adopted for the generation of strong keys for the purposes of
encrypting sensitive information for a Web application:
It is recommended that the DEK and the KEK be generated from a FIPS-compliant applica-
tion or hardware, * or at least be generated from a random number generator that provides
a cryptographically secure random number. It is not recommended that user-deined keys
be used as DEKs or KEKs for the purposes of encryption, as they would usually contain
dictionary words or other easily guessable words, which can be broken by inference or by
brute-forcing the same. If encryption keys are to be created from user passwords, then a
stringent password policy governing passwords length, complexity, and expiration needs to
be implemented.
While using block ciphers, it is always recommended to use the CBC/CFB/OFB/CTR mode
of block cipher encryption as opposed to ECB, as it provides a lower level of randomness and
may be easily inferred by an attacker looking at the patterns formed in similar data.
It is recommended that an initialization vector be used to perform the encryption and
decryption process, to add more randomness to the encryption process. he initialization
vector may be stored with the sensitive data as it does not have to be secret. It must be noted
that only the key needs to be maintained as a secret.
8.2.4.3 Storage of Keys
he following practices are to be implemented to ensure that the keys are stored securely:
he data-encrypting key (DEK) and the key-encrypting key (KEK) need to be stored in
diferent systems away from the application. he DEK should not be stored in the same
location as the data it is used to encrypt.
he keys should ideally be maintained by key custodians with split knowledge
of the keys.
Key custodians are individuals of an organization who have been assigned the task of ensur-
ing secrecy of the encryption keys.
he systems storing the DEK and the KEK should be protected with adequate mechanisms
including strong access control (where only selected individuals can access the systems), ile
integrity monitoring (to ensure that the integrity of the key is not tampered with), and log-
ging mechanisms (to ensure that any access to the said systems is logged and actions taken
by individuals on the system are also captured in the logs).
* FIPS is the Federal Information Processing Standards Publications. FIPS Publications are developed to promul-
gate acceptable industry standards for security and interoperability. he FIPS 140 series are a series of publica-
tions that specify requirements for cryptographic modules.
Split knowledge of a key refers to the practice of ensuring that one key custodian does not have access to the
entire encryption key. Custodians have knowledge of one half of the key, and they use their knowledge in tan-
dem, when necessary, to perform key management operations.
Search WWH ::




Custom Search