SMS 인증이란 무엇이며, 과연 안전한가요?

SMS 인증은 일명 SMS 기반 이중 요소 인증(2FA) 또는 SMS 일회성 비밀번호(OTP, One-Time Password)라고 불립니다. 이는 사용자가 텍스트 메시지를 통해 전송되는 코드를 사용해 자신의 아이덴티티를 확인할 수 있는 방법입니다. 이중 요소 인증의 형태를 띠기 때문에 종종 네트워크, 시스템 또는 애플리케이션에 액세스할 수 있는 2차 검증자의 역할을 하는 동시에 보안을 효과적으로 강화할 수 있는 첫 단계이기도 합니다. 

하지만 안전할 것이라는 인식과는 달리, SMS 인증은 보안이 취약한 것으로 밝혀졌습니다. 그렇다면 그 이유는 무엇인지, SMS 인증의 원리와 장단점에 대해 알아보겠습니다.

SMS 인증의 원리

SMS 인증 형태는 실제로 간단합니다. 사용자가 로그인하면 SMS 인증 코드가 포함된 텍스트 메시지를 수신합니다. 그런 다음 수신된 코드를 해당 앱 또는 웹사이트에 입력하여 액세스하면 됩니다. Amazon, Facebook, Google, Twitter 등의 서비스에 로그인하면서 이러한 경험을 아마 해보셨을 것입니다.

SMS 인증은 소유 기반 요소이기 때문에 사용자가 소유하는 디바이스(휴대전화 등)를 기준으로 사용자의 아이덴티티를 확인합니다. 이러한 디바이스를 통해 로그인에 대한 보안 계층이 하나 더 추가됩니다. 따라서 이론적으로 위협 행위자가 계정에 무단으로 액세스하려면 사용자의 비밀번호는 물론이고 휴대전화까지 탈취해야 합니다.

SMS 인증의 특징 및 장점

SMS 인증을 피하는 것이 좋다고 하지만 사람들과 기업이 이를 계속 사용하는 데는 몇 가지 이유가 있습니다.

  • 비밀번호 하나만 사용하는 것보다 안전하기 때문에: 비밀번호는 사용자가 잊어버리거나, 여러 계정에서 재사용하거나, 잘못된 보관 습관(쪽지에 적어 놓는 등)으로 인해 도난당할 수 있기 때문에 본질적으로 취약합니다. SMS 인증을 사용하면 비밀번호에 대한 의존도를 최소화할 수 있으며 위협 행위자는 로그인 정보를 탈취하거나 계정을 해킹하기가 더욱 어려워집니다. 
  • 편리하기 때문에: 사용자가 비밀번호를 재사용하는 이유는 만들어서 관리하는 온라인 계정이 너무 많기 때문입니다. 설문조사 결과에 따르면 사람들이 매일 기억해야 하는 비밀번호가 10개에 달한다고 합니다. SMS 인증은 고유한 코드를 사용자에게 직접 전송하기 때문에 이러한 번거로움이 없습니다. 사용자는 웹사이트나 앱에 이 코드를 입력하여 아이덴티티를 쉽게 확인할 수 있습니다.
  • 2FA가 없는 것보다는 강력하기 때문에: 정보를 두 가지 이상 사용하여 아이덴티티를 검증하면 단일 요소를 사용할 때보다 더욱 강화된 보안을 유지할 수 있습니다. 따라서 SMS 인증이 안전한 대안이 될 수 있습니다.

SMS 인증의 단점

