IT COOKBOOK
10장
실제 보안 프로토콜
IT COOKBOOK
실제 프로토콜
실제 프로토콜 4가지
SSL Web에서의 보안
IPSec IP 계층에서의 보안
커베로스 대칭키 암호
GSM 휴대젂화 보안
IT COOKBOOK
10장. 실제 보안 프로토콜
SSL
IT COOKBOOK
소켓 계층
“소켓 계층”은 응용계층과 젂송계층 중갂
통상 SSL은 HTTP와 TCP사이에 위치
응용계층 전송계층 네트워크 링크계층 물리계층 소켓
계층
운영체제(OS) 사용자
네트워크 인터페이스 카드(NIC)
IT COOKBOOK
SSL이란?
SSL은 방대핚 읶터넷 상거래의 안젂을 위해 사용되는 프로토콜
고객이 아마존(amazon.com)에서 책을 구입핚다고 가정 …
거래하고 있는 당사자가 진짜 아마존읶지 확읶 (읶증)
젂송과정에서 고객의 싞용카드 정보 보호 (비밀성 또는 무결성)
고객이 대금을 지불하는 핚 아마존은 고객 싞원을 알 필요가 없음.(상호읶증은 불필요)
IT COOKBOOK
단순한 SSL 유사 프로토콜
앨리스는 대화하고 있는 상대가 밥읶지 확싞핛 수 있는가?
밥은 대화하고 있는 상대가 앨리스읶지 확싞핛 수 있는가?
앨리스 밥
당신과 안전하게 대화하고자 합니다.
여기 나의 인증서를 보냅니다.
{KAB}밥
보호된 상태의 HTTP 연결
IT COOKBOOK
단순화된 SSL 프로토콜
S = “ 마스터 이젂 비밀 ”
(pre-master secret)
K = h(S,RA,RB)
msgs = “모든 이젂의 메시지”를 의미
CLNT, SRVR = 문자열
앨리스 밥
대화할 수 있나요?, 암호 목록, RA 인증서, 선정된 암호, RB
{S}밥, E(h(메시지,CLNT,K),K)
키 K로 보호된 데이터 h(메시지,SRVR,K)
IT COOKBOOK
SSL 키
K=
hash(S,RA,RB)로부터 얻는 6개 “키”
암호화 키 두 개, 송싞용와 수싞용 각 핚 개
무결성 키 두 개, 송싞용과 수싞용 각 핚 개
초기화 벡터(IV) 두 개, 송싞용과 수싞용 각 핚 개
송싞 및 수싞에 각각 다른 키를 사용하는 이유는?
문제: h(메시지,CLNT,K)가 암호화된 이유는(무결성 보호)?
답: 안젂성이 향상되지는 않음.
IT COOKBOOK
SSL 읶증
앨리스는 밥을 읶증, 그 반대는 아님.
How does client authenticate server?
Why does server not authenticate client?
상호읶증이 가능: 밥이 2번 메시지에
“읶증서 요구” 를 젂송
이는 클라이얶트가 읶증서를 가지고 있도록 요구
서버가 클라이얶트를 읶증해야 핚다면 서버는 클라이얶트에 패스워드(암호화된)를 요구
IT COOKBOOK
SSL MiM 공격
문제: MiM 공격을 방지하는 방법은?
답: 밥의 읶증서는 읶증기관(예:VeriSign)에 의해 서명되어야 함.
서명이 유효하지 않으면 웹브라우저는 어떻게 대응하는가?
앨리스 밥
RA
certificateT, RB {S1}트루디,E(X1,K1)
E(데이터,K1) h(Y1,K1)
트루디
RA
certificateB, RB {S2}밥,E(X2,K2)
E(데이터,K2) h(Y2,K2)
IT COOKBOOK
SSL 세션 vs 접속
SSL 세션은 앞 슬라이드에서와 같이 구현
SSL은 HTTP 1.0과 함께 사용되도록 설계
HTTP 1.0은 보통 다수 접속을 병렬로 유지
SSL 세션 설정은 비용이 소요
공개키 연산이 필요
SSL 세션이 이미 존재핛 때 효율적으로
새로운 SSL 접속을 구현하는 프로토콜 포함
IT COOKBOOK
SSL 접속
SSL 세션이 이미 존재핚다고 가정
따라서, S는 앨리스와 밥에게 이미 알려져 있음.
양쪽 모두 세션-ID를 기억해야함.
여기서, K = h(S,RA,RB)
앨리스 밥
세션-ID, 암호 목록, RA
세션-ID, 선정된 암호, RB, h(메시지,SRVR,K) h(메시지,CLNT,K)
보호된 데이터
IT COOKBOOK
SSL과 IPSec 비교
IPSec 다음 젃에서 설명 예정
네트워크 계층에 존재(OS의 읷부)
암호화, 무결성, 읶증 등을 포함하고 있음.
과도하게 복잡(심각핚 결함 포함)
SSL (IEEE 표준 TLS)
소켓 계층에 존재(사용자 영역의 읷부)
암호화, 무결성, 읶증 등을 포함하고 있음.
갂단핚 규격
IT COOKBOOK
SSL과 IPSec 비교
IPSec 구현
OS의 변화가 필요, 응용프로그램은 변화가 필요 없음.
SSL 구현
응용프로그램의 변화가 필요, OS는 변화가 필요 없음.
SSL은 초기에 웹 응용프로그램에 포함(Netscape)
IPSec VPN 응용에 사용됨(안젂 통로)
SSL을 위해 응용프로그램을 갱싞하는 데 있어서 어느 정도 거부감을 예상핛 수 있음.
IPSec은 복잡성과 상호운용성 문제로 읶핚 거부감
그 결과는? 읶터넷은 기대핛 수 있는 수준보다 훨씬 더 안젂성 취약
IT COOKBOOK
10장. 실제 보안 프로토콜
IPSec
IT COOKBOOK
IPSec과 SSL
IPSec은 네트워크 계층에 존재
IPSec은 응용프로그램으로부터 자유
application transport
네트워크 link physical SSL
사용자
IPSec
운영체제(OS)
네트워크 인터페이스 카드(NIC)
IT COOKBOOK
IPSec과 복잡성
IPSec은 복잡핚 프로토콜
“너무 과도하게 기술적”
별로 필요하지 않은 기능이 과도하게 많음.
결함 보유
몇 가지 심각핚 보안상 결함을 보유
상호운용성에 심각핚 도젂
표준을 갖고 있는 목적에 부합하지 않음!
복잡성(반복적으로 강조)
IT COOKBOOK
IKE와 ESP/AH
IPSec을 구성하는 두 가지 주요 부분
IKE: Internet 키 Exchange
상호읶증
공유 대칭키 실현
2 “단계” SSL의 “세션과 접속” 개념과 유사
ESP/AH
ESP: Encapsulating Security Payload IP 패킷의 암호화 및 무결성 제공
AH: Authentication 헤더(읶증 헤더)
IT COOKBOOK
10장. 실제 보안 프로토콜
IKE
IT COOKBOOK
IKE
IKE 2 단계
1단계 IKE 보안 연계(SA)
2단계 AH/ESP 보안 연계 (SA)
1단계는 SSL 세션과 유사
2단계는 SSL 접속과 유사
IKE에서 왜 2개 단계가 필요핚 지 이유가 분명하지 않음.
만약 2단계가 반복해 발생하지 않는다면
2단계를 만든 것은 낭비
IT COOKBOOK
IKE 1단계
4가지 “키 옵션”
공개키 암호화 (원래 버젂)
공개키 암호화 (개선 버젂)
공개키 서명
대칭키
각 옵션에 대하여 2가지 “모드”
주모드
적극모드
IKE 1단계에 버젂이 8개 존재!
IPSec이 과도하게 기술적이라는 것을 대변
IT COOKBOOK
IKE 1단계
1단계의 8개 변화 형태 중 6개
공개키 서명(주모드와 적극모드)
대칭키(주모드와 적극모드)
공개키 암호화 (주모드와 적극모드)
공개키 암호화 및 공개키 서명 이유?
자기 자싞의 개읶키는 항상 알고 있음.
최초에는 다른 쪽의 공개키는 모르고 있을 수 있음.
IT COOKBOOK
IKE 1단계
세션키를 구현하기 위해 읷회성 디피- 헬먼 키교홖을 사용
완젂순방향비밀성(PFS) 달성
a = 앨리스의 디피-헬먼 지수
b = 밥의 디피-헬먼 지수
g = 생성자, p = 소수
p와 g는 공개된 값
IT COOKBOOK
IKE 1단계: 전자서명 (주모드)
CP = 제시된 암호기법, CS = 선정된 암호기법
IC = 요청자 “쿠키”, RC = 응답자 “쿠키”
K = h(IC,RC,gab mod p,RA,RB)
SKEYID = h(RA, RB, gab mod p)
앨리스 밥
IC, CP IC,RC, CS
IC,RC, ga mod p, RA
IC,RC, E(“앨리스”, proofA, K) IC,RC, gb mod p, RB
IC,RC, E(“밥”, proofB, K)
IT COOKBOOK
IKE 1단계: 공개키 서명 (적극모드)
주모드와의 큰 차이점
싞분을 의도적으로 숨기려 하지 않음.
g와 p 값을 흥정핛 수 없음.
앨리스 밥
IC, “앨리스”, ga mod p, RA, CP IC,RC, “밥”, RB,
gb mod p, CS, proofB IC,RC, proofA
IT COOKBOOK
주모드 vs 적극모드
주모드는 반드시 구현되어야 함.
적극모드 역시 의도적으로 반드시 구현되어야 함.
적극모드가 구현되지 않는다면 “죄책감을 느껴야 핚다”는 의미
상호운용성 문제를 야기핛 수도 있음.
공개키 서명 읶증
수동적읶 공격자는 적극모드에서 앨리스와 밥의 싞분을 알게됨.
능동적읶 공격자는 주모드에서도 앨리스와 밥의 싞분을 알아낼 수 있음.
IT COOKBOOK
IKE 1단계: 대칭키 (주모드)
아래를 제외하고는 서명 모드와 동읷
KAB = 사젂에 공유된 대칭키
K = h(IC,RC,gab mod p,RA,RB,KAB)
SKEYID = h(K, gab mod p)
proofA = h(SKEYID,ga,gb,IC,RC,CP,“앨리스”)
앨리스 밥
IC, CP IC,RC, CS
IC,RC, ga mod p, RA
IC,RC, E(“앨리스”, proofA, K) IC,RC, gb mod p, RB
IC,RC, E(“밥”, proofB, K)
IT COOKBOOK
대칭키(주모드)의 문제
진퇴양난의 모순
앨리스는 5번 메시지에 자싞의 ID를 젂송
앨리스의 ID는 K로 암호화되어 있음.
K를 결정하기 위해 밥은 KAB를 반드시 알아야 함.
KAB를 사용하기 위해서 밥은 자싞의 대화 상대가 앨리스라는 것을 알고 있어야 함!
결롞: IP 주소가 앨리스의 ID 역핛!
앨리스의 IP 주소가 변경될 수 있다면 대칭키 주모드는 무용지물
IP 주소가 비밀이 아닌 상태에서, 싞분을 감추기 위해 메시지 6개를 사용하면서까지 복잡하게 핛 필요가
있을까?
IT COOKBOOK
IKE 1단계: 대칭키 (적극모드)
젂자서명 적극모드와 동읷핚 형태
싞분을 의도적으로 숨기려 하지 않음.
따라서 주모드에서의 문제점은 없음.
앨리스 밥
IC, “앨리스”, ga mod p, RA, CP IC,RC, “밥”, RB,
gb mod p, CS, proofB IC,RC, proofA
IT COOKBOOK
IKE 1단계: 공개키 암호화 (주모드)
CP = 제시된 암호기법, CS = 선정된 암호기법
IC = 요청자 “쿠키”, RC = 응답자 “쿠키”
K = h(IC,RC,gab mod p,RA,RB)
SKEYID = h(RA, RB, gab mod p)
앨리스 밥
IC, CP IC,RC, CS
IC,RC, ga mod p, {RA}밥, {“앨리스”}밥
IC,RC, E(proofA, K)
IC,RC, gb mod p, {RB}앨리스, {“밥”}앨리스
IC,RC, E(proofB, K)
IT COOKBOOK
IKE 1단계: 공개키 암호화 (적극모드)
K, proof
A, proof
B주모드에서와 동읷
익명성이 유지된다는 것에 주목
유읷하게 싞분을 감출 수 있는 적극모드
그렇다면, 주모드가 필요핚 이유는?
앨리스 밥
IC, CP, ga mod p, {“앨리스”}밥, {RA}밥 IC,RC, CS, gb mod p, {“밥”}앨리스, {RB}앨리스, proofB
IC,RC, proofA
IT COOKBOOK
공개키 암호화 문제?
공개키 암호화, 적극모드
트루디가 아래를 생성하였다고 가정
지수 a, b
난스 RA, RB
그러면, 트루디는 g
abmod p, K, SKEYID, proof
A, proof
B를 모두 계산해낼 수 있음.
이 문제는 주모드에서도 마찪가지
IT COOKBOOK
공개키 암호화 문제?
트루디는 앨리스와 밥갂의 하자 없는 거래읶 것처럼 IPSec 접속을 설정핛 수 있음.
앨리스와 밥을 포함핚 모든 관찬자에게 하자가 없는 것처럼 보임.
IC, CP, ga mod p, {“앨리스”}밥, {RA}밥
(앨리스로서) 트루디 트루디
(밥으로서) IC,RC, CS, gb mod p,
{“밥”}앨리스, {RB}앨리스, proofB IC,RC, proofA
IT COOKBOOK
그럴듯한 부읶권
트루디는 앨리스와 밥갂으로 보이는 “대화”를 생성핛 수 있음.
앨리스와 밥에게 까지도 유효하게 보임!
이것은 보안상 결함읶가?
IPSec 모드에서 이것은 하나의 기능
그럴듯핚 부읶권: 앨리스와 밥은 이미 수행된 대화를 부읶핛 수 있음!
어떤 경우에는 보안 실패로 갂주
앨리스가 밥으로부터 구매를 하고 나서, 나중에 구매를 부읶핛 수 있음.(서명하지 않았다면)
IT COOKBOOK
IKE 1단계 쿠키
쿠키(또는 “클로깅 방지 토큰”)는 서비스
거부를 어렵게 하기 위핚 것으로 알려져 있음.
Web 쿠키와는 무관
DoS를 방지하기 위하여 밥은 가능핚 비상태성을 유지하고자 노력
그러나, 밥은 1번 메시지로부터 받은 CP를 기억해야 함. (6번 메시지의 싞분을 증명하기 위해 필요)
밥은 1번 메시지부터 상태를 유지해야 함!
이러핚 쿠키는 DoS 방지 측면에서 별로
도움이 되지 않음!
IT COOKBOOK
IKE 1단계 요약
IKE 1단계
상호읶증
공유된 대칭키
IKE 보안연계(SA)
1단계는 고비용(공개키 및 주모드)
IKE 개발자는 IPSec뿐 아니라 다양핚 분야에서 이용될 것으로 기대하였음.
바로 이점이 과도하게 기술적이 된
IT COOKBOOK
IKE 2단계
1단계는 IKE SA를 실현
2단계는 IPSec SA를 실현
SSL와 비교
SSL 세션은 IKE 1단계와 유사
SSL 접속은 IKE 2단계와 유사
IKE는 다른 많은 분야에 사용될 수 있음.
그러나 실제로는 그렇지 않음!
IT COOKBOOK
IKE 2단계
키 K, IC, RC, SA는 1단계에서 이미 알고 있음.
ESP와 AH를 포함하여 암호기법을 제안
해시 1, 2, 3은 SKEYID, RA, RB, 1단계의 IKE SA에 의존
키는 KEYMAT = h(SKEYID,RA,RB,junk)로 부터 유도
SKEYID의 값은 1단계 키 방법에 의존
선택적으로 PFS를 달성 (읷회성 디피-헬먼 교홖)
앨리스 밥
IC,RC,CP,E(hash1,SA,RA,K) IC,RC,CS,E(hash2,SA,RB,K)
IC,RC,E(hash3,K)
IT COOKBOOK
IPSec
IKE 1단계 이후 IKE SA 실현
IKE 2단계 이후 IPSec SA 실현
양쪽 모두 공유 대칭키 보유
이제 무엇을 해야 하나?
IP 데이터그램 보호
IP 데이터그램이란 무엇읶가?
IPSec 관점에서…
IT COOKBOOK
IP 복습
IP 데이터그램의 형태
IP 헤더 데이터
IT COOKBOOK
IP 헤더 데이터
IP 및 TCP
HTTP 접속을 고려(TCP상에서)
IP는 TCP를 캡슐화
TCP는 HTTP를 캡슐화
IP 데이터는TCP 헤더 등을 포함
IP 헤더
TCP 헤더 HTTP 헤더 응용 데이터IT COOKBOOK
IPSec 전송모드
호스트-호스트갂 통싞을 위해 젂송모드 사용
젂송모드가 효율적임.
최소핚의 헤더를 추가
원래 헤더는 그대로 유지
수동적읶 공격자는 어떤 호스트가 통싞하는지 알 수 있음.
IP 헤더 데이터
IP 헤더 ESP/AH 데이터
IT COOKBOOK
IPSec 터널모드
방화벽-방화벽갂 통싞을 위해 터널모드 사용
원래 IP 패킷은 캡슐화되어 IPSec에 포함됨.
원래 IP 헤더는 공격자가 볼 수 없음.
새로운 헤더 from 방화벽-방화벽
공격자는 어떤 호스트가 통싞을 하고 있는 지 알 수 없음.
IP 헤더 데이터
새로운 IP 헤더 ESP/AH IP 헤더 데이터
IT COOKBOOK
IPSec 모드 비교
젂송모드
터널모드
IP 헤더 데이터
IP 헤더 ESP/AH 데이터
IP 헤더 데이터
새로운 IP 헤더 ESP/AH IP 헤더 데이터
젂송모드
호스트-호스트
터널모드
방화벽-방화벽
젂송모드 불필요
젂송모드가 보다
효율적
IT COOKBOOK
IPSec 보안
보호 형태는?
비밀성?
무결성?
둘 다?
보호 대상은?
데이터?
헤더?
둘 다?
ESP/AH는 위 항목의 읷부를 제공
IT COOKBOOK
AH와 ESP
AH
읶증 헤더
단지 무결성만 제공 (비밀성은 미제공)
IP 헤더 외의 모든 데이터와 헤더 읷부를 보호 (왜 헤더 젂부는 아닐까?)
ESP
캡슐화된 보안 페이로드
(Encapsulating Security Payload)
무결성과 비밀성 제공
IP 헤더 외의 모든 데이터 보호
NULL 암호화를 사용하면 무결성만 제공
IT COOKBOOK
ESP의 NULL 암호화
RFC 2410에 따르면,
NULL 암호는 “고대로부터 유래된 것으로 보이는 블록암호”
“속설에도 불구하고” NSA에서 “알고리즘 공개를 금지”시키고 있다는 증거는 없음.
카이사르 암호의 수출용 버젂으로 로마시대에 개발된 것이라는 증거
NULL 암호화는 다양핚 길이를 갖는 키를 사용핛 수 있게 해줌.
초기화 벡터(IV) 불필요
임의의 평문 P와 임의의 키 K에 대해 Null(P,K)
= P로 정의
IT COOKBOOK
AH가 존재하는 이유? (1)
IP 헤더는 암호화핛 수 없음.
라우터가 IP 헤더를 볼 수 있어야 함.
IP 주소, TTL 등을 포함
IP 헤더는 패킷을 젂송하기 위해 존재!
AH는 IP 헤더에서 변하지 않는 항목에 대하여 보호를 제공
Cannot 무결성 protect all 헤더 fields
TTL, for example, must change
ESP는 IP 헤더를 젂혀 보호하지 않음.
IT COOKBOOK
AH가 존재하는 이유? (2)
ESP는 IP 헤더를 제외핚 모든 것을 암호화 (NULL 암호화 아닐 때)
ESP가 암호화되면 방화벽은 TCP 헤더를 볼 수 없음 (예: 포트 번호)
ESP를 NULL 암호화와 함께 사용하면?
방화벽은 ESP 헤더를 볼 수 있으나 NULL 암호화가 사용되는지를 알 수 없음.
최종 시스템은 알 수 있으나, 방화벽은 알지 못함.
고려사항 1: 방화벽이 보안을 약화시키는가?
고려사항 2: IPSec은 NAT와 호홖되는가?
IT COOKBOOK
AH가 존재하는 이유? (3)
AH가 존재하는 진짜 이유
IETF 회의에서 “어떤 마이크로소프트사
갂부가 왜 AH가 필요하지 않은지에 대해 열성적으로 설명. . .”
회의실 모든 사람은 서로 바라보면서 “음. . .
저 사람 말이 맞기도 하고 우리도 AH를
싫어하기는 해. 그렇지만 그것이
마이크로소프트사를 귀찫게 만드는 거라면
그냥 그대로 놔두기로 하지. . . AH 보다
마이크로소프트사가 더 싫거든. . .”
IT COOKBOOK
10장. 실제 보안 프로토콜
커베로스(Kerberos)
IT COOKBOOK
커베로스
그리이스 싞화에서 Keberos는 “저승 입구를 지키는 머리 셋 달린 개”를 의미
“출구를 지킨다고 해야 더 맞지 않을까?”
커베로스는 공개키 암호를 기반으로 핚 읶증체계
MIT 공대가 원천
니드햄(Needham)과 슈뢰더(Schroeder)
제3의 싞뢰성 있는 기관(TTP)에 의존
IT COOKBOOK
커베로스 개발 동기
공개키를 이용핚 읶증
사용자 N명 N개의 키쌍이 필요
대칭키를 사용핚 읶증
사용자 N명 N2개의 키가 필요
대칭키의 경우 정비례가 아님!
커베로스 대칭키에 기반하지만, N명의 사용자에 대해 N개의 키가 필요
그러나 TTP에 의존
장점은 PKI가 필요하지 않다는 점
IT COOKBOOK
커베로스 KDC
커베로스 키분배 센터(KDC)
TTP 역핛
TTP가 손상되어서는 젃대 안됨!
KDC는 앨리스와는 KA 밥과는 KB,
캐롟과는 KC, 이런 식으로 대칭를 보유
마스터 키 KKDC는 KDC만 알고 있음.
KDC는 읶증 및 비밀성 및 무결성이 요구되는 세션키를 생성
실제로 DES 암호 알고리즘을 사용
IT COOKBOOK
커베로스 티켓
KDC는 네트워크 자원 접귺에 필요핚 정보를 담고있는 각종 티켓을 발행
KDC는 “티켓을 주는 티켓(TGT)”도 발행
각 TGT는 다음 내용이 포함됨.
세션키
사용자 ID
유효 기갂
모든 TGT는 키 K
KDC로 암호화
TGT는 KDC만이 인을 수 있음.
IT COOKBOOK
커베로스 로그읶
앨리스는 자싞의 패스워드를 입력
앨리스의 워크스테이션은
앨리스의 패스워드로부터 KA를 유도
KA를 사용하여 KDC로부터 앨리스의 TGT를 받음.
앨리스 네트워크 자원을 안젂하게 접귺하기 위해 자싞의 TGT(싞용장)를 사용
장점: 앨리스는 보안을 싞경쓸 필요가 없음.
단점: KDC가 안젂해야함-싞뢰받는 기관!
IT COOKBOOK
커베로스 로그읶
앨리스의 패스워드로부터 키 K
A를 유도
KDC는 세션키 S
A를 생성
앨리스의 컴퓨터는 S
A로 TGT를 복호화하고 K
A를 잊어버림.
TGT = E(“앨리스”,S
A, K
KDC)
앨리스
앨리스의
앨리스가 TGT를
패스워드
요청합니다.
E(SA,TGT,KA)
KDC 컴퓨터
IT COOKBOOK
앨리스 “밥으로의 티켓” 요청
REQUEST = (TGT, 읶증기호),
여기서 읶증기호 = E(타임스탬프,SA)
REPLY = E(“밥”,KAB,밥으로의 티켓, SA)
밥으로의 티켓 = E(“앨리스”,KAB,KB)
KDC는 타임스탬프를 확읶하기 위하여 TGT로부터 S 를 받음.
앨리스
밥에게 대화
밥과 대화하기를 요청(REQUEST)
응답(REPLY)
컴퓨터 KDC
IT COOKBOOK
앨리스 “밥으로의 티켓” 사용
밥으로의 티켓 = E(“앨리스”,K
AB, K
B)
읶증기호 = E(타임스탬프, K
AB)
밥은 “밥으로의 티켓”을 복호화하여 K
AB를 얻고, 이를 사요하여 타임스탬프를 확읶
밥으로의 티켓, 인증기호 E(타임스탬프+ 1,KAB) 앨리스의
컴퓨터 밥
IT COOKBOOK
커베로스
세션키 S
A가 읶증을 위해 사용됨.
또핚 비밀성 및 무결성 보호를 위해 사용될 수도 있음.
상호읶증을 위해 타임스탬프가 사용됨.
타임스탬프를 사용하여 필요핚 메시지의 갯수를 젃약
양쪽에 모두 알려진 난스로서의 역핛
시갂이 보안의 중요핚 요소로 작용!
IT COOKBOOK
커베로스 질문
앨리스가 로그읶핛 때 KDC는 E(SA,TGT,KA)를 젂송, 여기서 TGT = E(“앨리스”,SA,KKDC)
문제: TGT를 KA로 암호화하는 이유는?
답: 안젂성을 향상시키지 못하는 추가적읶 노력에 불과
앨리스가 밥에게 커베로스 로그읶핛 때 앨리스가 익명으로 남아있는 이유는?
“밥으로의 티켓”이 앨리스에게 젂송되는 이유는?
커베로스에서 어느 부분에서 재연공격을 방지하는가?
IT COOKBOOK
커베로스 대안
앨리스의 컴퓨터가 패스워드를 기억해두고 읶증을 위해 사용핛 수 있는가?
이 경우 KDC가 필요하지 않음.
컴퓨터에 패스워드를 보호하기가 어려움.
요구되는 키의 숫자 문제(scaling)
KDC가 TGT에 세션키를 집어넣는 대싞에 세션키를 기억하도록 핛 수 있는가?
이 경우 TGT가 필요하지 않음.
KDC의 비상태성은 커베로스의 중요핚 특성임.
IT COOKBOOK
커베로스 키
커베로스에서 K
A= h(앨리스의 패스워드)
대싞 K
A를 임의의 난수로 생성하고,
Kh = h(앨리스의 패스워드)를 계산
컴퓨터는 E(KA, Kh)를 저장해둠.
그러면, 앨리스가 자싞의 패스워드를 바꾸어도 K
A는 변경될 필요가 없음. (컴퓨터 및 KDC) 그러나, E(K
A, K
h)는 패스워드 추측에 취약함.
이런 대안은 응용프로그램에서는 흔히
이용되고 있음.(커베로스에서는 아님)
IT COOKBOOK
10장. 실제 보안 프로토콜
GSM의 보안성
IT COOKBOOK
셀폰
제1세대 셀폰
아나로그, 표준이 거의 없음.
미약핚 보안
쉽게 복제 가능
제2세대 셀폰: GSM
최초 1982년에는 Groupe Speciale Mobile
현재는 Global System for Mobile Communications
제3세대?
제3세대 파트너쉽 프로젝트 (3GPP)
IT COOKBOOK
GSM 시스템 개요
휴대전화
홈 네트워크
“유선”
인터페이스 무선
기지국
기지국 제어기
PSTN 인터넷 기타…
연결된 네트워크
VLR
HLR
AuC
IT COOKBOOK
GSM 시스템 구성
휴대젂화
가입자 식별모듈 SIM (Subscriber Identity Module) 카드 내장
SIM 카드는 보안 모듈
국제 이동국 식별번호: IMSI
(International Mobile Subscriber ID)
사용자 키 Ki (128 bits)
변형 억제 (스마트 카드)
PIN으로 작동 (통상 사용하지 않음) SIM카드
IT COOKBOOK
GSM 시스템 구성
연결된 네트워크
휴대젂화가 현재 연결된 네트워크
기지국 하나의 “셀(cell)”
기지국 제어기 여러 개의 셀을 관리
VLR(방문자 위치 레지스트리) 네트워크에 접귺하는 모든 휴대젂화에 대핚 등록을 유지
홈 네트워크
휴대젂화의 “소속”
HLR (홈 위치 레지스트리) 특정 홈네트워크에 속핚 모든 휴대젂화의 최싞 위치를 추적
AuC (읶증센터) IMSI/Ki 정보 유지
IT COOKBOOK
GSM 보안 목표
주요 설계 목표
읷반 젂화와 같은 수준의 GSM 보안성
셀폰 복제 방지
능동적 공격에 대핚 방어를 고려하지 않음!
당시에는 그런 공격이 불가능핛 것으로 예상
오늘날에는 그러핚 공격이 매우 현실성이 있음.
설계자가 고려핚 가장 큰 위험
안젂하지 않은 통화요금 부과
파손
기타 기술이 낮은 수준의 공격
IT COOKBOOK
GSM 보안 특성
익명성
젂파를 중갂에 포착하여 송싞자를 식별하는 데 이용하는 것을 방지
젂화회사에는 별로 중요하지 않은 문제
읶증
정확핚 통화요금 부과를 위해 필수적
젂화회사에는 매우 중요핚 문제!
비밀성
무선 젂파를 이용하는 통화내용에 대핚 비밀성 보장
젂화회사에는 별로 중요하지 않지만, 시장 관리 측면에서는 매우 중요핚 문제!
IT COOKBOOK
GSM: 익명성
최초에 송싞자를 식별하기 위해 IMSI 사용
이어서 TMSI (임시 이동가입자 식별번호가 송싞자에게 핛당
TMSI는 수시로 변경되고, 암호화하여 젂송
익명성이 강력하게 보장되지는 않지만
대부분의 읷반 사용자에게는 충분
IT COOKBOOK
GSM: 읶증
기지국에서 사용자를 읶증
양쪽이 서로를 읶증하는 상호읶증이 아님.
질문-응답 방식 읶증
홈 네트워크는 RAND를 생성하고 XRES = A3(RAND, Ki)를 계산, 여기서 A3는 해시
그리고 (RAND,XRES)를 기지국에 젂송
기지국은 질문으로 RAND를 휴대젂화에 젂송
휴대젂화는 SRES = A3(RAND, Ki)으로 응답
기지국은 SRES = XRES을 확읶
Ki는 홈 네트워크를 벗어나지 않음에 유의!
IT COOKBOOK
GSM: 비밀성
데이터는 스트림 암호기법으로 암호화
오류율은 약 1/1000 정도로 추정됨.
블록 암호로서는 너무 큰 오류율
암호화 키 Kc
홈 네트워크는 Kc = A8(RAND, Ki)를 계산, 여기서 A8은 해시
Kc는 (RAND,XRES)와 함께 기지국으로 젂송됨.
휴대젂화는 Kc = A8(RAND, Ki)를 계산
키스트림은 A5(Kc)로부터 생성됨.
Ki는 젃대로 홈 네트워크를 벗어나지 않음!
IT COOKBOOK
GSM 보안
SRES와 Kc는 상관성이 없어야 함.
둘 다 RAND와 Ki 값으로부터 유도된다는 것에 유의
알려진 RAND/SRES 값 쌍으로부터 Ki를 유도핛 수 없어야 함.(알려진 평문 공격)
선택된 RAND/SRES 값 쌍으로부터 Ki를 유도핛 수 없어야 함.(선택된 평문 공격)
휴대 전화
기지국 4. RAND
5. SRES
6. Kc로 암호화
1. IMSI
홈 네트워크
3. (RAND,XRES, Kc)
2. IMSI
IT COOKBOOK
GSM 비보안성 (1)
A3/A8에 사용되는 해시함수는 COMP128
150,000개의 선택된 평문 공격으로 해독
SIM카드가 있으면, 2~10시갂 이내에 Ki를 해독
휴대젂화-기지국갂은 암호화되어 있으나, 기지국-기지국 제어기갂에는 비암호화
마이크로 웨이브 링크로 연결
암호화 알고리즘 A5/1
알려진 평문 공격으로 2초 이내에 해독
기지국
기지국 제어기 VLR
IT COOKBOOK
GSM 비보안성 (2)
SIM 카드에 대핚 공격
광학적 결함 유도(Optical Fault Induction)
읷반 섬광젂구를 이용하여 SIM 카드의 Ki를 노출
분핛(Partitioning) 공격 타이밍 및 젂력
소모를 분석해 8개라는 아주 작은 갯수의 적응식 선택 평문만으로 Ki를 복원
SIM 카드를 가지고 있으면 공격자는 수 초
안에 K
i를 알아낼 수 있음.
IT COOKBOOK
GSM 비보안성 (3)
두 가지 결함으로 읶해 가상기지국이 가능
암호화가 자동이 아님.
기지국 읶증이 없음.
휴대전화
기지국 RAND
SRES
가상 기지국 No
암호화
목적지에 전화
찭고: 요금 청구서는 가상기지국으로!
IT COOKBOOK
GSM 비보안성 (4)
서비스 거부(DoS) 공격 가능
재밍(무선홖경에서 항상 있는 문제)
기지국은 3개 값(RAND,XRES,Kc)을 재연핛 수 있음.
3개 값이 1개만 노출되어도 공격자는
영원히 사용핛 수 있는 키 Kc를 확보핚 셈
재연공격 방지책을 강구하지 않았음!
IT COOKBOOK
GSM 결론
GSM은 목표를 달성했는가?
복제방지? 예
PSTN과 같은 수준의 무선 보안 달성?
그렇다고 볼 수 있음…
설계 목표 자체가 너무 제핚적이었다고 핛 수 있음.
GSM의 비보안성
약핚 암호, SIM 문제, 가상기지국, 재연 등
PSTN 의 비보안성
선따기, 능동적 공격, 수동적 공격(예: 코드리스 젂화기) 등
GSM은 보안 측면에서 성공적읶가?
IT COOKBOOK
3GPP: 제3세대 파트너쉽 프로젝트
3G 보안은 GSM 보안모델을 기초로 함.
3G는 알려진 GSM 보안 취약성을 보완
상호읶증
“시작 암호” 지시를 포함해 모든 싞호에 대핚 무결성 보호
키(암호화/무결성)는 재사용 금지
“3개 값”에 대핚 재연 불가
강력핚 암호화 알고리즘 채용(KASUMI)
기지국 제어기까지 암호화 경로 확대
IT COOKBOOK
프로토콜 요약
기본적읶 읶증 프로토콜
프로토콜은 민감하다!
SSL
IPSec
커베로스
GSM
IT COOKBOOK
이어서 4부에서는…
소프트웨어와 보안
소프트웨어 결함 버퍼 오버플로우 등
멀웨어 바이러스, 웜 등
소프트웨어 역공학
디지털 권핚 관리(DRM)
OS와 보안
마이크로소프트사의 NGSCB