본문 바로가기
네트워크보안

[네트워크보안] 인증 기법

by spareone 2025. 10. 23.

인증


  1. 데이터 출처 인증 (메시지 인증)

    • 수신 메시지 출처 검증
    • 메시지가 특정 개체에 의해 생성됨을 확인
    • 데이터 무결성 검증 (MAC 등으로 구성)
    • 메시지 인증 기법
      • 대칭 키 암호
      • 해시 함수
      • 메시지 인증 코드MAC
      • 전자 서명
  2. 개체 인증

    • 신분Identity 검증
    • 한 개체가 프로토콜의 두 번째 개체의 신분을 보장(확인)
    • 인증 프로토콜에 의해 달성
    • 중요성
      • 잠재적으로 안전하지 않은 네트워크 상에서 통신과 정보 자원에 대한 접근을 제어하는데 관심이 있음
      • 개체 인증은 사용자가 어떤 사용자와 통신하고 있는지 확인할 수 있게 함
      • 성공적인 개체 인증은 좀 더 복잡한 보안 서비스 사용에 대한 선행 서비스 역할을 함
      • 어느 호스트와 통신하고 있는지 알 수 있음
    • 인증 정의
      • 개체 인증
        • 한 개체의 신분이 특정 시점에 주장되는 신분이라는 확증 제공
      • 단독/단방향 인증
        • 한 개체에게 다른 개체의 신분에 대한 보장을 제공하는 인증
        • 반대 방향의 보장은 제공하지 않음
      • 상호 인증
        • 두 개체 모두 서로의 신분에 대한 보장을 제공하는 인증

인증의 기초


B가 A를 인증할 때, A가 단순히 "나 A다"라는 말을 하는 것은 완전한 인증이 되지 않음.
멜로리가 A로 쉽게 위장할 수 있기 때문

신분을 확실이 인증할 수 있는 강한 프로토콜을 설계해야 함.

인증 프로토콜은 아래와 같이 가정했을 때 구성할 수 있음

  1. A와 B의 비밀 정보(PW, PIN 등) 공유
  2. A와 B가 서로의 공개 키 사본 소유

강한 인증


시도-응답 프로토콜challenge-response authentication

한 개체는 그 개체에 연관된 것을 알려진 비밀 정보의 지식을 보임으로써 신분을 증명.
단, 비밀 정보 자체를 노출하지 않음.
그 값을 알고 있지만, 값을 직접 말하지 않은 채로 '나 이거 알고 있다'를 증명하면 됨.

인증 프로토콜 요구 사항


  1. 정직한 입증자 A와 검증자 B에 대해, A는 B를 확신시킬 수 있다.
  2. A 외의 어떤 다른 개체도 A인 것으로 B를 확신시킬 수 없다.
  3. 특히, B는 A인 것으로 C를 확신시킬 수 없다.

다음 공격이 통하지 않도록 주의

  • 재전송 공격과 같은 수동적 공격
  • 중간자 공격과 같은 적극적 공격

인증 프로토콜 특성


  1. 계산 효울성
  2. 통신 효율성
  3. 통신 채널의 보안 요구사항
  4. 검증자에 대한 신뢰
  5. 비밀 정보의 저장
  6. 제3자의 관여
  7. 제3자에 대한 신뢰
  8. 안전성의 유형: 증명 가능 안전성

인증 수단


사용자 신원을 인증하기 위한 4가지 대표적인 방법

  1. 개인이 알고 있는 어떤 것
    • 패스워드, PIN 등
  2. 개인이 소유하고 있는 어떤 것
    • 암호 키, 전자 키 카드, 스마트카드, 토큰 등
  3. 개인의 어떤 것
    • 지문, 망막, 홍채, 얼굴 인식 등
  4. 개인이 하는 어떤 것
    • 음성 패턴, 필적, 타이핑 리듬, 걸음걸이 등

위 수단은 하나만 쓰이거나 다수의 방법이 사용될 수 있음

고정 패스워드 기반 인증


입증자는 패스워드를 사용하여 검증자에게 인증됨

안전한 통신 채널을 요구

검증자에 대한 완전한 신뢰 요구

패스워드는 평문으로 저장해선 안 되며, 암호화 된 값이나 해시값이 저장되어야 함

공격 기법

  • 고정된 패스워드 재전송
  • 온라인 패스워드 전탐색
  • 오프라인 패스워드 추측 및 사전 공격

패스워드 기반 인증 종류

  1. Simple Scheme
    • 패스워드 평문 저장
    • 하면 안 됨
  2. Second Scheme
    • 패스워드 해시값 저장
    • 해시값을 통해 패스워드 계산 불가능
    • 그러나 사전 공격Dictionary Attack을 통해 패스워드 유추 가능

