Kerberos and Single Sign-On with HTTP Joe Orton Red Hat Overview - - PowerPoint PPT Presentation

kerberos and single sign on with http
SMART_READER_LITE
LIVE PREVIEW

Kerberos and Single Sign-On with HTTP Joe Orton Red Hat Overview - - PowerPoint PPT Presentation

Kerberos and Single Sign-On with HTTP Joe Orton Red Hat Overview Introduction The Problem Current Solutions Future Solutions Conclusion Introduction WebDAV: common complaint of poor support for authentication in


slide-1
SLIDE 1

Kerberos and Single Sign-On with HTTP

Joe Orton

Red Hat

slide-2
SLIDE 2

Overview

  • Introduction
  • The Problem
  • Current Solutions
  • Future Solutions
  • Conclusion
slide-3
SLIDE 3

Introduction

  • WebDAV: common complaint of poor

support for authentication in HTTP

  • Kerberos is “the” network authentication

protocol

slide-4
SLIDE 4

The Problem

  • How to integrate HTTP servers into a

Kerberos infrastructure?

  • Single Sign-On: reducing the number of

times people enter passwords

  • Ideal: user authentication happens exactly
  • nce per “session”
slide-5
SLIDE 5

Session Scope

  • Never have to authenticate to any individual

server

  • Never have to authenticate to use any

particular service (protocol)

slide-6
SLIDE 6

Problem Scope

  • Covering intranet/enterprise/organisation-

wide HTTP authentication

  • Out of scope: SSO for “The Web”
  • In scope? Proxy authentication
slide-7
SLIDE 7

One-Slide-Guide to Kerberos

  • Shared secret keys, a trusted third-party

(KDC), and symmetric key encryption

  • KDC authenticates user, gives out “TGT”
  • Using TGT, client obtains “ticket” from

KDC encrypted with service's secret key

  • Client can prove user identity to a service
slide-8
SLIDE 8

Why is this so difficult?

  • Traditional Internet protocols (e.g. SMTP,

IMAP, ...) all support Kerberos authentication

  • Why is HTTP different?
slide-9
SLIDE 9
  • Strong authentication is not much use

without message integrity, and probably also confidentiality

  • Integrity/confidentiality = transport layer
  • HTTP authentication is independent of the

transport layer; unlike SMTP, POP3, ...

Authentication and Security

slide-10
SLIDE 10

Current Solutions

  • Stanford WebAuth: forms and cookies
  • HTTP “Basic” authentication
  • HTTP “Negotiate” authentication
slide-11
SLIDE 11

Stanford WebAuth

  • Based on forms+cookie
  • Token-passing via browser redirects

between web server and “WebKDC”

  • Kerberos credentials passed to WebKDC

via HTML form

  • WebKDC authenticates as user to KDC
slide-12
SLIDE 12

WebAuth protocol

User Agent User Agent Web Server GET /private 302 Redirect Location: http://webkdc.example.com/...

slide-13
SLIDE 13

WebAuth protocol 2

User Agent User Agent WebKDC GET /authenticate-me 200 OK + HTML form

slide-14
SLIDE 14

WebAuth protocol 3

User Agent User Agent WebKDC POST /authenticate-me 302 Redirect Location: http://origin.example.com/private Set-Cookie: blah WebKDC KDC

slide-15
SLIDE 15

WebAuth analysis

  • “Application level” solution
  • Cookies + HTML != HTTP authentication
  • Requires a real web browser: won't work

with generic WebDAV clients

  • Requires SSL for submitting credentials, for

maintaining secure sessions

slide-16
SLIDE 16

WebAuth analysis 2

  • Training users to enter Kerberos credentials

into web forms is Very Bad™ - phishing

  • Session scope: within one web browser but

then covers all servers

  • Cannot authenticate to proxies
  • Session termination? Flush cookies
slide-17
SLIDE 17

Kerberos via Basic Auth

  • Use standard HTTP Basic authentication
  • Client sends Kerberos credentials as normal

Basic auth credentials

  • Web server authenticates as user directly to

KDC; custom server extension needed e.g. mod_auth_kerb

