Quiz - OAuth 정의, 단점, 로그인, 토큰

이소라·2023년 8월 29일
0

Interview Questions

목록 보기
66/67

1. OAuth가 무엇인지와 왜 사용하는지를 설명해주세요.

  • OAuth는 구글, 페이스북, 트위터와 같은 다양한 플랫폼의 특정한 사용자 데이터에 접근하기 위해 제 3자 클라이언트가 사용자의 접근 권한을 위임받을 수 있는 인증 표준 프로토콜을 말합니다.

  • 기존의 클라이언트-서버 모델의 문제점

    • 기존의 클라이언트-서버 모델에서 제 3자 클라이언트가 제한된 자원에 접근하기 위해, 사용자는 제 3자 클라이언트와 자신의 자격 증명(id, password)을 공유해야 했습니다.
    • 제 3자 클라이언트가 사용자의 자격 증명(id, password)를 저장해야 했습니다.
    • 비밀번호가 가지고 있는 보안적 취약점에도 불구하고 서버는 비밀번호 인증을 지원해야 했습니다.
    • 제 3자 클라이언트는 기한이나 자원 제한 없이 사용자의 보호된 자원에 대해 전반적인 접근 권한을 얻었습니다.
  • OAuth는 클라이언트가 사용자에 의해 제어되고 리소스 서버에 의해 호스트되는 리소스에 대한 접근 권한을 요청합니다.

    • 클라이언트는 OAuth를 통해 사용자의 자격 증명(id, password)를 사용하는 대신에 access token을 얻습니다.
    • 클라이언트는 access token을 사용하여 리소스 서버에 호스트된 보호된 자원에 접근할 수 있습니다.

2. OAuth의 단점은 무엇일까요?

  • OAuth의 대표적인 취약점으로는 CSRF와 Open Redirectors가 있습니다.
    • 클라이언트의 redirect URL에 대한 CSRF 공격은 공격자가 자신의 authorization code나 access token을 삽입하여 클라이언트가 사용자가 아니라 공격지의 자원을 사용하도록 합니다. (예: 공격자의 보호된 자원에 피해자의 은행 계좌 정보를 저장함)

    • 인증 서버, 인증 endpoint, 클라이언트 redirection endpoint는 미흡하거나 변조되어 open redirector로 작동할 수 있습니다.

      • open redirector는 공격자가 익숙하고 신뢰할 만한 URI 권한 구성 요소를 사용하여 사용자를 악성 사이트로 유도하여 사용자의 Authorization code나 access token을 탈취할 수 있습니다.

3. OAuth를 이용해서 로그인을 구현한 과정을 설명해주세요.

  • 로그인 페이지에서 로그인 버튼 클릭 시 OAuth를 사용하고자 하는 플랫폼 서버의 인증 URL로 접속하게 됩니다.
    • 로그인이 안 되어 있다면, 해당 플랫폼의 로그인 창이 뜹니다.

    • 로그인이 되어 있다면, Access Token 응답이 오기까지 로그인 대기 화면으로 이동합니다.

      • 웹 서버에서 Authorization code를 통해 access token과 refresh token을 얻고 쿠키에 담아서 redirect url로 응답합니다.
    • 로그인 대기 화면에 응답값이 오면, access token을 상태관리 라이브러리의 전역 상태에 저장합니다.


4. OAuth에서 쓰이는 토큰에는 어떤 종류가 있고 각각의 역할은 무엇인가요?

  • OAuth에서는 access token과 refresh token을 사용합니다.
  • Access token을 사용하여 사용자의 보호된 자원에 접근할 수 있습니다.
  • Refresh token을 사용하여 access token을 재발급받을 수 있습니다.

참고

0개의 댓글