안전한 인터넷 서비스 구현을 위한 Kerberos와 IPSec의 결합

읽는 시간: 5 분
...

📝 원문 정보

  • Title: A method to Implement the Kerberos User Authentication and the secured Internet Service
  • ArXiv ID: 1604.08799
  • 발행일: 2016-05-02
  • 저자: Pak Song-Ho, Pak Myong-Suk, Jang Chung-Hyok

📝 초록 (Abstract)

본 논문은 Kerberos와 IPSec 보안 프로토콜을 결합하여 안전한 인터넷 서비스를 구현하는 방법에 대해 다룹니다. Kerberos는 MIT에서 개발된 네트워크 인증 프로토콜로, 대칭키 암호화를 사용해 네트워크 서비스에 대한 사용자 인증을 수행합니다. IPSec은 TCP/IP 프로토콜의 네트워크 계층에서 가상 사설망(VPN)을 구축하는 데 사용되는 보안 프로토콜입니다.

논문에서는 Kerberos와 IPSec을 결합하여 안전한 인터넷 서비스를 구현할 때 발생하는 문제점과 이를 해결하기 위한 방법을 제시합니다. 특히, PKINIT_AS라는 공개키 암호화 기반의 Kerberos V5 인증 시스템을 사용해 보안 강도를 향상시키는 방법을 설명하고 있습니다.

💡 논문 핵심 해설 (Deep Analysis)

Figure 1
본 논문은 Kerberos와 IPSec이라는 두 가지 네트워크 보안 프로토콜을 결합하여 안전한 인터넷 서비스 구현에 대한 연구를 진행하였습니다. Kerberos는 MIT에서 개발된 네트워크 인증 프로토콜로서, 대칭키 암호화를 사용해 클라이언트와 서버 간의 신뢰성을 보장합니다. 반면 IPSec은 TCP/IP 프로토콜의 네트워크 계층에서 가상 사설망(VPN)을 구축하는 데 사용되는 일반적인 보안 프로토콜입니다.

논문에서는 Kerberos와 IPSec을 결합하여 안전한 인터넷 서비스를 구현할 때 발생하는 문제점과 이를 해결하기 위한 방법을 제시하고 있습니다. 특히, PKINIT_AS라는 공개키 암호화 기반의 Kerberos V5 인증 시스템을 사용해 보안 강도를 향상시키는 방법에 대해 상세히 설명하고 있습니다.

Kerberos와 IPSec의 결합은 여러 문제점을 내포하고 있습니다. 예를 들어, IPSec에서 제안하는 gssapi_krb 인증 방법을 사용하려면 특정 매개변수 설정이 필요합니다. 이러한 매개변수는 애플리케이션 서비스 이름과 메커니즘 유형 등에 따라 설정되어야 합니다.

논문에서는 Kerberos와 IPSec의 결합을 위해 PKINIT_AS라는 새로운 인증 시스템을 제안하고 있습니다. 이 시스템은 공개키 인증서가 KDC(Kerberos Distribution Center)에 미리 저장되어 있다는 가정 하에 작동합니다. PKINIT_AS는 클라이언트와 AS(Authentication Server) 간의 비밀 키 교환 과정에서 ECDH(Elliptic Curve Diffie-Hellman) 키 교환과 ECSig 서명을 사용하여 보안성을 강화하고 있습니다.

또한, Kerberos 인증 모듈(mod_auth_kerb)을 갖춘 Apache HTTPD 데몬과 Squid 프로그램은 안전한 WWW 서비스를 제공하며, Kerberos V5 FTP 프로그램은 명령형 모드에서 안전한 FTP 서비스를 제공합니다. 이들 서비스는 사용자가 Firefox 브라우저를 구성하여 Single Sign-on(SSO)에 Kerberos를 사용하도록 설정해야 합니다.

IPSec 클라이언트와 서버 간의 보안 맥락을 성공적으로 설정하기 위해, 논문에서는 GSS-API(Generic Security Service Application Program Interface) 초기화자의 gss_import_name() 함수를 호출하여 애플리케이션 서버의 이름을 가져오고, 클라이언트는 GSS_Init_sec_context() 함수를 사용해 보안 맥락을 초기화하고 서버에 출력 토큰을 전송합니다. 이 과정에서 GSS_C_REPLAY_FLAG 플래그가 추가되어 재생 공격 방지를 위한 보안 강도가 향상됩니다.

논문에서는 Kerberos와 IPSec의 결합을 통해 안전한 인터넷 서비스를 구현하는 방법을 제시하고 있습니다. 특히, PKINIT_AS를 사용해 Kerberos 티켓을 획득하고 gssapi_krb 인증 방법을 사용해 IPSec VPN을 구축함으로써 클라이언트와 서버 간에 보안 터널이 형성됩니다. 이 보안 터널을 통해 클라이언트는 애플리케이션 서버에 안전하게 서비스를 요청하고 이용할 수 있습니다.

논문은 또한, IPSec 전송 모드 사용 시 발생하는 트래픽량 증가 문제를 해결하기 위해 IPSec, Kerberos 및 Squid 프록시 서버를 결합한 보안 프레임워크를 제안합니다. 이 프레임워크는 내부 네트워크와 애플리케이션 서버의 안전성을 가정하고 ECC(Elliptic Curve Cryptography)를 함께 사용하여 기본 Kerberos 인증 시스템보다 O(2^n/2) 더 높은 보안 강도를 제공합니다.

