티스토리 뷰

최근 IT동향정보를 보면 오픈플랫폼에 대한 활용이 높아지고 있습니다. 그 중심에 존재하는 것은 Open API입니다.(Open API는 각종 IT시스템에서 활용되어 데이터를 수집하는데 유용하게 활용되고 있습니다.) 이러한 Open API 사용이 늘어가면서 그 IT업계에서는 보안에 대한 관심도 높아지고 있습니다. 그래서 최근 IT업계에서 API를 사용하는데 있어 그 보안책으로 쓰이고 있는 보안기술인 OAuth에 대해 알아보도록 하겠습니다. 먼저 OAuth란 API들을 사용하기 위해, 사용자 비밀번호를 공유하지 않고도 서드파티에게 사용자의 제한된 자원에 접근할 수 있도록 허가해주는 IT보안 프로토콜입니다. 이 기술의 등장 배경은 다음과 같습니다. Open API의 사용이 대중화되고 있는 현 시점에서 API를 인증함에 있어 써드파티 어플리케이션에게 사용자의 비밀번호를 노출하지 않고 인증 할 수 있을까에 대한 의문점이 생기기 마련입니다. 이러한 의문점을 해결하기 위해 처음 나온 방안은 OpenID의 사용이다. 이는 계정 하나로 모든 서비스가 로그인 되는 개념입니다. 하지만 이러한 기술은 또 다른 서비스에 가입해야하는 부담감을 가지고 있었습니다. 이를 위해 IT업계에서는 사용자가 인증 권한을 컨드롤하는 OAuth가 등장하게 되었습니다. 구체적으로 이 보안 기술을 살펴보면 다음과 같습니다. (IT보안 기술인 OAuth의 Flow Chart입니다.)

* 서비스 제공자(Provider) – OAuth의 서버 역할을 하며, Request Token, Access Token을 발급하고, 사용자의 인증/인가를 수행합니다.

* 서비스 소비자(Consumer) – OAuth의 클라이언트 역할을 하며, 사용자 인증을 중개하여 Request Token과 Access Token을 발급받아 사용합니다.

* 사용자(User) – 서비스에 가입되어 서비스를 사용하는 주체이다. 브라우저를 통해 서비스 소비자 및 제공자 사이트에 접속하여 인증 정보를 입력하고, 원하는 서비스를 사용합니다.

보호 자원(Protected Resources) – 해당 사용자의 개인 데이터로, 인가 받지 않은 외부 사용자가 접근할 수 없도록 보호해야 할 자원입니다.

* 토큰(Token) – 사용자의 신원(credential)을 대신하여, 보호 자원에 접근 하는 데 사용된다. Request Token과 Access Token이 있습니다.

 이러한 IT보안기술의 인증방법은 먼저 Web application인증한후 Client application인증과정이 요구됩니다. 풀어 애기하면 requestToken을 요청할 때 등록된 callback Url로 넘어온 인증키(oauth_verifier)을 이용하여 AccessToken을 발급받은 후, twitter에 인증하는 방식과 requestToken을 요청할 때 인증 Url로 web browser를 실행한 후, app 사용자가 로그인하여 발급 받은 PIN번호를 입력 받아, AccessToken을 발급받은 후, twitter에 인증하는 방식을 사용하여야 합니다. 눈여겨 볼 것은 써드파티가 사용자의 ID, 패스워드 대신 Access Token이라는 것을 얻어서 인증이 필요한 데이터에 접근 할 수 있다는 것입니다. 즉 제한된 기능을 할 수 있는 Token을 발급하며, 해당 Token만 삭제 또는 정지 시킬 수 있습니다.

소프트웨어와 하드웨어의 발달로 인하여 IT기술쪽에서 빅데이터를 수집하고 처리할 수 있는 기술이 생기자 오픈플랫폼 그리고 빅데이터를 API형태로 사용할 수 있게 되었습니다. 더불어 위에 말한 것과 같은 IT보안쪽에서도 OAuth와 같은 보안기술이 나오게 된 것 같습니다. 앞으로 IT트렌드를 보아 CPS(cyber-physical-system)이 구축될 것으로 보이고 이에따라 보안기술의 발전도 더욱더 진보할 것 같습니다. 앞으로의 IT기술의 발달이 어느정도 수준까지 올라갈지 매우 기대됩니다.


댓글