사용이 쉽고 편리하다는 장점에도 불구하고 SMS 인증 사용을 기피하게 만드는 단점이 있기 때문에 기업, 직원 및 고객 데이터를 보호하기에 충분한지 살펴봐야 합니다. SMS 인증의 단점은 다음과 같습니다. 

  • SIM 스와핑: 개인 휴대전화로 인증 코드가 전송되면 안전할 것처럼 보이지만 위협 행위자들은 SMS 메시지를 가로챌 방법을 찾아냈습니다. 예를 들어 이동통신 사업자에게 연락한 후 SSN(혹은 주민 등록 번호) 같이 지금까지 수집한 표적 대상의 개인 정보를 사용해 다른 휴대전화로 번호 이동을 요청합니다. 그러면 해당 휴대 전화로 전송된 SMS 인증 코드를 알아낼 수 있습니다.
  • SIM 해킹: SIM 해킹을 비롯한 기타 SMS 또는 텍스트 메시지 가로채기 공격 역시 위험합니다. 가령, 위협 행위자가 휴대전화 기지국 신호와 SS7 시스템(데이터 로밍에 사용됨)을 스푸핑하여 비공개 메시지에 포함된 정보를 탈취할 수 있습니다.
  • 분실 후 동기화된 디바이스: 디바이스 분실 및 도난 비율을 감안했을 때 SMS 인증에 의존하는 것은 위험합니다. 더욱이 이러한 디바이스를 사용해 소셜 미디어 계정이나 은행 앱에 로그인할 경우 위험은 더욱 커집니다. 동기화된 디바이스 역시 위협 행위자에게 악용될 수 있습니다. 다수의 스마트폰, 노트북, 태블릿 및 웨어러블 기기에서 텍스트 메시지를 비롯한 기타 데이터에 액세스할 수 있기 때문입니다. 
  • 온라인 계정 탈취: 대부분의 모바일 서비스 제공업체들은 사용자에게 웹 포털에서 온라인 계정을 통해 텍스트 메시지를 볼 수 있도록 허용하고 있습니다. 이때 신뢰할 수 있는 2차 요소의 부재로 인해 계정의 안전이 보장되지 않는다면 위협 행위자가 계정에 액세스하여 SMS 인증 코드 유무를 모니터링할 수 있습니다.
  • 사회적 공학 공격: 오늘날 피싱과 같은 사회적 공학 공격은 데스크톱이나 노트북 컴퓨터에 못지 않게 모바일 디바이스에서 확산되고 있습니다. 특히 위협 행위자가 표적을 설득하여 SMS 코드를 포함해 무단 액세스 권한을 얻는 데 사용할 수 있는 개인 정보와 비밀번호를 입수할 목적으로 신뢰할 만한 회사를 사칭할 때 발생합니다.
  • 상대적으로 높은 비용: 위에서 언급한 보안 위험 외에도 기업은 SMS 인증을 구현할 때 소요되는 비용까지 고려해야 합니다. 비용은 제공업체에 따라 천차만별이지만 전송되는 SMS 메시지의 양에 따라서도 바뀔 수 있습니다. 게다가 취약한 SMS 인증으로 인해 공격을 받는다면 엄청난 비용을 초래할 수 있습니다. 

그렇다면 SMS 인증은 안전한가요?

이 모든 SMS 공격과 보안 문제를 고려했을 때 날이 갈수록 해커의 공격이 지능적으로 바뀌고 있는 것은 분명합니다. 이제는 적은 양의 정보라고 해도 휴대전화를 하이재킹하거나, 사용자 아이덴티티를 스푸핑하거나, 계정에 액세스하는 데 사용될 수 있습니다. 따라서 안전을 묻는다면 이렇게 대답하겠습니다. "아니요, SMS 인증은 전혀 안전하지 않습니다." 실제로 미국 국립표준기술연구소(NIST)는 2016년에 SMS 인증 사용에 대해 반대 의견을 공식 표명했습니다. 이후로 발언을 바꾸기는 했지만 SMS 인증에서 발생하는 취약점은 여전히 무섭습니다.

그럼에도 불구하고 SMS 기반의 2FA가 여전히 인기 있는 이유

위에서 간략히 언급한 SMS 보안 위험들은 공개 토론 자리에서 오랜 기간 다뤄온 주제입니다. 그럼에도 불구하고 SMS 기반 2FA는 여전히 많은 기업에서 널리 사용되고 있습니다. 이유가 무엇일까요?

SMS 인증은 초보자가 쉽게 배포하여 사용할 수 있는 방법입니다. 또한 고객이나 직원 모두 Slack에 로그인하든, 돈을 송금하든, 게임을 플레이하든 상관없이 SMS 인증을 사용해 다양한 애플리케이션에 액세스하는 데 점차 익숙해졌습니다. 엔드 유저들은 빠르고 원활한 인증 경험을 원하기 때문에 보안 위험을 간과한 채 SMS를 완벽한 솔루션이라고 생각하고 맙니다.

