- 프로토콜 : 특정 상호 작용을 보장하기 위해 준수되어야 하는 규칙
- 네트워크 측면 : 연결된 다양한 통신시스템이 준수해야 하는 규칙
- 보안 프로토콜 : 보안 프로그램에서 준수되어야 하는 통신 규칙
0.1. 보안 프로토콜이 중요한 이유
- 네트워크에 관한 공격은 프로토콜에 의해 전달되는 메시지에 의존한다.
- 네트워크에 관한 공격 : 통상 인증을 목적으로 네트워크를 통해 전송되는 메시지에 대한 보안 문제
- 대표적인 예 : 재연 공격, 중간자 공격
- 직접적인 사례 : IPSec, WEP, GSM
- 네트워크에 관한 공격 : 통상 인증을 목적으로 네트워크를 통해 전송되는 메시지에 대한 보안 문제
- 보안 프로토콜에서는 공격자가 매우 다양한 기법으로 중간 처리과정에 개입
→ 다른 프로토콜보다 더 민감 - 보안 프로토콜이 정해진 보안 요구 수준(효율성, 사용 용이성, 구현 용이성, 융통성) 등을
모두 만족시키기 힘듦
1. IFF(피아식별) 프로토콜 - 단순 보안 프로토콜
1.1. 개요
- 남아프리카 공화국 공군이 앙골라 전투에서 사용했던 암호
- 전투기가 아군인지 적군인지를 판단하는 데 사용
1.2. 인증 방식
- 모든 남아프리카군 전투기는 약속된 암호키 K를 리 알고 있음

