360 likes | 724 Views
인증 프로토콜. 목차. 상호인증 관용암호방식 공개키 암호화 방식 일방향 인증 관용 암호 방식 공개키 암호 방식. 1 . 인증. 1 . Login request. 2 . ID A || PW A. 3 . Accept or Reject. Bob Server. Alice Client. 1. 상호 인증. 상호 인증 프로토콜 신분 확인에 대해 상호 만족시킴 세션키를 교환할 수 있게 함 인증된 키 교환 문제에 있어서 두 가지 고려할 점 기밀성( confidentiality)
E N D
목차 • 상호인증 • 관용암호방식 • 공개키 암호화 방식 • 일방향 인증 • 관용 암호 방식 • 공개키 암호 방식
1. 인증 1. Login request 2. IDA || PWA 3. Accept or Reject Bob Server Alice Client
1. 상호 인증 • 상호 인증 프로토콜 • 신분 확인에 대해 상호 만족시킴 • 세션키를 교환할 수 있게 함 • 인증된 키 교환 문제에 있어서 두 가지 고려할 점 • 기밀성(confidentiality) • 신분 위장 방지 : 신원 증명이 필요 • 세션키의 손상 방지 : 암호화 형태로 통신되어야 함 • 적시성(timeliness) • 메시지 재전송의 위협 방지 • 메시지 재전송 • 공격자가 세션키를 손상 • 다른 상대방을 흉내 초점 : 키 분배
재전송 공격의 예 • 단순 재전송 • 공격자가 메시지를 단순히 복사하고 후에 재전송하는 것 • 시간 범위 내에서 재전송 • 공격자는 유효한 시간 윈도우 내에서 타임 스탬프가 있는 메시지를 재전송할 수 있다. • 발견될 수 없는 재전송 • 원본 메시지의 사용을 정지시켜서 목적지에 도착하지 않고 오직 재전송 메시지만 도착할 경우에 일어날 수 있다. • 수정 없이 역방향 재전송 • 메시지 송신자에 대한 재전송 반환 • 송신자가 보낸 메시지들과 받은 메시지들 사이의 내용적 차이를 쉽게 알 수 없을 때 가능.
재전송 공격에 대항하기 위한 접근 방법 • 각 메시지에 대한 일련 번호 부여 • 일련 번호가 적절한 일련 번호일 경우에만 수신 • 단점 • 마지막 메시지의 일련 번호 유지 요구 ∴인증과 키 교환에 일반적으로 사용하지 않음
일반적인 접근 방법 • 타임 스탬프(Timestamp) • A는 메시지가 현재 시간에 대하여 충분히 밀접하다고 판단하는 타임스탬프를 포함할 때만 메시지를 선명한 것으로 받아들인다. • 다양한 참가자들 사이에 동기화된 시계를 요구하기 때문에 어렵다. • 신청/응답(Challenge/Response) • A는 B로 부터의 선명한 메시지를 기대 • B에게 임시비표(신청)을 보냄 • B로 부터 수신되는 메시지(응답)가 정확한 임시비표 값을 포함 할 것을 요구
2. 관용 암호 방식 • KDC(Key Distribution Center)역할 • 각 통신 주체는 비밀키를 KDC와 공유한다. • KDC는 통신 상대방 사이의 연결에 대한 세션키를 만든다. • 키 전달 보호를 위해 마스터키를 이용하여 키들을 할당한다. • Needham과 Schroeder[NEED78] 프로토콜 • A KDC : IDA Ⅱ IDB ⅡN1 • KDC A : EKa[Ks Ⅱ IDB Ⅱ N1 Ⅱ EKb [Ks Ⅱ IDA]] • A B : EKb[KS ⅡIDA] • B A : EKs[N2] • A B : EKs[f(N2)] 이 프로토콜의 목적은 A와 B에서 세션키 Ks를 안전하게 배포하는 것이다.
2. 관용 암호 방식 • Needham - Schnoeder 방식 1. IDA || IDB || N1 KDC 2. EKA[KS || IDB || N1 || EKB[KS || IDA]] 3. EKB[KS || IDA] 4. EKS[N2] 5. EKS[f(N2)] Alice Bob • 재전송 공격에 대해 여전히 취약 Denning 방식 제안
비밀키 Ka 와 Kb는 각각 A와 KDC사이, B와 KDC사이에서 공유된다. • 1단계 • 세션키 요구 메시지를 보냄 • 전송 내용 - A와 B의 신원, 유일한 식별자 • 2단계 • 응답 메시지를 마스터키 Ka 로 암호화하여 전송 • 전송 내용 - 일회용 세션키 Ks, 1단계에서 전송 받은 메시지 - B에게 전송될 메시지를 Kb로 암호화 (EKb[KS ⅡIDA])
3단계 • 세션키를 저장하고, EKb[KS ⅡIDA]를 B에게 전송 • Kb로 암호화되었기 때문에 도청 불가능 A와 B는 세션키 KS를 공유 • 4단계 • B는 A에게 임시비표 N2 를 세션키로 암호화하여 전송 • 5단계 • A는 B에게 f(N2)를 세션키로 암호화하여 전송 목적 : 재전송 공격 방해하기 위해 BUT!! 여전히 재전송 공격에 취약하다. X는 과거의 키를 사용하여 단계 3을 단순히 재전송 함으로써 A인 체 하고 B를 속일 수 있다.
Denning[DENN81, DENN82]프로토콜 - 타임 스탬프를 추가함으로써 Needham/Schroeder 프로토콜을 보완 • A KDC : IDA Ⅱ IDB • KDC A : EKa[Ks Ⅱ IDB Ⅱ TⅡ EKb [Ks Ⅱ IDA ⅡT]] • A B : EKb[KS ⅡIDA ⅡT] • B A : EKs[N1] • A B : EKs[f(N1)] • 네트워크 전체에 걸쳐서 동기화된 클럭에 대한 신뢰를 요구한다. • 지연-재전송 공격(suppress-replay attack)에 취약. • T는 A와 B에서 세션키가 시간에 적합하게 바로 만들어진 것이라는 것을 보장해주는 역할을 한다
Denning은 단계 2와 3에 timestamp를 추가 • 가정 • 마스터 키 KA와 KB가 안전하다. 1. IDA || IDB KDC 2. EKA[KS || IDB || T || EKB[KS || IDA || T]] 3. EKB[KS || IDA || T] 4. EKS[N1] 5. EKS[f(N1)] Alice Bob
[NEUM93a] 프로토콜 - 지연-재전송 공격에 강하다. • A B : IDA ⅡNa • B KDC : IDB Ⅱ Nb Ⅱ EKb [IDA Ⅱ Na ⅡTb]] • KDC A : EKa[IDB Ⅱ Na Ⅱ Ks ⅡTb] EKb[IDA Ⅱ Ks ⅡTb Ⅱ Nb] • A B : EKb[IDA Ⅱ Ks ⅡTb ]EKs[ Nb] • 각 단계 설명 • 1단계 • 인증교환 시작 • 전송 내용 - 임시비표 Na, 식별자 • 2단계 • B가 KDC에게 세션키 요청 • 전송 내용 - 임시비표 Nb, 식별자, 비밀키로 암호화된 블록
3단계 • 전송 내용 - B의 임시비표, B 와 KDC에 의해 공유되는 비밀키로 암호화한 블록(인증을 위해),A와 KDC에 의해 공유되는 비밀키로 암호화된 블록 • 4단계 • EKs[ Nb]은 메시지가 A로 부터 왔고 재전송이 아니라는 것을 인증한다.
3. 공개키 암호화 방식 • 각각이 상대방의 현재 공개키를 가지고 있다고 가정. • [DENN81] 타임 스탬프를 사용하는 프로토콜 • A AS : IDA Ⅱ IDB • AS A : EKRas[IDAⅡ KUaⅡTⅡ EKRas[IDBⅡ KUbⅡT] • A B : EKRas[IDAⅡ KUaⅡTⅡ EKRas[IDBⅡ KUbⅡT]Ⅱ EKUb [EKRa [KsⅡT]] • AS는 인증서버로 간주된다. AS는 공개키 인증서를 제공한다. • 간결하지만 앞에서와 같이 클럭의 동기화를 요구한다.
3. 공개키 암호화 방식 5. EKRAuth[IDA || KUA] || EKUn[EKRAuth[NA || KS || IDB] ] 1. IDA || IDB KDC 2. EKRAuth[IDB || KUB] 4. IDA || IDB || EKUAuth[NA] 3. KUB[NA || IDA] 6. EKUA[EKRAuth[NA || KS || IDB] || NB ] 7. EKS[NB] Alice Bob
3. 공개키 암호화 방식 • Woo와 Lam[WOO92a] 임시비표를 이용한 프로토콜 • A KDC : IDA Ⅱ IDB • KDC A : EKRauth[IDBⅡ KUb] • A B : EKUb [Na Ⅱ IDA ] • B KDC : IDB Ⅱ IDA ⅡEKUauth[Na ] • KDC B : EKUauth[IDAⅡKUa]Ⅱ EKUb[EKRauth[NaⅡKsⅡIDAⅡIDB]] • B A : EKUa[ EKUauth [NaⅡKsⅡIDAⅡIDB]ⅡNb] • A B : EKS [Nb] • 각 단계 설명 • 1단계 : A는 B와의 연결 의도를 알린다. • 2단계 : B의 공개키 인증서의 복사본을 반송 • 3단계 : A는 B에게 통신 요청, 임시비표를 보낸다
3. 공개키 암호화 방식 • 4단계 : B는 KDC에게 A의 공캐키 인증서를 요구, 세션키를 요구 • 5단계 : A의 공개키 인증서 사본, 정보[ NaⅡKsⅡ IDB ]를 반송 • 6단계 : [ NaⅡKsⅡ IDB ]은 KDC의 개인키로 암호화한 상태로 Nb와 함께 A에게 중계 • 7단계 : 세션키에 대한 A의 지식을 B에게 보증 위 프로토콜의 개선된 버전 • A의 식별자 IDa 가 단계 5와 6에서 KDC의 개인키로 암호화된 항목들의 집합에 추가된다. • IDa 의 포함은 A에 의해서 만들어진 모든 임시비표중에서만 유일한것이다.
4. 일방향 인증 • 수신자는 메시지가 합법적 송신자로부터 왔다는 보장을 요구 • 관용 암호 방식 • 대표적인 예…… 전자 우편(e-mail) • 요구사항 • 우편처리 시스템이 복호키를 가지고 있지 않아도 되는 범위에서 전자우편 메시지가 암호화되어야 한다. • 수신측은 메시지가 합법적 송신자로부터 왔다는 것의 어떤 보장을 원한다.(인증)
4. 일방향 인증 1. IDA || IDB || N1 KDC 2. EKA[KS || IDB || N1 || EKB[KS || IDA]] 3. EKB[KS, IDA] || EKS(M) Bob Alice • 메시지의 의도된 수신자만이 해당 메시지를 읽을 수 있다는 것을 보증 • 메시지 재전송 공격에 취약
5. 관용 암호 방식 • 암호화된 전자우편 (개선된 KDC전략) A, B 동시에 온라인 일 수 없기 때문에 • A KDC : IDA Ⅱ IDB ⅡN1 • KDC A : EKa[Ks Ⅱ IDB Ⅱ N1 Ⅱ EKb [Ks Ⅱ IDA]] • A B : EKb[Ks ⅡIDA]ⅡEKs[M] 의도된 수신자만이 메시지를 읽을 수 있다는 것을 보증한다.
6. 공개키 암호화 방식 • 비밀성이 주요 관심이라면 오직 B만이 복호 할 수 있다. • 인증이 주요 관심이라면 (디지털 서명 만족) A가 메시지를 보냈다는 것을 부인할 수 없다. A B : EKUB(KS) || EKS(M) A B : M || EKRA(H(M))
공개키 암호화 방식 • 메시지와 서명 둘 다 만족 (수신자의 공개키로 암호화) • 디지털 인증서 (시기적으로 적절하다는확신이 요구 됨) A B : EKUB(M || EKRA(H(M))) A B : M || EKRA[H(M)] || EKRAS(T || IDA || KUA)
10.3 디지털 서명의 표준 • DSS (Digital Signature Standards) • 1991년 미국 NIST에서 표준안으로 개발 • 안전한 해쉬 알고리즘을 사용하면서 새로운 디지털 서명기술즉, 디지털 서명 알고리즘을 나타냄 • 디지털 서명 기술을 제공하기 위해 설계된 알고리즘 사용 (암호화나 키 교환에 사용되지 않음) • 공개키 기반의 알고리즘 • 이산대수의 어려움에 기반을 둔 알고리즘
DSS 접근법 비교 • RSA 접근방식 • 서명되는메시지는 고정된 길이의 비밀 해쉬코드를 생성하는 해쉬함수 입력 • 해쉬코드는 서명을 형성하기 위해 송신자의 개인키를 사용하여 암호화 • 수신자는 메시지를 받고 해쉬코드를 생성 • 수신자는 송신자의 공개키를 사용하여 서명을 복호화 • 계산된 해쉬코드가 복호화된 서명과 일치한다면 서명은 유효한 것으로 인정
DSS 접근법 비교 • DSS접근 방식 • RSA와는 달리 해쉬코드는 특정한 서명을 위해 생성된 K와 함께 서명함수(Sig)에 입력으로서 제공 • 송신자의 개인키와 전체적인 공개키(통신 주체의 집단에 알려진 매개변수의 집합)도 서명함수의 입력요소 • 서명함수의 결과는 s와 r로 표시된 두개의 요소로 구성 • 수신자는 메시지의 해쉬코드 생성 이것은 서명과 함께 확인함수의 입력이 됨 • 확인함수는 송신자의 공개키와 전체적인 공개키에 의존 • 확인함수의 출력은 서명이 유효하다면 서명구성요소 r과같음 • 서명함수는 개인키에 대해 알고 있는 송신자만이 유효한 서명을 생성할 수 있음
H | | M M KRa 비교 KUa H E EKRa[H(M)] D H | | M M KUG KRa KRG KUa s H Sig r 비교 Ver k DSS 접근법 비교 RSA DSA
DSA (Digital Signature Algorithm) • 준비과정 • 모든 사용자 집단에 공통적으로 사용되는 세개의 매개변수 • 160비트 길이의 소수 q 선택 • 512 ~ 1024 비트 사이의 소수 p 선택 • g = h(p-1)/q mod p ( 1<h<(p-1) ) • 비밀키 선택, 공개키 생성 • 랜덤한 비밀키 x 선택 (0<x<q) • 공개키 y 계산 y=gx mod p
p q g f2 r k x q M H f1 s DSA (Digital Signature Algorithm) • 서명 과정 • 메시지별 비밀번호 k를 랜덤하게 생성(0<k<q) • 서명 • r=(gk mod p) mod q • s=[k-1(H(M)+xr)] mod q • Signature = (r, s)
y q g H M f4 q s f3 r 비교 DSA (Digital Signature Algorithm) • 확인과정 • w=s-1 mod q • u1=[(H(M)w)] mod q • u2= rw mod q • v=[(gu1 yu2) mod p] mod q • TEST : v = r
문제 • 인터넷에서 물건을 사려고 한다. 안전하게 물건을 사기 위한 요구되는 보안모델을 제시하고 제시한 모델에 기반한 보안 기법들을 순서대로 제시하고, 그 기법을 상세히 설명하시오. Alice Bob
신뢰된 제 3 자 (예: 비밀정보의 중재자, 분배자) 통신주체 통신주체 보안 관련 변환 보안 관련 변환 메시지 메시지 정보 채널 비밀정보 비밀정보 적 (Opponent) 보안 모델
보안 서비스 • 보안 서비스 (Security Service) • 조직의 데이터 처리 시스템 및 정보 전송에 대한 보완을 강화하기 위한 제반 서비스 • 보안 서비스의 종류 • 기밀성 서비스 • 무결성 서비스 • 인증 서비스 • 부인봉쇄 서비스 • 접근 제어 서비스 • 가용성 서비스