본문 바로가기
Cumputer Science/네트워크 보안🔐

키 분배와 사용자 인증

by @ENFJ 2022. 4. 4.

#2022-04-04

 

  • 대칭 암호를 이용하여 어떻게 대칭 암호 키를 분배하는지 이해할 수 있다.
  • 커버로스(kerberos)를 설명할 수 있다.
  • 커버로스 버전 4와 5의 차이점을 설명할 수 있다.
  • x.509 인증서의 요소를 말하고 설명할 수 있다.
  • 공개 키 기반구조 개념에 대해 전반적으로 설명할 수 있다.
  • 통합 신원 관리 시스템의 필요성을 이해할 수 있다.

 

목차

  1. - 원격 사용자 인증 원칙
  2. - 대칭 암호를 이용한 대칭키 분배
  3. - kerberos
  4. - 비대칭 암호를 이용한 키 분배
  5. - x.509 인증서
  6. - 공개키 기반 구조
  7. - 통합 신원 관리

 


1. 원격 사용자 인증 원칙

NIST의 전자 사용자 인증 모델.

 

 

  • 전자 사용자 인증.

-전자적으로 정보 시스템에 제시된 사용자 신원에 대해 신뢰를 확립하는 과정.

시스템은 인증된 신원을 이용하여 인증된 개체가 특정기능을 수행할 수 있도록 허가할지 말지를 결정.

특정기능이란. 데이터베이스 트랜잭션이나 시스템 자원에 대한 접근.

 

인증방법

1. 개인이 알고 있는 것(something the individual knows)

-> 예로, 패스워드, 개인 식별 번호 (PIN) , 사전에 작성된 질의에 대한 응답.

 

2. 개인이 소지하고 있는 것(something the individual)

-> 예로, 암호 키, 전자 키 카드, 스마트 카드, 물리적 키등.. 이런 유형의 인증자를 토큰(token)이라고 함.

 

3. 개인 자체(something the individual is)

-> 예로 지문, 망막, 안면 등을 통한 인식 

 

4. 개인이 수행하는 것(something the individual process)

-> 예로, 음성패턴, 수기한 문자, 타이핑 리듬 등에 의한 인식

 

 

 

2. 대칭 암호를 이용한 대칭키 분배

 

1) A가 키를 선택한 뒤 B에게 직접 전달.

2) 제3자가 키를 선택한 뒤에 A와 B에게 직접 전달.

3) A와 B의 공유키로 한 사람이 새 키를 만들고 공유키로 암호화하여 상대방에게 전송한다.

4) A와 B가 제 3자인 C와 암호화된 연결이 확립되어 있다면, C가 암호화된 링크를 통해서 A와B에게 키를 전달한다.

 

*4번째 방법에서 키 사용.

 

세션키(session key)  => 일회용 종이컵 생각하면 됨.

: 세션이라고 하는 논리적 연결이 유지되는 동안 모든 사용자 데이터는 일회용 세션키로 암호화.

한세션에만 사용

 

영구키(permanent key) => 여러번 사용하는 유리컵

: 영구 키는 세션키 분배에 필요한 키.

복수 회 사용

키 분배 센터(KDC)

 

KDC 키 분배 절차 (키 분배 센터)

key distibution center

- A가 B와 통신을 원하면 연결 요청 패킷을 KDC에 전송한다.

  -a와 kdc 사이의 통신은 a 와 kdc가 공유하고 있는 마스터키로 암호화.

 

네트워크에 대한 위협

-위협: 사용자로 위장 / 네트워크 주소 변경 / 재전송 공격

- 방어수단 : kerberos (대칭암호로만 구성, version 4 ,version 5)

 

kerberos 버전 4

-내부 암호로 DES 를 사용

- Athena 프로젝트의 Bill Bryant 가 사용한 방법으로 구조 설명

( 가상적 절차 제시/ 문제점 파악/ 문제점 보완/ 새 가상적 절차 제안 )

 

단순 인증 절차

- 인증서버(AS:authentication server)이용

- AS(인증서버) 는 각 서버와 유일한 비밀키를 공유

- 비밀키는 안전한 방법으로 분배 ( 직접 전달, 안전한 분배 )

 

가상적인 단순한 인증절차

1단계

: 사용자는 워크스테이션에 로그온하고 서버에 접근

(사용자 워크스테이션 안에 있는 클라이언트 모듈은 사용자 패스워드를 요구)

 

2단계

: 그 다음에 사용자의 ID, 서버 ID, 사용자 패스워드를 포함하는 메시지를 AS(인증 서버)에게 보낸다.

 

3단계

: AS(인증서버)는 데이터베이스를 검사하여 사용자가 자신의 ID와 일치하는 패스워드를 입력했는지 그리고 이 사용자가 서버에 접근허가가 있는지 확인한다.

 

4단계

: 이를 위해 AS(인증서버) 는 사용자 ID 와 사용자 네트워크 주소, 서버 ID를 포함하는 티켓을 생성한다.

 

5단계 

: 이 티켓은 AS(인증서버)와 서버가 공유하고 있는 비밀키로 암호화하여 C(클라이언트)에게 반환한다.

(티켓은 암호화 되어있기 때문에 C(클라이언트)나 다른 공격자는 이것을 변경할 수 없다.

 

6단계

: 이 티켓을 가지고 C(클라이언트)는 서비스를 받기 위해 서버에게 접근요청을 한다.

(C(클라이언트)는 C의 ID와 티켓을 포함하는 메시지를 서버에게 보낸다)

 

7단계

: 서버는 티켓을 복호화하고 티켓 속의 사용자 ID와 C(클라이언트)가 보낸 메시지 안의 암호화되지 않는 사용자 ID가 같은지 확인한다.

(두 개가 일치하면 서버는 그 사용자가 적법함을 확신하고 요청한 서비스를 제공한다.)

 

 

서버 ID 와 클라이언트ID 사용목적

- 변경이나 위조를 막기 위해 티켓 암호화

- 서버 ID가 티켓에 포함되어 있기 때문에 서버는 그 티켓이 올바르게 복호화 되었는지를 확인 가능

- 티켓이 클라이언트에게 발행되었다는 것을 명시하기 위해 티켓 속에 클라이언트 ID를 포함.

 

사용자 네트워크 주소 사용목적

- 티켓을 요청한 워크스테이션에서만 티켓을 사용할 수 있게 함

 

 

보다 안전한 인증 절차

-앞의 절차: 인증 문제 일부 해결

- 아직해결 되지 않은 문제

1) 입력 패스워드 수 과다

 -> 서버 접속마다 매번 패스워드 입력 / 해결방법: 티켓 재사용 / 문제는 다른 서버 접속시 패스워드 입력

 

2) 패스워드를 평문으로 전송

-> 도청가능 / 해결방법: 티켓발행서버 도입 (TGS : ticket -granting-server)

 

개선된 방법

: 서비스 유형마다 한 번씩 TGS(티켓발행서버)를 이용하여 티켓을 받아 서비스를 받는다.

그래도 공격 가능성이 있다.

 

가능한 공격 시나리오

- 티켓을 가로챈 뒤 해당 사용자가 워크스테이션에서 로그오프 할 때까지 대기

- 공격자는 자신의 워크스테이션 주소를 조작해서 공격대상 컴퓨터와 동일 주소 갖도록 조작

- 티켓을 재사용하여 TGS를 속인다.

 

대비책

- 티켓 안에 타임스탬프 포함

(티켓 발행시점 표기 / 티켓 유효기간 표기)