- 남아프리카군 레이더가 접근하는 전투기 발견 시 난수 N을 생성해 전투기에 질문(challenge)을 전송
- 아군일 경우 : 질문 N에 대한 응답(Response)으로 난수 E(N, K)를 생성하여 레이더 기지에 전송
← 약속했던 암호키 K를 미리 가지고 있었기 때문`
- 적군일 경우 : 응답할 수 없음 ← 암호키를 모르기 때문
1.3. 중간 미그기 - IFF 프로토콜 공격법
- “중간자”라는 용어에 빗대어 “중간 미그기”라고 이름 붙였다.
- 아래 그림에서 같은 색은 같은 팀이라고 가정한다.

- 빨간 전투기가 적군 레이더(검정)에 접근하면 생성된 난수 N을 질문(challenge)으로 받는다.
- 빨간 전투기는 아직 암호키 K를 모르기 때문에 아군 레이더(빨강)에게 그대로 난수 N을 전송한다.
- 난수 N을 전송받은 아군 레이더(빨강)는 탐지 거리 내에 있는
적군 전투기(검정)에게 난수 N이라는 같은 질문을 보낸다. - 질문을 받은 적군 전투기(검정)는 적 레이더 기지에서 질문을 보냈다는 걸 모른 채,
정해진 프로토콜에 따라 E(N, K)를 질문을 했던 레이더(빨간 레이더)에게 보낸다. - E(N, K)를 E(N, K)를 받은 빨간 레이더는 아군 전투기(빨강)에 E(N, K)를 전송한다.
- E(N, K)를 전달받은 빨강 비행기는 E(N, K)를 적군 레이더 보낸다.
2. 인증 프로토콜
- 네트워크를 통해 통신하고 있는 상황에서 앨리스가 밥에게 자신을 증명해야 함.
- 상호인증 : 한쪽만이 아닌 양 쪽 다 인증을 해야 하는 것
- 인증에는 대칭키가 자주 요구됨
- 대칭키는 현재 세션에 대한 비밀성과 무결성을 보호하기 위한 세션키로 사용
- 대칭키는 현재 세션에 대한 비밀성과 무결성을 보호하기 위한 세션키로 사용
- 보안 프로토콜에 대한 다른 요구사항
- 공개키, 대칭키, 해시함수를 사용하는 프로토콜 요구
- 어떤 상황에선 익명성 또는 그럴듯한 부인권 요구
- 단순 인증 프로토콜
- 매우 단순한 프로토콜
- 앨리스가 자신의 신분을 알려줌
- 밥이 앨리스에게 신분 증명 요청
- 앨리스가 패스워드로 응답
- 취약점
- 앨리스의 패스워드 노출
→ 앨리스를 수동적으로 관찰하면, 패스워드 “abcd”를 재사용한 사이트에서 앨리스 흉내 가능 - 밥이 앨리스의 패스워드를 사전에 인지하고 있어야 함
- 상호인증을 제공하지 않는다.
- 앨리스의 패스워드 노출
- 매우 단순한 프로토콜
- 해시를 활용한 단순 인증
- 단순 인증 프로토콜의 문제 중 일부를 해결
- 트루디는 앨리스의 패스워드를 더 이상 알 필요가 없음
- 밥은 앨리스의 패스워드에 대한 해시만 알고 있으면 됨
- 취약점
- 재연 공격에 취약 → 메시지를 기록해 뒀다가 재연하면 패스워드를 몰라도 인증 가능!
- 재연 공격에 취약 → 메시지를 기록해 뒀다가 재연하면 패스워드를 몰라도 인증 가능!
- 단순 인증 프로토콜의 문제 중 일부를 해결
- nonce를 사용한 일반적인 인증 프로토콜
nonce 사용 - 앨리스에 대한 확실한 인증을 위한 질문-응답(Challenge-Response) 기법 활용
- 밥이 앨리스에게 질문 → 응답은 앨리스만이 제공할 수 있는 것(밥이 확인 가능해야 함)
- nonce를 질문으로 사용 → 재연 공격 방지를 위해
nonce
: 임의로 생성되는 암호화 토큰,
- nonce의 응답은 신선함(freshness)를 확인하기 위해 사용
- 앨리스에 대한 확실한 인증을 위한 질문-응답(Challenge-Response) 기법 활용
- 질문 - 응답 + 해시 인증 프로토콜
응답 + 해시 인증 - 앨리스는 밥이 던진 질문(nonce)을 자신의 패스워드의 해시로 응답(response)한다.
→ 이 과정을 통해 그 응답이 재연이 아닌 새로운 것임을 증명한다. - 취약점 : 밥이 앨리스의 패스워드를 사전에 알고 있어야 함.
- 앨리스는 밥이 던진 질문(nonce)을 자신의 패스워드의 해시로 응답(response)한다.
2.1. 대칭키 인증
- C = E(P, K) → 평문 P를 키 K로 암호화해 암호문 C를 생성
- P = D(C, K) → 암호문 C를 키 K로 복호화해 평문 P를 복원
- 프로토콜에 사용된 암호를 공격하는 것이 아닌 프로토콜 자체를 공격
→ 안전한 암호가 사용되고 있다고 가정 - 앨리스와 밥은 대칭키 K_{AB}를 공유하며, 오직 앨리스와 밥에게만 알려져 있다고 가정
- 인증 방법
- 공유 대칭키를 서로 알고 있음을 증명
- 인증 과정에서 키 K_{AB}는 타인에게 노출되면 안 됨
- 재연 공격으로부터 보호돼야 함.
- 대칭키 인증 프로토콜
대칭키 인증 프로토콜 - 키 K_{AB}로 nonce(R)을 암호화
- 재연 공격 방지 o
- 취약점
- 상호 인증 기능 x
- 안전한 상호인증 대칭키 프로토콜
- 밥이 앨리스를, 앨리스가 밥을 인증하기 위해 인증과정을 두 번 반복
→ 상호 인증 방법 - 취약점
- 중간자 공격(미그기 공격)에 취약
- 트루디가 앨리스인척 질문 Ra를 보낸다.
- 밥은 R_B와 함께 E(R_A, K_{AB})를 트루디에게 전송한다.
- 트루디는 원하는 응답 E(R_B, K_{AB})를 얻기 위해
새롭게 연결해 앨리스인척 다시 한번 질문 Rb를 보낸다. - 밥은 정해진 프로토콜에 따라 R_C와 함께 E(R_B, K_{AB})를 트루디에게 전송한다.
- 트루디는 두 번째 접속에서 원하는 답 E(R_B, K_{AB})를 얻었으니 첫 번째에서 인증
- 중간자 공격(미그기 공격)에 취약
- 결론
- 단방향성 인증 프로토콜은 상호인증에 대해서는 안전하지 않을 수 있음
- 프로토콜 자체 및 프로토콜에 대한 공격에 민감할 수 있어 보안 문제 야기할 수 있음
- 밥이 앨리스를, 앨리스가 밥을 인증하기 위해 인증과정을 두 번 반복
- 보다 우수한 상호인증 프로토콜
- nonce를 암호화시키고 사용자의 신분을 포함
→ 트루디가 3번째 메시지를 위해 밥으로부터의 응답을 사용할 수 없다.
→ 미그기 공격 막을 수 있음 - 공용 대칭키로 한번, 자신의 nonce로 한번 이중으로 암호화
→ 둘 다 알고 있기 때문에 복호화 가능
- nonce를 암호화시키고 사용자의 신분을 포함
