로그인 토큰 역사

김다은·2023년 1월 16일
2

TIL

목록 보기
9/14

https://www.okta.com/identity-101/what-is-token-based-authentication/
해석 및 정리함

역사 알아보기

초창기 로그인

인증 토큰을 사용하기 전, 그 당시 사람들은 전통적인 방법(효과적 X)으로 특정 사람들에게 접근권한을 주었다.

  • 사용자 생성
    • 누군가가 문자, 숫자, 기호의 조합을 생각해내는 방법이다
  • 메모리
    • 누군가가 사용자 생성을 통해 만들어낸 독특한 조합을 기억해내야 한다
  • 반복
    • 사용자가 접근할때마다 비밀번호를 입력해야 한다

1962년에 처음으로 문서화된 비밀번호 도난 사건 중 하나가 발생했다. 사람들은 자신의 모든 비밀번호를 기억할 수 없었다.

이 방법이 쓰이던 당시, 사람들은 자신의 비밀번호를 기억하기 위해 문서의 형태로 기록을 하였다.

사람들은 여러 곳에서 같은 비밀번호를 사용하는 경향이 있었기 때문에 암호가 하나 발견되면 많은 계정이 취약해질 수 밖에 없었다.

그 뒤로 인증 토큰이 생기면서 많은 부분이 개선되었다.

토큰 인증을 통해 보조 서비스는 서버 요청을 확인하고, 확인이 완료되면, 서버는 토큰을 발급하고 요청에 응답한다.

사용자는 여전히 하나의 암호를 기억할 수 있지만 토큰은 훔치거나 극복하기 훨씬 어려운 다른 형태의 액세스(access)를 제공한다. 그리고 세션의 기록들은 서버에서 공간을 차지하지 않는 장점이 있다.

3가지 토큰 인증 타입

  • 연결됨(Connected)
    • 키(key), 디스크(disc), 드라이브(drive) 및 기타 물리적 항목은 액세스를 위해 시스템에 연결된다.
    • USB 장치 또는 스마트 카드를 사용하여 시스템에 로그인한 적이 있는 경우 사용되는 토큰이다
  • 비접촉(Contactless)
    • 장치는 서버와 통신할 수 있을 정도로 가깝지만 연결되지 않는 경우이다.
  • 연결끊김(Disconnected)
    • 장치는 다른 장치와 전혀 접촉하지 않더라도 장거리에 걸쳐 서버와 통신이 가능하다.
    • 2단계 인증 프로세스를 위해 전화기를 사용한 적이 있는 경우 나타나는 사용되는 토큰이다.

이 세 가지 유형(type)에서 사용자는 프로세스를 시작하기 위해 암호를 입력하거나 질문에 대답해야 할 수도 있어야 한다. 그러나 이러한 예비 단계를 완벽하게 하더라도 액세스 토큰의 도움 없이는 액세스(access)를 얻을 수 없다.

간편 인증 4단계

토큰 기반 인증 시스템을 사용하면 방문자가 자격 증명을 한 번만 확인할 수 있다. 대신 사용자가 정의한 기간 동안 액세스할 수 있는 토큰을 받게 된다.

  • 요청(Request)
    • 사용자는 서버 또는 보호된 리소스(resource)에 대한 액세스를 요청한다.
    • 여기에는 암호를 사용한 로그인이나 지정한 다른 프로세스가 포함될 수 있다.
  • 확인(Verification)
    • 서버는 사용자가 권한이 있는 사람을 결정한다.
    • 여기에는 사용자 이름에 대한 암호 확인이 포함되거나 지정한 다른 프로세스가 포함될 수 있다.
  • 토큰(Tokens)
    • 서버는 링(ring), 키(key), 전화기(phone) 또는 유사한 장치와 같은 인증 장치와 통신한다.
    • 확인 후, 서버는 토큰을 발행하여 사용자에게 전달한다.
  • 저장소(Storage)
    • 토큰은 작업을 계속하는 동안 사용자의 브라우저에 저장된다.
    • 사용자가 서버의 다른 부분을 방문하려고 하면 토큰은 서버와 다시 통신하고, 토큰에 따라 액세스가 허용되거나 거부된다.

관리자는 토큰에 제한을 설정한다. 사용자가 로그아웃할 때 즉시 삭제되는 일회용 토큰을 허용할 수 있고, 지정된 기간이 끝나면 토큰이 자동으로 파괴되도록 설정할 수 있다.

JSON 웹 토큰(JWT)

이제 현상황을 반영하자면,

많은 사용자들이 휴대폰(앱)과 웹 앱을 통해 시스템에 액세스하고 있기 때문에, 개발자들은 이러한 플랫폼에 적합한 인증을 위한 안전한 방법이 필요하다.

이 문제를 해결하기 위해 많은 개발자들은 응용 프로그램의 토큰을 작업할 때 JSON 웹 토큰(JWT)으로 주목하기 시작했다.

JSON 웹 토큰(JWT)은 개방형 표준 토큰이다. 완성된 서비스는 두 당사자 간의 안전하고 안전한 통신을 가능하게 한다. 데이터는 디지털 서명으로 확인되며, HTTP를 통해 전송되는 경우 암호화를 통해 데이터를 안전하게 유지한다

profile
이제는 더이상 물러날 곳이 없다

0개의 댓글