2007년 09월 04일
openid의 보안문제
title; The problem(s) with OpenID
link; http://www.idcorner.org/?p=161
또 한번 OpenID의 보안 문제가 이슈화 되고 있습니다. 2007년 8월 1일부터 3일까지 개최된 BlackHat 2007 에서 Tsyklevich 형제가 OpenID 해킹에 대해 발표 [ppt , pdf] 하였습니다. 그리고 여러가지 취약점들을 모아서 Stefan씨가 'OpenID의 문제'라는 포스팅을 했습니다.
Stefan이 제시한 문제는 7가지 입니다.
약간은 억지스런 면도 있지만, 상당수는 진지하게 고민해 봐야할 문제들입니다.
레퍼런스
http://daveman692.livejournal.com/310578.html?thread=902194#t902194.
http://daveman692.livejournal.com/310578.html?thread=903730#t903730
link; http://www.idcorner.org/?p=161
또 한번 OpenID의 보안 문제가 이슈화 되고 있습니다. 2007년 8월 1일부터 3일까지 개최된 BlackHat 2007 에서 Tsyklevich 형제가 OpenID 해킹에 대해 발표 [ppt , pdf] 하였습니다. 그리고 여러가지 취약점들을 모아서 Stefan씨가 'OpenID의 문제'라는 포스팅을 했습니다.
Stefan이 제시한 문제는 7가지 입니다.
- Security
가장 큰 문제는 Phishing입니다. 주소창을 본다라든지, 북마크에 저장된 주소를 이용하여 로그인을 하는 식의 수작업이 있지만 일반인들에게 이해시키기는 어렵죠. Verisign의 SeatBelt는 Firefox에서만 사용할 수 있고, CardSpace는 Windows에서만 사용 가능합니다. CardSpace를 OpenID에 적용할 바에는, 차라리 CardSpace로 사이트 인증을 처리하면 되지 않냐는 의견도 있군요.
두번째는 XSS(Cross Site Script) 공격입니다. 가장 유명한 것이 CSRF(Cross Site Request Forgery) 인데, 실제로 해외의 OpenID 프로바이더에서 해당 취약점이 있었다고 하네요. 국내의 OpenID 커뮤니티들은 어떤지 한번 테스트해봐야 하겠습니다.
그리고 man-in-the-middle 공격에 대한 우려도 있습니다. nonce를 사용하면 replay 공격을 막을 수는 있지만, 해커가 사용자 보다 먼저 해당 request를 사용할 경우에는 여전히 문제입니다. SSL을 사용하는게 최선이나, 일반 블로그 사이트에 SSL을 적용하는게 과연 합리적인지는 고민해 봐야겠죠. - Privacy
첫번째, OpenID는 유일한 id이기 때문에 임의의 방법으로 나의 행동 패턴을 추적할 수 있습니다.
두번째, OpenID 프로바이더는 나의 행동 패턴을 알고 있습니다. 해킹을 당하거나 사이트 관계자가 악의적인 의도를 가진다면 내 행동 정보가 고스란히 노출됩니다.
세번째, OpenID 프로바이더에서 사용자가 방문한 컨슈머 정보는 임의로 삭제가 가능합니다. 만일 해커가 내 OpenID를 이용하여 나쁜 짓을 해도, 해커가 컨슈머 정보를 삭제해버리면 알 방도가 없습니다.
네번째, OpenID는 url을 사용하기 때문에 recycle 문제가 있습니다. AOL이나 Daum과 같은 사이트의 사용자가 OpenID로 자신의 블로그 URL을 사용하다가 탈퇴한 경우, 다른 사용자가 사이트에 가입하여 그 URL을 OpenID로 재사용할 수 있습니다. - Trust
OpenID는 식별(identification)만 담당하기 때문에 Trust를 지원하지 않는다고 합니다. 하지만 대중성을 얻기 위해서는 trust가 필요합니다. Sun에서 자사 직원에게 sun의 url이 포함된 OpenID를 제공하는 것이나, AOL이 OpenID whitelist를 유지하는 것이 같은 맥락입니다. 하지만 본인확인도 안되는 아무 OpenID 프로바이더나 받아들이라고 말한다면, 과연 어떤 OpenID 컨슈머가 받아들일까요? - Usability
OpenID는 IT분야에서 약간은 전문적인 지식이 있는 사용자들이 사용합니다. 일반인들이 제대로 이해하기도 어렵고 사용하기도 번거롭습니다. 사용자 경험(UX)이 불편하다는 것이겠죠. 효과적인 방안을 고민하면 해결될 문제인지, 근본적인 문제인지를 따져봐야할 것입니다. - Adoption
OpenID 컨슈머에 비해서 OpenID 프로바이더가 너무 많은 상황입니다. 국내에서도 OpenID 프로바이더는 5개고, 컨슈머는 수십개 정도 있죠. OpenID가 활성화 되기 위해서는 프로바이더 보다 컨슈머가 절실합니다. 단지 기존 주도권을 유지하기 위한 용도라면, 오히려 사용자들의 혼란을 가중하는 문제가 우려됩니다. - Availability
OpenID 프로바이더는 항상(24/7) 서비스를 제공해야 합니다. 하지만 가끔씩 서비스를 제공하지 못하는 상황이 발생하는데, 그러면 해당 OpenID 프로바이더를 사용하는 사용자는 OpenID 컨슈머를 전혀 이용할 수 없습니다. 또한 OpenID 프로바이더가 평생동안 서비스를 제공해 줄 수 없다면 큰 문제가 됩니다. 컨슈머 사이트에서 사용자의 id는 해당 openid 이기 때문이죠. OpenID 프로바이더에 문제가 생겨 더이상 서비스를 받을 수 없다면, 연관된 컨슈머 사이트에 있는 정보 또한 다시는 사용할 수 없게 됩니다.
이를 해결하기 위해 OpenID 컨슈머가 사용자의 여러 OpenID를 보관하는 식의 방법을 사용하는데, OpenID의 기본 컨셉에는 맞지 않죠. id가 많아서 번거롭기 때문에 OpenID를 사용하는 건데, OpenID 하나가 못쓰게 될까봐 다른 OpenID를 유지해야 한다는 문제가 있습니다. - Patent
Sun과 Verisign, JanRain은 OpenID 관련 특허에 대해 이미 non-assertion covenants를 발표했습니다. 특허권을 행사하지 않겠다는 말이죠.
하지만 Sxip사의 관련 특허가 OpenID 기술과 연관성이 높다고 합니다. 물론 Sxip사가 OpenID에 대해 특허권을 행사할 것으로 생각되지는 않습니다. Sxip 또한 non-assertion covenants를 발표하면 해결되겠지만, 그렇지 않은 이상 언제 특허 문제가 생길지 모릅니다.
약간은 억지스런 면도 있지만, 상당수는 진지하게 고민해 봐야할 문제들입니다.
레퍼런스
http://daveman692.livejournal.com/310578.html?thread=902194#t902194.
http://daveman692.livejournal.com/310578.html?thread=903730#t903730
http://metasploit.com/users/hdm/bh07/tsyrklevich/whitepaper/bh-usa-07-tsyrklevich-wp.pdf
http://www.slideshare.net/eugenet/openid-security
http://www.scribd.com/doc/256482/OpenID-security
http://www.gnucitizen.org/blog/openid-a-security-story
http://talk.bmc.com/blogs/blog-bohren/jeff-bohren/openid-issues
# by | 2007/09/04 10:07 | 기타 ID 동향 | 트랙백 | 덧글(3)
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.




