2007년 06월 07일
Ben Laurie의 Selective Disclosure
구글의 보안 컨설턴트인 Ben Laurie가 쓴 Selective Disclosure 를 읽었습니다. 거창한 내용이라고 생각했는데, 여섯 페이지 분량에 간단한 내용을 담고 있더군요.
Assertion은 identifier로 동작할 수 있기 때문에, assertion 내용은 최소화 되어야 하고, 추적이 불가능해야 합니다.그러기 위해서 zero knowlege와 elective disclosure 증명을 쓰면 된다는데, 실제로 어떻게 동작하는지에 대해서는 별다른 언급이 없더군요.
Ben은 자신이 주장하는 selective disclosure 개념에 Kim Cameron의 metasystem이 어긋난다는 표현을 해서 많은 이슈를 가져왔습니다.
assertion에 unique한 정보가 있으면 추적이 가능해집니다. 가령 자신의 이름이나 주민번호가 포함될 경우에는 100%죠.
암호화나 서명이 되어 있더라도, 매번 발행하는 assertion이 같은 키로 서명되어 있다면 공개키가 universal identifier가 되기 때문에 추적 가능해집니다.
매번 다른 assertion을 발급한다고 해도, 한 세션 또는 한 IP에서 작업한다면 이 정보가 universal identifier가 됩니다.
Kim Cameron의 Laws of Identity은 4번째 Law로 omni-directional과 uni-directional을 언급합니다. private한 사이트에서는 uni-directional한 identifier를 제공해야 한다는 것이죠. 하지만 Ben의 의견에 따르면, assertion 내용은 사이트마다 동일할 수 있기 때문에 이들 사이트가 공모할 경우 사용자의 identity가 밝혀지기 때문에 uni-direction이 깨어진다는 겁니다.
간단히 말하자면, 한 사용자가 A사이트에서 a라는 id로 x라는 assertion을 제시하고, B사이트에서 b라는 id로 x라는 assertion을 제시한다면, A사이트와 B사이트는 a,b가 같은 사용자임을 알 수 있다는 것이죠. identifier의 범주를 기존의 id에서 assertion까지 확장시켰기 때문입니다. 이 경우, assertion은 universal identifier가 되는 것입니다.
제 생각으로는 Ben이 주장하는 selective disclosure를 제공하기 위해서는 pseudonym을 제외한 일체의 정보는 assertion으로 제공하면 안됩니다. 만일 필요로 한다면 해당 정보를 요청할 수 있는 IDP(IDentity Provider) endpoint를 두고, assertion에는 해당 정보를 요청하기 위한 random 키를 저장하면 될 것 같네요. 한 세션에서 assertion이 제공하는 정보는, 결합되었을 경우 사용자의 identity를 노출하지 못하는 것들로만 이루어져야 합니다.
IP를 identifier로 삼는 경우, 프록시 서버를 사용하면 그나마 해결이 될 것 같군요.
# by | 2007/06/07 14:48 | 기타 ID 동향 | 트랙백




