5
$\begingroup$

Sometime in the late 1980's I was introduced to the "One use, one key" rule ("une clé par usage"). A longer version could be: a cryptographic key should have a single purpose, with any exception justified by operational need and supported by a security analysis.

What's the history of the development of this key-management principle, whatever the wording? Update: I'm told it's known as key isolation or key separation.

How is it expressed in security recommendations or regulations, Common Criteria and the like?

Any notable corollary beside the following?

  1. Possession of a secret key (symmetric key or private key) materializes an authorization to access some information or location, operate some device, approve some type of information. Such authorizations should be compartmentalized inasmuch as practical by having a key for each kind of authorization and each subject for that authorization.
  2. In public-key cryptography, there should be a public/private key pair for each device or person, and for each role they have; e.g. acting as a private person, as company employee, as security officer, as a timestamping device. That allows selective revocation of authorization, fine-grained and per-message choice of recipients a message in hybrid encryption, identifying the meaning of a signature, and more.
  3. When possible don't reuse keys across a succession of communication sessions. Instead use session-unique keys. That's necessary for forward secrecy.
  4. Keys for transmission and reception, for message encryption and message authentication, should be separate (guards against some attack, e.g. reflexion attack, breaking authentication when using the same key for some combinations of CBC encryption and CBC MAC).
  5. Any key with multiple purposes for functional reasons should be used only as key of a Key Derivation Function, with the other input a public key derivation constant unique for each use. For keys that must go thru key stretching (e.g. passwords), the key derivation for multiple keys always used jointly (e.g. the keys implied by #3 and #4) might need to cascade two KDFs: a purposely slow KDF like Argon2 or scrypt for key stretching, then key derivation per se using HKDF or the same KDF as in the first step, but parameterized for speed.
  6. Point #5 should also apply to any single-purpose key (much more password/passphrase). That's to allow interoperability when and if introducing a new purpose for that key.
  7. Avoid using the same key for multiple cryptographic algorithms and protocols (among reasons: it's an assumption in the security evaluation of the algorithms and protocols, and of their implementation when facing some attacks like exploitation of side-channels). If an exception must be done because #6 was not followed, at least make sure the key is used for unrelated cryptographic algorithms (e.g. it's arguably OK for AES-CTR and HMAC-SHA-256).
$\endgroup$
7
  • 2
    $\begingroup$ Are these bullet points from particular specifications? If so, would it be possible to cite their sources in this question? $\endgroup$
    – aiootp
    Commented Jul 29 at 12:31
  • 2
    $\begingroup$ @aiootp: No. That's out of my head, gleaned from observation of common (occasionally less than best) practices in the industry. [And reading, of course]. Gathering authoritative sources is among objectives of the first two sub-questions. $\endgroup$
    – fgrieu
    Commented Jul 29 at 12:36
  • 1
    $\begingroup$ Some infosec principles regarding breaches, or other security failures, which may have influenced this rule: system segmentation, system isolation, least privilege. Related key attacks also come to mind, like with HMAC. $\endgroup$
    – aiootp
    Commented Jul 30 at 0:27
  • $\begingroup$ I'm sorry because I'm pretty dumb, but what's the question exactly? Do you feel the irony? $\endgroup$
    – Paul Uszak
    Commented Jul 30 at 4:54
  • $\begingroup$ @PaulUszak: Sorry if it was not clear, I hope it's now: I'm trying to find the genesis of the "une clé par usage" rule I'm applying in my professional practice, and have often stated. My vague recollection is I learned this principle circa 1989 from designers of this Smart Card extension to the Minitel, which I was tasked to breed with personal computers of the time (I ended up adding this Smart Card functionality to a modem, and then the whole Minitel ecosystem collapsed). $\endgroup$
    – fgrieu
    Commented Jul 30 at 9:19

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.