Phone Number Verification API를 사용하여 사용자의 이동통신사에서 피싱 방지 방식으로 전화번호 인증을 가져옵니다. SMS를 통해 전송되는 일회용 비밀번호 (OTP)를 사용하지 않는 더 빠르고 안전하며 비용 효율적인 인증 방법입니다.
개요
기존 전화 인증은 SMS 기반 일회용 비밀번호(OTP)에 크게 의존합니다. SMS 인증은 사용자 불편과 전송 지연을 유발합니다. 또한 SIM 스와핑이나 가로채기에 취약하며 상당한 통신 요금이 발생합니다.
Android의 전화번호 인증 API는 디지털 사용자 인증 정보를 활용하여 이러한 문제를 해결합니다. 앱은 SMS를 전송하는 대신 Android의 인증 관리자를 통해 디지털 토큰을 직접 요청합니다. 사용자가 이 토큰을 공유하는 데 동의하면 앱 백엔드는 이 토큰을 셀룰러 애그리게이터 또는 이동통신사와 교환하여 인증된 전화번호를 가져옵니다.
인증된 전화번호 검색 흐름
인증된 전화번호를 가져오려면 다음 단계를 따르세요.
- 앱이 디지털 인증서 API에 전화번호를 요청합니다.
- 전화번호 공유를 확인하는 인증 관리자 하단 시트가 표시됩니다.
- API는 SIM 카드를 인증하여 사용자의 이동통신사에서 암호화된 TS.43 토큰을 가져옵니다.
- 인증 관리자는 토큰을 앱과 공유합니다. 앱은 토큰을 앱 서버로 전송하고, 앱 서버는 토큰을 애그리게이터 또는 이동통신사 엔드포인트와 교환합니다. 이때 전화 요금도 청구됩니다.
- 애그리게이터 또는 이동통신사가 인증된 전화번호를 앱에 반환합니다.
주요 이점
이 API는 다음과 같은 여러 이점을 제공합니다.
- 인증 비용 절감 - 앱에 도달하는 인증에 대해서만 비용을 지불하므로 전송 비용이 절감됩니다.
- 더 안전하고 간소화된 사용자 환경 - 사용자는 앱 외부에서 SMS OTP를 보는 대신 탭 한 번으로 시스템 하단 시트 메시지를 승인합니다. 이렇게 하면 SMS 피싱 가능성도 사라집니다.
- 전환율 증가: SMS 전송 실패 및 지연은 이탈의 주요 원인입니다. 직접 이동통신사 인증은 SMS 전송을 완전히 우회하므로 완료율이 높아집니다.
- ID 보증: Android 지원 기기에서 활성화된 실제 물리적 SIM/eSIM을 확인하여 ID가 활성 이동통신사 가입에 직접 연결되어 있는지 확인합니다.
보안 및 개인 정보 보호
Android의 휴대전화 인증 기능은 개방형 표준과 하드웨어 기반의 암호화 보안을 기반으로 합니다.
주요 보안 표준:
- GSMA TS.43 표준: ID 어설션 및 토큰 생성을 위한 표준화된 이동통신사 프로토콜입니다.
- SD-JWT VC (선택적 공개 JWT 검증 가능한 사용자 인증 정보): 조작 방지 사용자 인증 정보 무결성과 선택적 데이터 공개를 보장합니다.
- OpenID4VP 프로토콜: 확인 가능한 사용자 인증 정보를 요청하기 위한 업계 표준 사양입니다.
암호화 nonce 및 키 결합
각 확인 요청에는 서버에서 생성된 nonce와 키 결합 서명이 포함됩니다. 이러한 요소는 재전송 공격, 중간자 (PiTM) 조작, 사용자 인증 정보 스푸핑을 방지합니다.
엔드 투 엔드 암호화
Android 전화 통신은 클라이언트 앱에 반환된 TS.43 토큰을 암호화합니다. 승인된 애그리게이터 또는 이동통신사 엔드포인트만 이를 복호화할 수 있으므로 시스템이 전송 중에 원시 사용자 인증 정보를 노출하지 않습니다.
투명한 사용자 동의
Android는 앱에 데이터가 전송되기 전에 사용자에게 공유되는 ID 정보를 정확하게 알려주는 인증 관리자 하단 시트를 표시합니다.
다음 단계
앱에 이 기능을 구현하려면 구현 가이드를 참고하세요.