호우동의 개발일지

Today :

article thumbnail
  • 프로토콜 : 특정 상호 작용을 보장하기 위해 준수되어야 하는 규칙
    • 네트워크 측면 : 연결된 다양한 통신시스템이 준수해야 하는 규칙
    • 보안 프로토콜 : 보안 프로그램에서 준수되어야 하는 통신 규칙

 

 

 

보안 프로토콜이 중요한 이유

  • 네트워크에 관한 공격은 프로토콜에 의해 전달되는 메시지에 의존한다.
    • 네트워크에 관한 공격 : 통상 인증을 목적으로 네트워크를 통해 전송되는 메시지에 대한 보안 문제
      • 대표적인 예 : 재연 공격, 중간자 공격
      • 직접적인 사례 : IPSec, WEP, GSM

  • 보안 프로토콜에서는 공격자가 매우 다양한 기법으로 중간 처리과정에 개입
    → 다른 프로토콜보다 더 민감

  • 보안 프로토콜이 정해진 보안 요구 수준(효율성, 사용 용이성, 구현 용이성, 융통성) 등을
    모두 만족시키기 힘듦

 

 

 

 

IFF(피아식별) 프로토콜 - 단순 보안 프로토콜

개요

  • 남아프리카 공화국 공군이 앙골라 전투에서 사용했던 암호
  • 전투기가 아군인지 적군인지를 판단하는 데 사용

 

 

인증 방식

  • 모든 남아프리카군 전투기는 약속된 암호키 K를 리 알고 있음