결론적으로, 본 논문은 Kerberos와 IPSec을 결합한 안전한 인터넷 서비스 구현 방법에 대해 상세히 설명하고 있습니다. 특히 PKINIT_AS와 gssapi_krb 인증 방법을 사용해 보안성을 크게 향상시키는 방법을 제시함으로써, 현존하는 네트워크 보안 프로토콜의 한계를 극복하고 안전한 인터넷 환경 구축에 기여할 수 있는 방향성을 제시하였습니다.

📄 논문 본문 발췌 (Excerpt)

## Kerberos와 IPSec을 결합한 보안 인터넷 서비스 구현에 대한 연구

Kerberos는 MIT에서 개발한 네트워크 인증 프로토콜로, 대칭키 암호화를 통해 네트워크 서비스에 대한 사용자 인증을 수행합니다. 반면 IPSec은 TCP/IP 프로토콜의 네트워크 계층에서 가상 사설망(VPN)을 구축하는 데 사용되는 일반적인 보안 프로토콜입니다.

Kerberos와 IPSec 보안 프로그램을 결합하여 안전한 인터넷 서비스를 구현할 때 몇 가지 문제가 발생합니다.

기본적으로 신뢰할 수 있는 제3자를 기반으로 한 인증 시스템으로 제안된 Kerberos는 현재 버전 5로 발전[1]했으며, 클라이언트 식별을 확인하고 사용자 및 인증 서버(AS) 또는 티켓 부여 서버(TGS) 또는 애플리케이션 서버 간에 비밀 키를 공유하기 위해 공개키 암호화를 사용합니다[2,4]. 특히, 사용자 및 AS 서버 간에 비밀 키를 공유하기 위해 ECDH 키 교환과 ECSig 서명을 사용하는 방법이 제안되었지만, 이러한 방법을 완전히 구현한 프로그램은 아직 출판되지 않았습니다.

IPSec과 Kerberos의 결합 매개변수가 일반적으로 설정되어 있기 때문에, 현재 IPSec에서 제안하는 gssapi_krb 인증 방법[3,6,7]을 사용할 수 없습니다. 이러한 매개변수는 애플리케이션 서비스 이름과 메커니즘 유형 등에 따라 설정되어야 합니다.

Kerberos 인증 모듈(mod_auth_kerb)을 갖춘 Apache HTTPD 데몬과 Kerberos 인증 모듈(negotiate_auth)을 갖춘 Squid 프로그램은 모두 안전한 WWW 서비스를 제공하며, Kerberos V5 FTP 프로그램은 명령형 모드에서 안전한 FTP 서비스를 제공합니다. (Kerberos 인식 이메일 애플리케이션도 Kerberos V5 FTP 프로그램과 동일합니다.)

이 경우, 사용자는 Firefox 브라우저를 구성하여 Single Sign-on(SSO)에 Kerberos를 사용해야 합니다. 즉, 사용자는 웹 브라우저가 적절한 KDC에 사용자 자격 증명을 보내도록 설정해야 합니다. 후자의 경우, 사용자는 웹 브라우저를 사용하지 않습니다.

Kerberos 인증 서비스를 사용하려면 사용자는 웹 브라우저를 사용하는 방법을 알고 명령형 모드의 안전한 FTP를 이해해야 합니다.

본 논문은 공개키 암호화를 사용하는 PKINIT_AS Kerberos V5 인증 시스템과 IPSec VPN에서 이를 사용하여 안전한 인터넷 서비스를 구현하는 gssapi_krb 인증 방법에 대해 제안합니다.

개선된 Kerberos 인증 시스템은 공개키 인증서가 KDC에 미리 저장되어 있다는 가정 하에 공개키 암호화를 사용하며, 이는 기본 Kerberos 인증 시스템과는 다른 메시지 형식 ① ②을 가집니다. 본 논문에서 제안한 PKINIT_AS Kerberos 인증 시스템의 인증 과정은 다음과 같습니다.

① 클라이언트 C는 자신의 개인 키로 서명된 식별 정보와 기본 요청 메시지와 함께 AS에 공개키 인증서 증명서를 보냅니다.

② AS는 클라이언트 C로부터 받은 요청 메시지를 처리하고, 수신한 메시지의 공개키 인증서가 데이터베이스에 저장된 클라이언트의 공개키 인증서와 일치하는지 확인합니다. 일치하면 서명을 키로 검증합니다. 서명 검증이 성공하면 다음 단계로 진행합니다. AS는 클라이언트와의 비밀 세션 키(kc.tgs)를 암호화하여 클라이언트에 전송합니다.

③ 클라이언트는 AS로부터 받은 응답 메시지를 자신의 비밀 Kc로 복호화하고, 이를 자신의 개인 키 Pc-1으로 복호화하여 클라이언트와 TGS 간의 비밀 세션 키 kc.tgs를 얻습니다.

클라이언트 및 다음 Kerberos 인증 시스템 단계는 기본 Kerberos 프로세스와 동일합니다.

IPSec 클라이언트와 IPSec 서버 간에 gssapi_krb 기반 보안 맥락을 성공적으로 설정하려면, 현재 IPSec 보안 프로그램은 다음과 같은 결합 매개변수를 설정합니다.

…(본문이 길어 생략되었습니다. 전체 내용은 원문 PDF를 참고하세요.)…

📸 추가 이미지 갤러리

cover.png

Reference

이 글은 ArXiv의 공개 자료를 바탕으로 AI가 자동 번역 및 요약한 내용입니다. 저작권은 원저자에게 있으며, 인류 지식 발전에 기여한 연구자분들께 감사드립니다.

검색 시작

검색어를 입력하세요

↑↓
ESC
⌘K 단축키