+ All Categories
Home > Documents > Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows...

Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows...

Date post: 31-Mar-2015
Category:
Upload: efrain-stalker
View: 227 times
Download: 0 times
Share this document with a friend
Popular Tags:
28
Network Security: Kerberos Tuomas Aura
Transcript
Page 1: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

Network Security: KerberosTuomas Aura

Page 2: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

2

OutlineKerberos authenticationKerberos in Windows domains

Page 3: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

Kerberos authentication

3

Page 4: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

4

KerberosShared-key protocol for user login authentication

Uses passwords as shared keysSolves security and scalability problems in password-based authentication in large domainsBased loosely on the Needham-Schroeder secret-key protocol

Kerberos v4 1988- at MITKerberos v5 1993- [RFC 4120]

Updated protocol and algorithmsASN.1 BER message encodingImplemented in Windows 2000 and later

Used in intranets: e.g. university Unix systems, corporate Windows domains

Page 5: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

5

Kerberos architecture (1)

1.–2. Authentication3.–4. Ticket for a specific service4.–5. Authentication to the service

KDC

TGSAS

Application server B

Client A

1.

KR

B_

AS

_R

EQ

2.

KR

B_

AS

_R

EP

3.

KR

B_

TG

S_

RE

Q

4.

KR

B_

TG

S_

RE

P

5. KRB_AP_REQ

6. KRB_AP_REPap_client.exe a

p_s

erv

er.

exe

Page 6: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

6

Kerberos terminologyClient/server computing model

Authentication for remote login sessions: e.g. interactive telnet, RPCUsers and services are principals

Key distribution center (KDC)Two components: authentication server (AS) and ticket-granting server (TGS)Trusted by all principals

KDC shares a master key with each principalLong-term secret that is used only for initial authenticationUsually derived by hashing a password [RFC3961]

When user logs in, his workstation uses the password to obtain a ticket-granting-ticket (TGT) from ASWhen client needs to access remote services, it uses TGT to request a service ticket from TGS for each server(Note how the two-step process could be generalized to more steps)

Page 7: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

7

Kerberos architecture (2)KDC

TGSAS

Application server B

Client A

1. K

RB

_AS

_RE

Q

2. K

RB

_AS

_RE

P

3. K

RB

_TG

S_R

EQ

4. K

RB

_TG

S_R

EP

5. KRB_AP_REQ

6. KRB_AP_REP

TG

T

TG

T, K

AT

Ser

vice

tick

et, K

AB

Service ticket

ap_client.exe ap_s

erve

r.ex

e

krbtgt@RealmY

A@RealmY B@

Rea

lmY

1.–2. Authentication with password → client gets TGT and KAT

3.–4. Authentication with TGT and KAT → client gets

service ticket and KAB

4.–5. Authentication with service ticket and KAB

→ client gets service access

Page 8: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

8

Message type, version

Kerberos ticket

Same format for both TGT and service ticketCredentials = ticket + keyASN.1 encoding in Kerberos v5“Encryption” also protects intergrity, actually encryption and a MAC

Flags: FORWARDABLE, FORWARDED, PROXIABLE, PROXY, MAY-POST-DATE, POSTDATED, INVALID, RENEWABLE, INTINIAL, PRE-AUTHENT, HW-AUTHENTINITIAL flag indicates TGT

REALM, SNAMEServer name and realm

FLAGS

KEY

CNAME, CREALM Client name and realm

TRANSITEDtransit realms

AUTH-TIME, END-TIME

CADDRClient IP address (optional)

AUTORIZATION-DATAApp-specific access constraints E

ncry

pted

with

ser

ver’

s m

aste

r ke

y

Page 9: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

9

Protocol detailsInitial login of user A:

1. A → AS: Preauthentication, A, TGS, NA1, AddrA

2. AS → A: A, TGT, EKA (KA-TGS, NA1, TGS, AddrA)

Ticket request:3. A → TGS: TGT, AuthenticatorA-TGS, B, NA2, AddrA

4. TGS → A: A, Ticket, EKA-TGS (KAB, NA2, B, AddrA)

Authentication to server B:5. A → B: Ticket, AuthenticatorAB

6. B → A: AP_REP

KA , KTGS, KB = master keys of A, TGS and B

KA-TGS = shared key for A and TGS

KAB = shared key for A and B

TGT = B, EKTGS (INITIAL, KA-TGS, A, Tauth, Texpiry1, AddrA))

Ticket = B, EKB(KAB, A, Tauth, Texpiry2, AddrA))

Preauthentication = EKA (1 TA)

