본문 바로가기
보안

OAuth

by laoching 2022. 1. 22.
728x90
반응형

OAuth는 로그인 하려는 서비스에 google, facebook과 같은 외부 계정으로 간편하게 회원가입을 하고 서비스 이용이 가능한 기술이다.

11번가에서 사용되고 있는 OAuth 기술

로그인 하려는 서비스를 누르면 로그인 화면으로 리다이렉트 된다.

카카오 계정으로 로그인을 눌렀을 시 나오는 화면
페이스북 계정으로 로그인 시도 시 나오는 화면

'동의하고 계속하기'를 누르면 회원가입 화면이 나온다. 페이스북 계정으로 11번가에 회원가입을 하는 것인데, 원래 회원가입 할 때처럼 주민등록번호를 입력하고, 전화번호 인증을 하는 등의 번거로운 과정이 없다.

 

또 아래 사진처럼 OAuth에서는 Authentication(인증)에 Authorization(허가)까지 기능이 있기 때문에 OAuth 인증을 진행할 때 접근 권한 요청을 한다.

회원가입을 하는 화면이 나옴

위의 사진에서 필수 항목에만 동의를 하면 바로 회원가입 처리가 된다. 

이처럼 OAuth는 사용자의 편의성을 위해 등장한 기술이다. 기술이 발전하면서 서비스들이 많이 등장하고 사용자가 관리해야 할 계정의 숫자가 매우매우 많이 늘어났다.

서비스를 이용하기 위해 회원가입을 할 경우에 번거로운 과정 없이 이미 가입되어 있는 계정을 이용해 가입이 가능하기 때문에 사용자 입장에서는 관리해야 할 계정의 수도 늘어나지 않고 간편하게 추가적인 서비스를 이용할 수 있어 매우 편리하다.

하지만 원래 존재하던 회원가입 절차를 거쳐 생성된 계정과의 차이점은 분명히 존재한다.

아래 사진을 보면 '소셜미인증회원'이라는 문구를 볼 수 있는데, OAuth를 통해 가입을 할 경우에는 전화번호 인증 등 내가 누군지 인증을 하지 않았기 때문에 제한적인 기능만 이용이 가능하다.

OAuth를 통해 생성된 계정은 서비스의 제한된 기능만 이용이 가능하다.

OAuth는 보안에도 좋다.

OAuth는 편리함에 초점이 맞춰져서 생겨난 기술이지만, 표준이 된 만큼 보안에도 많은 신경을 쓴 것 같다.

네이버에서 구글 캘린더를 연동하는 경우를 예로 들어보겠다.

 

먼저 OAuth가 없는 경우다.

네이버에서 구글 로그인을 위한 id/pw를 요구함
네이버는 계정을 받아 구글에 로그인하여 캘린더 정보를 요구
구글은 네이버에게 캘린더 정보를 전달함
네이버는 받은 캘린더 정보를 연동함

사용자는 네이버에 구글 계정 정보를 전달하고, 네이버는 받은 정보로 구글에 사용자 대신 로그인한다.

그렇기 때문에 네이버가 털리면 완전 다른 서비스인 구글 계정 정보도 털릴 수 있다는 것이다.

 

다음은 OAuth를 이용하는 경우다.

네이버는 사용자에게 구글 캘린더 접근을 위한 권한을 요구 
사용자는 구글에 로그인하고 네이버에 캘린더 정보를 주라고 요청
네이버는 구글에게 캘린더 접근을 허용하는 권한을 받음
네이버는 구글에게 받은 권한을 통해 구글의 캘린더 정보를 요청
구글은 네이버의 권한을 확인하고 캘린더 정보를 네이버에게 전달함
네이버는 받은 캘린더 정보를 연동함

OAuth를 이용하면 사용자는 네이버에 구글 계정 정보를 전달하지 않는다.

네이버가 털려도 사용자의 구글 계정은 안전하다는 말이다. 

 

 

아래 링크는 OAuth의 보안에 대한 내용을 아주 잘 정리해놓은 글이다.

 

OAuth 2.0 대표 취약점과 보안 고려 사항 알아보기 : NHN Cloud Meetup (toast.com)

 

OAuth 2.0 대표 취약점과 보안 고려 사항 알아보기 : NHN Cloud Meetup

OAuth 2.0 대표 취약점과 보안 고려 사항 알아보기

meetup.toast.com

 

728x90
반응형

'보안' 카테고리의 다른 글

보안기사 실기 정리  (0) 2023.07.19
FIDO (Fast IDentity Online)  (0) 2022.01.24

댓글