유닉스 Crypt 알고리즘


유닉스 시스템의 패스워드 저장을 위해 사용

랜덤한 Salt 값을 패스워드와 같이 저장 -> 사전 공격 방어

One Time Password (OTP)


오직 한 번만 사용되는 패스워드

자세한 사항은 생략
추후에 추가할 수도 있지만 안할 수도 있음.

인증 프로토콜


목표: Bob이 Alice를 인증하는 것

Alice는 Bob에게 어떻게 메시지를 주어야 하는가?

  1. Protocol ap1.0: "나 엘리스다"

    • 네트워크 통신이라는 것을 생각해야 함 (Bob은 실물 Alice를 볼 수 없음)
    • 멜로리가 사칭 가능
  2. Protocol ap2.0: IP주소 + "나 엘리스다"

    • 멜로리가 Alice의 IP주소를 이용하여 동일한 패킷 생성 가능
  3. Protocol ap3.0: IP주소 + 패스워드 + "나 엘리스다"

    • 멜로리가 패킷을 그대로 갖고 와Sniffing 나중에 그대로 Bob에게 전달Replay Attack
  4. Protocol ap3.1: IP주소 + 암호화 된 패스워드 + "나 엘리스다"

    • 그래도 재전송 공격Replay Attack이 가능
    • 재전송 공격을 방지할 대책 필요
  5. Protocol ap4.0: nonce 이용

    • Alice -> Bob: "나 엘리스다"
    • Bob -> Alice: nonce(R) (Alice의 접속 상태 확인용)
    • Alice -> Bob: 비밀 키로 암호화된 R 반환
    • Bob은 R을 복호화하여 nonce의 동일성 확인
    • 단, 서버 데이터베이스 해킹에 대해 보호하지 않음
  6. Protocol ap5.0: nonce + 공개 키 암호 이용

    • Alice -> Bob: "나 엘리스다"
    • Bob -> Alice: nonce(R) (Alice의 접속 상태 확인용)
    • Alice -> Bob: Alice의 개인 키로 R 서명(암호화)
    • Bob은 R을 Alice의 공개 키로 검증(복호화)하여 서명 확인

생존성과 최근성


재전송 공격은 사용자의 생존성을 확인함으로써 방지 가능

생존성: 허용되는 시간 내 메시지가 전송되었음을 보장

참여자의 생존성은 메시지의 최근성을 통해 보장

최근성: 메시지가 이전에 사용되지 않았고 허용되는 시간 안에 만들어져 전송되었다는 보장

시도-응답 프로토콜


한 개체가 비밀 정보의 '지식'을 보임으로써 다른 개체에게 인증됨

재전송 공격, 중첩 공격을 방지하기 위해 Nonce 사용

Nonce의 종류

  1. 난수
    • 공격자가 예측 불가해야 함
  2. 순서 번호
    • 상태 정보가 통신하는 당사자들에 의해 동기화 되어야 함 (통신할 때마다 +1 하는 등의 조치)
  3. 타임스탬프
    • 강제적인 지연 검출
    • 동기화 된 클럭 요구
  1. 대칭 키 암호에 기반

    • 단방향 인증, 타임스탬프 기반
      • A -> B: 보내는 시간과 메시지를 비밀 키로 암호화
    • 단방향 인증, 난수 기반
      • B -> A: 난수 전송
      • A -> B: 난수와 메시지를 비밀 키로 암호화
    • 상호 인증, 난수 기반
      • B -> A: B의 난수 전송
      • A -> B: A의 난수와 B의 난수, 메시지를 비밀 키로 암호화
      • B -> A: B의 난수와 A의 난수를 비밀 키로 암호화
  2. 전자 서명 기반

    • 단방향 인증, 타임스탬프 기반
      • A -> B: A의 공개 키 인증서, 현재 시간, 메시지 B, A가 서명한 현재 시간과 메시지
    • 단방향 인증, 난수 기반
      • B -> A: B의 난수 전송
      • A -> B: A의 공개 키 인증서, A의 난수, 메시지 B, A가 서명한 A 난수와 B 난수와 메시지
    • 상호 인증, 난수 기반
      • B -> A: B의 난수 전송
      • A -> B: A의 공개 키 인증서, A의 난수, 메시지 B, A가 서명한 A 난수와 B 난수와 메시지
      • B -> A: B의 공개 키 인증서, 메시지 A, B가 서명한 B의 난수와 A의 난수와 메시지 A

댓글