4 장. 키분배와사용자인증 4.2 Kerberos 1
개요 MIT Athena Project 에서개발 그리스신화의지옥문을지키는머리 3 개달린개이름에서유래 키분배 사용자인증서비스 2
위협 네트워크에대한위협 사용자로위장 네트워크주소변경 재전송공격 방어수단 Kerberos 대칭암호로만구성 Version 4 Version 5 3
Kerberos 버전 4 내부암호로 DES 를사용 Athena 프로젝트의 Bill Bryant 가사용한방법으로구조설명 가상적절차제시 문제점파악 문제점보완 새가상적절차제안 4
Password based Authentication Transmit password in clear over the network to the server Main Problem Eavesdropping/Interception 5
Cryptographic Authentication No password or secret is transferred over the network Users prove their identity to a service by performing a cryptographic operation,usually on a quantity supplied by the server Crypto operation based on user s secret key 6
Simple shared-secret based cryptographic authentication 7
Add mutual authentication 8
Problems with this scheme Poor scaling properties Generalizing the model for m users and n services, requires a priori distribution of m x n shared keys Possible improvement: Use trusted 3rd party, with which each user and service shares a secret key: m + n keys Also has important security advantages 9
Mediated Authentication (1) Nomenclature: K a = Master key for alice, shared by alice and the KDC K ab = Session key shared by alice and bob T b = Ticket to use bob K{data} = data encrypted with key K 10
Mediated Authentication (2) 11
Mediated Authentication (3) 12
단순인증절차 인증서버 (AS: Authentication Server) 이용 AS는각서버와유일한비밀키를공유 비밀키는안전한방법으로분배 직접전달 13
첫번째가상절차 (1) (1) C AS: ID (2) AS C : Ticket (3) C V : ID Ticket E K V C [ ID C C Ticket P C AD C ID V ID V ] C AS V IDC ID P C K V V AD C 클라이언트인증서버서버사용자 C 의식별자서버 V 의식별자 C 의패스워드 C 의네트워크주소 AS 와 V 가공유하는비밀암호키이어붙여쓰기 14
첫번째가상절차 (2) ID V 와 ID C 사용목적 변경이나위조를막기위해티켓암호화 서버 ID(ID V ) 가티켓에포함되어있기때문에서버는그티켓이올바르게복호화되었는지를확인가능 티켓이 C 에게발행되었다는것을명시하기위해티켓속에 ID C 를포함 AD C 사용목적 티켓을요청한워크스테이션에서만티켓을사용할수있게함 15
보다안전한인증절차 인증문제해결 아직해결되지않은문제 입력패스워드수과다 서버접속마다매번패스워드입력 해결방법 : 티켓재사용 문제는다른서버접속시패스워드입력 패스워드를평문으로전송 도청가능 해결방법 : 티켓발행서버 (TGS: Ticket-Granting Server) 도입 16
가능한공격시나리오 티켓을가로챈뒤해당사용자가워크스테이션에서로그오프할때까지대기 공격자는자신의워크스테이션주소를조작해서공격대상컴퓨터와동일주소를갖도록조작 티켓을재사용하여 TGS 를속인다 대비책 티켓발행시점표기 티켓유효기간표기 17
Kerberos uses timestamps (1) Timestamps as nonce s are used in the mutual authentication phase of the protocol This reduces the number of total messages in the protocol But it means that Kerberos requires reasonably synchronized clocks amongst the users of the system 18
Kerberos uses timestamps (2) Almost 19
Kerberos uses timestamps (3) Roughly 20
Kerberos without TGS (1) A simplified description of Kerberos without the concept of a TGS (Ticket Granting Service) 21
Kerberos without TGS (2) 22
Combining 2 previous diags 23
Ticket Granting Service (TGS) 24
Kerberos with TGS (1) Ticket Granting Service (TGS): A Kerberos authenticated service, that allows user to obtain tickets for other services Co-located at the KDC Ticket Granting Ticket (TGT): Ticket used to access the TGS and obtain service tickets Limited-lifetime session key: TGS sessionkey Shared by user and the TGS TGT and TGS session-key cached on Alice s workstation 25
Kerberos with TGS (2) 26
Kerberos with TGS (3) 27
Kerberos with TGS (4) 28
TGS Benefits Single Sign-on (SSO) capability Limits exposure of user s password Alice s workstation can forget the password immediately after using it in the early stages of the protocol Less data encrypted with the user s secret key travels over the network, limiting attacker s access to data that could be used in an offline dictionary attack 29
개선된가상적절차 (1) 사용자로그온세션마다한번 : (1) C AS: (2) AS C : ID [ Ticket 서비스유형마다한번 : (3) C TGS : (4) TGS C : E C K C ID C ID Ticket V tgs ID V tgs ] Ticket tgs 30
개선된가상적절차 (2) 서비스세션마다한번 : (5) C V : Ticket Ticket tgs V E E K K V tgs [ ID [ ID ID C C C Ticket AD AD C C V ID ID V tgs TS TS 2 1 Lifetime Lifetime 2 ] 1 ] 31
버전 4 인증절차 첫번째시나리오보다안전해짐 또다른두가지문제점발생 티켓 - 승인티켓의유효기간없음 티켓-승인티켓유효기간문제 서비스-승인티켓유효기간문제 서버를사용자에게인증하는절차없음 32
티켓 - 승인티켓의유효기간부재 재전송공격가능 서비스 - 승인티켓의유효기간도동일한위험 티켓제시자와티켓발행받은자의동일성확인필요 해결방법 : AS 와 TGS 가공유하는비밀값 ( 세션키 ) 활용 분배방법이필요 33
서버를사용자에게인증하는절차 문제점 부재 특정서버로전달되는메시지를다른곳으로송신 위장서버가능 사용자로부터의정보갈취 사용자에게제공되는서비스방해 34
더욱개선된방법 (Kerberos Ver4) (1) (a) 인증서비스교환 : 티켓 - 발행티켓취득 35
더욱개선된방법 (Kerberos Ver4) (2) (b) 티켓 - 발행서비스교환 : 서비스 - 발행티켓취득 36
더욱개선된방법 (Kerberos Ver4) (3) (c) 클라이언트 / 서버인증교환 : 서비스취득 37
Kerberos 버전 4 프로토콜기본 (1) 38
Kerberos 버전 4 프로토콜기본 (2) 39
Kerberos 버전 4 프로토콜기본 (3) 40
Kerberos 버전 4 프로토콜기본 (4) 41
Kerberos 버전 4 프로토콜기본 (5) 42
Kerberos 동작개요 43
Kerberos 공동체와다중 Kerberi 완전한 Kerberos 환경조건 Kerberos 서버는반드시 ID(UID) 와모든사용자의해시된패스워드를데이터베이스에저장 모든사용자는 Kerberos 서버에등록 Kerberos 서버는필히각서버들과비밀키를공유 모든서버는 Kerberos 서버에등록 Kerberos 공동체 (realm) 여러개의공동체간서비스가능 44
Kerberos 공동체와다중 Kerberi 완전한 Kerberos 환경추가조건 상호교류하는각공동체에속한 Kerberos 서버들은다른공동체서버들과비밀키를공유 두개의 Kerberos 서버는상호간에등록 45
다른공동체서비스요청 46
Kerberos 교환절차 1 C AS: ID C ID tgs TS 1 2 AS C: E[K C, [K c,tgs ID tgs TS 2 Lifetime 2 Ticket tgs ]] 3 C TGS: ID tgsrem Ticket tgs Authenticator c 4 TGS C: E K c,tgs, K c,tgsrem ID tgsrem TS 4 Ticket tgsrem 5 C TGSrem: ID Vrem Ticket tgsrem Authenticator c 6 TGSrem C: E K c,tgsrem, K c,vrem ID Vrem TS 6 Ticket Vrem (7)C Vrem: Ticket Vrem Authenticator c 47
버전 5: RFC 1510 Kerberos 버전 5 버전 4 와버전 5 의차이점 버전 4 의제약을 2 가지제약에역점을두고다루고있음 환경적결함 (environmental shortcomings) 기술적결함 (technical deficiencies) 48
환경적결함 (1) 원래 Athena 프로젝트환경에국한하여사용하려고설계 일반적상황에필요한것을충분히제공하지못함 암호화시스템의존성 (Encryption system dependence): 버전 4: DES 버전 5: 모든종류의암호화기술사용가능 인터넷프로토콜의존성 (Internet protocol dependence): 버전 4: IPv4 주소만가능 버전 5: 네트워크주소유형과길이표시 -> 모든종류의주소사용가능 메시지바이트순서 (Message byte ordering): 버전 4: 사용자가바이트순서를정해표시 (big-endian, little-endian) 버전 5: ASN.1 사용 49
환경적결함 (2) 티켓유효기간 (Ticket lifetime): 버전 4: 5 분단위로 8 비트로부호화 (2 8 * 5 분 = 1280 분 ) 버전 5: 티켓에정확한시작시간과종료시간명시 인증전달 (Authentication forwarding): 버전 4: 한클라이언트에게발행된인증서를다른호스트로전달하여다른클라이언트가그인증서를사용하는것을불허 버전 5: 인증서를전달하여다른서비스이용가능 공동체간인증 (Inter-realm authentication): 버전 4: N 개의공동체사이에 N 2 수준의관계필요 버전 5: 적은숫자의관계필요 50
기술적결함 이중암호화 (Double encryption): 버전 4: 티켓이두번암호화 ( 연산낭비 ) PCBC 암호화 (PCBC encryption): 버전 4: 비표준모드 DES 사용 ( 암호문블록교환기법의공격에취약 ) 버전 5: 표준 CBC 모드사용 세션키 (Session keys): 재전송공격위험 버전 5: 클라이언트와서버가서브세션키협상가능 ( 해당연결한번에한해서사용 ) 패스워드공격 (Password attacks): 두버전모두패스워드공격에취약 버전 5: 사전인증 (preauthentication) 메커니즘을이용하여공격을어렵게함 51
Pre-authentication (1) Kerberos 5 added pre-authentication Client is required to prove it s identity to the Kerberos AS in the first step By supplying an encrypted timestamp (encrypted with users secret key) This prevents an active attacker being able to easily obtain data from the KDC encrypted with any user s key Then able to mount an offline dictionary attack 52
Pre-authentication (2) 53
버전 5 인증절차 인증서비스교환 : 티켓 - 발행티켓취득 티켓 - 발행서비스교환 : 서비스 - 발행티켓취득 클라이언트 / 서버인증교환 : 서비스취득 54
인증서비스교환 티켓 - 발행티켓취득 55 55
인증서비스교환 공동체 (Realm): 사용자의공동체 선택사항 (Options): 돌아오는티켓안의특정플래그의설정을요청할때사용 시간 (Times): 클라이언트가티켓속시간설정요청시사용 from: 요청된티켓사용개시시간 till: 요청된티켓의사용만료시간 rtime: 요구되는재시작부터만료시간까지의시간 비표 (Nonce): 메시지 (2) 에서반복사용되는랜덤넘버 응답이재전송된것이아님을확신 56
티켓 - 발행서비스교환 서비스 - 발행티켓취득 57
클라이언트 / 서버인증교환 서비스취득 58
서브키 (Subkey) 버전 5 인증절차 특정응용세션보호를위해사용할암호화키로클라이언트가선택 이필드가생략되면티켓에서나온세션키 (K C,V ) 를이용 순서번호 (Sequence Number) 선택사항필드, 시작순서번호 해당세션에서서버는클라이언트로보내는메시지에이번호사용 재전송감지를위해메시지에순서번호추가 59
Cross Realm Authentication (1) 60
Cross Realm Authentication (2) 61