Authentication Applications. will consider authentication functions will consider authentication...

30
Authentication Authentication Applications Applications

Transcript of Authentication Applications. will consider authentication functions will consider authentication...

Page 1: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Authentication Authentication ApplicationsApplications

Page 2: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Authentication ApplicationsAuthentication Applications

will consider authentication functionswill consider authentication functions developed to support application-level developed to support application-level

authentication & digital signaturesauthentication & digital signatures will consider Kerberos – a private-key will consider Kerberos – a private-key

authentication serviceauthentication service then X.509 - a public-key directory then X.509 - a public-key directory

authentication serviceauthentication service

Page 3: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

KerberosKerberos

In Greek mythology, a many headed dog, In Greek mythology, a many headed dog, the guardian of the entrance of Hadesthe guardian of the entrance of Hades

Page 4: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

KerberosKerberos

trusted key server system from MIT trusted key server system from MIT provides centralised private-key third-party provides centralised private-key third-party

authentication in a distributed networkauthentication in a distributed network allows users access to services distributed allows users access to services distributed

through networkthrough network without needing to trust all workstationswithout needing to trust all workstations rather all trust a central authentication serverrather all trust a central authentication server

two versions in use: 4 & 5two versions in use: 4 & 5

Page 5: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos RequirementsKerberos Requirements

its first report identified requirements as:its first report identified requirements as: securesecure reliablereliable transparenttransparent scalablescalable

implemented using an authentication implemented using an authentication protocol based on Needham-Schroederprotocol based on Needham-Schroeder

Page 6: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos v4 OverviewKerberos v4 Overview

a basic third-party authentication schemea basic third-party authentication scheme have an Authentication Server (AS) have an Authentication Server (AS)

users initially negotiate with AS to identify users initially negotiate with AS to identify themselves themselves

AS provides a non-corruptible authentication AS provides a non-corruptible authentication credential (ticket-granting ticket TGT) credential (ticket-granting ticket TGT)

have a Ticket Granting server (TGS)have a Ticket Granting server (TGS) users subsequently request access to other users subsequently request access to other

services from TGS on basis of users TGTservices from TGS on basis of users TGT

Page 7: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos TermsKerberos Terms

Terms:Terms: C = ClientC = Client AS = authentication serverAS = authentication server V = serverV = server IDIDcc = identifier of user on C = identifier of user on C IDIDv v = identifier of V= identifier of V PPc c = password of user on C= password of user on C ADcADc = network address of C= network address of C KKvv = secret encryption key shared by AS an V= secret encryption key shared by AS an V TS = timestampTS = timestamp || = concatenation|| = concatenation

Page 8: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Simple Authentication Simple Authentication DialogueDialogue

(1)(1) C C AS: AS: IIDDc c |||| PPcc || || IIDDvv

(2)(2) AS AS C: C: TicketTicket

(3)(3) CC V: V: IIDDc c |||| Ticket Ticket

Ticket = ETicket = EKKvv[[IIDDc c |||| ADADc c || || IIDDvv]]

Page 9: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Simple Authentication Simple Authentication DialogueDialogue

Problems:Problems: Lifetime associated with the ticket-granting Lifetime associated with the ticket-granting

ticketticket If too short If too short repeatedly asked for password repeatedly asked for password If too long If too long greater opportunity to replaygreater opportunity to replay

The threat is that an opponent will steal The threat is that an opponent will steal the ticket and use it before it expires.the ticket and use it before it expires.

Page 10: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Version 4 Authentication Version 4 Authentication DialogueDialogue

Ticket-Granting Service Exchange: To obtain Service-Granting Ticket

(3) C TGS: IDv ||Tickettgs ||Authenticatorc

(4) TGS C: EKc,tgs [Kc,¨v|| IDv || TS4 || Ticketv]

Client/Server Authentication Exhange: To Obtain Service

(5) C V: Ticketv || Authenticatorc

(6) V C: EKc,v[TS5 +1] // mutual authentication

Authentication Service Exchange: To obtain Ticket-Granting TicketAuthentication Service Exchange: To obtain Ticket-Granting Ticket

