NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

구글의 OTP는 어떻게 비행기 모드에서도 작동할까?

우리나라에서 2단계 인증이라고 하면 문자메시지나 카카오 인증서, 통신사 PASS앱을 떠올리는 것이 일반적이다.

 

해외에서는 구글 인증(Google Authenticator) 앱을 많이 사용한다. 구글의 앱이라고 해서 구글 서비스에만 쓸 수 있는 것은 아니고 아마존이나 페이스북, 에어비앤비 같은 서비스에 로그인할 때도 2단계 인증수단으로써 사용할 수 있다.

 

재밌는 건 구글 인증 앱은 인터넷 연결이 따로 필요 없다는 점이다. 예를 들어 노트북에서 아마존 웹사이트에 로그인하려고 하면 2단계 인증용 비밀번호를 묻는다. 이때 휴대폰에 설치된 구글 인증 앱에서 생성된 아마존용 비밀번호를 입력하면 로그인할 수 있다. 비밀번호는 비행기 모드에서도 여전히 생성된다(30초마다 바뀐다).

 

인터넷에 연결되지 않은 휴대폰에서 생성된 1회용 비밀번호가 유효한지 아닌지 어떻게 판단할 수 있을까? 복잡한 보안 알고리즘이 작동하지만 쉬운 이해를 위해 매우 단순화해서 살펴보자.

 

  1. 일단 구글 인증 앱을 휴대폰에 최초로 설치하고 서버와 연동할 때에는 인터넷에 연결되어 있어야 한다.
  2. 연동하는 과정에서 구글의 서버와 사용자의 휴대폰은 각자 시크릿 키를 나눠 갖는다. 예를 들어 시크릿 키가 4321이라면, 서버에도 4321이 저장되고 내 휴대폰에도 4321이 저장된다.
  3. 아마존 웹사이트에 로그인하는 상황. 이메일과 비밀번호를 입력한 후에는 2단계 인증용 비밀번호가 필요하다. 이때 휴대폰의 구글 인증 앱을 열면 아래와 같은 계산이 일어난다.

 

(현재 날짜는 2021년 1월 30일 오전 9시 30분 30초라고 하자)

a. 현재 날짜를 Unix Time 형식으로 변환한다. (변환 결과: 1611966630)
b. 휴대폰에 저장되어 있는 시크릿 키를 확인한다. (4321)
c. a와 b를 곱한 후, 결과 값의 뒷 6자리를 1회용 비밀번호로 사용한다.
(1611966630 * 4321 = 6965307808230)

휴대폰 화면에는 아마존용 2단계 비밀번호가 808230으로 출력되고, 내가 808230이라고 입력하면 (구글 서버도 같은 결과 값을 갖고 있기 때문에) 유효한 비밀번호라는 것을 인증받을 수 있다.

 

 

(30초가 지나, 현재 날짜가 2021년 1월 30일 오전 9시 31분 00초라고 하자)

a. 현재 날짜를 Unix Time 형식으로 변환한다. (변환 결과: 1611966660)
b. 휴대폰에 저장되어 있는 시크릿 키를 확인한다. (4321)
c. a와 b를 곱한 후, 결과 값의 뒷 6자리를 1회용 비밀번호로 사용한다.
(1611966660 * 4321 = 6965307937860)
 

이제 1회용 비밀번호는 937860이다.

 

인터넷 연결이 필요 없는 이유는 저장된 시크릿 키와 시계만 있으면 계산할 수 있기 때문이다. 시크릿 키는 처음 세팅할 때 기기 안에 저장되어 있고, 시계는 인터넷 연결이 없어도 돌아간다(단, 구글 서버와 같은 시분초를 가리키고 있어야 한다는 조건이 붙는다). 또한 비밀번호를 눈으로 확인하고 손으로 입력할 시간이 필요하기 때문에, 1초마다 비밀번호를 새로 계산하지 않고 30초마다 하는 것으로 되어있다. 참고로 은행에서 발급해주는 OTP도 비슷한 방식.

 

가장 이상적인 세팅은 이용하는 모든 서비스마다 2단계 인증을 거치는 것이다. 하지만 아직도 2단계 인증을 지원하지 않는 웹사이트나 앱들이 수두룩하며, 사용자들에게도 일반적이지 않다. 그럼 비밀번호라도 어려워야 하는데, 자신의 강아지 이름이나 연속된 숫자로 지정하는 경우가 너무나도 흔하다. 서비스 제공자의 보안을 100% 신뢰할 수는 없는 노릇이기 때문에, 패스워드 매니저와 2단계 인증은 꼭 사용하기를 권장한다.

댓글 0

맨오브피스

효율 추구에만 매달리지 않으려고 노력하는 프로덕트 매니저입니다.

엑셀 함수는 곧 사라질 운명이 아닐까?

기획

읽히는 슬랙 (업무) 메시지 쓰는 법

기획

비개발자가 코딩을 배우면 좋은 이유

기획

내 생활을 지키는 알림 설정 전략

기획

