증상

Invalid barcode

The barcode [URL] is not a valid authentication token barcode
 

구글 Authentication 앱을 사용해서 MFA 시스템을 구축하였는데 안드로이드에선 잘 작동하지만 IOS 아이폰에선 작동하지 않는 현상이 발생하였다.

 

다요소 인증 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. RSA SecurID 토큰. 어디에도 연결되지 않은 토큰 생성기의 예. 다요소 인증(多要素認證, Multi-factor authentication, MFA)은 적어도 다음 분류 중 두 가지에 한해 별도의 여

ko.wikipedia.org

 

원인

구글 Authentication은 TOTP 를 구현하여 작동한다. 해당 알고리즘에서 키값을 암호화 하는데 BASE32 인코딩을 사용하였는데, 인코딩 된 결과값이 자리수를 맞추기 위해 더해지는 패딩문자 '='가 IOS에서 인식하지 못하여 발생하는 문제였다.

 

시간 기반 일회용 비밀번호 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 시간 기반 일회용 비밀번호(Time-based one-time password, TOTP)는 현재 시간을 고유성의 원천으로 사용하여 일회용 비밀번호 (OTP)를 생성하는 컴퓨터 알고리즘이다. HMAC

ko.wikipedia.org

 

해결책

처음에는 URL 인코딩을 처리하면 해결될 줄 알았는데, 여전히 같은 에러가 발생하였다.

테스트를 진행하다 보니 패딩된 문자 '='는 복호화시 제거하여도 같은 값을 돌려주는 무의미한 문자여서 제거하고 테스트하였더니 아이폰에서도 정상작동하였다.

+ Recent posts