인증 방식

  1. 남아프리카군 레이더가 접근하는 전투기 발견 시 난수 N을 생성해 전투기에 질문(challenge)을 전송
  2. 아군일 경우 : 질문 N에 대한 응답(Response)으로 난수 E(N, K)를 생성하여 레이더 기지에 전송
                        ← 약속했던 암호키 K를 미리 가지고 있었기 때문`
  3. 적군일 경우 : 응답할 수 없음 ← 암호키를 모르기 때문

 

 

 

 

중간 미그기 - IFF 프로토콜 공격법

  • “중간자”라는 용어에 빗대어 “중간 미그기”라고 이름 붙였다.
  • 아래 그림에서 같은 색은 같은 팀이라고 가정한다.

중간 미그기

 

  1. 빨간 전투기가 적군 레이더(검정)에 접근하면 생성된 난수 N을 질문(challenge)으로 받는다.
  2. 빨간 전투기는 아직 암호키 K를 모르기 때문에 아군 레이더(빨강)에게 그대로 난수 N을 전송한다.
  3. 난수 N을 전송받은 아군 레이더(빨강)는 탐지 거리 내에 있는
    적군 전투기(검정)에게 난수 N이라는 같은 질문을 보낸다.


  4. 질문을 받은 적군 전투기(검정)는 적 레이더 기지에서 질문을 보냈다는 걸 모른 채,
    정해진 프로토콜에 따라 E(N, K)를 질문을 했던 레이더(빨간 레이더)에게 보낸다.


  5. E(N, K)를 E(N, K)를 받은 빨간 레이더는 아군 전투기(빨강)에 E(N, K)를 전송한다.
  6. E(N, K)를 전달받은 빨강 비행기는 E(N, K)를 적군 레이더 보낸다.

 

 

 

 

 

인증 프로토콜

  • 네트워크를 통해 통신하고 있는 상황에서 앨리스가 밥에게 자신을 증명해야 함.
  • 상호인증 : 한쪽만이 아닌 양 쪽 다 인증을 해야 하는 것
  • 인증에는 대칭키가 자주 요구됨
    • 대칭키는 현재 세션에 대한 비밀성과 무결성을 보호하기 위한 세션키로 사용

  • 보안 프로토콜에 대한 다른 요구사항
    • 공개키, 대칭키, 해시함수를 사용하는 프로토콜 요구
    • 어떤 상황에선 익명성 또는 그럴듯한 부인권 요구

 

 

 

  • 단순 인증 프로토콜
    • 매우 단순한 프로토콜
      단순 인증 프로토콜
      1. 앨리스가 자신의 신분을 알려줌
      2. 밥이 앨리스에게 신분 증명 요청
      3. 앨리스가 패스워드로 응답

    • 취약점
      취약점
      • 앨리스의 패스워드 노출
        → 앨리스를 수동적으로 관찰하면, 패스워드 “abcd”를 재사용한 사이트에서 앨리스 흉내 가능
      • 밥이 앨리스의 패스워드를 사전에 인지하고 있어야 함
      • 상호인증을 제공하지 않는다.

 

  • 해시를 활용한 단순 인증
    • 단순 인증 프로토콜의 문제 중 일부를 해결
      해시 활용
      • 트루디는 앨리스의 패스워드를 더 이상 알 필요가 없음
      • 밥은 앨리스의 패스워드에 대한 해시만 알고 있으면 됨
    • 취약점
      • 재연 공격에 취약 → 메시지를 기록해 뒀다가 재연하면 패스워드를 몰라도 인증 가능!


 

  • nonce를 사용한 일반적인 인증 프로토콜
    nonce 사용
    • 앨리스에 대한 확실한 인증을 위한 질문-응답(Challenge-Response) 기법 활용
      • 밥이 앨리스에게 질문 → 응답은 앨리스만이 제공할 수 있는 것(밥이 확인 가능해야 함)
      • nonce를 질문으로 사용 → 재연 공격 방지를 위해
        • nonce : 임의로 생성되는 암호화 토큰,
      • nonce의 응답은 신선함(freshness)를 확인하기 위해 사용

 

  • 질문 - 응답 + 해시 인증 프로토콜
    응답 + 해시 인증
    응답 + 해시 인증
    • 앨리스는 밥이 던진 질문(nonce)을 자신의 패스워드의 해시로 응답(response)한다.
      → 이 과정을 통해 그 응답이 재연이 아닌 새로운 것임을 증명한다.

    • 취약점 : 밥이 앨리스의 패스워드를 사전에 알고 있어야 함.


 

 

 

대칭키 인증

  • C = E(P, K) → 평문 P를 키 K로 암호화해 암호문 C를 생성
  • P = D(C, K) → 암호문 C를 키 K로 복호화해 평문 P를 복원
  • 프로토콜에 사용된 암호를 공격하는 것이 아닌 프로토콜 자체를 공격
    → 안전한 암호가 사용되고 있다고 가정
  • 앨리스와 밥은 대칭키 K_{AB}를 공유하며, 오직 앨리스와 밥에게만 알려져 있다고 가정
  • 인증 방법
    • 공유 대칭키를 서로 알고 있음을 증명
    • 인증 과정에서 키 K_{AB}는 타인에게 노출되면 안 됨
    • 재연 공격으로부터 보호돼야 함.

 

 

  • 대칭키 인증 프로토콜
    대층키 인증 프로토콜
    대칭키 인증 프로토콜
    • 키 K_{AB}로 nonce(R)을 암호화
    • 재연 공격 방지 o
    • 취약점
      • 상호 인증 기능 x

 

  • 안전한 상호인증 대칭키 프로토콜
    • 밥이 앨리스를, 앨리스가 밥을 인증하기 위해 인증과정을 두 번 반복
      → 상호 인증 방법

    • 취약점
      • 중간자 공격(미그기 공격)에 취약
        취약점
        1. 트루디가 앨리스인척 질문 Ra를 보낸다.
        2. 밥은 R_B와 함께 E(R_A, K_{AB})를 트루디에게 전송한다.
        3. 트루디는 원하는 응답 E(R_B, K_{AB})를 얻기 위해
          새롭게 연결해 앨리스인척 다시 한번 질문 Rb를 보낸다.
        4. 밥은 정해진 프로토콜에 따라 R_C와 함께 E(R_B, K_{AB})를 트루디에게 전송한다.
        5. 트루디는 두 번째 접속에서 원하는 답 E(R_B, K_{AB})를 얻었으니 첫 번째에서 인증


    • 결론
      • 단방향성 인증 프로토콜은 상호인증에 대해서는 안전하지 않을 수 있음
      • 프로토콜 자체 및 프로토콜에 대한 공격에 민감할 수 있어 보안 문제 야기할 수 있음




  • 보다 우수한 상호인증 프로토콜
    • nonce를 암호화시키고 사용자의 신분을 포함
      → 트루디가 3번째 메시지를 위해 밥으로부터의 응답을 사용할 수 없다.
      → 미그기 공격 막을 수 있음
    • 공용 대칭키로 한번, 자신의 nonce로 한번 이중으로 암호화
      → 둘 다 알고 있기 때문에 복호화 가능

상호인증 포로토콜
상호 인증 프로토콜