(1)(1) C C AS: AS: IDc || ID IDc || IDtgstgs ||TS ||TS11

(2)(2) AS AS C: C: E EKc Kc [K[Kc,tgsc,tgs|| ID|| IDtgstgs || TS || TS2 2 || Lifetime|| Lifetime2 2 || Ticket|| Tickettgstgs]]

Page 11: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos v4 DialogueKerberos v4 Dialogue

1.1. obtain ticket-granting ticket from ASobtain ticket-granting ticket from AS• once per sessiononce per session

2.2. obtain service-granting ticket from TGSobtain service-granting ticket from TGS• for each distinct service requiredfor each distinct service required

3.3. client/server exchange to obtain serviceclient/server exchange to obtain service• on every service requeston every service request

Page 12: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos 4 OverviewKerberos 4 Overview

Page 13: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos RealmsKerberos Realms

a Kerberos environment consists of:a Kerberos environment consists of: a Kerberos servera Kerberos server a number of clients, all registered with servera number of clients, all registered with server application servers, sharing keys with serverapplication servers, sharing keys with server

this is termed a realmthis is termed a realm typically a single administrative domaintypically a single administrative domain

if have multiple realms, their Kerberos if have multiple realms, their Kerberos servers must share keys and trust servers must share keys and trust

Page 14: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos RealmsKerberos Realms

Page 15: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Kerberos Version 5Kerberos Version 5

developed in mid 1990’sdeveloped in mid 1990’s specified as Internet standard RFC 1510specified as Internet standard RFC 1510 provides improvements over v4provides improvements over v4

addresses environmental shortcomingsaddresses environmental shortcomings• encryption alg, network protocol, byte order, ticket encryption alg, network protocol, byte order, ticket

lifetime, authentication forwarding, interrealm authlifetime, authentication forwarding, interrealm auth and technical deficienciesand technical deficiencies

• double encryption, session keys, password attacksdouble encryption, session keys, password attacks

Page 16: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

X.509 Authentication Service X.509 Authentication Service

part of ITU-T X.500 directory service standardspart of ITU-T X.500 directory service standards distributed servers maintaining user info databasedistributed servers maintaining user info database

defines framework for authentication services defines framework for authentication services directory may store public-key certificatesdirectory may store public-key certificates with public key of user signed by certification authority with public key of user signed by certification authority

also defines authentication protocols also defines authentication protocols uses public-key crypto & digital signatures uses public-key crypto & digital signatures

algorithms not standardised, but RSA recommendedalgorithms not standardised, but RSA recommended

X.509 certificates are widely used X.509 certificates are widely used

Page 17: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

X.509 CertificatesX.509 Certificates

issued by a Certification Authority (CA), containing: issued by a Certification Authority (CA), containing: version (1, 2, or 3) version (1, 2, or 3) serial number (unique within CA) identifying certificate serial number (unique within CA) identifying certificate signature algorithm identifier signature algorithm identifier issuer X.500 name (CA) issuer X.500 name (CA) period of validity (from - to dates) period of validity (from - to dates) subject X.500 name (name of owner) subject X.500 name (name of owner) subject public-key info (algorithm, parameters, key) subject public-key info (algorithm, parameters, key) issuer unique identifier (v2+) issuer unique identifier (v2+) subject unique identifier (v2+) subject unique identifier (v2+) extension fields (v3) extension fields (v3) signature (of hash of all fields in certificate) signature (of hash of all fields in certificate)

notation notation CA<<A>>CA<<A>> denotes certificate for A signed by CA denotes certificate for A signed by CA

Page 18: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

X.509 CertificatesX.509 Certificates

Page 19: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Obtaining a Obtaining a Certificate Certificate

any user with access to CA can get any any user with access to CA can get any certificate from it certificate from it

only the CA can modify a certificate only the CA can modify a certificate because cannot be forged, certificates can because cannot be forged, certificates can

be placed in a public directory be placed in a public directory

Page 20: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

CA Hierarchy CA Hierarchy

if both users share a common CA then they are if both users share a common CA then they are assumed to know its public key assumed to know its public key

