블로그

허핑턴포스트 블로거의 분석과 의견이 담긴 생생한 글을 만날 수 있습니다.

박지훈 Headshot

인증이란? '인증-수단'과 '인증-체계'

게시됨: 업데이트됨:
인쇄

2017-03-03-1488518367-6531568-auth_00.jpg

"OTP 카드만 있으면 인증은 뭐든 다 된다고 하던데, 정말 그런가요?"

현장에서 종종 듣는 질문이다. 'OTP 카드' 자리에 든 말만 계속 바뀔 뿐이다. 'USB 인증서'만 있으면, '스마트카드'만 있으면, '지문인식기'만 있으면 식으로. 뭐라고 대답하기 좀 곤란한 질문이다. 원론적으로 맞다고 답할 수도 있고 실무적으로 아니라고 답할 수도 있다. '인증'이라는 기술의 정의가 구체적으로 명확하기 않기 때문이다.

기술의 정의

기술의 정의는 단지 아름다운 사전을 만들기 위한 일이 아니다. 각개 기술을 명확히 정의함으로써 어떤 기술과 다른 기술의 경계를 나누고, 그에 따라 각 기술들이 모인 전체 지도를 제대로 그려야만 각각의 전문 분야가 뜻하는 바를 무엇인지 정확히 알 수 있다. 그 정의에 따라 학생과 연구자는 특정 기술의 전문가가 되어 해당 분야의 학문적 발전을 이루려 노력하고, 실무 현장에서는 기술 전문적 제품을 개발한다. 기술과 기술이 결합되어 성질이 다른 기술로 융합될 때도 그 새로운 기술에 새로운 이름을 붙이고 달리 정의한다. 이는 단지 연구와 생산에 한정된 일도 아니다. 소비자 또한 기술이 제대로 정의되어야만 혼탁한 시장 경쟁 와중에서 각각의 제품을 제대로 비교하고 선택하고 도입할 수 있다. 따라서 기술이 명확하게 정의되어 있지 않으면 생산에서부터 소비에 이르기까지 판 전체가 혼란에 빠진다.

기술 중에서도 특히 ICT 기술은 전체 시스템의 각 영역 그리고 계층마다 작동하는 방식이 서로 판이하여 정의 문제가 보다 복잡하다. 각 요소마다 적용되는 기술의 성격이 다르니 용어 또한 서로 다르다. 이를테면, 정보보안 제반 분야 중 가장 중요한 분야인 '웹 보안'을 보더라도 애매한 기술 정의에 따른 혼란이 심각한 지경이다. 웹 보안은 시스템 계층에 따라 크게는 L4 네트워크 계층 보안과 L7 어플리케이션 계층 보안으로 나눌 수 있는데, 이는 침입자가 각 계층마다 노리는 바 대상과 수법이 서로 완전히 다르기 때문이다. 하지만 그런 구별 없이 모두 합쳐서 대충 '웹 보안'이라고 통칭해버리기 때문에 시장이 혼탁해진다. L4 네트워크 보안 장비로 L7 어플리케이션 계층에 해당하는 웹 컨텐츠까지 모두 다 안전하게 지켜낼 수 있다는 식의 뻔한 거짓말이 사실인양 횡행하는 현실 또한 기술의 정의가 명확하지 않기 때문이다. 이는 '네트워크 패킷 보안' 그리고 '웹 어플리케이션 컨텐츠 보안' 식으로 보다 세분화되어야 한다.

그렇다면, '인증'이란 무엇인가?

일반적으로 말해 '인증'이란 어떤 정보가 어떤 자에게 유일하게 속한다는 사실을 확인하고 이를 증명하는 행위를 뜻한다. 위 '웹 보안'처럼 지나치게 광범위해서 불명확한 정의다. 그렇기 때문에 위 "OOO만 있으면 인증은 다 되나요?" 질문이 옳기도 하고 그르기도 한 것이다. 실무적으로 전혀 그렇지 않지만 기술의 정의 원론적으로 틀렸다고 하기도 애매한. 이 문제를 명쾌하게 정리하기 위해 '인증' 기술을 세분화해 보자. 임의로 만든 용어지만 크게 '인증-수단' 그리고 '인증-체계'로 나눠 볼 수 있겠다.

인증-수단

"OOO만 있으면 인증은 다 되나요?" 이 질문은 '인증'을 하기 위한 '수단'에 대한 질문으로 볼 수 있다. 세상엔 정말 많은 인증-수단이 있지만 분류해 보면 모두 다 1)지식 2)소유 3)신체 등 3가지 범주에서 크게 벗어나지 않는다.

2017-03-03-1488518396-8027252-auth_01.jpg

