{"id":435,"date":"2006-04-21T18:54:45","date_gmt":"2006-04-22T02:54:45","guid":{"rendered":"\/?p=435"},"modified":"2006-04-21T18:57:22","modified_gmt":"2006-04-22T02:57:22","slug":"what-infocard-is-and-isnt","status":"publish","type":"post","link":"https:\/\/www.identityblog.com\/?p=435","title":{"rendered":"WHAT INFOCARD IS AND ISN&#39;T"},"content":{"rendered":"<p><a href=\"http:\/\/gocsi.com\/\">Computer Security Alert<\/a> has done a nice frontpage&nbsp;feature on&nbsp;&#8220;<strong>What InfoCard is and isn&#39;t<\/strong>&#8221; in its May 2006 issue.&nbsp; The Alert is normally only available to members, but Robert Richardson has given me permission to let you download and reprint <a href=\"\/wp-content\/resources\/alert.pdf\" target=\"_blank\" class=\"broken_link\">the PDF version<\/a>, complete with sidebars&nbsp;&#8211; or you can&nbsp;read the main part of the story here:&nbsp;<\/p>\n<blockquote><p>There\u00e2\u20ac\u2122s little doubt that the Microsoft marketing engine will get itself geared up to tell the public at large what InfoCard \u00e2\u20ac\u0153is,\u00e2\u20ac\u009d but in the meanwhile, getting a handle on the next major security-related software introduction is remarkably difficult. It\u00e2\u20ac\u2122s a slippery topic.<\/p>\n<p>The place to start, however, is with the diagram below from an overview of the \u00e2\u20ac\u0153Identity Metaverse\u00e2\u20ac\u009d by Microsoft\u00e2\u20ac\u2122s identity guru Kim Cameron.<\/p>\n<p><img src=\"\/wp-content\/resources\/metasystem-architecture.jpg\" \/><\/p>\n<p>The box at the very bottom of the diagram is you, the subject. If you go to a Web site or an application that requires you to establish that you\u00e2\u20ac\u2122re authorized to use its services (where in the past you\u00e2\u20ac\u2122d have been challenged for a username and password), you\u00e2\u20ac\u2122ll instead be shown an interface where you can choose from what appear to be traditional \u00e2\u20ac\u0153ID cards.\u00e2\u20ac\u009d Simply put, that interface is InfoCard. That\u00e2\u20ac\u2122s it.<\/p>\n<p>Or, at least, that\u00e2\u20ac\u2122s how to draw a line around it that differentiates it from everything else. Obviously, there\u00e2\u20ac\u2122s more to it than that. For one thing, it\u00e2\u20ac\u2122s running in a different security context than the rest of your applications on whatever operating system you happen to be running. It\u00e2\u20ac\u2122s supposed to be completely cordoned off in terms of memory access and the like. Other applications (and, say, viruses that have installed themselves unbeknownst to you) can\u00e2\u20ac\u2122t see memory that\u00e2\u20ac\u2122s being used by the InfoCard interface.<\/p>\n<p>Cameron does note that \u00e2\u20ac\u0153if you get a rootkit, you\u00e2\u20ac\u2122re in trouble. But Vista makes it much less likely that you\u00e2\u20ac\u2122ll get one, because you almost always run in your own context (e.g. not at \u00e2\u20ac\u02dcroot\u00e2\u20ac\u2122 privilege). A virus caught in your user context cannot see your InfoCard screen or memory.\u00e2\u20ac\u009d There are other security gains as well, Cameron notes: \u00e2\u20ac\u0153InfoCard protects against keyloggers because typing of shared secrets becomes obsolete. And social engineering attacks are mitigated because Web sites no longer control the user experience. Finally, sensitive information like a credit card number is never stored on the PC, or visible to a virus running there.\u00e2\u20ac\u009d<\/p>\n<p>InfoCard presents your various credential possibilities to you in the form of \u00e2\u20ac\u0153cards,\u00e2\u20ac\u009d so not too surprisingly there\u00e2\u20ac\u2122s also a mechanism for generating your own self-signed InfoCard and then issuing encrypted tokens when the card is used (in other words, there\u00e2\u20ac\u2122s a tool for making yourself into an ID Provider, which Microsoft\u00e2\u20ac\u2122s documents often refer to as an IP, but which we\u00e2\u20ac\u2122ll call an IDP in the hopes of not creating confusion around the already overloaded \u00e2\u20ac\u0153IP\u00e2\u20ac\u009d acronym)\u00e2\u20ac\u201dthis too is part of InfoCard.<\/p>\n<p>Finally, there\u00e2\u20ac\u2122s a strong sense that this is what Microsoft thinks every operating system\u00e2\u20ac\u2122s authentication interface should look like: an isolated page where you pick from your various ID cards. This really isn\u00e2\u20ac\u2122t about Redmond wanting everything to look like a version of Windows\u00e2\u20ac\u201din fact InfoCard is trying to look a bit different than the rest of the Windows Vista operating system. Rather, it\u00e2\u20ac\u2122s supposed to look different from everything else altogether, so that you the user realize you\u00e2\u20ac\u2122ve entered one of those transitional moments where you may be handing over some of your personal information.<\/p>\n<p>But other than these pieces, everything else in the identity management universe is something other than InfoCard. The part where the InfoCard interface talks across the network and exchanges information isn\u00e2\u20ac\u2122t InfoCard, but the WS-Trust standard. The server that creates a token that attests that you\u00e2\u20ac\u2122ve got authorization to use a certain service isn\u00e2\u20ac\u2122t InfoCard either, but something like a certificate authority (CA) or perhaps something a little more old-fashioned like a Kerberos server. The primary thing that InfoCard does is allow you to choose which of several identities you want to use in a given situation where you\u00e2\u20ac\u2122ve been challenged for ID.<\/p>\n<p>The \u00e2\u20ac\u0153cards\u00e2\u20ac\u009d represent your various identities. The \u00e2\u20ac\u0153cards,\u00e2\u20ac\u009d it\u00e2\u20ac\u2122s vital to note, don\u00e2\u20ac\u2122t contain information about you, per se. You won\u00e2\u20ac\u2122t find your name and address or your social security number stored in one of your cards. Instead, enough metadata is stored that when the appropriate moment arrives, InfoCard can communicate to the IDP to say who you\u00e2\u20ac\u2122re supposed to be. The IDP will confirm this by challenging you in one way or another (doesn\u00e2\u20ac\u2122t matter to InfoCard what that way is\u00e2\u20ac\u201dit\u00e2\u20ac\u2122s completely agnostic in this important respect\u00e2\u20ac\u201dbut it may very well matter to the Web site that is requesting the information).<\/p>\n<p>So the IDP plays an important role in this, but as we mentioned above, may in some cases actually be you, as self-provider of a card (this is the situation you\u00e2\u20ac\u2122ll find yourself in at a Web site that asks for a login name or e-mail address but otherwise doesn\u00e2\u20ac\u2122t care who you are). The other player (besides you, the user of all this splendor) is the Web site that wants to know who you are in the first place. In today\u00e2\u20ac\u2122s pre-InfoCard world, this site would normally challenge you for a username and password and check up on your assertion that you are in fact you on its own steam. With InfoCard, this site becomes a Relying Party (RP) and actually gets its assurance that you are you by way of the IDP.<\/p>\n<p>There are early releases of InfoCard in the hands of developers, and blog reports so far make it clear that it\u00e2\u20ac\u2122s pretty fragile just yet\u00e2\u20ac\u201dit takes just the right combination of operating system release, Explorer browser preview and InfoCard code to make the thing work. It does work if you get it all right, but would seem that there are only a handful of non-Microsoft people in the world who\u00e2\u20ac\u2122ve managed to InfoCard their way into a site (such as Cameron\u00e2\u20ac\u2122s identityblog.com). As Cameron puts it, \u00e2\u20ac\u0153it\u00e2\u20ac\u2122s new, it\u00e2\u20ac\u2122s evolving quickly, and it hasn\u00e2\u20ac\u2122t stabilized yet.\u00e2\u20ac\u009d<\/p>\n<p><strong>What happens bat game time<\/strong><\/p>\n<p>So with the various pieces in place, we can walk through the mechanics of an InfoCard transaction. We\u00e2\u20ac\u2122ll talk here about going to a Web site, but clearly there are other use cases, such as internal applications that directly invoke the InfoCard interface to authenticate the user with an intranet application, perhaps built on a service-oriented architecture.<\/p>\n<p><em>Arriving at the site<\/em><\/p>\n<p>I\u00e2\u20ac\u2122m an InfoCard-enabled user and I arrive at my bank, which has now implemented support for this interface. My arrival causes a page to be sent to my browser, as would always be the case. Indeed, the page my still contain all the usual paraphernalia for a traditional login.<\/p>\n<p><em>Triggering the InfoCard process<\/em><\/p>\n<p>What\u00e2\u20ac\u2122s also in the HTML page that is sent to my browser, however, is an HTML OBJECT tag. The browser, which also has to be up-to-date, recognizes that this object has a \u00e2\u20ac\u0153type\u00e2\u20ac\u009d parameter that identifies it as an InfoCard request. It therefore triggers the InfoCard dynamic link library (DLL) module. The stage is set and the screen dims (I\u00e2\u20ac\u2122m not kidding, it really does dim\u00e2\u20ac\u201danother way of differentiating this process from normal computing activities as well as a way of making the process harder to spoof).<\/p>\n<p><em>InfoCard gears up<\/em><\/p>\n<p>Among the parameters passed to the DLL from the OBJECT tag are the claims about the user that need to be proven. These might be things like the user\u00e2\u20ac\u2122s name, but on the other hand, the Web site may only need to know some anonymous piece of information, such as that the user is older than 21. Generally, the site should only have requested what it needs to know. The DLL compares the claim requests to the user\u00e2\u20ac\u2122s InfoCards to see what claims can be met by which cards, and then displays those that can meet the request (others are visible but grayed out).<\/p>\n<p><em>The user picks a card and is challenged<\/em><\/p>\n<p>This is an important moment if you think about it. The user may use any card that meets the requirements of the Web site\u00e2\u20ac\u2122s request. A user might maintain different personas with different sets of proofs for different contexts. With the selection made, the DLL contacts the IDP via WS-Trust. The IDP then does whatever it needs to do to authenticate the user. Possibly it asks for a username and password; possibly a one-time password must be used or some biometric proof supplied.<\/p>\n<p><em>A secure token is issued and reviewed<\/em><\/p>\n<p>Assuming the user successfully authenticates with the IDP (not the Web site, which is the RP in this scenario, it\u00e2\u20ac\u2122s important to keep in mind), the IDP places the appropriate claims into an XML document and then uses the RP\u00e2\u20ac\u2122s public key to encrypt them. This is sent not to the RP but back to the user\u00e2\u20ac\u2122s InfoCard process, which displays the claims that are about to be sent so that the user can review them.<\/p>\n<p><em>The approved claims are forwarded<\/em><\/p>\n<p>If the user is comfortable with passing the information in the claims along to the Web site, they press a Submit button and the encrypted token is forwarded to the RP, which will now grant access to the user. <strong>The Web object in more detail<\/strong> Jumping back a step, notice that the mechanism for invoking the InfoCard interface really is pretty much as simple as it sounds. A snippet of HTML code is added to the rest of the material in the Web page, as in <a href=\"http:\/\/blogs.msdn.com\/andyhar\/archive\/2006\/02\/20\/535333.aspx\" class=\"broken_link\">this example<\/a> from Andy Harjanto\u00e2\u20ac\u2122s Infocard Weblog.<\/p>\n<param name=\"\u00e2\u20ac\u009dtokenType\u00e2\u20ac\u009d\" value=\"\u00e2\u20ac\u009durn:oasis:names:tc:SAML:1.0:assertion\u00e2\u20ac\u009d\" \/>\n<param name=\"\u00e2\u20ac\u009dissuer\u00e2\u20ac\u009d\" value=\"\u00e2\u20ac\u009dhttp:\/\/schemas.microsoft.com\/...\/\" \/>\n<param name=\"\u00e2\u20ac\u009drequiredClaims\u00e2\u20ac\u009d\" value=\"\u00e2\u20ac\u009dhttp:\/\/schemas.microsoft.\" \/>Notice that this example shows a Web site that requires a SAML assertion for authentication. The RP may not get to dictate that I\u00e2\u20ac\u2122ll provide my credentials or that I\u00e2\u20ac\u2122ll provide a specific credential if there are several that meet the need, but it does get to dictate what kind of credential must be provided if it\u00e2\u20ac\u2122s to be considered sufficient. Specifically, the RP can make requests concerning:&nbsp;&nbsp;<\/p>\n<ul>\n<li>The issuer;<\/li>\n<li>The type of token that will be returned;<\/li>\n<li>What claims must be vouched for by the token;<\/li>\n<li>Requirements regarding the kind of proof used (symmetric, public key, etc), the size of the key used in authentication and other such details as might be required for high-security scenarios.<\/li>\n<\/ul>\n<p>It\u00e2\u20ac\u2122s worth underscoring that the RP only receives proofs of the specific claims it requests, not access to any kind of full profile of data about the individual. The user (or, at any rate, not the RP) gets to choose where data used for this particular user\u00e2\u20ac\u2122s authentications are stored. This ability to separate authenticated claims from specific identities is potentially a huge gain for Internet privacy. This would be true even in relatively small ways: one can imagine being able to post comments at a blog site anonymously, but only after proving that one had the reputation (from actions at other sites) of never posting spam. Anonymity is preserved while the social good of keeping out bad actors is upheld.<\/p>\n<p>On the other hand, we shouldn\u00e2\u20ac\u2122t overstate how much may be gained in the real world\u00e2\u20ac\u201dRP\u00e2\u20ac\u2122s may still very well want a full complement of information, including name, address and credit card numbers, before selling you their products. And once they\u00e2\u20ac\u2122ve got the information, they may well decide to store it, even insecurely.<\/p>\n<p>As an aside, Microsoft has taken the interesting step of essentially not providing any kind of normal application\/programming access to InfoCards. They are stored in their own little world; there is no API to access them. The effect of this is that cards don\u00e2\u20ac\u2122t get deleted or modified or added without the user\u00e2\u20ac\u2122s direct involvement, because these steps must be taken through the InfoCard interface.<\/p>\n<p>For the InfoCard interface to be invoked, of course, there has to be some software resident on the user\u00e2\u20ac\u2122s system. At present, it gets there by way of a purpose-built software file (a DLL file) that has to be expressly loaded along with Internet Explorer 7. These things will be part and parcel of Microsoft Vista, when it\u00e2\u20ac\u2122s released next year, but users who stick with XP will have to download these pieces in order to use InfoCard.<\/p>\n<p>Given that migration to Vista is bound to take place at a measured\u00e2\u20ac\u201dperhaps even downright reluctant, depending on the vicissitudes of the market\u00e2\u20ac\u201dpace, one question is whether the requirement for additional specialized software will make Web site developers reluctant to get involved. Obviously, they can use pre-existing login routines for users who don\u00e2\u20ac\u2122t have InfoCard capability on their machines, but having two systems will just complicate life. Cameron says it\u00e2\u20ac\u2122s not all that much more complicated, however: \u00e2\u20ac\u0153We\u00e2\u20ac\u2122ve taken this into account so the changes to a Web site are absolutely minimal.\u00e2\u20ac\u009d<\/p>\n<p>Organizations may or may not decide that dealing with InfoCard is worth the trouble\u00e2\u20ac\u201dit will have to move beyond its current proof-of-concept stage before anyone can decide\u00e2\u20ac\u201dbut one thing organizations don\u00e2\u20ac\u2122t have to do, should they opt to use InfoCard, is run Windows servers. From the \u00e2\u20ac\u0153Microsoft\u00e2\u20ac\u2122s Vision for an Identity Metasystem\u00e2\u20ac\u009d white paper:<\/p>\n<ul>Non-Microsoft applications will have the same ability to use \u00e2\u20ac\u0153InfoCard\u00e2\u20ac\u009d to manage their identities as Microsoft applications will. Non-Windows operating systems will be able to be full participants of the identity metasystem we are building in cooperation with the industry. Others can build an entire end-to-end implementation of the metasystem without any Microsoft software, payments to Microsoft, or usage of any Microsoft online identity service.<\/ul>\n<p>Just to prove that this is so, Cameron, who\u00e2\u20ac\u2122s in charge of the InfoCard project, moved his identityblog.com over to non-Microsoft software (completely so: he\u00e2\u20ac\u2122s running the classic, open-source LAMP stack). The blog is running on WordPress (also open source) and he\u00e2\u20ac\u2122s written his own PHP scripts to handle the InfoCard login process. By Cameron\u00e2\u20ac\u2122s own admission, it\u00e2\u20ac\u2122s still a bit buggy and it lacks a certain degree of polish:<\/p>\n<ul>Some of the user experience is still pretty \u00e2\u20ac\u0153basic\u00e2\u20ac\u009d. Like what happens if you click on InfoCard login and don\u00e2\u20ac\u2122t have InfoCards installed. When I have some time I\u00e2\u20ac\u2122ll make that take you to a page that tells you what InfoCards are, how they work, how to install them, and that sort of thing. But for now, the behavior should appeal to lovers of cryptic error messages.<\/ul>\n<p>So at least in theory, the Linux and Macintosh systems of the world could implement compatible identity selectors, RPs and IDPs that were all compatible with InfoCard. And, really, it\u00e2\u20ac\u2122s only that it\u00e2\u20ac\u2122s Microsoft doing the developing that makes it seem like InfoCard is the driving force here. In point of fact, InfoCard\u00e2\u20ac\u2122s mission is to work with WS-Trust, an open standard (we could quibble about how open it is, but at least there\u00e2\u20ac\u2122s nothing preventing anyone from using it). So the open standards for identity, such as WS-Trust, are really the driving force behind InfoCard. In any case, identity management seems to be entering something of a 2.0 phase, and there\u00e2\u20ac\u2122s no question that InfoCard will play a significant role in whatever that turns out to be. \u00e2\u20ac\u201d R.R.<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>How to draw a line around InfoCard that differentiates it from everything else&#8230;<\/p>\n","protected":false},"author":68,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,2],"tags":[],"_links":{"self":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts\/435"}],"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=435"}],"version-history":[{"count":0,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=\/wp\/v2\/posts\/435\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.identityblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}