AuthenticatorA-TGS = EKA-TGS (2 TA)

AuthenticatorAB = EKAB (3 TA)

AP_REP = EKAB(4 TA)

AddrA = A’s IP addresses

Notes:

1234) ASN.1 encoding adds type tags to all messages

Encryption mode also protects message integrity

Page 10: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

10

Crypto algorithmsAlgorithms in older implementations were complex and potentially weak e.g.:

DES encryptionCRC-32 encrypted with DES in CBC mode for integrity

Latest algorithm specification [RFC3961] recommends AES and HMACEncryption mode must protect message integrity

Can be implemented by appending an HMAC

Page 11: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

11

Kerberos realms

Users and services registered to one KDC form a realmname@realm, e.g. A@X, [email protected]

Cross-realm trust: Two KDCs X and Y share a key (krbtgt@Y is registered in KDC X and krbtgt@X in KDC Y)KDCs believe each other to be honest and competent to name users in their own realm

Cross-realm authentication: Client A@X requests from TGS at realm X a ticket for TGS at realm YThe ticket is encrypted for krbtgt@Y (i.e. TGS at realm Y)Client A@X requests from TGS at realm Y a ticket for server B@Y

Access control at several steps:Local policy at each KDC about when to honor tickets from other realmsLocal policy at B@Y about whether to allow access to users from other realmsACLs at B@Y determine whether the users is allowed to access the particular resources

Possible to transit multiple realms → TRANSITED field in the ticket lists intermediate realms

Local policy at each server about which transit realms are allowed

Server BUser A

Realm X Realm YCross-realm trust

User registration

Page 12: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

12

Realm hierarchy

Large organizations can have a realm hierarchy Hierarchy follows internet names → easy to find a path between realms→ can filter cross-realm requests based on the namesCan add shortcut links or create even a fully connected graph between KDCsE.g. Windows domain hierarchy

Compare with X.509 certification hierarchy: similarities, differences?

contoso.com

sales.contoso.com dev.contoso.com

euro.sales.contoso.com asia.sales.contoso.com

Bob David Alice

Charlie

Cross-realm trust

User registration

Page 13: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

13

Password guessing attacksKerberos is vulnerable to password guessing:

Sniffed KRB_AS_REQ or KRB_AS_REP can be used to test candidate passwords → offline brute-force password guessingIn Kerberos v4, anyone could request a password-encrypted TGT from AS → easy to obtain material for password crackingPreauthentication in Kerberos v5 prevents active attacks to obtain material for password cracking → must sniff it

Note: active vs. passive attacksMisleading thinking: active attacks (e.g. MitM) are more difficult to implement than passive attacks (sniffing)Reality: Active attacks can often be initiated by the attacker while passive attacks require attacker to wait for something to sniff → vulnerability to such active attacks is serious

Page 14: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

14

PKINITGoal: take advantage of an existing PKI to bootstrap authentication in KerberosReplaces the KRB_AS_REQ / KRB_AS_REP exchange with a public-key protocol

Public-key authentication and encryption to obtain TGTContinue with standard Kerberos → transparent to TGS and application servers

No password, so not vulnerable to password guessingUses DSS signatures and ephemeral DHWindows 2000 and later, no standard [RFC 4556]

Page 15: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

15

Using the session keyApplications need to be “Kerberized” to use Kerberos for authenticationAuthentication at the beginning of a session is of little value unless session data is protected with the session keys

Attacker could not initiate sessions but is could sniff, modify and spoof session data (e.g. Kerberized telnet)

Applications use the session key KAB in any way they wantKRB_AP_REQ and KRB_AP_REP may include further key material (subkeys) that is sent encrypted under KAB

Kerberos provides special messages for integrity protection and encryption:

KRB_SAFE: data, TA, SN, addrA, addrB, MACKAB(…)

KRB_PRIV: EKAB(data, TA, SN, addrA, addrB)

Access to these functions happens often through GSSAPI (called SSPI in Windows)

Another message KRB_CRED for sending credentials (ticket and secret key) for the purpose of delegation

Page 16: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

16

DelegationServer may need to perform tasks independently on the client’s behalf, e.g.

Recursive RPC, agents operating when the user is no longer logged in, batch processing at night

Alice can give her TGT or service ticket and key to DavidControlling the use of delegated rights in applications:

Ticket may specify the allowed client IP addressesAuthorization-data field in ticket may contain app-specific restrictionsBetter delegate only a service ticket, not TGT

Ticket flags related to delegation:FORWARDABLE flag in TGT: can be used to obtain a new TGT with different IP addressesPROXIABLE flag in TGT: can be used to obtain service tickets with a different IP address