'1)지식'은 "내가 알고 있는 것"이다. 흔하게는 ID와 패스워드, 그리고 기존에 미리 답을 저장해 둔 질문에 답하거나 하는 식의 인증수단이다. 분실의 우려는 없지만 추정 공격에 취약해서 주로 금전거래 등 심각한 일이 일어나지 않는 1차 인증-수단으로서만 사용된다. '2)소유'는 "내가 가진 것"이다. 인증서, 보안카드, OTP 등이 여기에 해당하며, 소유물이기 때문에 도난 및 분실의 위험이 있다. 하지만 보안성이 높은 편이라 2차 인증수단으로 사용된다. '3)신체'는 지문, 음성, 홍채, 안면 형태, 심박수 등 "내 몸의 특징"이다. 보안성이 높고 분실의 위험은 매우 낮지만, 만약 저장해 둔 정보가 유출되고 나면 대체하여 인증할 수단이 없다는 단점이 있다.

사용자는 이러한 인증-수단을 이용하여 단말기를 매개체 삼아서 인증을 위한 특정한 행위를 하고 인증을 획득한다. 그 배후에서 실제로 어떤 일이 일어나든, 사용자 눈으로 보기엔 일단 그래 보인다.

2017-03-03-1488518424-8057102-auth_02.jpg

정보보안 전쟁터에서, 기존 수단은 언젠가는 방어력을 잃어 무력화되지만 뒤를 이을 새로운 수단은 늘 다시 등장한다. 그러니 언제까지나 완벽하게 안전한 인증-수단 같은 건, 애초에 없다. 방어자가 아무리 성실하더라도 공격자는 더더욱 성실하다. 그러니 제아무리 안전을 자신하는 수단도 언젠가는 위험해지고 만다. 즉, 인증-수단은 원래 늘 변하는 것이다.

하지만 새롭게 등장하는 어떤 수단도 역시 위 3가지 범주에서 크게 벗어나지 않는다. 이를테면, 개의 후각을 모방하여 식별 성공률이 85% 이상으로 높은 성질인 사람 몸의 냄새를 확인하여 인증하는 '체취 인증'은 '3)신체'에 해당한다. PC 등 단말기에서 발생하는 고유한 고주파 사운드를 스마트폰 등 다른 기기를 통해 감지하여 인증하는 '고주파 인증'은 내 소유물에 대한 확인이니 '2)소유'에 해당한다. 모바일 기기의 3D 가속도 센서를 이용해 기기를 들고 수기 서명하듯 흔들면 그 이동 패턴을 분석하여 인증하는 '인-에어 서명 인증'은 나만 아는 서명이니 '1)지식'에 속하지만 팔의 길이 등 신체 특징도 분석하니까 '3)신체'의 성격도 가진다는 식이다.

이렇듯 우리는 '인증-수단'을 이용해 인증이라는 행위를 한다. 하지만 그걸로 끝나는 일이 아니다. 단말기 뒤에서 일어나는 일, 즉 '인증-체계'가 더욱 중요하다.

인증-체계

인증-수단은 말뜻 그대로 수단일 뿐이다. 실제 인증은 '인증-체계'를 통해 일어난다.

2017-03-03-1488518455-9499391-auth_03.jpg

사용자가 일정한 인증-수단을 이용해 인증을 시도하면 사용하는 단말기와 서버 간 통신을 거쳐서 인증이 일어난다. 대부분의 기업 전산 환경에서는 업무-서버와 별도로 인증-서버를 따로 두고 인증 절차를 처리한다. 그리고 이를 위해 업무-서버에는 인증-서버와의 연동을 위한 에이전트가 설치된다. 이것이 가장 기본적인 형태의 인증-체계다.

2017-03-03-1488518484-2804276-auth_04.jpg

때로는 인증의 확실성 그리고 절차 상의 필요에 따라 보다 공적인 인증을 얻기 위해 공인인증서 발급 및 관리 등 공인인증역무를 제공하는 공인인증기관을 통해 따로 인증을 받기도 한다. 그리고 보다 확실한 인증을 위해 '지식+소유' 등 복수의 인증-수단 제시를 요구하는 '멀티-팩터' 인증이나 'PC+전화' 등 복수의 인증 채널을 통한 행위를 요구하는 '멀티-채널' 인증 등으로 방식은 보다 복잡해진다. 하지만 큰 그림을 보면 위 인증-체계의 구조에서 크게 벗어나지 않는다.

웬만한 인증-수단 제품들도 이 정도 선까지는 어느 정도의 해법을 제공한다. 그리고 실제 동작을 시연해 보이며 문제의 "OOO만 있으면 인증은 다 됩니다!" 발언을 한다. 하지만 위 그림은 시스템의 구조 이해를 위해 단순히 그린 본보기 그림에 불과할 뿐이고, 실무 현장의 시스템은 이보다 훨씬 더 복잡하다. 그 복잡성 때문에 인증-체계로부터 '엔터프라이즈 보안 인프라' 기술이 다시 분류되어 갈라져 나온다.

