사용자 중심의 ID 관리 방식인 Open ID란 무엇인가
Open ID란 기존의 방식인 사용자가 각 웹 사이트에서 개별적인 ID를 받던 방식에서 변화된 하나의 ID로 공통된 인증 서비스를 제공하는 ID 관리 기술을 말합니다. 분산된 웹 사이트 간에 단일 로그인(SSO) 메커니즘을 도입하여 반복적인 로그인 문제를 해결하며, 잘 모르는 사이트에 가입하지 않고도 쓰기가 가능하기 하는 ID 관리 기술을 말합니다.
이 문서에서는 Open ID의 특징과 Open ID 환경에서 일어날 수 있는 피싱 공격과 해결방안에 관해 기술되어 있습니다.
Open ID의 특징은 어떠한 것이 있는가
Open ID는 하나의 ID로 여러 사이트에서 사용자의 일관된 정체성을 유지할 수 있다는 장점이 있습니다. 또한 내 홈페이지나 블로그 주소 등 URL 형태를 사용자의 ID로 사용할 수 도 있습니다. Open ID의 필요성을 살펴보면 사용자 입장에서는 사이트 별 재 인증으로 이용의 불편을 겪던 일을 해소할 수 있고 서비스 제공자 입장에서는 고객의 ID를 관리하던 관리비용이 줄어들고 효율적으로 서비스를 운영할 수 있는 환경이 제공될 수 있습니다.
Open ID를 구성하는 요소들에는 User Agent, 식별 ID, 서비스 제공 웹사이트, IDP(open ID Provider)가 있습니다. User Agent는 사용자가 인터넷 접속을 위해 사용하는 웹브라우저를 말하며, 식별 ID는 URI로 표현되는 사용자를 식별할 수 있는 고유 ID를 말합니다. 서비스 제공 웹사이트는 사용자로부터 Opne ID URL 형태의 Identity를 제공받아 Open ID 서버에게 인증을 최종 요청하는 주체를 말하며 마지막으로 IDP는 Open ID를 인증하는 Open ID 서버를 의미합니다. 이러한 구성요소들이 모여 Open ID 서비스를 제공하는 과정은 아래의 그림과 같습니다.
웹사이트의 서비스를 제공받기 전에 사용자는 IDP로 Open ID 발급 신청을 보냅니다. IDP에서는 사용자에게서 받은 식별자를 파악하여 등록되지 않은 사용자일 경우 신규 Open ID를 발급해줍니다. 사용자는 발급받은 Open ID를 통해 웹사이트에 접근해 서비스 요청을 할 수 있게 됩니다. 서비스 제공 웹사이트에서는 사용자에게서 받은 인증 정보를 IDP로 보내 사용자 인증을 요청합니다. 인증 요청을 받은 IDP에서는 사용자가 인증되지 않았다면 사용자를 인증하고, 사용자의 인증 사실을 사용자 브라우저를 경유하여 서비스 제공 웹사이트에 전달하게 됩니다. 웹사이트에서는 사용자의 인증정보를 확인하고 사용자에게 서비스 제공 유무를 결정하게 됩니다. Open ID를 사용함으로써 사용자는 인터넷 전체가 하나의 포털이 되는 느낌을 경험할 수 있고 자신의 블로그 주소 등을 ID로 이용하는 것이 가능한 환경이 만들어지는 것입니다.
Open ID 피싱 공격 절차 및 해결방안
Open ID 환경은 하나의 ID로 다양한 사이트를 이용하다 보니 피싱 공격에도 취약해질 수 있다는 단점이 있습니다. Open ID환경에서의 피싱 공격 과정을 살펴보면, 사용자는 의심 없이 본인의 Open ID를 해킹 사이트에 입력하게 됩니다. 해킹 사이트는 이 정보를 받아 올바른 IP가 아닌 공격자의 사이트 페이지로 리다이렉션 하고 공격자는 사용자를 속일 수 있도록 로그인 복사 페이지를 만들어 사용자를 속입니다. 사용자에게 복사 페이지를 로딩하게 하고 사용자는 본인이 리다이렉션 된 페이지를 정당한 IP 페이지로 생각하기 때문에 Open ID에 상응하는 비밀번호를 입력하게 되면서 기밀 정보가 누출되게 됩니다.
이러한 피싱 공격을 해결하기 위해서는 IDP 사용자 검증 로직을 강화할 수 있는데, 사용자가 매번 올바른 IDP로 리다이렉션 되었는지 확인하는 절차를 추가해주어야 합니다. 또한 Card Space를 연동한 서비스를 제공할 수 있는데, Open ID에서 피싱 공격을 막고 Card Space의 대중화를 위해서 두 서비스를 연동하여 더욱 강력한 서비스를 제공하는 방법으로 피싱 공격을 막을 수 있습니다.