나의 기록, 현진록

OAuth 프로토콜 본문

-Computer Theory/Network

OAuth 프로토콜

guswlsdk 2018. 6. 16. 00:55
반응형

OAuth의 활용

 요즈음 다양한 웹 사이트에서는 현재의 웹 사이트에서 사용자에 대한 인증을 요구할 때, 외부 서버에서 이미 인증되어 있는 정보를 전달받아 현재 웹 서버에 인증을 하는 방식을 지원하고 있다. 이 때 사용되는 프로토콜이 OAuth프로토콜이며, 이러한 방식은 사용자에게 웹 사이트마다 인증을 해야 하는 불편한 작업을 줄여 보다 편리한 웹 서비스를 제공한다. 



 이처럼 OAuth 프로토콜은 클라이언트 웹 서비스에게 리소스 서버의 계정 정보를 공유하지 않고, 리소스 서버의 사용자 자원에 접근할 수 있도록 접근 권한을 인가할 수 있게 하는 표준이며, 서버가 클라이언트를 인증하기 위한 외부 서비스 API에 안전하게 접근하기 위한 OAuth 프로토콜은 IETF(Internet Engineering Task Force)에서 논의되고 있다.



OAuth 2.0 인증 방식


 현재 가장 많이 사용되고 있는 OAuth 2.0의 권한 승인 과정은 6단계로 나누어져 있다.



 OAuth 2.0의 권한 승인 과정은 Client(클라이언트), Resource Owner(자원 소유자), AuthorizationServer(권한 서버), ResourceServer(자원 서버)로 구성되고 ResourceServer의 인증에 사용되는 AccessToken(접근 토큰)이 있으며, 6개의 과정을 통해서 인증 과정이 이루어진다. Client가 ResourceOwner에게 자원에 대한 접근 권한을 요청하면 자원에 대한 접근 권한을 4가지 권한 승인 방법을 통해 승인한다. 승인된 권한으로 받은 코드를 이용해 Client는 Authorization Server에게 접근 토큰을 요청하며 Authorization Server는 코드를 이용해 Client를 인증하고 부여 받은 권한을 검증한다. 검증 후 Client에게 AccessToken을 발급하게 된다. Client는 ResourceServer에 AccessToken으로 인증 및 자원을 요청하고 AccessToken검증 후 서비스를 이용할 수 있게 된다.



OAuth 2.0 토큰 구조 및 관리


 OAuth 2.0에서는 기존 OAuth 1.0 버전과 다른 형태로 생성된 Access Token(접근 토큰)을 발급한다. 기본적으로 OAuth 2.0에서는 Bearer Token을 사용하여 인증하지만 Bearer Token은 암호화하지 않은 Token이다. OAuth는 기본적으로 Token을 암호화 하지 않기 때문에 HTTPS를 사용해 보안성을 제공하지만 보안성을 HTTPS에 의존한다는 문제점이 있다. OAuth 2.0에서는 Claim 기반이라는 방식을 사용하여  JWT(JSON Web Token) Token을 발급한다. JWT는 Token 자체에 모든 정보를 가지고 있는 방식이며, Claim을 JSON 형식을 이용하여 작성한다.





OAuth 프로토콜의 현황


 초기 OAuth 프로토콜은 웹 환경만 지원할 수 있는 OAuth 1.0이 사용되었지만, 웹 기술의 발전과 모바일 시장의 확대로 인하여 다양한 형태의 애플리케이션이 등장하였고, OAuth 프로토콜은 모바일 환경을 포함한 다양한 환경에서 지원할 수 있도록 확장이 용이한 OAuth 2.0으로 발전하게 된다

OAuth 2007년 개발되고 2010년에 OAuth 1.0 프로토콜 버전이 표준안 (RFC5849)으로 발표되었다. 여러 기업에서 현재 최신버전인 OAuth2.0을 사용 하고 있으며, 기업으로는 Facebook,Google,Daum 등에서 활용하고 있다. OpenAPI로 개발된 표준으로 제정된 인증 방식으로 여러 종류의 애플리케이션에서 사용자 인증 시 활용되고 있다. 인증 방식에 있어서 제 각각인 방법들을 표준화한 게 OAuth인데, 간편하게 인증이 가능하기 때문에 여러 가지 취약점이 존재하며 그 취약점으로 인해 공격 등의 문제점이 발생되기도 한다. 아래의 내용은 취약점으로 인해 발생된 공격 사례이다.

HTTPS 사용에 대한 사례로, 2011년도에 시리아 정보가 공표한 내용의 사례가 있다. HTTPS 기반 Facebook(페이스북)에 대해 MITM(Man-In-The-Middle) 공격이 발생했다는 내용을 공표했다. 시리아에 있는 다수의 IPS를 통해 Facebook을 접근할 경우에는 공격자가 Resource Owner(자원 소유자) Facebook에 접근할 수 있는 권한을 획득하게 되는 사항이다. 비정상적인 인증서를 사용하여, 특정 메시지를 노출시키는 초보적인 수준의 행위였지만 전자 서명에 대한 권한을 가지고 있다는 점에서 좀 더 정교한 공격이 감행될 수 있다는 것을 경고하였다

 많은 웹 서비스 제공 업체는 OAuth 2.0 프로토콜의 최종 스펙 및 보안 고려사항이 완성되기 전에 OAuth 프로토콜을 구현 및 해당 서 비스를 시작하였으며, OAuth 표준에서 권고한 보안 고려사항을 충족하지 않은 서비스가 존재한다. 또한, 최근 OAuth 2.0 프로토콜 표준에 서 권고한 모든 보안 고려사항을 충족하여도 막을 수 없는 취약점이 새로 발견되어 현재 OAuth WG(Working Group)에서 활발히 논의 중이다










참고문헌

박형수, 2017, <보안코드를 이용한 OAuth 인증 강화 방안>, 아주대학교
김진욱, 2016, <OAuth Token 사용 시 발생하는 안전성 문제에 관한 연구>, 숭실대학교 대학원


반응형

'-Computer Theory > Network' 카테고리의 다른 글

nmap  (0) 2018.10.01
fping  (0) 2018.10.01
[Network] 인트라넷/엑스트라넷  (0) 2017.07.27
[Network] OSI 모델의 응용 계층(7계층)  (0) 2017.07.26
[Network] OSI 모델의 표현 계층(6계층)  (0) 2017.07.26