#2022-04-04
- 대칭 암호를 이용하여 어떻게 대칭 암호 키를 분배하는지 이해할 수 있다.
- 커버로스(kerberos)를 설명할 수 있다.
- 커버로스 버전 4와 5의 차이점을 설명할 수 있다.
- x.509 인증서의 요소를 말하고 설명할 수 있다.
- 공개 키 기반구조 개념에 대해 전반적으로 설명할 수 있다.
- 통합 신원 관리 시스템의 필요성을 이해할 수 있다.
목차
- - 원격 사용자 인증 원칙
- - 대칭 암호를 이용한 대칭키 분배
- - kerberos
- - 비대칭 암호를 이용한 키 분배
- - x.509 인증서
- - 공개키 기반 구조
- - 통합 신원 관리
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를 속인다.
대비책
- 티켓 안에 타임스탬프 포함
(티켓 발행시점 표기 / 티켓 유효기간 표기)
'Cumputer Science > 네트워크 보안🔐' 카테고리의 다른 글
공개 키 암호와 메시지 인증 (0) | 2022.03.21 |
---|---|
대칭 암호와 메시지 기밀성 part 1🔐 (3) | 2022.03.14 |