Chapter 8 목차 8.1 네트워크 보안이란 무엇인가? 8.2 암호학의 원리 8.3 메시지 무결성 8.4 종단점 인증 8.5 전자 메일의 보안 8.6 TCP 연결의 보안: SSL 8.7 네트워크 계층의 보안: IPsec 8.8 무선 랜의 보안 8.9 운영상 보안: 방화벽과 침입 방지 시스템
우리가 사용하는 인증 방법 Something you know: 암호(password) 어떻게 인간을 기계에게 인증할 수 있을까? 다음과 같은 정보를 사용한다. Something you know: 암호(password) Something you have: 스마트 카드 Something you are: 생체 인식(Biometrics) 지문(Fingerprint) 자필 서명 얼굴 인식 음성 인식 보행 인식 등등
간단한 인증 프로토콜 (ATM 기계 프로토콜) PIN을 입력한다. PIN이 올바른가? Yes? 거래를 수행한다. No? 기계가 카드를 삼켜버린다.
아군과 적군을 구별하기 (IFF) 군대는 많은특별한 프로토콜을 필요로 한다. 많은 경우 적군을 아군으로 오인하거나 …. Russian MIG Angola 2. E(N,K) Namibia SAAF Impala 1. N
MIG in the Middle Angola Namibia 3. N SAAF Impala 4. E(N,K) 2. N Russian MiG 1. N
네트워크에서의 인증 프로토콜 독립(stand-alone) 컴퓨터에서의 인증은 비교적 쉽다. “안전한 경로”가 주요한 이슈 주요 관심사는 인증 소프트웨어에 대한 공격이다. 네트워크 상에서의 인증은 훨씬 복잡하다. 공격자는 메시지를 관찰할 수 있다. 공격자는 메시지를 재사용할 수 있다. 적극적인 공격을 할 수 있다. (삽입, 삭제, 내용 변경)
네트워크에서의 인증 프로토콜 Alice는 Bob에게 자신을 증명해야 한다. 세션 키(session key)를 설정할 필요가 있을 수 있다. 다른 요구사항이 있을 수 있다. 오직 공개키 만을 사용한다. 오직 대칭키 만을 사용한다. 오직 해시 함수 만을 사용한다. 익명성, 합리적인 부인 등등.
네트워크 인증 프로토콜 이제 교과서에 나와 있는 인증 프로토콜 ap1.0에서부터 하나씩 살펴본다. 여기서 단계적으로 제시한 인증 프로토콜은 우리가 프로토콜이 과연 안전한지를 판단하기 위한 예로서 실제 사용되고 있는 프로토콜은 아니다. 하지만 이 예들을 통해서 우리는 안전한 인증 프로토콜을 개발하기 위해서 어떤 문제가 존재하고 어떻게 해야 하는지 깨닫게 한다.
인증 프로토콜 ap1.0 나는 Alice이다. 나는 Alice이다.
인증 프로토콜 ap2.0 Alice의 고유한 값으로 인증한다.(IP 주소) 하지만 IP값은 쉽게 도용될 수 있다.(IP spoofing) 나는 Alice이다. Alice의 IP 주소 나는 Alice이다. Alice의 IP 주소
인증 프로토콜 ap3.0 그렇다면 Alice 만이 알고있는 비밀값을 사용하는 것은 어떤가? 하지만 암호는 안전하지 않다. Trudy는 Alice의 암호를 찾아낼 수 있을 것이다. 나는 Alice이다. 암호 나는 Alice이다. 암호 OK OK 11
인증 프로토콜 ap3.1 그렇다면 Alice는 자신의 암호를 대칭키로 암호화하여 보낸다면 안전할까? No, Trudy는 그것을 그대로 다시 사용할 수 있다.(replay 공격) 나는 Alice이다. KAB(암호) 나는 Alice이다. KAB(암호) OK OK
인증 프로토콜 ap4.0 ap3.0의 문제는 같은 암호를 계속 사용하기 때문에 비롯된다. 그렇다면 매번 다른 암호를 사용한다. 더 일반적인 방법은 nonce를 사용하는 것이다. Nonce는 단 한번만 사용하는 랜덤값이다. 예를 들면 TCP의 연결 절차 나는 Alice이다. R KAB(R)
인증 프로토콜 ap5.0 그러면 nonce와 공개키를 사용하여 인증을 할 수도 있을 것이다. 그러면 대칭키를 공유해야 하는 문제도 피할 수 있다. 그러면 이 방법은 안전할까? No, 이 방법은 공개키를 설명할 때 말했듯이 공개키를 신뢰할 수 있는 정도만큼 안전하다. 나는 Alice이다. R KA-(R) 공개키 KA+ 요청 KA+
인증 프로토콜 ap5.0 허점 이것보다 더 교활한 공격은 Trudy가 Bob과 Alice가 전혀 눈치채지 못하도록 할 수 있다. 중간자(Man-in-the-middle) 공격 나는 Alice이다. R KT-(R) 공개키 KA+ 요청 KT+
중간자(Man-in-the-middle) 공격 나는 Alice이다. 나는 Alice이다. R KT-(R) 공개키 KA+ 요청 KT+ R KA-(R) 공개키 KA+ 요청 KA+
정리 우리는 이 예제들을 통해서 단순할 것 같은 인증 프로토콜을 만드는 것이 그렇게 간단한 일이 아닌 것을 배웠다. 질문: ap4.0은 안전한가? 우리가 공인 인증서를 사용한다면 ap5.0은 안전한가? TCP의 연결은 안전한 인증 방법인가?