우선순위가 낮은 작업은 언제 처리해야 할까?

기획

순조로운 퇴사를 위해 해야 할 일 5가지

기획

OTT 시대의 반항아, 일본 ‘TVer’ 살펴보기

프로덕트

유튜브에서 '싫어요' 숫자가 사라졌다

프로덕트

슈퍼휴먼, 이메일에 월 30달러나 쓰는 이유는?

프로덕트

구글의 수수료 정책은 정말로 부당할까?

프로덕트

인터넷 뱅킹, Z세대에 열광하는 이유는?

프로덕트

나를 만족시킨 QR 체크인 앱은 무엇일까?

프로덕트

스포티파이, 왜 한국에서는 그저 그럴까?

프로덕트

구글의 발표는 왜 지루할까? (feat. 애플 이벤트)

프로덕트

OTT 이야기에 로쿠(Roku)가 빠질 수 없지

프로덕트

프로덕트 매니저라는 직무는 왜 생긴 것일까?

기획

디자인 커뮤니케이션 툴, 윔지컬(Whimsical) 둘러보기

디자인

영상 컨펌 협업툴 '이미지블' 살펴보기

프로덕트

테크 기업 CEO들의 하루 살펴보기

기획

구글 캘린더 100% 활용하기

프로덕트

총성 없는 전쟁, 아마존 VS 가짜 리뷰

프로덕트

애플 TV+는 잘 되고 있을까?

프로덕트

구글 스태디아는 왜 흥하지 못했을까?

프로덕트

경기지역화폐 앱 살펴보기

프로덕트

"카운트다운 시작!!!"...출시 앞둔 디즈니플러스 미리보기

프로덕트

점유율 2%의 활약, MS 빙(Bing)

프로덕트

PM 업무에 꼭 필요한 소프트 스킬 6가지

기획

업무 생산성을 높이는 IT 환경 만들기

기획

다른 나라 사람들은 어떤 앱에 돈을 쓸까?

프로덕트

아동 성착취물을 막겠다는 애플은 왜 욕먹는 걸까?

프로덕트

휴가 떠나기 전, 인수인계 확실히 하는 법

기획

구글이 직접 반도체를 만드는 게 나랑 무슨 상관일까?

개발

구독 서비스를 현명하게 사용하는 5가지 방법

기획

디지털 피규어 콜렉팅 앱, 비브(VeVe) 살펴보기

프로덕트

구글 미트가 프로그레시브 웹 앱(PWA)으로 출시된 이유

프로덕트

깃허브 코파일럿(Copilot)은 무엇이며, 왜 욕먹는 걸까?

프로덕트

원격근무의 치명적 단점 5가지

기획

구글이 안드로이드 앱 배포를 APK 대신 AAB로 바꾸는 이유

프로덕트

IT 직무 탐구: 프로덕트 매니저 vs 프로덕트 오너 (+그 외)

기획

구글 앱시트(AppSheet)로 노코드 앱 만들기

개발

이제는 운영체제도 구독이다! 윈도우 365 공개

프로덕트

즐겁고 효율적인 재택근무를 위한 7가지 기술

기획

절대 빼놓을 수 없는 크롬 확장 프로그램 7가지

프로덕트

IT 스타트업의 ­인수합병이 실무자에게 미치는 영향

기획

트위터 블루와 슈퍼 팔로우는 과연 돈 값을 할까?

프로덕트

경기도가 만든 배달 앱, 배달특급 리뷰

프로덕트

점점 맥을 닮아가네? 윈도우 11만의 특징 살펴보기

프로덕트

메시지 예약이 된다고? 슬랙의 최신 기능 5개 따라잡기

프로덕트

날씨 앱 번개가 더 리얼해졌다! iOS 15 미리 보기

프로덕트

스포티파이가 만든 클럽하우스, '그린룸' 살펴보기

프로덕트

안드로이드 12가 온다! 주요 기능 살펴보기

프로덕트

넷플릭스의 새로운 기능, 랜덤 재생 살펴보기

프로덕트

맥에서도 쓸 수 있는 마이크로소프트 엣지만의 장점

프로덕트

쉽게 읽히는 티켓 쓰는 법

기획

당근마켓은 어떻게 돈을 벌까?

프로덕트

구글 시트로 앱스토어 정보 긁어오는 방법

프로덕트

클럽하우스 인기가 뚝 떨어진 이유

프로덕트

데이터별 딱 맞는 그래프 찾기

기획

프로젝트 매니지먼트에 도움이 되는 툴들

기획

비개발자를 위한 파이썬 독학법 (하)

개발

비개발자를 위한 파이썬 독학법 (상)

개발

아웃소싱 개발이 필요한 상황은?

아웃소싱

#해시태그가 정확히 무엇인가요? 해시태그 A to Z

기획

아이디어를 체계적으로 기록하는 방법

기획

그럼에도 불구하고, 엑셀이 필요한 이유

프로덕트

소프트웨어 개발은 어떻게 이루어질까?

개발

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.