본문 바로가기
정보보안(산업)기사

[정보보안기사] 3.접근통제 - 커버로스(Kerberos)

by 다니엘(Daniel) 2023. 11. 3.
반응형

 

 

커버로스(Kerberos)란 무엇인가요?


커버로스(Kerberos)는 네트워크 인증 프로토콜입니다. 이 프로토콜은 사용자와 서비스 간의 안전한 인증을 제공하기 위해 설계되었습니다. 주로 로그인 과정에서 사용되며, 클라이언트와 서버 간의 상호작용을 보호하고 인증 정보를 안전하게 전달합니다.
커버로스는 클라이언트, 티켓 발급 서버(Ticket Granting Server, TGS), 서비스 서버로 구성됩니다. 사용자는 커버로스를 통해 인증을 받고 티켓을 발급받은 후, 이 티켓을 사용하여 다양한 서비스에 접근할 수 있습니다.
이 프로토콜은 대칭키 암호화를 사용하여 클라이언트와 서버 간의 통신을 보호합니다. 클라이언트는 사용자의 비밀 정보를 입력하여 티켓을 요청하고, TGS는 이를 검증하여 티켓을 발급합니다. 이후 클라이언트는 발급받은 티켓을 서비스 서버에 제출하여 인증을 완료하고 서비스에 접근할 수 있습니다.
커버로스는 네트워크 보안에 있어서 많이 사용되는 프로토콜 중 하나이며, 인증의 안전성과 효율성을 보장하기 위해 계속해서 발전되고 있습니다.

 

커버로스(Kerberos)의 동작원리는?

 

커버로스(Kerberos)의 동작원리는 다음과 같습니다.

1. 인증 요청
   - 클라이언트가 사용자 이름과 비밀번호를 입력하여 인증 요청을 합니다.
   - 클라이언트는 비밀번호를 해시 함수를 통해 변환하여 인증 서버(Authentication Server, AS)에 전송합니다.
2. 티켓 발급
   - 인증 서버는 사용자의 비밀번호를 저장하고 있는 데이터베이스와 비밀번호를 비교하여 인증을 수행합니다.
   - 인증이 성공하면 인증 서버는 클라이언트에게 티켓 발급 요청을 보냅니다.
   - 티켓 발급 요청에는 클라이언트의 식별자와 클라이언트-티켓 키가 포함됩니다.
3. 티켓 수령
   - 클라이언트는 인증 서버로부터 받은 티켓을 수령합니다.
   - 이 티켓은 클라이언트가 향후 서비스에 접근할 때 사용됩니다.
4. 서비스 요청
   - 클라이언트는 특정 서비스에 접근하기 위해 서비스 서버에 접속 요청을 합니다.
   - 이때 클라이언트는 자신의 티켓과 함께 서비스 요청을 보냅니다.
5. 티켓 검증
   - 서비스 서버는 클라이언트가 보낸 티켓을 검증합니다.
   - 이를 위해 서비스 서버는 티켓 발급 서버(Ticket Granting Server, TGS)에게 티켓을 제출하여 유효성을 확인합니다.
6. 서비스 제공
   - 티켓이 유효하다면 서비스 서버는 클라이언트에게 서비스를 제공합니다.
   - 클라이언트는 티켓에 포함된 클라이언트-서비스 키를 사용하여 통신을 암호화하고, 서비스에 접근할 수 있습니다.

이러한 과정을 통해 커버로스는 클라이언트와 서비스 간의 안전한 인증과 통신을 제공합니다. 중요한 점은 커버로스는 인증 서버, 티켓 발급 서버, 서비스 서버가 각각 다른 역할을 수행하며, 티켓이라는 중간 매개체를 통해 인증 정보를 전달한다는 것입니다.

 

 

커버로스(Kerberos) 커버로스는 어떤 암호화 방식을 사용하나요?


커버로스(Kerberos)는 대칭키 암호화 방식을 사용합니다. 대칭키 암호화는 암호화와 복호화에 동일한 키를 사용하는 암호화 방식입니다. 커버로스에서는 클라이언트와 서버 간의 통신을 보호하기 위해 대칭키 암호화를 사용합니다.
커버로스에서 사용되는 대칭키 암호화 알고리즘은 DES(Data Encryption Standard)를 기반으로 합니다. DES는 과거에 주로 사용되었으나, 현재는 보안성이 취약한 것으로 알려져 있습니다.
더 나은 보안성을 제공하기 위해, 커버로스의 최신 버전인 Kerberos V5에서는 DES 신 AES(Advanced Encryption Standard) 암호화 알고리즘을 사용할 수 있습니다. AES는 현재 가장 널리 사용되는 대칭키 암호화 알고리즘 중 하나로 알려져 있으며, 보안성과 성능 면에서 우수한 결과를 보여줍니다.
커버로스에서는 클라이언트와 인증 서버, 인증 서버와 티켓 발급 서버, 클라이언트와 서비스 서버 간의 모든 통신을 대칭키 암호화를 사용하여 보호합니다. 이를 통해 통신 내용이 암호화되어 안전하게 전송되며, 외부에서 통신을 도청하거나 조작하는 것을 방지합니다.

 

 

커버로스(Kerberos)를 사용하는 다른 프로토콜이 있나요?



커버로스(Kerberos)와 함께 사용되는 다른 프로토콜들이 있습니다. 주로 인증과 보안을 강화하기 위해 커버로스와 연동하여 사용되는 프로토콜들이며, 다음은 그 예시입니다.

1. LDAP(Lightweight Directory Access Protocol): 커버로스와 LDAP은 종종 함께 사용되는 프로토콜입니다. LDAP은 디렉터리 서비스에서 데이터에 접근하고 검색하기 위해 사용되는 프로토콜로, 커버로스와 연동하여 사용자 인증 정보를 저장하고 검색하는 데 활용될 수 있습니다.
2. SPNEGO(Simple and Protected GSSAPI Negotiation Mechanism): SPNEGO는 네트워크 인증을 위한 GSSAPI(Generic Security Services Application Programming Interface)를 확장한 프로토콜입니다. 커버로스와 함께 사용되어 웹 애플리케이션 등에서 싱글 사인온(Single Sign-On)을 구현하고, 다양한 보안 메커니즘을 통합하여 사용자 인증을 처리할 수 있습니다.
3. SASL(Simple Authentication and Security Layer): SASL은 애플리케이션 간의 인증과 보안을 위한 프로토콜 계층입니다. 커버로스와 연동하여 인증 메커니즘을 제공하고, 다른 암호화 기술과 통합하여 보안성을 강화할 수 있습니다.
4. PKINIT(Public Key Cryptography for Initial Authentication): PKINIT은 커버로스의 인증 과정에서 공개 키 암호화를 사용하는 프로토콜입니다. 클라이언트와 인증 서버 간의 초기 인증을 위해 공개 키 기반의 암호화를 사용하여 안전한 인증을 제공합니다.

이 외에도 커버로스와 연동하여 사용되는 다른 프로토콜들이 있을 수 있으며, 이는 보안 및 인증 요구에 따라 다양하게 결정될 수 있습니다. 커버로스는 다른 프로토콜과의 연동을 통해 보안성을 강화하고 다양한 환경에서의 인증과 접근 제어를 지원합니다.

 

 

요약정리

 

 

 

반응형