이에 따라 기업들이 SMS 인증에서 벗어나려면 마찬가지로 쉽게 사용할 수 있는 대체 솔루션이 필요합니다.

SMS 인증을 대체할 수 있는 솔루션

인증 환경을 전혀 구축하지 않는 것보다는 SMS OTP 솔루션을 사용하는 편이 낫습니다. 하지만 기업 데이터와 사용자를 보다 안전하게 보호할 수 있는 옵션이 있습니다.

yPt 3gtSAPDyMR9Npfg6kdBfFQ1MlPWGqUQ3ipQG5Dm8u11 D HH0EZoJ27Dp3iZHS 1i1khKf2E45SgqSUX 4xCIj1tVMlfOcCLTfqJcdLAbszt3WyAe5Wnivu59HH0paC3 9wg

FIDO2(WebAuthn)

FIDO2는 사용자 인증을 간소화하는 동시에 강화할 수 있는 표준입니다. 공개 키 암호화를 사용해 피싱 공격을 차단하기 때문에 유일하게 피싱을 방지할 수 있는 요소입니다. 여기에 더하여 World Wide Web 컨소시엄은 2019년에 FIDO2를 비밀번호 없이 로그인할 수 있는 새로운 웹 표준으로 선정했습니다. 

현재 사용 중인 FIDO2를 예로 들자면 Windows 10 기반의 Windows Hello, MacBook 기반의 TouchID, Android 기반의 Fingerprint 같은 온-디바이스 인증자를 비롯해 Yubikey, Feitian BioPass 같은 오프-디바이스 인증자가 있습니다. 이러한 기능들은 보안을 강화할 뿐만 아니라 사용자의 로그인 경험을 개선하는 효과도 있습니다. 예를 들어 비밀번호가 필요 없는 인증은 보안 질문에 답변하는 방식에 비해 계정과 서비스에 보다 쉽고 빠르게 액세스할 수 있는 방법입니다.

모바일 인증자 앱

Okta Verify, Google Authenticator와 같은 모바일 인증자 앱은 실행 방식이 SMS 인증과 비슷합니다. 사용자가 자신의 사용자 이름과 비밀번호를 입력해 사이트나 앱에 로그인하면 다음 중 하나가 발생할 수 있습니다. 먼저 인증자 앱이 해당 서비스에 액세스할 수 있는 OTP를 생성하거나, 혹은 사용자에게 푸시 알림을 전송하여 로그인 요청을 승인하거나 거부하라고 요청합니다.

이러한 툴은 이동통신 서비스를 이용하지 않기 때문에 SMS보다 더 안전합니다. 또한 인증자 앱에서 생성되는 코드는 몇 분이 지나면 만료되므로 위에서 언급한 몇 가지 위험들이 해소됩니다.

SMS 인증을 넘어서

SMS를 인증 요소에서 배제하기란 말처럼 그렇게 쉽지 않습니다. 문제는 사용자가 더욱 안전한 대체 솔루션에 적응할 수 있어야 할 뿐만 아니라 최대한 원활한 인증 경험을 제공해야 한다는 데 있습니다. 스마트폰의 경우 대부분 지문과 같은 생체인식 요소를 손쉽게 확인할 수 있습니다. 또한 FIDO2는 사용자에게 인증 요소를 두 가지 이상 등록하도록 허용하고 있기 때문에 사용자가 비밀번호 없이도 필요한 애플리케이션과 시스템에 여러 가지 방법으로 액세스할 수 있습니다.

사이버 공격의 횟수가 늘고, 지능적으로 바뀌면서 이제는 기업들도 보안 역량을 더욱 높여야 합니다. 이 말은 비밀번호 사용에 집착하지 말고 공격자가 사용자 자격증명을 탈취하거나 데이터와 리소스에 무단으로 액세스하지 못하게 만드는 강력한 솔루션을 배포해야 한다는 것을 의미합니다. SMS 인증이 적절한 조치이기는 하지만 마찬가지로 엔드 유저에게 직관적이면서 더욱 안전한 요소들도 있습니다.

다양한 인증 요소와 각 요소의 장단점에 대한 자세한 내용은 Factor Assurance 데이터시트를 참조하십시오.