인증
LTE는 EPS-AKA라는 방식을 사용하여 인증을 합니다. 여기서 인증은 "상호인증"인데요. 즉, 망도 가입자를 인증하지만 가입자도 망을 인증하는 구조입니다. 일단 인증을 위해서는 UE(단말)과 HSS(가입자 DB) 모두에 가입자 고유 식별자인 IMSI와 LTE Security Key인 LTE K 값이 들어 있어야 합니다(물론 UE와 HSS에 들어 있는 값은 동일한 값이어야 합니다). 이 IMSI와 LTE K는 사용자가 LTE 서비스에 가입을 하면 USIM을 받게 되고 그 USIM에 IMSI와 LTE K가 들어가 있고, 통신사업자는 HSS에 이와 동일한 값을 Provisioning 해 놓습니다.
이후 가입자(UE)가 전원을 키면 UE는 망에 인증을 요청(Attach Request 메시지)하게 되구요, 이 메시지를 수신한 MME(LTE 망에 두뇌 역할을 하는 entity)는 HSS에게 해당 가입자(IMSI로 식별)를 인증하기 위한 인증정보(Authentication Vector)를 받아 오게 됩니다. 이후 MME는 이 인증정보를 이용하여 가입자를 인증하고, 또한 가입자도 HSS가 하는 것과 동일한 방식으로 인증정보를 생성하여 그 정보를 이용하여 망을 인증하게 됩니다.
깊이 들어가지 않고 설명을 드리다 보니 쉽지 않네요. 좀 더 깊숙한 얘기는 다음번에 하도록 하고 인증에 대한 얘기는 이 정도로 마치겠습니다.
무선구간 보안
사실 무선통신기술에서 "인증"과 "보안"은 항상 함께 다루어 지는데요. 그 이유는 가입자와 망간에 "인증" 과정이 성공적으로 끝나게 되면 이 인증의 결과로 어떤 Master Key가 나오게 됩니다. 그리고 이 Master Key를 가지고 복잡한 알고리즘을 돌려 무선구간에서 무결성확인(Integrity Check)과 암호화(Encryption 혹은 Ciphering)를 할 수 있는 Key들을 생성하게 됩니다. LTE의 경우 이 Master Key를 KASME라고 합니다. (WiBro의 경우 Master Key를 MSK라고 부릅니다.)
여기서 잠깐! 무결성보호와 암호화가 뭔지 간단히 살펴 보도록 하겠습니다.
그래서 이 KASME를 이용하여 먼저 UE와 MME간에 메시지(이 둘간에 주고 받는 메시지를 NAS 메시지라고 부릅니다. 사용자 데이터는 MME로 가지 않고 UE와 MME간에는 오로지 control 메시지들만 주고받습니다.)에 대한 무결성확인을 위해 사용되는 Key인 KNASint(NAS=NAS 메시지, int=Integrity)를 UE와 MME에서 각각 생성하게 되구요, 암호화를 하는데 사용되는 Key인 KNASenc(enc=encryption)를 역시 UE와 MME에서 생성합니다. 그러면 이제 UE와 MME간 주고 받는 메시지는 이 Key들을 이용하여 무결성보호 & 암호화 되어 안전해 지는 겁니다.
그런 후 이번에는 UE와 eNB간에 주고 받는 모든 control 메시지에 대한 무결성확인과 암호화를 위한 Key인 KRRCint(RRC=RRC 메시지, int=Integrity)와 KRRCenc(enc=encryption)를 생성하고, 이를 통해 UE와 MME간 control 메시지는 무결성보호 & 암호화 되어 안전하게 주고 받을 수 있게 됩니다.
그리고 마지막으로 UE와 eNB간에 주고 받는 모든 data 메시지(사용자가 보낸 유저 데이터)에 대한 암호화(사용자 데이터는 무결성보호 하지 않음)를 위한 Key인 KUPenc(UP=User Plane, enc=encryption)를 생성하고, 이를 통해 UE와 eNB간 data 메시지는 암호화 되어 안전하게 주고 받을 수 있게 됩니다.
왠지 핵심을 교묘히 피해 겉만 훓은 기분이네요... 하지만 LTE 초보자분들이 인증과 무선구간보안에 대해서 너무 깊게 들어가실 필요는 없을 듯 합니다. 그 외에도 LTE QoS, Attach Procedure, Handover 등등 공부하셔야 하는게 너무 많으니까요.
"LTE는 EPS-AKA로 단말과 망이 서로 상호인증을 한다. 그리고 UE와 MME/eNB간에는 제어신호가 암호화 및 무결성 보호되어 전송되고, UE와 eNB간에는 사용자 트래픽이 암호화되어 전송되므로 매우 안전하다" 정도만 기억하셔도 좋을 듯 합니다.
혹시 퍼가기 할 수 없나요?
마지막 정리가 눈에 쏙 들어오네요!!
그런 Kasme를 어떻게 읽어야 하나요?
예전에 WiMAX(WiBro) 관련하여 AAA 업체(Bridgewater)를 만났을때 WiMAX 관련 인증을 다르게 불러 좀 당황한 적이 있었는데요 (당황 = 무슨 말인지 안들리더라구요)
- EAP-TLS: 입 테일에스
- EAP-AKA: 입 에카 (저는 '이베카'로 들리더군요 -.-;;)
SNOW를 사용하라고 써있는데.. 실제 파라미터는 SNOW랑 맞지 않아서 대입 방법을 모르겠는데..
정확히 어떤 부분에서 어떤 알고리즘을 쓸 수 있는지 자세한 내용 알고싶으면 어디서 찾아보면될까요?
인증과 보안에 대해 쉽게 이해하도록 설명해 주셔서 고맙습니다.
본문 중에 혹시 오타인지 또는 제가 잘못 이해했는지 바로 잡아 주세요.^^
(1)UE와 MME간 data 메시지는 ~
=> UE와 eNodeB간 data 메세지는 ~
(2)LTE 초보자분들이 인증과 무선구가보안에
=> LTE 초보자분들이 인증과 무선구간 보안에~
(3)UE와 MME간, UE와 eNB간에 트래픽은 암호화 및 무결성 보호되어 전송되므로 매우 안전하다
=>UE와 MME간에는 제어신호가 암호화 및 무결성 보호되어 전송, UE와 eNB간에는 트래픽이 암호화되어 전송되므로 매우 안전하다.
맞게 이해하셨고 오타입니다. 지적해 주신 부분을 수정하여 update하였습니다.
감사합니다~
넷매니아즈 님 몇일전에 voLTE에 대한 보안이 취약하다는 기사 ( http://www.etnews.com/20140902000285 )를 봤는데요.. 요지는 voLTE 사용시 코어망에서는 암호전송을 안해서 취약하고, 사용자 인증시 IMS-AKA를 사용하는데 이게 IPSec이랑 연동이 안되서 보안에 취약하다는 이야기 였는데.. 위에서 설명해주신 내용이랑은 많이 다르네요~ 추가 설명이 가능하신가요??
아는 내용이라 참고삼아 설명을 좀 드립니다.
1)
이 글에 설명되어 있는 내용은 UE가 LTE로 접속하기 위한 절차를 설명한 것으로
UE의 시그널링은 MME가 종단하는데 이 구간은 암호화되어 있고, UE의 트래픽은 P-GW가 종단하지만
UE~eNB까지는 암호화된다고 본문 마지막에 설명이 되어 있습니다.
또한 “매우 안전하다는 의미”는 LTE RADIO 구간 (무선 신호가 누구에게나 노출되어 있는 구간) 에서
“사용자의 LTE 접속 시그널링/데이터가 안전하며, UE내의 가입자 관련 정보등은 LTE Core내에서도 안전하다”
라고 이해를 하시면 됩니다.
2)
참조하신 기사는 VoLTE 서비스가 암호화되어 있지 않다는 내용으로
VoLTE 서비스는 UE ~ LTE (eNB –SGW-PGW) ~ IMS (CSCF/HSS…)를 통해 제공되는 것이라
본문의 LTE 범위를 벗어나는 범위를 가지고 논하는 기사입니다.
또한, UE가 IMS로 접속할 때는 SIP로 시그널링하고 RTP로 음성/영상 데이터가 다니게 되며
LTE에서는 SIP 및 RTP가 모두 “데이터”로 취급되므로 “UE~eNB” 구간까지만 암호화되며
SGW ~ PGW ~ CSCF구간은 암호화되지 않습니다.
3)
IMS-AKA는 UE가 IMS로 접속할 때 쓰는 인증/암호화 시그널링을 포괄적으로 나타내는 용어로
UE는 IMS내의 CSCF로 SIP를 이용하여 서비스를 등록할 때 IMS-AKA란 규격을 통해 시그널링을 암호화할지를
협상하게 되고 CSCF가 암호화 사용 여부를 결정합니다.
만약 CSCF가 암호화를 허용하면 SIP 시그널링 메시지는 IPSec으로 암호화가 되고
허용하지 않으면 암호화되지 않은 SIP 시그널링 메시지가 다닙니다.
또한 음성/영상 통화를 할 때의 음성/영상 데이터는 RTP를 이용해 다니는데 RTP에 대한 암호화는
전화를 시도할 때마다 SIP 시그널링을 통해 결정되며, 결정 주체는 CSCF 또는 착신 UE가 합니다.
만약 CSCF 또는 착신측 UE가 암호화를 희망하면 RTP 데이터는 SRTP로 암호화되어 전달됩니다.
4)
여기까지가 제반 서비스 구조이고 “IMS-AKA 및 IPSec을 안한다” 부분을 정리하면
단말이 VoLTE 접속 시 “IMS망의 CSCF가 SIP 시그널링 암호화를 허용하지 않도록 설정되어 있다”란
것으로 이해를 하시면 됩니다.
(SIP 시그널링에는 발착신 전화번호가 주요 정보라고 보시면 됩니다)
5)
개인적인 의견입니다만, LTE를 통한 IMS 접속은 기사에도 있는 것처럼 폐쇄망 구조이기 때문에
최소한 우리나라에서는 외부로부터는 안전하다고 생각합니다.
(우리나라 통신 3사는 모두 자가망만으로 LTE/IMS를 모두 완전하게 구축하고 있지만
해외는 둘 중에 하나만 서비스를 하거나, 두 망이 완전한 자가망이 아닌 경우가 종종 있습니다)
물론 통신사업자의 내부에서 패킷 스니핑을 통해 개인 통화를 보는 것을 우려할 수 있습니다만
단말에서의 암호화 여부에 관계없이 발착신 정보는 노출될 수 밖에 없는 특성을 가지고 있고
(통신 사업자가 발착신 단말간 서비스 중계를 하려면 발착신 정보를 알 수 밖에 없음)
음성/영상 데이터를 발착신 단말간에 직접 암호화를 하는 것도 고려할 수 있지만
그렇게 되면 통신 사업자를 통한 링백톤, 음성 안내와 같은 부가 서비스를 제대로 받지 못하며
착신측 단말이 LTE가 아닌 3G/2G/유선이면 음성을 발착신간에 암호화할 방법도 없으므로
내부자에 의한 개인 통화 내용 노출을 차단하는 것 역시 글쎄요..
꼭 필요하다면 비화전화기를 이용하거나 비화 VoIP 서비스가 있으니 개인적인 불편을 고려해서
그런 것을 쓰는 것이 나은 게 아닐까 생각합니다.
하지만 비슷한 시점에 기사로 나온 VoIP에 대한 부분은 상당히 타당한 부분이고
VoIP의 경우에는 “IMS-AKA & IPSec”이 아니라 RTP 암호화가 핵심이라 보입니다.
여러 단계를 거치는 내용이라 설명이 좀 길었습니다.
VoIP (over WIFi) 부분은 좀 다르긴 한데 너무 길어질 것 같아 설명을 드리지 않으니 양해 부탁 드립니다.
잘 보고있습니다. 정말 감사합니다