CSEC3616Cybersecurity Engineering

    Key distribution centres and the key hierarchy

    The two-level key hierarchy that every KDC-based scheme relies on, what a KDC actually does, and the notes' worked scenario for a KDC delivering a session key to two users step by step.

    • Distinguish a master key from a session key and state which one protects which.
    • Explain what a KDC does and why it must always be online.
    • Walk through the key distribution scenario message by message and state what each nonce achieves.

    15 min read

    Intuition

    Boyd’s theorem says Alice and Bob need a mutually trusted third party to bootstrap a session key. For symmetric cryptography, that third party is a Key Distribution Centre. This page covers how it is structured, what it actually does, and the notes’ own worked scenario for delivering one session key from the KDC to two users.

    Mechanism

    A KDC relies on a key hierarchy with, at minimum, two levels. Communication between end systems is protected by a session key: a temporary key used for the duration of one logical connection (a transport-layer connection, say) and then discarded. Each session key is obtained from the KDC over the same network facilities used for the actual communication, so it must itself be transmitted encrypted. It is encrypted under a master key, a long-term key shared by the KDC and one end system or user. Master keys are distributed non-cryptographically: physical delivery is the notes’ own example, such as an IT department copying the key onto a laptop during setup, or in practice, deriving the key from a strong password.

    EXTRACTION DEFECT: Figure 1 (the key hierarchy diagram) did not survive extraction. The two-level structure above, master key protecting session key, is exactly what the figure illustrated; only the visual is missing.

    Mechanism

    A KDC generates and distributes session keys. It is always online, and holds a long-term master key with every member it serves; these are pre-configured by administrators or derived from a strong password in practice. At its simplest: A asks the KDC for a session key to talk to B. The KDC generates one and encrypts it twice, once under the master key it shares with A, once under the master key it shares with B, either sending both to A for A to forward B’s copy on, or sending each party its own copy directly. KDCs are, per the notes, some of the most important technologies in use: even OpenID and OAuth fall into this category, and KDCs are the basis for Kerberos, deployed across Windows, Linux, UNIX, macOS and more.

    Mechanism

    The notes work through a full scenario. Each user shares a unique master key with the KDC: A holds KaK_a, B holds KbK_b, known only to that user and the KDC. A wants a one-time session key to talk to B.

    1. A requests a session key. A sends the KDC a message including the identities of A and B, and a nonce N1N_1, a unique per-transaction identifier, ideally a random number, since it should be hard for an opponent to guess.
    2. The KDC replies, encrypted under KaK_a. Only A can read it, and because it decrypts correctly under KaK_a, A knows it came from the KDC. The reply carries the new session key KsK_s and A’s original request including N1N_1, which lets A both match the reply to its request and confirm the request was not altered or replayed. The same reply also carries a second payload meant for B: KsK_s and A’s identifier IDAID_A, this time encrypted under KbK_b, the master key the KDC shares with B, so A cannot read it.
    3. A forwards B’s payload. A stores its own copy of KsK_s and passes on the KbK_b-encrypted piece unopened. Because it is protected under KbK_b, B can decrypt it, and doing so tells B three things at once: the session key KsK_s, that the other party is A (from IDAID_A), and that this information really came from the KDC (because only the KDC and B share KbK_b).

    At this point the session key has been securely delivered to both sides. Two further steps add something the first three do not:

    1. B sends a fresh nonce. Using the new KsK_s, B sends A a nonce N2N_2.
    2. A proves it holds KsK_s. A replies using KsK_s with f(N2)f(N_2), some agreed transformation of N2N_2, such as incrementing it.

    Steps 1–3 alone move the key; steps 4 and 5 are an authentication function layered on top, giving B assurance that the message it received in step 3 is not a replay of an old one, since only whoever actually holds the fresh KsK_s can produce f(N2)f(N_2) for this specific N2N_2.

    EXTRACTION DEFECT: Figure 2 (the key distribution scenario diagram) did not survive extraction. The five steps above are the notes’ own textual description of that figure in full; only the visual sequence diagram is missing.

    Exam detail

    Keep the two purposes of this scenario separate when answering a question about it: steps 1 through 3 are key distribution, and steps 4 and 5 are authentication. A question asking “how many steps actually distribute the key” wants three, not five.

    Aside

    The slides label this same scenario “also called the Needham-Schroeder Protocol,” and the notes’ §8.1 formalises essentially this construction with an Authentication Server (AS) in place of the KDC and clean equations for each message. That formal version, and the vulnerability it turns out to have, is covered on the Needham-Schroeder and Kerberos page, so it is not repeated here.

    Recall

    • A session key protects real communication and is short-lived; a master key protects session key delivery and is long-lived.
    • The KDC must be always online because it answers session-key requests live.
    • Steps 1–3 of the scenario distribute the key; steps 4–5 authenticate that the party using it is genuinely present.
    • Nonce N1N_1 ties the KDC’s reply to A’s specific request; nonce N2N_2, answered with f(N2)f(N_2), proves A is live and holds KsK_s.