커버로스 (Kerberos)
커버로스는 사용자의 인증을 위한 대표적인 메커니즘입니다. 현재 네트워크상에서 사용자의 인증을 위해 가장 많이 사용되고 있는 인증 시스템중의 하나라고 할 수 있습니다. 앞으로 더 자세히 살펴 보겠지만, 커버로스 인증 시스템은 앞 절에서 설명한 문구-응답 인증 방법을 부분적으로 사용 하고 있습니다. 그리고 사용자가 서버의 인증을 얻기 위해서 티켓 이라는 인증 값을 사용 합니다.
Kerberos는 MIT에서 네트워크를 기반으로 한 인증시스템을 목적으로 개발 하였습니다. 현재 네트워크의 인증 시스템으로 상용화된 여러 제품 중 많은 수가 이 커버로스를 기반으로 하고 있습니다.
Kerberos는 Project Athena에 의해 개발된 네트워크 인증 시스템입니다. Kerberos라는 말은 그리스 신화에서 유래한 것으로서 그 뜻은 "Three-headed hound from Hell” 즉 “지옥에서 온 머리가 3개 달린 경비견” 입니다. 만화나 동화책 등에서 자주 나온 괴물? 이죠.
[그림 6-018.tif] Kerberos 이미지
철저하게 네트워크로부터의 여러 가지 위험에서 보안을 지킨다 라는 뜻을 담고 있겠죠.
그럼 이제 커버로스 인증 메커니즘에 관해 알아 보겠습니다.
커버로스 인증 메커니즘에는 네 가지 종류의 개체가 등장 합니다. 각 개체와 그 역할은 다음과 같습니다. 일단은 이해하기 어려워도 네 가지 개체가 있다는 것만 알아 두시길 바랍니다.
l 클라이언트 : 인증을 얻길 원하는 사용자의 컴퓨터 입니다.
l 서버 : 클라이언트가 접속 하려고 하는 컴퓨터 입니다. 클라이언트가 서버에 접속 하려면 인증이 필요 합니다.
l 인증 서버 : 클라이언트를 인증 하는 컴퓨터 입니다.
l 티켓 발급 서버 : 인증 값인 티켓을 클라이언트에게 발급 해 주는 컴퓨터입니다.
보통의 커버로스 환경은 위에 설명한 네 가지의 개체들로 이루어져 있습니다. 보통 여러 개의 클라이언트와 서버가 존재 하며 한 개의 인증 서버와 티켓 발급 서버로 구성 되어 있습니다.
간단히 개체간의 역할을 설명 하면, 클라이언트는 서버에 접속 하기 위해 인증 서버로부터 인증을 얻습니다. 클라이언트는 인증 서버로부터 인증을 얻기 위해 패스워드를 사용하여 인증 서버에 자신을 인증 합니다. 인증 서버는 인증된 클라이언트에게 티켓 발급 서버로부터 티켓을 발행 받는 것을 허락 합니다. 티켓 발급 서버는 인증된 클라이언트에게 티켓을 발급 하고, 클라이언트는 이 티켓을 사용하여 서버에 접속 하게 됩니다. 서버는 티켓을 확인하고 클라이언트를 인증 한 다음 접속을 허락 합니다.
[그림 6-019.tif] 커버로스 시스템 구조
극장의 예를 들어 설명을 해보겠습니다. 요즘에는 인터넷으로 영화 예매가 가능해 졌습니다. 앨리스는 영화를 보기 위해 인터넷으로 영화를 예매 하였습니다. 이때 앨리스가 영화를 예매 했다고 주장 할 수 있는 증거는 인터넷으로 발급된 예매 번호 입니다. 앨리스는 예매 번호를 가지고 극장으로 갑니다. 극장의 매표소 에서는 앨리스의 예매 번호를 보고 앨리스가 인터넷으로 영화를 예매 했다는 인증을 하고, 티켓을 앨리스에게 줍니다. 앨리스는 이 티켓을 가지고 극장 안으로 입장합니다. 극장의 출입구는 티켓을 보고 앨리스를 인증할 수 있으므로 앨리스를 입장 시킵니다.
[그림 6-020.tif] 극장에 들어 가려면 티켓으로 인증을 받아야 한다
위의 예에서 앨리스는 클라이언트로, 예매번호는 앨리스의 패스워드로, 매표소는 인증서버와, 티켓발급 서버로, 극장 티켓은 티켓으로, 극장은 서버로 생각하면 될 것입니다.
그럼 티켓에 대해서 좀더 자세히 알아 보도록 하겠습니다.
커버로스 시스템의 목적은 인증된 클라이언트 만이 서버에게 접속 할 수 있게 하는 것입니다. 한 커버로스 시스템 에 속해 있는 클라이언트와 서버들의 범위를 영역 (realm) 이라고 합니다. 즉 영역은 커버로스 시스템이 영향력을 가질 수 있는 범위라고 생각 하면 됩니다. 그리고 신임장 (credential) 은 티켓 발급 서버가 클라이언트에게 발급 하는 것으로, 서버에게 제출할 인증 값 입니다. 클라이언트는 이 신임장을 서버에게 보냄으로써 서버에게 인증을 받습니다. 신임장 (credential) 은 티켓 (ticket) 과 인증자 (authenticator)로 구성되어 있습니다. 인증자 (authenticator)는 티켓이 유효 하다는 것을 증명 하기 위해 사용 되는 값으로 부가 정보를 포함 하고 있습니다.
티켓에는 다음의 정보들이 들어 있습니다.
l 클라이언트가 접속 하기를 원하는 서버의 ID
l 클라이언트의 ID
l 클라이언트의 네트워크 주소
l 티켓의 유효 기간
l 클라이언트와 서버가 서비스 기간 동안 공유하는 세션키
영역 안에 있는 클라이언트들은 영역 안의 각 서버에 대하여 권한이 다릅니다. 그리고 클라이언트는 자기의 권한에 따라 서버에 접속할 수 있는 기간이 달라 지게 됩니다. 티켓 에는 유효 기간이 있으므로 서버는 티켓을 접수 한 다음 티켓에 있는 클라이언트의 ID에 해당 하는 클라이언트에 대해서 그 티켓에 있는 유효 기간 동안만 접속을 허용 합니다. 커버로스(Kerberos) 그리스 신화에서 세 개의 머리와 뱀의 꼬리를 가진 지옥의 문을 지키는 개의 이름이기도 한 커버로스(Kerberos)는 분산 컴퓨팅 환경에서 대칭키를 이용하여 사용자 인증을 제공하는 중앙 집중형 인증(authentication) 방식으로 원래 MIT의 Athena 프로젝트에서 개발되었습니다. Kerberos는 Needham-Schroeder의 신뢰할 수 있는 제 3자 프로토콜에 근거한 모델로서 중앙 인증 서버가 네트워크 상의 모든 실체(entity)와 서로 다른 비밀키를 공유하고 그 비밀키를 알고 있는 것으로 실체의 신원을 증명하며, 특히 패스워드를 네트워크 상에 노출시키지 않도록 합니다. ■ Kerberos 모델 ◑ Kerberos의 기본 인증 과정 Ticket은 서버에 서비스를 요청할 때 사용되며, Authenticator는 서버에 클라이언트를 인증하는 역할과 함께 암호화된 time stamp로 재사용 공격(replay attack)을 막는 역할. ■ 커버로스의 장·단점 커버로스의 장·단점은 다음과 같습니다. 장점 ► 커버로스는 당사자와 당사자가 인증을 요청하는 서비스 간의 통신 내용을 암호화 키 및 암호 프로세스를 이용하여 보호하기 때문에 데이터의 기밀성과 무결성을 보장할 수 있음 단점 ► 커버로스는 모든 당사자와 서비스의 암호화 키를 키 분배 센터에서 가지고 있기 때문에 키 분배 센터가 단일 오류 지점(single point of failure)이 되어 키 분배 센터에 오류가 발생하면 전체 서비스를 사용할 수 없음 ► 커버로스 시스템에서는 사용자의 비밀키가 사용자의 워크스테이션에 임시로 저장되기 때문에 사용자의 워크스테이션에 침입하는 침입자에 의하여 유출될 수 있으며, 사용자의 세션키도 사용자의 워크스테이션에 임시로 저장되기 때문에 침입에 취약함 ► 커버로스는 패스워드 추측(password guessing) 공격에 취약하며, 사용자가 패스워드를 바꾸면 비밀키도 변경해야 하는 번거로움이 있음
출처 - http://blog.naver.com/nttkak?Redirect=Log&logNo=20130243666
============================================================================================
출처 - http://blog.naver.com/phishkim?Redirect=Log&logNo=20109109759
==============================================================================================
'Security > Common' 카테고리의 다른 글
CISSP에서 도구 (0) | 2011.11.10 |
---|---|
암호학(Cryptography) 의 모든 것 (0) | 2011.10.06 |
API Gateway 사례로 본 HMAC 인증 이해 (0) | 2011.10.01 |
시만텍 “보안 빨간불, 주범은 APT” (2) | 2011.09.24 |
Hash and MAC (0) | 2011.09.18 |