440 likes | 463 Views
Explore the complexities of cryptographic key management and distribution, the challenges faced, and the methods to ensure secure key distribution. Learn about Kerberos authentication, public-key infrastructure, and more.
E N D
Lecture 4Key Management and Distribution (Modified version based on lecture slides by Lawrie Brown)
Chapter 4 – Key Management and Distribution No Singhalese, whether man or woman, would venture out of the house without a bunch of keys in his hand, for without such a talisman he would fear that some devil might take advantage of his weak state to slip into his body. —The Golden Bough, Sir James George Frazer
Outline • Key distribution (Ref. Chap.14) • User authentication: Kerberos (Ref. Chap.15) • Public-key certificate (Ref. Chap.14) • Public-key infrastructure (Ref. Chap.14)
Key Management and Distribution • Topics of cryptographic key management / key distribution are complex • Cryptographic, protocol, & management issues • Symmetric schemes require both parties to share a common secret key • Public key schemes require parties to acquire valid public keys • Have concerns with doing both
Key Distribution • Symmetric schemes require both parties to share a common secret key • Issue is how to securely distribute this key whilst protecting it from others • Frequent key changes can be desirable • Often secure system failure due to a break in the key distribution scheme
Key Distribution • Given parties A and B have various key distribution alternatives: • A can select key and physically deliver to B • Third party can select & deliver key to A & B • Uf A & B have communicated previously can use previous key to encrypt a new key • If A & B have secure communications with a third party C, C can relay key between A & B
Option 4 • Elements in option 4 • Key distribution center (KDC) • Session key: valid for the duration of a logical connection • Permanent key: for distributing session keys • Steps • Connection request: A -> KDC • Connection approval: KDC generates unique one-time session key, and send to A and B • Data exchange using session key: A <-> B
Kerberos • Trusted key server system from MIT • Provides centralised private-key third-party authentication in a distributed network • Allows users access to services distributed through network • Without needing to trust all workstations • Rather all trust a central authentication server • Two versions in use: 4 & 5 (RFC 4120)
Kerberos Requirements • Its first report identified requirements as: • Secure • Reliable • Transparent • Scalable • Implemented using an authentication protocol based on Needham-Schroeder
A Simple Authentication Dialogue • To prevent impersonation • C V: IDC||PC • Burden on each server • Authentication server (AS) • CAS: IDC||PC||IDV • ASC: Ticket • CV: IDC||Ticket • Ticket=E(Kv, [IDC||ADC||IDV])
A More Secure Authentication Dialogue • Problems with the previous scenario • A user has to enter a password many times • Once for every different service • Plaintext transmission of the password
Ticket-granting server (TGS) • Once per user logon session • CAS: IDC||IDtgs • ASC: E(KC, Tickettgs) • Once per type of service • C->TGS: IDC||IDV||Tickettgs • TGSC: Ticketv • Once per server session • CV: IDC||Ticketv • Tickettgs=E(Ktgs, [IDC||ADC||IDtgs||TS1||Lifetime1]) • Ticketv=E(Kv, [IDC||ADC||IDV||TS2||Lifetime2])
Problems • Lifetime of the tickets • A network service must be able to prove that the person using the ticket is the same person to whom the ticket was issued • Session key in Kerberos • Servers need to authenticate themselves to users • Mutual authentication
Kerberos v4 Overview • A basic third-party authentication scheme • Have an Authentication Server (AS) • Users initially negotiate with AS to identify self • AS provides a non-corruptible authentication credential (ticket granting ticket TGT) • Have a Ticket Granting server (TGS) • Users subsequently request access to other services from TGS on basis of users TGT • Using a complex protocol using DES
Authentication service exchange to obtain ticket-granting ticket • CAS: IDC||IDtgs||TS1 • ASC: E(KC, [KC,tgs||IDtgs||TS2||Lifetime2||Tickettgs]) • Tickettgs=E(Ktgs, [KC,tgs|| IDC||ADC||IDtgs||TS2||Lifetime2]) • [Session key: KC,tgs]
Ticket-granting service exchange to obtain ticket-granting ticket • C->TGS: IDV||Tickettgs||AuthenticatorC • TGSC: E(KC,tgs, [Kc,v||IDv||TS4||Ticketv]) • Tickettgs=E(Ktgs, [KC,tgs|| IDC||ADC||IDtgs||TS2||Lifetime2]) • Ticketv=E(Kv, [Kc,v|| IDC||ADC||IDV||TS4||Lifetime4]) • AuthenticatorC = E(KC,tgs,[IDC||ADC||TS3]) • [Session key: KC,v]
Client/Server Authentication Exchange to obtain service • CV: Ticketv||AuthenticatorC • VC: E(Kc,v, [TS5+1]) (for mutual authentication) • Ticketv=E(Kv, [Kc,v|| IDC||ADC||IDV||TS4||Lifetime4]) • AuthenticatorC = E(KC,v,[IDC||ADC||TS5])
Kerberos Realms • A Kerberos environment consists of: • A Kerberos server • A number of clients, all registered with server • Application servers, sharing keys with server • This is termed a realm • Typically a single administrative domain • In multiple realms, their Kerberos servers must share keys and trust
CAS: IDC||IDtgs||TS1 • ASC: E(KC, [KC,tgs||IDtgs||TS2||Lifetime2||Tickettgs]) • C->TGS: IDtgsrem||Tickettgs||AuthenticatorC • TGSC: E(KC,tgs, [Kc,tgsrem||IDtgsrem||TS4||Tickettgsrem]) • C->TGSrem: IDVrem||Tickettgsrem||AuthenticatorC • TGSremC: E(KC,tgsrem, [Kc,vrem||IDvrem||TS6||Ticketvrem]) • CVrem: Ticketvrem||AuthenticatorC
Kerberos Version 5 • Developed in mid 1990’s (RFC1510) • Specified as Internet standard (RFC 4120) • Provides improvements over v4 • Addresses environmental shortcomings • Encryption alg, network protocol, byte order, ticket lifetime, authentication forwarding, interrealm auth • And technical deficiencies • Double encryption, non-std mode of use, session keys, password attacks
Key distribution using asymmetric encryption • Distribution of public keys • Use of public-key encryption to distribute secret keys
Public-Key Certificates • To send or broadcast public keys to the community is convenient, but • Anyone can forge such announcement • Public-key certificate • CA: certificate authority • Certificate: (public key + user ID) signed by CA
Public-key distribution of secret keys • How to distribute the secret key between Alice and Bob? • Diffie-Hellman key exchange • No authentication of the two communicating partners • Public-key certificate • Encrypt the message with one-time session key • Encrypt the session key using public-key encryption with Alice’s public key • Attach the encrypted session key to the message
X.509 Certificates • ITU-T X.509 • A part of X.500 directory service • Database of information about users • A framework for providing authentication services by X.500 directory to its users • A repository of public-key certificates • Used in S/MIME (Chap.7), IP security (Chap.8), SSL/TLS (Chap.5) • First issued in 1988, revised recommendation in 1993, third version in 1995 and revised in 2000 • Does not dictate the use of a specific alg but recommends RSA
X.509 Certificates • Issued by a Certification Authority (CA), containing: • version V (1, 2, or 3) • serial number SN (unique within CA) identifying certificate • signature algorithm identifier AI • issuer X.500 name CA • period of validity TA (from - to dates) • subject X.500 name A (name of owner) • subject public-key info Ap (algorithm, parameters, key) • issuer unique identifier (v2+) • subject unique identifier (v2+) • extension fields (v3) • signature (of hash of all fields in certificate) • Notation CA<<A>> denotes certificate for A signed by CA
Obtaining a Certificate • Any user with access to CA can get any certificate from it • Only the CA can modify a certificate • Because cannot be forged, certificates can be placed in a public directory
CA Hierarchy • If both users share a common CA then they are assumed to know its public key • Otherwise CA's must form a hierarchy • Use certificates linking members of hierarchy to validate other CA's • Each CA has certificates for clients (forward) and parent (backward) • Each client trusts parents certificates • Enable verification of any certificate from one CA by users of all other CAs in hierarchy
Certificate Revocation • Certificates have a period of validity • May need to revoke before expiry, eg: • User's private key is compromised • User is no longer certified by this CA • CA's certificate is compromised • CA’s maintain list of revoked certificates • The Certificate Revocation List (CRL) • Users should check certificates with CA’s CRL
X.509 Version 3 • Has been recognised that additional information is needed in a certificate • Email/URL, policy details, usage constraints • Rather than explicitly naming new fields defined a general extension method • Extensions consist of: • Extension identifier • Criticality indicator • Extension value
Certificate Extensions • Key and policy information • Convey info about subject & issuer keys, plus indicators of certificate policy • Certificate subject and issuer attributes • Support alternative names, in alternative formats for certificate subject and/or issuer • Certificate path constraints • Allow constraints on use of certificates by other CA’s
PKIX Management • Functions: • Registration • Initialization • Certification • Key pair recovery • Key pair update • Revocation request • Cross certification • Protocols: CMP (RFC 2510), CMC (RFC 2797)
Federated Identity Management • Use of common identity management scheme • Across multiple enterprises & numerous applications • Supporting many thousands, even millions of users • Principal elements are: • Authentication, authorization, accounting, provisioning, workflow automation, delegated administration, password synchronization, self-service password reset, federation • Kerberos contains many of these elements
Standards Used • Security Assertion Markup Language (SAML) • XML-based language for exchange of security information between online business partners • Part of OASIS (Organization for the Advancement of Structured Information Standards) standards for federated identity management • e.g. WS-Federation for browser-based federation • Need a few mature industry standards