Kerberos delegation is identity delegationWhen B has A’s ticket and key, B can act as A and nobody can tell the difference → difficult to audit access; similar to sharing passwords

Page 17: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

Kerberos in Windows domainsThanks to Dieter Gollmann

17

Page 18: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

18

Windows access control summaryTwo kinds of access rights: privileges and permissionsThe O/S stores security attributes for each processes (subject) in a security tokenToken contains a list of privileges and a list of SIDs (i.e. user and group identifiers)The privileges are the union of all privileges assigned to the SIDs on the local machine. The list is created at login timePermissions are decided by comparing the list of SIDs against a DACLs on an object

Page 19: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

19

Accessing objects across networkAlice is logged on her local machine (client) and wants to access resources (e.g. email) on a remote machine (email server)Resources on the server are managed by a Windows service (daemon process) on the serverAlice is running software (e.g. email client) that uses remote procedure calls (RPC) to access the remote resources on the serverHow does Windows allow and control access to such remote resources?

Page 20: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

20

Network credentialsAlice’s user name, SID and network credentials are cached on the client

username and password, or TGT and KA-TGS

Alice’s processes can use her network credentials for remote login

→ Authenticated access to network servers is mostly transparent to Alice, the userSome applications ask for a different user name and credentials and store them separatelyAuthentication protocols do not reveal the password to the server

Page 21: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

21

ObservationsThe service running on the server controls access to stored emails thereAlice trusts the client machine to store her password, and her client software to use it for remote login

Thus, Alice must have high confidence in the client machine and the software she runs there

Alice’s password is used to authenticate Alice to the server. However, the server does not learn the password and cannot later pretend to be Alice

Thus, Alice only trusts the server to manage her email. She does not need to trust the server for anything else

The server requires Alice to login just as if she were at the server console

The server does not trust the client machine at all (cf. Unix trusted hosts mechanism)

Page 22: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

22

Tokens and remote accessSecurity tokens are meaningful only to the local machine and cannot be sent over network

The server does not trust the client machine to tell who Alice is and which groups she belongs to

Instead, the client authenticates Alice to the server using her network credentials. The server creates a new login session and a new token (on the server) for AliceThe service may now assign the token to a process or thread (impersonation) or implement its own access control based on the token contents

Page 23: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

23

Network authenticationWindows supports two authentication protocols:

NTLM: legacy protocol from Windows NTKerberos V5: implements RFC 1510

The authentication protocols also provide the server with Alice’s user and group SIDsproduce a session key for protecting data between the client and server

Encryption and authentication of session data is controlled by applications Different session protocol exist for network logon, RPC, COM

Page 24: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

24

Kerberos in WindowsRealm = Windows domainRealm hierarchy = domain hierarchyKDC = domain controller (DC)

Information about users is stored in active directory (AD)

Page 25: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

25

Kerberos and SIDsKerberos authenticates ‘principals’, but which principals should be authenticated?

User name and a domain name (e.g. EUROPE\tuomaura)? The appropriate fields in the ticket for this are CNAME and CREALMPrincipals according to the access control model? Windows puts the user SID and group SIDs in the optional field authorization-data

Controversy over proprietary extensions, questions of interoperability and standards complianceGeneral remark on standards: options are there to be used but cause incompatibilities

Page 26: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

26

Message type, version

Kerberos ticket in Windows

REALM, SNAMEServer name and realm

FLAGS

KEY

CNAME, CREALM Client name and realm

TRANSITEDtransit realms

AUTH-TIME, END-TIME

CADDRClient IP address (optional)

AUTORIZATION-DATAApp-specific access constrains E

ncry

pted

with

ser

ver’

s m

aste

r ke

y

Username, domain

User and group SIDs

Page 27: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

27

Delegating Kerberos credentialsAlice needs a service from Bob, where Bob has to access servers on her behalf

For example, a print server needs to access Alice’s email and files on file server to complete her printing jobs

Alice applies for a proxyable ticket for the relevant servers and gives the ticket and corresponding session key to Bob

Page 28: Network Security: Kerberos Tuomas Aura. 2 Outline Kerberos authentication Kerberos in Windows domains.

28

ExercisesCan you spot any (potential) vulnerabilities in the integrity algorithms used by older Kerberos implementations? See RFC 1510Find source code for a Kerberized client/server application (e.g. telnet) and see how it accesses Kerberos servicesWhy is Kerberos used on the intranets and TLS/SSL on the Internet? Could it be the other way?


Recommended