인증
데이터 출처 인증 (메시지 인증)
- 수신 메시지 출처 검증
- 메시지가 특정 개체에 의해 생성됨을 확인
- 데이터 무결성 검증 (MAC 등으로 구성)
- 메시지 인증 기법
- 대칭 키 암호
- 해시 함수
- 메시지 인증 코드MAC
- 전자 서명
개체 인증
- 신분Identity 검증
- 한 개체가 프로토콜의 두 번째 개체의 신분을 보장(확인)
- 인증 프로토콜에 의해 달성
- 중요성
- 잠재적으로 안전하지 않은 네트워크 상에서 통신과 정보 자원에 대한 접근을 제어하는데 관심이 있음
- 개체 인증은 사용자가 어떤 사용자와 통신하고 있는지 확인할 수 있게 함
- 성공적인 개체 인증은 좀 더 복잡한 보안 서비스 사용에 대한 선행 서비스 역할을 함
- 어느 호스트와 통신하고 있는지 알 수 있음
- 인증 정의
- 개체 인증
- 한 개체의 신분이 특정 시점에 주장되는 신분이라는 확증 제공
- 단독/단방향 인증
- 한 개체에게 다른 개체의 신분에 대한 보장을 제공하는 인증
- 반대 방향의 보장은 제공하지 않음
- 상호 인증
- 두 개체 모두 서로의 신분에 대한 보장을 제공하는 인증
- 개체 인증
인증의 기초
B가 A를 인증할 때, A가 단순히 "나 A다"라는 말을 하는 것은 완전한 인증이 되지 않음.
멜로리가 A로 쉽게 위장할 수 있기 때문
신분을 확실이 인증할 수 있는 강한 프로토콜을 설계해야 함.
인증 프로토콜은 아래와 같이 가정했을 때 구성할 수 있음
- A와 B의 비밀 정보(PW, PIN 등) 공유
- A와 B가 서로의 공개 키 사본 소유
강한 인증
시도-응답 프로토콜challenge-response authentication
한 개체는 그 개체에 연관된 것을 알려진 비밀 정보의 지식을 보임으로써 신분을 증명.
단, 비밀 정보 자체를 노출하지 않음.
그 값을 알고 있지만, 값을 직접 말하지 않은 채로 '나 이거 알고 있다'를 증명하면 됨.
인증 프로토콜 요구 사항
- 정직한 입증자 A와 검증자 B에 대해, A는 B를 확신시킬 수 있다.
- A 외의 어떤 다른 개체도 A인 것으로 B를 확신시킬 수 없다.
- 특히, B는 A인 것으로 C를 확신시킬 수 없다.
다음 공격이 통하지 않도록 주의
- 재전송 공격과 같은 수동적 공격
- 중간자 공격과 같은 적극적 공격
인증 프로토콜 특성
- 계산 효울성
- 통신 효율성
- 통신 채널의 보안 요구사항
- 검증자에 대한 신뢰
- 비밀 정보의 저장
- 제3자의 관여
- 제3자에 대한 신뢰
- 안전성의 유형: 증명 가능 안전성
인증 수단
사용자 신원을 인증하기 위한 4가지 대표적인 방법
- 개인이 알고 있는 어떤 것
- 패스워드, PIN 등
- 개인이 소유하고 있는 어떤 것
- 암호 키, 전자 키 카드, 스마트카드, 토큰 등
- 개인의 어떤 것
- 지문, 망막, 홍채, 얼굴 인식 등
- 개인이 하는 어떤 것
- 음성 패턴, 필적, 타이핑 리듬, 걸음걸이 등
위 수단은 하나만 쓰이거나 다수의 방법이 사용될 수 있음
고정 패스워드 기반 인증
입증자는 패스워드를 사용하여 검증자에게 인증됨
안전한 통신 채널을 요구
검증자에 대한 완전한 신뢰 요구
패스워드는 평문으로 저장해선 안 되며, 암호화 된 값이나 해시값이 저장되어야 함
공격 기법
- 고정된 패스워드 재전송
- 온라인 패스워드 전탐색
- 오프라인 패스워드 추측 및 사전 공격
패스워드 기반 인증 종류
- Simple Scheme
- 패스워드 평문 저장
- 하면 안 됨
- Second Scheme
- 패스워드 해시값 저장
- 해시값을 통해 패스워드 계산 불가능
- 그러나 사전 공격Dictionary Attack을 통해 패스워드 유추 가능
유닉스 Crypt 알고리즘
유닉스 시스템의 패스워드 저장을 위해 사용
랜덤한 Salt 값을 패스워드와 같이 저장 -> 사전 공격 방어
One Time Password (OTP)
오직 한 번만 사용되는 패스워드
자세한 사항은 생략
추후에 추가할 수도 있지만 안할 수도 있음.
인증 프로토콜
목표: Bob이 Alice를 인증하는 것
Alice는 Bob에게 어떻게 메시지를 주어야 하는가?
Protocol ap1.0: "나 엘리스다"
- 네트워크 통신이라는 것을 생각해야 함 (Bob은 실물 Alice를 볼 수 없음)
- 멜로리가 사칭 가능
Protocol ap2.0: IP주소 + "나 엘리스다"
- 멜로리가 Alice의 IP주소를 이용하여 동일한 패킷 생성 가능
Protocol ap3.0: IP주소 + 패스워드 + "나 엘리스다"
- 멜로리가 패킷을 그대로 갖고 와Sniffing 나중에 그대로 Bob에게 전달Replay Attack
Protocol ap3.1: IP주소 + 암호화 된 패스워드 + "나 엘리스다"
- 그래도 재전송 공격Replay Attack이 가능
- 재전송 공격을 방지할 대책 필요
Protocol ap4.0: nonce 이용
- Alice -> Bob: "나 엘리스다"
- Bob -> Alice: nonce(R) (Alice의 접속 상태 확인용)
- Alice -> Bob: 비밀 키로 암호화된 R 반환
- Bob은 R을 복호화하여 nonce의 동일성 확인
- 단, 서버 데이터베이스 해킹에 대해 보호하지 않음
Protocol ap5.0: nonce + 공개 키 암호 이용
- Alice -> Bob: "나 엘리스다"
- Bob -> Alice: nonce(R) (Alice의 접속 상태 확인용)
- Alice -> Bob: Alice의 개인 키로 R 서명(암호화)
- Bob은 R을 Alice의 공개 키로 검증(복호화)하여 서명 확인
생존성과 최근성
재전송 공격은 사용자의 생존성을 확인함으로써 방지 가능
생존성: 허용되는 시간 내 메시지가 전송되었음을 보장
참여자의 생존성은 메시지의 최근성을 통해 보장
최근성: 메시지가 이전에 사용되지 않았고 허용되는 시간 안에 만들어져 전송되었다는 보장
시도-응답 프로토콜
한 개체가 비밀 정보의 '지식'을 보임으로써 다른 개체에게 인증됨
재전송 공격, 중첩 공격을 방지하기 위해 Nonce 사용
Nonce의 종류
- 난수
- 공격자가 예측 불가해야 함
- 순서 번호
- 상태 정보가 통신하는 당사자들에 의해 동기화 되어야 함 (통신할 때마다 +1 하는 등의 조치)
- 타임스탬프
- 강제적인 지연 검출
- 동기화 된 클럭 요구
대칭 키 암호에 기반
- 단방향 인증, 타임스탬프 기반
- A -> B: 보내는 시간과 메시지를 비밀 키로 암호화
- 단방향 인증, 난수 기반
- B -> A: 난수 전송
- A -> B: 난수와 메시지를 비밀 키로 암호화
- 상호 인증, 난수 기반
- B -> A: B의 난수 전송
- A -> B: A의 난수와 B의 난수, 메시지를 비밀 키로 암호화
- B -> A: B의 난수와 A의 난수를 비밀 키로 암호화
- 단방향 인증, 타임스탬프 기반
전자 서명 기반
- 단방향 인증, 타임스탬프 기반
- 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
- 단방향 인증, 타임스탬프 기반
'네트워크보안' 카테고리의 다른 글
| [네트워크보안] 공개키 기반 구조 (0) | 2025.10.23 |
|---|---|
| [네트워크보안] 키 설정 프로토콜 (0) | 2025.10.23 |
| [네트워크보안] 안전한 프로토콜 (0) | 2025.10.22 |
| [네트워크보안] 전자 서명 (0) | 2025.10.22 |
| [네트워크보안] 해시 함수와 메시지 인증 코드(MAC) (0) | 2025.10.22 |
댓글