Chapter 15 키 관리 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 15 Objectives 키-배분센터(KDC)의 필요성. 어떻게 KDC가 두 통신자 사이의 세션키 생성. 두 통신자가 KDC 서비스를 이용하지 않으면서 자신들이 사용할 세션키 생성에 대칭 키 합의 프로토콜의 이용. KDC와 인증 프로토콜로 커버로스를 이용. 공개 키에 있어서 인증기관(CA)의 필요성에 대해 설명하고 어떻게 X.509에서 권장하는 것이 인증서 유형을 정의하는지 설명. 공개 키 기반(PKI)의 아이디어를 소개하고 PKI의 직무에 대한 설명.
Topics discussed in this section: 15-1 SYMMETRIC-KEY DISTRIBUTION 대칭 키 암호시스템은 크기가 큰 메시지를 암호화할 때 비대칭 암호시스템보다 훨씬 효율적이다. 하지만 대칭 키 암호시스템을 사용하려면 사전에 통신 당사자끼리 비밀 키를 공유해야만 한다. 키를 어떻게 배분할 것인가도 큰 문제이다. Topics discussed in this section: 15.1.1 키-배분 센터(Key-Distribution Center: KDC) 15.1.2 세션 키(Session Keys)
(Key-Distribution Center: KDC) 15.1.1 키-배분 센터 (Key-Distribution Center: KDC) Figure 15.1 키-배분센터(KDC)
15.1.1 Continued 평등 다중 KDC (Flat Multiple KDCs.) 집단을 여러 개의 도메인으로 분리. 각 도메인에 한 개 혹은 다수 개의 KDC를 둔다(다운되는 경우를 대비해서). Figure 15.2 평등 다중 KDC
15.1.1 Continued 계층 다중 KDC (Hierarchical Multiple KDCs) 평등 다중 KDC의 개념은 계층 다중 KDC 로 확장할 수 있다. 여기서 한 개 혹은 다수 개의 KDC가 최 상위 계층에 있게 된다. 예를 들면, 지역 KDC, 전국 KDC, 국제 KDC 등이 존재하게 된다.
15.1.1 Continued Figure 15.3 계층 다중 KDC
15.1.2 세션 키(Session Keys) KDC는 각 구성원을 위해 비밀 키를 생성한다. 앨리스가 밥과 기밀성을 유지하면서 통신을 하고자 한다면 앨리스는 밥과 자신 사이에 비밀 키가 한 개 필요하다. KDC는 이들 두 사람과 센터사이의 비밀 키들을 이용해서 앨리스와 밥 사이에 필요한 이 세션 키를 생성할 수 있다.
두 통신자 사이의 세션 대칭 키는 오직 한 번만 사용한다. 15.1.2 세션 키(Session Keys) Note 두 통신자 사이의 세션 대칭 키는 오직 한 번만 사용한다.
15.1.2 Continued 하나의 KDC를 이용한 단순 프로토콜 (A Simple Protocol Using a KDC) Figure 15.4 KDC를 사용하는 첫 번째 방법
15.1.2 Continued Needham-Schroeder 프로토콜(Needham-Schroeder Protocol) Figure 15.5 Needham-Schroeder 프로토콜
15.1.2 Continued Otway-Rees 프로토콜( Otway-Rees Protocol) Figure 15.6
15-2 KERBEROS A backbone network allows several LANs to be connected. In a backbone network, no station is directly connected to the backbone; the stations are part of a LAN, and the backbone connects the LANs. 커버로스(Kerberos)는 인증 프로토콜이며 동시에 KDC이다. 이것은 아주 많이 사용되고 있다. 윈도우즈 2000을 포함한 많은 시스템에서 커버로스를 사용한다. 이 이름은 문을 지키는 그리스 신화의 머리가 셋이 달린 개의 이름에서 따온 것이다. 원래 MIT에서 설계를 했고 여러 버전으로 업데이트되었다.
Topics discussed in this section: 15-2 KERBEROS Topics discussed in this section: 15.2.1 서버(Servers) 15.2.2 동작(Operation) 15.2.3 다른 서버 사용하기(Using Different Servers) 15.2.4 커버로스 버전 5(Kerberos Version 5) 14.2.5 공동체(Realms)
15.2.1 Servers Figure 15.7 커버로스 서버
15.2.1 Continued 인증서버(AS) (Authentication Server (AS)) 인증서버(authentication server: AS)는 커버로스 프로토콜의 KDC이다. 각 사용자는 AS에 등록을 하고 사용자 ID와 패스워드를 발급한다. AS는 사용자의 ID와 대응되는 패스워드에 대한 데이터베이스를 가지고 있다. AS는 사용자를 검증하고, 앨리스와 TGS 사이에 사용될 세션 키를 발급하고 TGS에게 티켓을 발급한다.
15.2.1 Continued 티켓-발급 서버(TGS) (Ticket-Granting Server (TGS)) 또한 앨리스와 밥 사이에 사용할 세션 키 KAB를 제공한다. 커버로스는 티켓을 발급하는 것과는 별개로 독립된 사용자 검증을 한다. 이렇게 하면 비록 앨리스가 자신의 ID를 AS와 오직 한 번만 검증하지만 앨리스는 TGS에 여러 차례 접속할 수 있으며 서로 다른 여러 실제 서버에 접속할 때 사용할 티켓을 획득할 수 있다.
15.2.1 Continued 실질 서버 (Real Server) 실질 서버(밥)은 사용자(앨리스)에게 서비스를 제공한다. 커버로스는 FTP처럼 사용자가 클라이언트 프로세스를 이용하여 서버 프로세스에 접근하는 클라이언트-서버 프로그램용으로 설계되었다. 커버로스는 개인-대-개인 인증용으로는 사용되지 않는다.
15.2.2 Operation Figure 15.8 커버로스 예
Using Different Servers 15.2.3 다른 서버 사용하기 Using Different Servers 만약 앨리스가 다른 서버로부터 서비스를 받고자 한다면, 앨리스는 마지막 네 단계를 반복하면 된다. 최초의 두 단계는 앨리스의 신원을 확인하는 것이기 때문에 반복할 필요가 없다. 앨리스는 TGS에게 다른 서버에 대한 티켓을 발급해줄 것을 3 단계부터 6 단계까지 수행해서 요청하면 된다.
15.2.4 커버로스 버전 5(Kerberos Version 5) 버전 4와 버전 5 사이에 나타나는 약간의 차이점은 다음과 같다. 1. 버전 5는 티켓의 수명이 더 길다. 2. 버전 5는 티켓의 갱신이 가능하다. 3. 버전 5는 모든 대칭 키 알고리즘을 수용한다. 4. 버전 5는 데이터 유형을 기술하는데 다른 프로토콜을 사용한다. 5. 버전 5는 버전 4 보다 오버헤드를 더 많이 필요로 한다.
15.2.5 공동체(Realms) 커버로스는 AS와 TGS가 글로벌하게 분포된 환경을 조성한다. 이 글로벌한 전체집단 내의 각 시스템을 공동체(realm)라고 한다. 사용자는 지역 서버나 원격 서버에 대한 티켓을 획득할 수 있다.
(SYMMETRIC-KEY AGREEMENT) 15-3 대칭 키 합의 (SYMMETRIC-KEY AGREEMENT) 앨리스와 밥은 KDC 없이도 자신들이 사용할 세션 키를 생성할 수 있다. 이처럼 세션 키를 생성하는 방법을 대칭 키 합의라고 한다. 비록 여러 가지 방법으로 세션 키를 공유할 수 있지만 오직 두 가지 방법인 Diffie-Hellman과 국-대-국(station-to-station) 방법에 대해서만 설명하기로 한다.
Topics discussed in this section: 15-3 SYMMETRIC-KEY AGREEMENT Topics discussed in this section: 15.3.1 Diffie-Hellman 키 합의 (Diffie-Hellman Key Agreement) 15.3.2 국-대-국 키 합의 (Station-to-Station Key Agreement)
(Diffie-Hellman Key Agreement) Figure 15.9 Diffie-Hellman 방법
Diffie-Hellman 방법에서 대칭(공유) 키는 15.3.1 Continued Note Diffie-Hellman 방법에서 대칭(공유) 키는 K = gxy mod p이다.
15.3.1 Continued Example 15.1 이 절차를 정확히 이해하기 위해 쉬운 예를 하나 들어보자. 여기서는 작은 수를 이용하기로 한다. 하지만 실제에서는 매우 큰 수를 사용해야만 한다. g = 7 이고 p = 23이라고 하자. 절차는 다음과 같다: 앨리스는 x = 3 을 선택하고 R1 = 73 mod 23 = 21을 계산한다. 밥은 y = 6 을 선택하고 R2 = 76 mod 23 = 4를 계산한다. 앨리스는 21을 밥에게 보낸다. 밥은 4를 앨리스에게 보낸다. 앨리스는 대칭 키 K = 43 mod 23 = 18을 계산한다. 밥은 대칭 키 K = 216 mod 23 = 18을 계산한다. 이렇게 각각 구한 K는 앨리스나 밥이나 동일한 수이다. 즉, 다음의 수이다 : gxy mod p = 718 mod 35 = 18.
15.3.1 Continued Example 15.2 좀 더 실제와 가까운 예를 들어보자. 프로그램을 이용해서 512비트(이상적인 길이는 1024비트이다)짜리 난수 p를 하나 생성한다. 정수 는 159자리 수이다. 또한 g와 x 그리고 y 를 다음과 같이 선택하자.
15.3.1 Continued Example 15.2 Continued 아래의 수는 , R1, R2 와 K값을 나타낸다.
15.3.1 Continued Figure 15.10 Diffie-Hellman 아이디어
15.3.1 Continued Diffie-Hellman의 안전성 (Security of Diffie-Hellman) 이산대수공격( Discrete Logarithm Attack) 키 교환의 안전성은 이산대수문제를 풀기 어렵다는데 기반을 두고 있다.
15.3.1 Continued Diffie-Hellman의 안전성 (Security of Diffie-Hellman) 중간자 공격(Man-in-the-Middle Attack) 이 프로토콜은 또 다른 약점이 있다. 이브는 이 프로토콜을 공격하기 위해서 x 와 y 값을 구할 필요가 없다. 이브는 두 개의 키를 만들어서 앨리스와 밥을 속일 수 있다. 하나의 키는 자신과 앨리스 사이에 사용할 것이고 다른 하나는 자신과 밥 사이에 사용할 키이다.
15.3.1 Continued Figure 15.11 중간자 공격
(Station-to-Station Key Agreement) 15.3.2 국-대-국 키 합의 (Station-to-Station Key Agreement) Figure 15.12 국-대-국 키 동의 방법
Topics discussed in this section: 15-4 공개 키 배분 (PUBLIC-KEY DISTRIBUTION) 비대칭 키 암호시스템에서 사람들은 대칭 공유 키에 대해서 몰라도 상관 없다. 만약 앨리스가 밥에게 메시지를 보내고 싶다면, 앨리스는 밥의 공개 키만 알면 된다. Topics discussed in this section: 15.4.1 공개 선언(Public Announcement) 15.4.2 신뢰받는 센터(Trusted Center) 15.4.3 통제된 신뢰받는 센터(Controlled Trusted Center) 15.4.4 인증기관(Certification Authority) 15.4.5 X.509 15.4.6 공개키 기반(Public-Key Infrastructures (PKI))
공개 키 암호시스템에서 모든 사람들은 모든 사람들의 공개 키를 구할 수 있다. 공개키 배분 Note 공개 키 암호시스템에서 모든 사람들은 모든 사람들의 공개 키를 구할 수 있다. 공개 키는 누구에게나 공개된다.
15.4.1 공개 선언(Public Announcement) Figure 15.13 공개키 선언
15.4.2 신뢰받는 센터(Trusted Center) Figure 15.14 신뢰 센터
Controlled Trusted Center 15.4.3 통제된 신뢰받는 센터 Controlled Trusted Center Figure 15.15 통제된 신뢰 센터
15.4.4 인증기관(Certification Authority) Figure 15.16 인증 기관
15.4.5 X.509 X.509는 인증서를 구조적으로 나타내는 방법이다. .
15.4.5 X.509 인증서 그림 15.17에 인증서 형식을 나타내었다.
인증서 필드 인증서는 다음과 같은 필드로 구성된다. 버전 번호: 순서 번호: 서명 알고리즘 ID: 발행자 이름: 유효기간: 주체 이름: 주체 공개 키: 발행자 유일 식별자: 주체 유일 식별자: 확장: 서명:
15.4.5 Continued 인증서 갱신 (Certificate Renewal) 인증서 폐지 (Certificate Revocation) 어떤 경우에는 인증서의 유효기간이 끝나기 전에 폐지를 해야 한다. 델타 폐지 (Delta Revocation) 공개-키 기반(Public-Key Infrastructure: PKI)는 X.509에 기초해서 인증서를 만들고, 배분하고, 폐지하는 모델이다.
15.4.5 Continued Figure 15.17 X.509 인증서 양식
(Public-Key Infrastructures (PKI)) 15.4.6 공개키 기반 (Public-Key Infrastructures (PKI)) Figure 15.19 PKI의 역할
15.4.6 Continued 신뢰받는 모델(Trust Model) Figure 15.20 PKI 계층 모델
15.4.6 Continued Example 15.3 User1이 루트 CA의 공개 키만을 알고 있을 때 어떻게 User3의 적법한 공개 키를 획득하는지 설명해보아라. Solution User3은 User1에게 인증서 연쇄 CA<<CA1>>과 CA1<<User3>>를 보낸다. a. User1은 CA의 공개키를 이용하여 CA<<CA1>>을 검증한다. b. User1은 CA<<CA1>>으로부터 CA1의 공개키를 추출한다. c. User1은 CA1의 공개키를 이용하여 CA1<<User3>>을 검증한다. d. User1은 CA1<<User3>>로부터 User3의 공개키를 추출한다.
15.4.6 Continued Example 15.4 Netscape나 Internet Explorer같은 웹 브라우저는 각각의 루트를 인증하기위해 어떤 유일한 하나의 상위 기관 없이 독립된 루트로부터의 인증서 집합을 가지고 있다. 이러한 인증서는 Internet Explorer의 Tool/Internet Options/Contents/Certificate/Trusted roots 디렉터리로 가면 볼 수 있다. 사용자는 이 루트 중 어느 하나를 선택한 뒤에 그 해당 인증서를 볼 수 있다.
15.4.6 Continued Figure 15.21 메쉬 모델
15.4.6 Continued Example 15.5 앨리스는 기관 Root1에 속해있고, 밥은 기관 Root4에 속해있다고 해보자. 어떻게 앨리스는 밥의 적법한 공개키를 획득할 수 있을까? Solution 밥은 Root4로부터 밥에게 인증서 연쇄를 보낸다. 앨리스는 인증서 Root1<<Root1>>와 Root1<<Root4>>를 구하기 위해 Root1의 디렉터리를 살펴본다. 그림 15.21에 나타낸 절차를 이용해서 앨리스는 밥의 공개 키를 검증할 수 있다.
15.4.6 Continued 신뢰 망(Web of Trust) 이 모델은 제 16장에서 논의하게 될 전자메일의 안전한 서비스인 Pretty Good Privacy(PGP)에서 사용되는 것이다.