otherwise CA's must form a hierarchy otherwise CA's must form a hierarchy use certificates linking members of hierarchy to use certificates linking members of hierarchy to

validate other CA's validate other CA's each CA has certificates for clients (forward) and each CA has certificates for clients (forward) and

parent (backward) parent (backward) each client trusts parents certificates each client trusts parents certificates enable verification of any certificate from one CA enable verification of any certificate from one CA

by users of all other CAs in hierarchy by users of all other CAs in hierarchy

Page 21: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

CA Hierarchy UseCA Hierarchy Use

Page 22: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Certificate RevocationCertificate Revocation

certificates have a period of validitycertificates have a period of validity may need to revoke before expiry, eg:may need to revoke before expiry, eg:

1.1. user's private key is compromiseduser's private key is compromised

2.2. user is no longer certified by this CAuser is no longer certified by this CA

3.3. CA's certificate is compromisedCA's certificate is compromised

CA’s maintain list of revoked certificatesCA’s maintain list of revoked certificates the Certificate Revocation List (CRL)the Certificate Revocation List (CRL)

users should check certificates with CA’s CRLusers should check certificates with CA’s CRL

Page 23: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Authentication ProceduresAuthentication Procedures

X.509 includes three alternative X.509 includes three alternative authentication procedures: authentication procedures:

One-Way Authentication One-Way Authentication Two-Way Authentication Two-Way Authentication Three-Way Authentication Three-Way Authentication all use public-key signaturesall use public-key signatures

Page 24: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

One-Way AuthenticationOne-Way Authentication

1 message ( A->B) used to establish 1 message ( A->B) used to establish the identity of A and that message is from A the identity of A and that message is from A message was intended for B message was intended for B integrity & originality of message integrity & originality of message

message must include timestamp, nonce, message must include timestamp, nonce, B's identity and is signed by AB's identity and is signed by A

may include additional info for Bmay include additional info for B eg session key eg session key

Page 25: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Two-Way AuthenticationTwo-Way Authentication

2 messages (A->B, B->A) which also 2 messages (A->B, B->A) which also establishes in addition:establishes in addition: the identity of B and that reply is from B the identity of B and that reply is from B that reply is intended for A that reply is intended for A integrity & originality of reply integrity & originality of reply

reply includes original nonce from A, also reply includes original nonce from A, also timestamp and nonce from Btimestamp and nonce from B

may include additional info for Amay include additional info for A

Page 26: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Three-Way AuthenticationThree-Way Authentication

3 messages (A->B, B->A, A->B) which 3 messages (A->B, B->A, A->B) which enables above authentication without enables above authentication without synchronized clocks synchronized clocks

has reply from A back to B containing has reply from A back to B containing signed copy of nonce from B signed copy of nonce from B

means that timestamps need not be means that timestamps need not be checked or relied upon checked or relied upon

Page 27: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

X.509 Version 3X.509 Version 3

has been recognised that additional has been recognised that additional information is needed in a certificate information is needed in a certificate email/URL, policy details, usage constraintsemail/URL, policy details, usage constraints

rather than explicitly naming new fields rather than explicitly naming new fields defined a general extension methoddefined a general extension method

extensions consist of:extensions consist of: extension identifierextension identifier criticality indicatorcriticality indicator extension valueextension value

Page 28: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Certificate ExtensionsCertificate Extensions

key and policy informationkey and policy information convey info about subject & issuer keys, plus convey info about subject & issuer keys, plus

indicators of certificate policyindicators of certificate policy certificate subject and issuer attributescertificate subject and issuer attributes

support alternative names, in alternative support alternative names, in alternative formats for certificate subject and/or issuerformats for certificate subject and/or issuer

certificate path constraintscertificate path constraints allow constraints on use of certificates by allow constraints on use of certificates by

other CA’sother CA’s

Page 29: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

Public Key InfrastructurePublic Key Infrastructure

Page 30: Authentication Applications. will consider authentication functions will consider authentication functions developed to support application-level authentication.

SummarySummary

have considered:have considered: Kerberos Kerberos trusted key server systemtrusted key server system X.509 authentication and certificatesX.509 authentication and certificates