{"id":820,"date":"2007-06-26T00:11:16","date_gmt":"2007-06-26T08:11:16","guid":{"rendered":"\/?p=820"},"modified":"2007-07-17T20:35:00","modified_gmt":"2007-07-18T04:35:00","slug":"beyond-maximal-disclosure-tokens","status":"publish","type":"post","link":"https:\/\/www.identityblog.com\/?p=820","title":{"rendered":"Beyond maximal disclosure tokens"},"content":{"rendered":"<p>I concluded my <a href=\"\/?p=815\">last piece on linkability and identity technology&nbsp;<\/a>by explaining&nbsp;that&nbsp;the probability of&nbsp;collusions between Relying Parties (RPs)&nbsp;&nbsp;CAN be greatly reduced by using SAML tokens&nbsp;rather than&nbsp;X.509 certificates.&nbsp; To&nbsp;provide an example of&nbsp;why this is so,&nbsp;I&nbsp;printed out the content of&nbsp;one of the X.509 certificates I use at work, and here&#39;s what it contained:<\/p>\n<table>\n<tr>\n<td><strong>Version<\/strong><\/td>\n<td><span style=\"font-size: 10pt\">V3<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Serial Number<\/strong><\/td>\n<td><span style=\"font-size: 10pt; background-color: yellow\">13 9b 3c fc 00 03 00 19 c6 e2<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Signature Algorithm<\/strong><\/td>\n<td><span style=\"font-size: 10pt\">sha1RSA<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Issuer<\/strong><\/td>\n<td><span style=\"font-size: 10pt\">CN =&nbsp;IDA Enterprise CA 1<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Valid From<\/strong><\/td>\n<td><span style=\"font-size: 10pt\">Friday, February 23, 2007 8:15:27 PM<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Valid To<\/strong><\/td>\n<td><span style=\"font-size: 10pt\">Saturday, February 23, 2008 8:15:27 PM<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Subject<\/strong><\/td>\n<td><span style=\"font-size: 10pt; background-color: yellow\">CN = Kim Cameron<br \/>\nOU = Users<br \/>\nDC = IDA<br \/>\nDC = Microsoft<br \/>\nDC = com<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Public Key<\/strong><\/td>\n<td><span style=\"font-size: 10pt; background-color: yellow\">25 15 e3 c4 4e d6 ca 38 fe fb d1 41 9f<br \/>\nee 50 05 dd e0 15 dc d6 2a c3 cc 98 53<br \/>\n7e 9e b4 c7 a5 4c a7 64 56 66 1e 3d 36<br \/>\n4a 11 72 0a eb cf c9 d2 6c 1f 2e b2 2a<br \/>\n67 4f 07 52 70 36 f2 89 ec 98 09 bd 61<br \/>\n39 b1 52 07 48 9d 36 90 9c 7d de 61 61<br \/>\n76 12 5e 19 a5 36 e2 11 ea 14 45 b1 ba<br \/>\n12 e3 e2 d5 67 81 d1 1f bb 04 b1 cc 52<br \/>\nc2 e5 3e df 09 3d 2b a5<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Subject Key Identifier <\/strong><\/td>\n<td><span style=\"font-size: 10pt; background-color: yellow\">35 4d 46 4a 13 c1 ae 81 3b b8 b5 f4 86 bb 2a c0 58 d7 ad 92<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Enhanced Key Usage<\/strong><\/td>\n<td><span style=\"font-size: 10pt\">Client Authentication (1.3.6.1.5.5.7.3.2)<\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Subject Alternative Name<\/strong><\/td>\n<td><span style=\"font-size: 10pt; background-color: yellow\">Other Name &#8211; Principal <a href=\"mailto:Name=kimc@microsoft.com\">Name=kc@microsoft.com<\/a><\/span><\/td>\n<\/tr>\n<tr>\n<td><strong>Thumbprint<\/strong><\/td>\n<td><span style=\"font-size: 10pt; background-color: yellow\">b9 c6 4a 1a d9 87 f1 cb 34 6c 92 50 20 1b 51 51 87 d5 a8 ee<\/span><\/td>\n<\/tr>\n<\/table>\n<p>Everything shown is released every time I use the certificate &#8211; which is basically every time I go to a site that asks either for &#8220;any old certificate&#8221; or for a certificate from my certificate authority.&nbsp; (As far as I know, the information is offered up&nbsp;before verifying&nbsp;that the site isn&#39;t evil).&nbsp; You can see that there is a lot of information leakage.&nbsp; X.509 certificates were designed before the privacy implications (to both individuals and their institutions) were well understood.<\/p>\n<p>Beyond leaking potentially unnecessary information (like my email address), each of the fields shown in yellow is a&nbsp;correlation key&nbsp;that&nbsp;links my&nbsp;identity in one transaction to that in another &#8211; either within a single site or across multiple sites.&nbsp;&nbsp;Put another way, each yellow field is a handle that can be used to correlate my profiles.&nbsp; It&#39;s nice to have so MANY potential handles available, isn&#39;t it?&nbsp; Choosing between serial number, subject DN, public key, key identifier, alternative name and thumbprint is pretty exhausting, but any of them will work when trying to build a super-dossier.<\/p>\n<p>I call this a &#8220;maximal disclosure token&#8221; because the same information is released everywhere you go, whether it is required or not.&nbsp; Further, it includes not one, but a whole set of omnidirectional identifiers (see law 4).<\/p>\n<p><img loading=\"lazy\" align=\"right\" width=\"77\" src=\"\/wp-content\/images\/2007\/06\/saml-pseudonym.jpg\" height=\"286\" style=\"width: 77px; height: 286px\" \/>SAML tokens represent a step forward in this regard because, being constructed at the time of usage, they only need to contain information relevant to a given transaction.&nbsp; With protocols like the redirect protocol described <a href=\"\/?p=815\">here<\/a>, the identity provider knows which relying party a user is visiting.&nbsp;<\/p>\n<p>The Liberty Alliance has been forward-thinking enough to use this knowledge to avoid leaking omnidirectional handles to relying parties, through what it calls pseudonynms.&nbsp; For example, &#8220;persistent&#8221; and &#8220;transient&#8221; pseudonyms can be put in the tokens by the identity provider, rather than omnidirectional identifiers, and the subject key can be different for every invocation (or skipped altogether).&nbsp;<\/p>\n<p>As a result, while the identity provider knows more about the sites visited by its users, and about the information of relevance to those sites, the ability of the sites to create cross-site profiles without the participation of the identity provider is greatly reduced.&nbsp; SAML does not employ maximal disclosure tokens.&nbsp; So in the threat diagram shown at the right I&#39;ve removed the RP\/RP collusion threat, which now pales in comparison to the other two.<\/p>\n<p>As we will see, this does&nbsp;NOT mean&nbsp;the SAML protocol&nbsp;uses minimal disclosure tokens, and the many intricate issues involved are treated&nbsp;in a balanced way&nbsp;by Stefan Brands <a href=\"http:\/\/www.idcorner.org\/?p=40\" class=\"broken_link\">here<\/a>.&nbsp; One very interesting argument he makes is that the relying party (he calls it &#8220;service provider or SP), actually suffers a decrease in control relative to the identity provider (IP) in these redirection protocols, while the IP gains power at the expense of the RP.&nbsp; For example, if Liberty pseudonyms&nbsp;are used,&nbsp;the IP will know all the customers employing a given RP, while the RP will have no direct relationship with them.&nbsp; I look forward to finding out, perhaps over a drink with someone who was present,&nbsp;how these technology proposals&nbsp;aligned with various business models as they were being elaborated.<\/p>\n<p>To see how a SAML token compares with an X.509 certificate, consider this example:<\/p>\n<p><img src=\"\/wp-content\/images\/2007\/06\/saml-sample.jpg\" \/><\/p>\n<p>You&#39;ll see there is an assertionID, which is different for every token that is minted.&nbsp; Typically it would not link a user across transactions, either within a given site or across multiple sites.&nbsp; There is also a &#8220;name identifier&#8221;.&nbsp; In this case it is a public identifier.&nbsp; In others it might be a pseudonym or &#8220;unidirectional identifier&#8221; recognized only by one site.&nbsp; It might even be a transient identifier that will only be used once.<\/p>\n<p>Then there are the attributes &#8211; hopefully not all the possible attributes, but just the ones&nbsp;that are necessary for a given transaction to occur.<\/p>\n<p>&nbsp;Putting all of this together, the result is an identity provider which has a great deal of visibility&nbsp;into and control over what is revealed where, but more protection against cross-site linking if it handles the release of attributes on a need-to-know basis.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Maximal disclosure tokens&#8221; release the same information everywhere, whether required or not.  They often include not one, but a whole set of omnidirectional identifiers.<\/p>\n","protected":false},"author":68,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,17,10,38,47,11],"tags":[],"_links":{"self":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts\/820"}],"collection":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=820"}],"version-history":[{"count":0,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts\/820\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=820"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=820"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=820"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}