slide-18
SLIDE 18

GET /secret/ HTTP/1.1 HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm=”Blah” GET /secret/ HTTP/1.1 Authorization: Basic QWxuIHNlc2FZQ== HTTP/1.1 200 OK

Kerberos via Basic, on the wire

slide-19
SLIDE 19

Kerberos via Basic, analysis

  • Simple to set up
  • Works with any HTTP client (e.g. DAV)
  • Requires SSL for entire session
  • Can authenticate to proxies, but insecurely –

cleartext only to proxy

slide-20
SLIDE 20

Kerberos via Basic, analysis 2

  • Session scope: one web browser, one server
  • Training users to enter credentials into HTTP

authentication dialogs is also Very Bad™

  • Session termination: flush cached credentials
slide-21
SLIDE 21

The “Negotiate” Scheme

  • New HTTP authentication scheme (kind of)
  • Written by Microsoft; I-D published 2001
  • Became “Informational” RFC 4559 in 2006
  • Uses GSSAPI token exchange, wraps

Kerberos protocol over the wire

  • Custom server, client extension
slide-22
SLIDE 22

Negotiate: Protocol trace

  • 1. GET /secret/ HTTP/1.1
  • 2. HTTP/1.1 401 Unauthorized

WWW-Authenticate: Negotiate [token]

  • 3. GET /secret/ HTTP/1.1

Authorization: Negotiate Y.....Q== [goto 2, or...] HTTP/1.1 200 OK

slide-23
SLIDE 23

Implementing Negotiate

  • Supported at HTTP protocol level; works

with WebDAV etc

  • Implemented by Firefox, MSIE
  • Requires SSL to secure the connection
  • Could almost work with proxies
slide-24
SLIDE 24

Negotiate analysis

  • Even the name is bad
  • Per-connection authentication!
  • Breaks RFC2617 challenge grammar
  • Abuses RFC2617 headers
slide-25
SLIDE 25

Negotiate analysis 2

  • Real Single Sign-On!
  • Session scoped to all servers, all services
  • Session termination dictated by system-wide

Kerberos session

slide-26
SLIDE 26

mod_auth_kerb

  • Module for Apache httpd 1.3/2.x
  • Maintained by Daniel Kouril, BSDy license
  • Version 5.0 released August 2006, first non-

beta release

  • Supports both Negotiate and Kerberos-over-

Basic authentication

slide-27
SLIDE 27

mod_auth_kerb Configuration

  • Obtain a service key from the KDC
  • Name, for example:

HTTP/www.example.com@EXAMPLE.COM

  • Service key in keytab – check permissions!
  • Load module and add access control

configuration, either httpd.conf or .htaccess

slide-28
SLIDE 28

Access control Configuration

<Location /private> AuthType Kerberos AuthName "Kerberos Login" KrbMethodNegotiate On KrbMethodK5Passwd Off ...

slide-29
SLIDE 29

Access control continued

KrbAuthRealms EXAMPLE.COM Krb5KeyTab /etc/httpd/conf/keytab require valid-user SSLRequireSSL </Location>

slide-30
SLIDE 30

Client configuration

  • Firefox:
  • MSIE should work within “Intranet zone”
slide-31
SLIDE 31

Conclusion

  • Strong authentication as an HTTP

authentication scheme alone is not enough

  • “Negotiate” is a practical if flawed solution

for Kerberos Single Sign-On with HTTP

  • But must be used over SSL
slide-32
SLIDE 32

Future Solutions

  • A better Negotiate
  • RFC2712: TLS with Kerberos ciphersuites
  • Implemented in OpenSSL; no deployment
  • A “GSSAPI Transport Layer” for HTTP?
  • Implement via Upgrade: header (RFC2817)
slide-33
SLIDE 33

Resources

  • http://webauth.stanford.edu/
  • http://modauthkerb.sourceforge.net/
  • http://www.ietf.org/rfc/rfc4559.txt
  • http://www.ietf.org/rfc/rfc2712.txt
  • These slides:

http://people.apache.org/~jorton/ac06us/

slide-34
SLIDE 34

Q&A

Any questions?