들어가며 - 2025년 4월, SK텔레콤에서 발생한 대규모 해킹 사건은 통신 보안의 치명적인 약점을 그대로 드러낸 사례였습니다.
해킹으로 인해 유출된 약 9.7GB 분량의 가입자 정보에는 전화번호, USIM 카드 고유 번호(ICCID), 가입자 고유 식별 번호(IMSI), 그리고 가장 민감한 인증 키(Ki)가 포함되어 있었으며, 이는 유심 복제와 휴대폰 인증 절차를 우회하는 데 사용될 수 있는 매우 중요한 정보였습니다.
이 사건은 단순한 개인정보 유출을 넘어, 통신망 자체의 신뢰성까지 흔드는 중대한 사고로 평가됩니다.
그런데 많은 사람들은 이 시점에서 이런 질문을 던집니다. “왜 인증 정보를 해시하거나 암호화해놓지 않았을까?”, “왜 공개키(PKI) 기반 인증 방식을 쓰지 않았을까?”와 같은 것들입니다.
본 글은 이러한 질문에 대한 간단한 기술적 배경과 한계를 살펴보고, 그 대안으로서 블록체인을 통해 널리 알려진 공개키 기반 인증(PKI)과 영지식 증명(Zero-Knowledge Proof, ZKP) 등과 같은 새로운 암호들이 어떻게 SKT 해킹과 같은 문제를 구조적으로 해결할 수 있는지를 분석합니다.
더불어, 현실적인 도입 가능성과 향후 통신 인증 표준의 방향성까지 함께 제시해 보고자 합니다.
1. SKT 해킹 사건
2025년 4월, SK텔레콤은 해킹 공격으로 인해 약 9.7GB의 가입자 유심(USIM) 관련 정보가 유출되는 사고를 겪었습니다. 정부 민관합동조사단은 유출된 정보에 가입자 전화번호와 IMSI 등 유심 복제에 활용될 수 있는 4종의 정보 -- 가입자 고유 식별 번호IMSI, USIM 카드 고유 번호 ICCID, 전화번호, 가입자 인증 키 정보 Ki--가 포함되었음을 확인했습니다. 다행하게도, 단말기 고유식별번호(IMEI)는 유출되지 않았습니다. SKT는 유심보호서비스를 무료로 제공하고, 유심 무상 교체를 실시하는 등 대응에 나섰지만, 유심 재고 부족과 서비스 가입 절차의 불편함으로 인해 사용자들의 불만이 이어졌습니다. 또한, 개인정보보호위원회는 SKT가 유출 사실을 고객에게 적절히 통지하지 않았다고 지적하며, 법정사항을 갖춘 신속한 통지와 취약계층에 대한 보호 대책 마련을 요구했습니다.
2. USIM 정보
우리 스마트폰 속에는 작은 칩 하나가 들어 있습니다. 이 칩은 바로 USIM (Universal Subscriber Identity Module) 카드입니다. 이 카드 안에는 나와 통신사만 알고 있어야 하는 정보가 담겨 있습니다. 이 번에 유출된 4가 종류의 정보 중에는 내가 누구인지 통신망에 알려주는 가입자 고유 식별 번호 IMSI(International Mobile Subscriber Identity)와 Ki라는 비밀 인증키가 저장되어 있습니다. 이 키는 통신사 서버와 가입자 USIM이 사용하여, “나는 진짜 가입자입니다”라고 인증할 때 사용됩니다.
이 인증 과정은 휴대폰 USIM과 통신사 서버(4G LTE는 Home Subscriber Server, 5G는 Unified Data Management Server)와의 협업으로 이루어집니다. 통신사 내부에 설치된 이 서버는 사용자가 가입할 때 생성한 비밀키를 저장해 놓습니다. 즉, 각 가입자에게 제공된 Ki 값을 저장해둡니다.
서비스 가입 사용자(이후 가입자)는 USIM 정보를 갖고 있으므로, 이 정보를 사용하여 통신 인증을 성공적으로 마치고 자신의 스마트폰을 통신망에 연결할 수 있게 되고 통화와 문자를 주고 받을 수 있게 되는 것입니다.
3. AKA 국제 휴대폰 인증 절차
인증은 국제적 휴대폰 통신 인증 절차 AKA (Authentication and Key Agreement)라는 무선 통신망이 활발하게 만들어지던 90년대 후반에 처음 제정된 오래된 인증 표준을 따릅니다. AKA에는 미국 정부(NIST)가 2001년에 제정한 공식 암호화 표준 (AES, Advanced Encryption Standard)을 사용합니다.
AES는 대칭키 기반의 암호화 표준을 사용입니다. 대칭키란 서버와 휴대폰에서 동일한 Key값 Ki을 사용하여 인증하는 것을 의미합니다.
AES인증 절차를 간단히 살펴 보면 다음과 같습니다. 먼저, 통신사 서버는 가입자마다 보유하고 있는 비밀 키 Ki를 AES 함수 f를 사용해 XRES라는 값을 계산합니다. 즉, XRES = f(Ki, RAND)를 계산합니다. 무작위 숫자 RAND는 재사용 방지를 위해 사용하며, 인증 요청 수신시 서버가 생성해서 가입자 휴대폰에게 전달합니다. 서버가 계산한 XRES는 일종의 정답 같은 것입니다.
휴대폰에서는 동일한 AES함수 f를 사용해서, 수신한 RAND값과 USIM 안에 저장된 비밀키 Ki를 이용해서 응답값RES = f(Ki, RAND)를 계산합니다. 이건 “나 진짜 가입자야”라는 증명서 같은 것이죠. 휴대폰은 이 RES값을 서버에 보냅니다.
서버는 미리 계산해 둔 정답 XRES와, 휴대폰이 보내온 RES값이 일치하는지 비교 확인합니다. 일치하면 인증이 성공하고, 휴대폰은 정상적으로 데이터 및 음성 통신을 시작할 수 있습니다. 만약 불일치하면, 서버는 “너는 내가 등록한 가입자 휴대폰이 아니야”라고 판단해서 연결을 거부합니다.
문제는 2025년 SKT해킹사건에서 처럼, 이 모든 계산의 핵심인 인증키 Ki값이 통신사 서버에 저장되어 있다 보니, 서버가 해킹당하면 해커가 USIM을 복제하여 사용할 수 있게 되고, 통신인증을 통과할 수 있는 복제폰을 만드는 것이 가능해진다는 점입니다. 결국 사용자 계정 탈취, 문자 인증 가로채기 등 심각한 보안 문제가 발생할 수 있는 상태가 되는 것 입니다.
4. 왜 Ki 값을 암호화해 놓거나 Hash값만을 저장해 놓는 방법을 선택하지 않았을까?
우리는 흔히 “비밀번호는 해시해서 저장한다”거나 “중요 정보는 암호화해 둔다”고 생각합니다. 이번 SKT 해킹 사태에서 국회에서 SKT관계자들을 불러 놓고 국회의원들께서 이런 것들을 질의 하였습니다. 그래서 많은 사람들이 생각하듯 “통신사도 가입자의 Ki 값을 암호화하거나 해시해서 저장하면 되는 것 아닌가?”라고 의문을 가질 수 있습니다. 하지만 제가 생각해보니, 실제로는 그렇게 간단하지 않습니다.
인증키 Ki는 단순한 식별 정보가 아니라, 인증 과정에서 직접 사용되는 수학적 계산의 핵심 키입니다. 가입자와 통신사 서버가 동일한 Ki를 가지고 있어야만 올바른 응답값 RES를 계산할 수 있습니다. 만약 서버에 단지 Ki를 해시해서 저장해 놓으면, 이 값을 다시 원래대로 복원할 수 없기 때문에 인증 연산이 불가능해집니다.
암호화해서 저장하는 것도 기술적으로는 가능하지만, 실제로 인증을 하려면 결국 복호화된 Ki를 메모리 상에 꺼내야 합니다. 이 순간이 해커에게는 가장 노릴 만한 취약 지점이 됩니다. 이번 SKT해킹 사태에서 밝혀 졌듯, 해커가 서버에 심어 놓은 악성 코드는 장기간 잠복하면서 유심 정보를 유출하기 때문에 이 순간을 노릴 수도 있습니다.
나아가 암호화된 정보를 복호화하는 데에 추가적인 시간이 소요되는 단점도 있습니다.
그래서 실제 통신 시스템은 Ki를 따로 암호화하지 않고, 대신 접근 자체를 물리적으로 제한하고 내부 네트워크에서만 작동하도록 설계되어 있습니다.
요약하자면, Ki는 해시하거나 암호화 하여 숨길 수 있는 정보가 아니라 ‘연산에 직접 쓰이는 비밀 열쇠’이기 때문에 보다 더 근본적인 방식으로 다뤄져야 하는 정보입니다.
5. 공개키 기반 인증 (PKI) 시스템을 도입할 수 없을까?
앞선 섹션3휴대폰 인증 절차에서 확인했듯이, AKA인증 방식은 대칭키 기반 암호화 표준AES를 사용합니다.
대칭키란 스마트폰USIM 칩에서 사용하는 비밀 키(Ki)와 통신사 서버(HSS/UDM)에 저장된 인증키 Ki가 동일한 것을 의미합니다.
서버에서 비밀 키 Ki를 해커가 탈취하면, 해커가 IMSI를 보내 휴대폰 인증 절차 AKA를 시작하고, RAND값을 서버로부터 수신하여, 탈취한 인증키 Ki와 RAND값을 공개된AES 함수에 입력하여 출력값RES를 계산할 수 있게 됩니다.
출력값RES를 서버에 보내면, 서버는 RES값이 정답 XRES와 같은지를 확인하고, 동일할 경우 통신 인증을 승인하는 결과를 낳게 됩니다.
Bitcoin프로토콜을 보면 Satoshi Nakamoto가 비대칭키 기반 PKI(Public Key Infrastructure) 시스템을bitcoin거래에 활용한 것을 알게 됩니다.
비대칭키는 개인키와 공개키를 사용하여 인증하는 것을 의미합니다. 가령, 휴대폰 USIM에는 개인키 Private Key를 사용하고 서버에는 Public Key를 저장해 놓는 것 입니다.
휴대폰 등록시에 USIM에 IMSI와 함께 Private Key를 저장해 놓고, 통신사 서버에는 IMSI와 Public Key를 저장해 놓습니다.
가입자는 자신의 USIM에 저장된 개인키로 서버가 보낸 난수(RAND)와 자신의 가입자 정보 IMSI에 디지털 서명을 합니다. 서버는 IMSI와 함께 등록된 공개키를 사용해 서명의 유효성을 검증합니다.
이 PKI방식을 사용하면 서버에는 가입자의 개인키에 대응하는 공개키만 저장되어 있으므로, 서버 해킹으로 인한 대규모 개인키 유출 사고를 원천 차단할 수 있습니다.
또한, 매 인증 시마다 새로운 난수를 사용하기 때문에 서명의 재사용 공격도 차단됩니다.
이 공개키 기반 인증(PKI) 시스템은 매우 안전하고 구조적으로 세련된 방식이지만, 지금까지 이동통신 시스템에는 널리 도입되지 못한 것으로 보입니다.
그 이유는 기술적, 운영적, 표준적 제약이 복합적으로 작용했을 것으로 보입니다. 우선 PKI는 공개키와 개인키 쌍뿐만 아니라, 이를 발급하고 관리하는 인증서 인프라를 필요로 합니다.
수억 명의 가입자와 수천 개의 기지국이 있는 통신망에서 이를 실시간으로 운용하려면 막대한 비용과 복잡한 관리 체계가 요구됐을 것으로 생각됩니다.
또한, 초창기 이동통신 시스템이 설계될 당시에는 USIM의 계산 능력과 전력 효율이 매우 제한적이었기 때문에RSA나 ECC (Elliptic Curve Cryptography)같은 대표적인 공개키 연산은 실시간 인증용으로 부적합하다고 판단되었을 수 있습니다.
AES는 하드웨어 가속이 쉬워서 빠른 인증이 가능합니다. 이에 따라 AES 기반 대칭키 방식이 선택되었고, 오늘날까지도 AKA 프로토콜의 핵심으로 유지되고 있는 것으로 보입니다.
게다가 3GPP 같은 국제 표준 기구는 전 세계의 통신 장비와 단말기가 상호 호환되도록 매우 보수적으로 움직이기 때문에, PKI 방식은 아직까지 본격 채택되지 못한 것으로 생각됩니다.
그러나, PKI 기반 인증은 빠르게 발전 중이며, 기존 대칭키 기반 방식보다 보안성이 높고 양자 내성 알고리즘과도 연동이 가능해 미래 통신 보안 방식으로 주목받고 있습니다.
특히 이번 SKT 해킹 사건을 통해 서버에 Ki를 저장하는 구조의 위험성을 보여줬습니다. 서버가 해킹되면 인증키 탈취와 복제 유심 제작이 가능해져 인증이 우회될 수 있습니다.
6. 영지식 증명이란?
이제 여기서 완전히 새로운 개념의 통신 인증 방식 도입 검토를 위해, 영지식증명(Zero-Knowledge Proof, ZKP)의 개념을 소개합니다. 영지식 증명은 말 그대로, 내가 어떤 비밀을 알고 있고 그것을 사용한 어떤 명제가 참임을 입증하되, 비밀 정보는 드러나지 않게하면서 명제가 참임을 증명하는 방법입니다.
즉, ZKP에는 증명자 Prover가 있고 검증자 Verifier가 있습니다. 세 가지 핵심 조건이 있습니다:
ZKP는 기술적으로 들리지만, 의외로 쉽게 이해할 수 있는 예시들이 있습니다.
예를 들어, “나는 성인이야”라는 것을 증명하되, 주민등록번호나 나이 자체는 말하지 않는 방식이 있습니다. 이건 프라이버시를 지키면서도 자격을 증명하는 ZKP의 전형적인 예시입니다.
또 하나는 ZCash라는 프라이버시 중심의 암호화폐입니다. ZCash는 거래의 금액, 보낸 사람, 받은 사람을 모두 숨긴 채 “이 거래는 유효합니다”라는 사실만을 증명합니다. 이게 바로 ZK-SNARK의 실제 활용입니다.
자주 사용되는 ZKP 기술 중 하나가 ZK-SNARK입니다. 어떤 주어진 명제가 사실임을 입증하는데 걸리는 시간을 크게 단축하여 실용성을 확보하였습니다.
7. 영지식 증명으로 SKT 서버 해킹 문제 해결 가능?
이제 “영지식 증명으로 SKT 서버 해킹 문제 해결 가능할 까” 라는 질문에 답을 해 보겠습니다.
기본적으로 영지식 증명은 증명에 오랜 시간이 걸리는 단점이 있어서 빠른 인증이 필요한 통신 인증에 사용하는 것을 어려울 것으로 보입니다.
그래도 영지식 증명을 통신 인증에 적용해 보는 것도 이론을 이해하는데 도움이되고 응용 자체로도 흥미로움을 느끼는 분들이 계실 수 있으니 재미로 진행해 보겠습니다.
이를 위해AKA통신 인증을 위해 영지식 증명 도입해 보겠습니다.
ZK-SNARK 프로토콜은 크게 세 단계로 이루어 집니다.
첫 째, Setup 단계가 있습니다.
둘 째, 증명자가 증명을 계산하고 제출합니다.
셋 째, 검증자가 제출된 증명이 참인지 여부를 판단합니다. 참일 경우 통신 인증을 승인하고 완료 됩니다.
증명자 역할은 휴대폰 USIM이 담당 합니다.
증명하고자 하는 명제는 ‘함수의 계산값 f(인증키 Ki, RAND) 값은 XRES와 같다’는 명제 입니다. 이 명제는 함수 입력에 사용한 인증키Ki가 “올바르”면 참이고, 그렇지 않으면 거짓이 됩니다.
“올바는” 인증키 Ki는 Setup 단계에 Commit해 놓은 인증키를 의미합니다.
휴대폰 USIM은 올바른 인증키 Ki와 RAND를 사용하여 함수의 출력값을 계산합니다. 올바른 인증키는 비밀을 유지해야하는 정보입니다. 함수 f( )는 공개된 알고리즘입니다. RAND는 통신사 서버가 생성해서 휴대폰에 보내준 난수입니다.
휴대폰은 상기 연산을 진행합니다. 그리고 인증 절차를 올바르게 수행했음을 증명하는 증명값을 생성합니다.
휴대폰은 출력값 RES와 증명값을 통신사 서버에 보냅니다. 통신사 서버는 Setup 단계에 인증키Ki의 Commit값과 그외 랜덤 파라미터로부터 파생된 정보를 보관하고 있습니다.
영지식 증명이므로 Setup 단계에 생산한 파생정보로부터 인증키 Ki을 추출할 수 없습니다.
통신사 서버는 이 Setup정보를 활용하여 Verify 함수를 만들어 놓습니다. Verify함수에 휴대폰에서 보내준 증명 즉 RES와 증명값을 입력합니다.
Verify 함수의 출력은 True 혹은 False입니다.
True의 경우, RES 는 XRES와 같은 것임을 입증한 것이고, 휴대폰은 올바른 인증키Ki를 사용하여 인증한 것으로 간주되고, 서버는 휴대폰 통신 요청을 승인합니다.
결론적으로, 영지식 증명을 도입하면 통신사 서버에 통신 인승키가 노출된 상태로 저장되는 것을 방지할 수 있습니다. 그러므로, 2025년 SKT 서버 해킹 사고와 같은 대규모 개인 정보 유출을 차단할 수 있습니다.
나아가 ZK-SNARK 방법은 오픈 소스로 코드가 공개되어 있어서, 인공지능에게 바이브 코딩을 요청하면 코드를 금방 짜 주기 때문에 쉽게 위에 내용을 검증해 볼 수 있습니다.
결론
SKT 해킹 사건은 통신 보안의 핵심 요소인 Ki(가입자 인증 키)가 서버에 저장되어 있었기 때문에 발생한 구조적 취약점에서 비롯된 것이었습니다.
기존의 AKA 인증 프로토콜은 대칭키 기반 AES 암호화를 사용하여 빠르고 효율적인 인증을 가능하게 했지만, Ki를 서버와 단말 양쪽에 동시에 저장해야 한다는 보안상의 약점을 안고 있었습니다.
해커가 서버를 해킹하면 Ki를 탈취하고 복제폰을 만들어 정상적인 인증 절차를 통과할 수 있었던 이유도 여기에 있습니다.
이러한 구조는 서버에 의존하는 통신 보안의 한계를 드러내며, 서버가 신뢰를 잃는 순간 전체 시스템이 무너질 수 있음을 보여주었습니다.
이 문제를 해결하기 위해서 본 글에서는 비대칭 구조의 공개키 기반 인증(PKI)이나, 사용자만이 비밀 키를 보유하고 있다는 사실을 증명할 수 있는 영지식 증명(ZKP) 방식과 같은 구조적 대안을 검토해 보았습니다.
공개키 기반 인증은 서버에는 공개키만 저장되고 비밀키는 저장될 이유도 없기 때문에 매우 우수한 통신 보안 인증이 가능함을 논의 하였습니다.
특히 서명과 검증이 모두 빠른 특성을 갖는 타원곡선기반 암호 Ed25519를 사용할 경우 통신 인증으로서 손색이 없을 것으로 생각이 됩니다.
영지식 증명 방식을 통신 인증에 도입하는 것도 서버에 비밀 키가 저장되지 않더라도 인증이 가능하다는 점에서 기존 AES방식보다 훨씬 높은 보안성을 제공합니다.
그러나 기능이 제한된 USIM에서 상대적으로 매우 큰 시간이 요구되는 증명 연산을 수행해야 하므로 당장 현실 적용 가능성은 낮은 것으로 생각됩니다.
그럼에도 불구하고 영지식 증명은 Private Key외에도 성년 여부, 거주지 기반 자격, 국적 및 시민권 증명 등 여러 가지 다양한 민감 정보를 보호하면서도 증명이 가능한 새로운 기능을 제공하는 장점이 있으며, 지속적으로 발전하고 있는 분야입니다.
앞으로 6G 등 차세대 통신 인프라에서는 지금보다 훨씬 더 많은 장치와 사용자가 연결되고, 각종 민감 정보가 실시간으로 오가게 될 것입니다.
그만큼 통신 인증 시스템도 더욱 안전하고 유연한 구조로 발전해야 하며, 기존의 대칭키 기반 인증 방식에서 벗어나 PKI 및 ZKP와 같은 차세대 보안 인증 기술을 통신 표준에 적극 반영하여 검토해 볼 필요가 있습니다.