OTP(One-Time Password) 카드는 내부에 배터리가 없지만, 고유한 방식으로 번호를 생성할 수 있습니다. 주로 두 가지 방식으로 작동합니다.
첫째, 시간 기반 방식(TOTP)입니다. 이 방식에서는 카드 내부의 시계와 미리 설정된 알고리즘을 사용하여 일정 시간마다 새로운 비밀번호를 생성합니다. 서버와 클라이언트는 같은 시간 기준으로 동기화되어 있어, 카드가 생성한 OTP를 서버에서 유효하게 검증할 수 있습니다.
둘째, 이벤트 기반 방식(HOTP)입니다. 사용자가 버튼을 누를 때마다 내부 카운터가 증가하고, 이 카운터 값과 알고리즘을 통해 새로운 OTP를 생성합니다. 서버도 동일한 알고리즘과 초기 시드(seed)를 가지고 있어, 사용자가 생성한 OTP를 검증할 수 있습니다.
이러한 원리 덕분에 OTP 카드는 외부와 통신하지 않고도 유효한 일회용 비밀번호를 생성할 수 있으며, 초기 설정된 시드와 알고리즘이 카드와 서버에 일치하기 때문에 보안성이 높습니다.