엔터프라이즈 보안 인프라

실무 현장에서는 일단, 업무-서버의 수가 아주 많다. 위 그림의 방식을 단순히 따를라 치면 사용자는 모든 업무-서버에 대하여 제각각 따로 인증 절차를 거쳐야 하므로 너무나 불편하다. 따라서 인증 절차를 단일화해 일괄적 처리가 가능하게 해 줘야 한다. 그것이 일반적인 'SSO(Sigle Sign-On)' 솔루션의 기능이다. 그리고 사용자마다 접근 가능한 서버 그리고 서비스가 모두 다 다르다. 어떤 서버에 접근하더라도 작업을 할 수 있는 사람과 단순히 열람만 할 수 있는 사람이 따로 있기 때문에 서버마다 권한을 관리해야 한다. 그림으로 그려 보자.

2017-03-03-1488518522-7292107-auth_05.jpg

그림만 봐도 눈이 어지러울 정도로 복잡하다. 하지만 이것도 단순화한 그림이다. 실제 현장에서는 서버의 수가 이보다 훨씬 더 많다. 엔터프라이즈급 환경에서의 업무-서버는, 이를테면 금융기관의 서버의 수는 업무 종류에 따라 80종 이상에 이른다. 물리적 서버 대수로 보자면 2~3배 이상으로 훨씬 더 많아 수백 대에 이른다. 위에서 "웬만한 인증-수단 제품들도 이 정도 선까지는 어느 정도의 해법을 제공한다"고 다소 삐딱한 뉘앙스로 말한 까닭이 바로 이것이다. 인증-체계를 단순화한 기본 환경에서의 동작은 가능할지 몰라도 시스템의 규모가 커지면 사정은 완전히 달라져 '보안 인프라' 수준으로 차원이 아예 달라지는 것이다. 만약 억지로 적용하고야 말겠다면 각 서버에 대해 각각 체계를 갖추는 작업을 따로 해 줘야 하는데 이는 바쁜 실무 현장에서 가당치도 않은 비현실적인 주장이다. 애초에 성격과 목적이 다른, 따라서 정의에서부터 아예 달라져야 하는 기술인 것이다.

제대로 된 보안 인프라는 각 사용자에 대해 인증-수단을 통해 신원을 확인하고, 단일 인증만으로 전체 서버군 접근을 허용하되, 사용자 각자의 권한에 따라 각 서버에 대한 권한을 달리 적용하고 통합적으로 관리한다. 인증 단일화 기능만을 제공하는 단순 SSO(Sigle Sign-On)에 비해 'Secure SSO'는 위 과정 전체에 걸쳐 충분한 보안성까지 유지해 주는 인증-서버다.

수단과 체계, 전투와 전쟁

시각을 달리해 인증-수단은 전투, 인증-체계는 전쟁이라고 생각해 보자. 전투의 전술은 그때그때 전황에 따라 늘 빠르게 변화한다. 무기의 약점을 적에게 들키면 다른 무기를 들어야 하고, 작전이 들키면 즉시 다른 작전을 구사해야 한다. 반면, 전쟁의 전략은 훨씬 더 큰 그림을 보는 일이다. 조급하게 일희일비 부화뇌동하지 않고 진중해야 한다. 흔히들 '전쟁영화'란 말을 쓰는데, 지금껏 전쟁영화는 단 한 편도 본 적이 없다. 모두 다 전투영화다. 전쟁영화는 만들어 봐야 재미가 없다. 전투는 뭐가 쾅쾅 터지고 때리고 부수고 시끄럽고 아주 현란하지만, 전쟁 관련된 일은 전혀 그렇지 않다. 대부분 국가 물자 생산 체계 유지하고 교역과 보급선 사수하고 인접 관계국과 외교하고 후방 인프라 시설 지키며 민간인 심리적 동요 관리하는 등 너무나 지루한, 영화로 만들자면 도대체 그림이 안 나오는 일이니까.

인증-수단은 전투처럼 요란하다. 유행도 빠르게 지나가고 하루가 멀다 하고 새로운 수단이 나타나고 화려하게 광고하다가 어느날 보면 사라져 다른 수단이 그 자리를 대신한다. 하지만 인증-체계는 요란하지 않다. 아니, 요란해서는 안 된다. 인증-체계는 ICT의 인프라다. 따라서 보다 진중한 판단이 필요하다.

그럼 다시, "OTP 카드만 있으면 인증은 뭐든 다 된다고 하던데, 정말 그런가요?" 인증-수단으로서 적절히 운용한다면 현재 시점에서는 충분히 안전한 수단이므로 옳다고 답할 수 있다. 하지만 인증-체계로서 보자면 애초에 문제의 근본으로부터 한참이나 동떨어진 질문이므로 옳다고 답할 수 없다.