2013년 6월 10일 월요일

2단계 인증(2-factor authentication)의 이해

요즘 세상에서 패스워드 하나만으로는 보안이 상당히 취약하다고 볼 수 있습니다. 그래서 최근에는 2-Factor 인증을 도입하는 사이트가 늘어나고 있는 추세라고 하죠(여러 해킹사고 여파도 있고..). 이에 2중요소 인증(또는 2단계 인증)에 대한 내용을 좀 정리해 볼까 합니다.

▲ Evernote의 2단계 인증(SMS인증)

2-factor authentication 이란?

2-Factor Authentication(TFA, T-FA 또는 2FA라고도 함)은 2가지 또는 3가지 이상의 요소를 조합하여 인증하는 것을 의미합니다. 다른 말로는 Multi-Factor authentication이라 부르기도 하죠. 보통 우리말로는 "2단계 인증"이라고 합니다.

인증을 하기 위해서 여러가지 요소를 조합할 수록 거짓인증에 대한 위험도는 감소 됩니다. 이를 위한 2단계 인증인 것이지요. 물론 여기서의 인증 요소는 아무거나 될 수 있는 것은 아닙니다. 나름대로 표준화된 3가지의 요소 즉 Factor들이 존재하거든요.

  • Knowledge Factor(사용자가 알고 있는 것)
  • Possession Factor(사용자가 소유하고 있는 것)
  • Inherence Factor(사용자 고유의 것)

2단계 인증을 이해하기 쉬운 예는 바로 ATM기를 이용할 때입니다. 우리는 ATM기기 앞에서 카드를 넣고(Possession Factor), 4자리의 PIN 번호를(Knowledge Factor) 입력하여 서비스를 이용하죠.

▲ ATM 은 카드와 PIN번호의 2가지 요소를 사용합니다

2단계 인증은 서로 다른 종류의 요소들을 사용하여야만 합니다. 처음에 패스워드를 물어보고 두번째로 전화번호나 생년월일을 입력받는다고 하면 2단계 인증이라 볼 수 없습니다. 왜냐하면 인증에 knowledge factor만을 사용하였기 때문이죠. 강한 인증(Strong Authentication)과 2단계 인증은 분명히 다릅니다.

Knowledge Factor(알고 있는 것)

Knowledge factor는 우리들이 아주 흔히 사용하는 것으로 다음과 같은 것들이 있습니다.

- 비밀번호(Password) : 문자, 숫자, 특수문자 등의 조합으로 가장 많이 쓰이는 factor
- PIN(Personal Identification Number) : ATM기기 등에서 쓰이는 숫자 조합의 번호
- 패턴(Pattern) : 안드로이드폰에서 많이 쓰이죠

▲ 가장 흔한 knowledge factor인 패스워드

Possession Factor(가지고 있는 것)

Possession factor. 잘 감이 안오지만 사실 굉장히 오래전부터 사용되어져온 factor입니다. 바로 열쇠로 자물쇠를 여는 경우죠. 본인이 소유한 열쇠(possession factor)로 문을 여는 것은 알게 모르게 지속적으로 쓰여져 온 인증방식입니다.

▲ 열쇠와 자물쇠는 Possession factor의 좋은 예

Possession factor는 사실 공격 당하기 굉장히 쉬운 요소 중에 하나입니다. 아무래도 물리적인 요소이다 보니 위험에 많이 노출된다고 볼 수 있죠. 열쇠없이 자물쇠를 연다던가(SQL Injection) 열쇠를 훔치거나 복사본을 뜰 수도 있고, 가짜 자물쇠에 열쇠를 넣게 한 다음 그 열쇠 복사본으로 진짜 자물쇠를 열 수도 있는 거죠(중간자 공격 man in middle attack). 따라서 이 요소에 해당하는 것들은 정말 철저히 안전하게 관리해야 합니다.

여기에 해당하는 것들은 다음과 같은 것들이 존재합니다.

- Tokens : 금융권에서 많이 쓰이는 OTP Token 아시죠?
- 스마트카드 : 카드 한장으로 출입도 하고 계산도 하고.. (카드만 있다면 도용 가능?)
- 신용카드, 체크카드
- 마그네틱 열쇠 : 요즘 집의 자물쇠는 별도의 마그네틱 키도 흔히 제공됩니다.

종종 휴대폰으로 SMS를 통한 일회성 패스워드(OTP)를 받아서 인증하는 경우도 있는데요. 이 경우는 본인이 소유한 휴대폰이 바로 Possession factor가 됩니다.

Inherence Factor(사용자 고유의 요소)

Inherence factor는 사용자 고유의 무언가로 인증이 가능한 요소입니다. 과연 뭐가 있을까요? 누구나 자신만의 것으로 가지고 있는 것! 단적인 예가 바로 지문입니다. 본인의 생체 정보에 해당하는 무엇도 inherence factor가 될 수 있습니다. 가끔 일부 노트북을 보면 지문인식 기능이 들어가 있는 경우가 있는데, 이게 바로 inherence factor를 이용한 인증입니다.

▲ inherence factor인 지문인식 

영화에서 보면 나오는 홍채인식 같은 경우도 이러한 factor를 이용한 인증에 속합니다. 이러한 인증방식은 깨기도 무척 어렵지만, 그만큼 기술적으로 비용도 많이 든다고 볼 수 있어요.

쓰여지는 곳

현재 2단계 인증은 꽤 여러 사이트에서 쓰여지고 있습니다. 국내의 경우는 기존 금융권에서 이미 특정 서비스를 위해 OTP가 사용되고 있었구요. 이게 점차 서비스 범위를 확대하는 추세입니다. 요즘 말도 많고 탈도 많은 공인인증서도 2-Factor 인증에 속하구요(인증서 파일 - possession factor, 인증서 암호 - knowledge factor). 해외 서비스의 경우는 이번 Evernote(pro만 가능)를 포함해서 Dropbox, Google, Twitter등이 2단계 인증을 사용 가능합니다.

보통 2단계 인증은 선택사항인 경우가 많습니다. 이것을 강제화하면 아무래도 더욱 안전하겠지만, 아무래도 사용자 입장에서 불편이 심해지겠죠. 그래서 일단 장치를 마련해 두고 사용자에게 선택권을 넘기는 겁니다. 하지만 장치가 마련되어 있다면 안전을 위해서라도 사용을 해보는 것이 좋지 않을까요? 어차피 선택은 사용자의 몫이니까요.



덧) 사실 개인적으로 2-factor authentication은 2중요소 인증이라 표현하는게 맞을 거 같은데, 대개는 2단계 인증 즉 Two-step verification이라고 표현합니다. 아무래도 각 factor를 사용한 인증이 두 단계로 나누어져 이루어지기 때문인 것 같습니다.

참조링크
http://en.wikipedia.org/wiki/Multi-factor_authentication
http://evernote-ko.tumblr.com/post/51782934128/evernote-3
https://www.dropbox.com/help/363/ko

댓글 없음: