OTP란 무엇일까?

김민준·2024년 1월 28일
0

Git Hub 2FA라는 것을 해봤다.
OTP란 무엇일까?
OTP
2FA
HOTP
TOTP
Window Size

공부하며 느낀 점
참조한 페이지

Git Hub 2FA라는 것을 해봤다.

깃 허브 비번을 틀려서 새로 발급 받으니 2FA라는 것을 활성화 하라고 했다.

뭔가 싶어서 해보니 스마트 폰으로 QR코드를 찍고, 폰에 깔려 있는 인증앱(구글/삼성 등...)을 통해서 OTP를 만드는 개념이었다.

이미 깔린 인증 앱이 있다면 QR코드 스캔 하나면 가입이 가능한 간단한 인증 방식이었다.

OTP만으로 사용하는 것이 아니라 Discord(문자/음성 채팅 앱)처럼 1회용 2차 비밀번호들을 발급해줬는데, 위와같이 비밀번호를 바꿀때 사용한다.

로그인을 할 때는 OTP방식을 사용한다.

OTP란 무엇일까?

그럼 위와같은 OTP란 무엇이고 어떻게 작동할까?
내가 알기로는

  1. 클라이언트와 서버가 시드를 공유한다.
  2. 그 시드를 바탕으로 일정한 규칙을 가지고 임시 비밀번호가 생성된다.
  3. 시드키가 같다면 추가 통신이 없어도 같은 시간에 같은 비밀번호를 가지게 된다.
  4. 해당 시간 직전이나 직후의 비밀번호가 와도 OK

이렇게 알고 있는데 실제로 이것이 맞을지? 그리고 얼마나 안전한 방법일지 알아보자.

OTP

One Time Password

특징

  • 한번만 사용 가능한 일회용 암호이다.
  • 단일 트랜잭션이나 로그인 세션에서 사용된다.
  • 한 번 사용되면 폐기된다.
  • 비밀 키와 이동 요소(Moving Factor)로 만들어진다.

생성 및 전달

  • OTP앱과 인증서버가 비밀키(Secret Key)를 공유한다.
  • 비밀키와 이동요소를 기반으로 1회용 비밀번호가 생성된다.
  • 전용 앱, SMS, 이메일등으로 전송된다.
  • 위의 과정이 앱이 아닌 전용 하드웨어(보안카드)에서 일어나기도 한다.

장점

  • 공격자의 암호 재활용 방지 : 한 번 사용된 암호는 비활성화 되기 때문에 공격자가 암호를 탈취하여도 사용할 수 없다.

단점

  • 단말의 분실/고장시 사용이 불가능하다.

2FA

2 Factor Authentication
인증에 두가지 신원확인을 요구하는 방식

  • 비밀번호
  • 단말기(인증 앱이 깔린 스마트폰 등)
  • 사용자의 생체정보(지문, 홍채인식 등)
  • 인증요소가 많아지면 MFA라고 부른다.

HOTP

HMAC-based One-Time Password

  • 인증 시도 횟수를 이동 요소로 OTP를 만든다.
  • HOTP를 요청하고 검증할때마다 횟수를 기반으로 이동 요소가 증가한다.

TOTP

Time-based One-Time Password

  • 현재시간을 이동요소로 OTP를 만든다.
  • 시간은 30초 또는 60초로 사용하는 것이 일반적이다.
  • 오프라인에서 사용이 가능하다.
  • 일부 HOTP는 TOTP의 요소를 추가하였다.

Window Size

OTP의 유효기간이다.

  • TOTP에서의 윈도우 사이즈는 1당 30초
  • HOPT에서의 윈도우 사이즈는 count1이다.
  • 낮을수록 보안상 유리하다.
  • 높을수록 사용자가 편하다.

공부하며 느낀 점

  • 굳이 한 번 더 알아보자
    • 알고 있던것과 크게 다르지 않지만 디테일을 더 잘알게되었다. 이미 알고 있는(또는 알고 있다고 생각하는) 것을 조사하는 것도 좋은 것같다.
    1. OTP는 종류가 하나인줄 알았는데 크게 두가지 종류가 있다.
    2. 옛날에는 OTP를 전용 단말로 사용했다.
  • 검색 키워드를 잘 기억해야한다.
    • otp는 시간이 약간 안맞아도 된다는 말이 진짜인지 궁금했었는데 찾는데 생각보다 오래걸렸다.
      예전에 읽었던 글을 저장안한데다가 키워드도 기억하지 못했기 때문이다. 하지만 구글의 문서를 보고 OTP를 만드는 블로그 게시글을 발견했고 간접적으로나마 사실임을 알게 되었다.

참조한 페이지

one-time password

One Time Password (OTP, TOTP) : definition, examples

What Is Two-Factor Authentication (2FA)? How It Works and Example

What’s the Difference Between OTP, TOTP and HOTP?

What is a Time-based One-time Password (TOTP)?

OTP not getting delivered? OTP getting delayed? Here's a hack

Google Authenticator(OTP)를 이용한 SSH 2차 인증

OTP(One-Time Password) 장점 및 단점, 방식에 다른 차이점

profile
node 개발자

0개의 댓글

관련 채용 정보