<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-754260340057137512</id><updated>2011-11-13T14:06:34.431-05:00</updated><category term='2009'/><category term='openid'/><category term='value'/><category term='identity protocols'/><category term='iiw2008b'/><category term='firefox3'/><category term='predictions'/><category term='privacy'/><category term='user-centric'/><category term='tls'/><category term='social engineering attack'/><category term='authentication system'/><category term='payment networks'/><category term='wallet'/><category term='magiccarpet'/><category term='new year'/><category term='open services'/><category term='online password reset'/><category term='oauth'/><category term='iiw'/><category term='open platform'/><category term='facebook'/><category term='certificates'/><category term='friendconnect'/><category term='iiw#8'/><category term='openauth'/><category term='pii'/><category term='connect'/><category term='sso'/><category term='aol'/><category term='ux'/><category term='aol password anti-pattern oauth bbauth'/><category term='application platform'/><category term='paypalx'/><category term='wsc'/><category term='web authentication'/><category term='online payments'/><category term='phishing'/><category term='paypal'/><category term='oauth extensions javascript consumers'/><category term='ssl warnings'/><category term='identity'/><category term='payments'/><category term='ssl'/><category term='sns'/><category term='w3c'/><category term='gmail'/><category term='fbconnect'/><category term='payments for developers'/><title type='text'>Identity, Payments and Related Technologies</title><subtitle type='html'>Thoughts on Identity, Payments, Authentication, SSO and related Web Technologies....</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-4622477784166944062</id><published>2010-07-21T23:18:00.003-04:00</published><updated>2010-07-21T23:29:10.016-04:00</updated><title type='text'>Open Web Payments !</title><content type='html'>Today we presented our proposal for Open Web Payments and the corresponding Open Stack to implement it and support it in a much easier and extensible way. Obviously as you all know, there are a lot of Payments Providers - from credit card networks &amp;amp; NACHA to Online Wallet/Checkout providers, Social/Virtual/Game currency to frequent flyer/buyer points, mobile payments to offline payments. Unfortunately for a developer integrating with each one of those is a nightmare given the differences in data model, APIs and protocols. Our goals with Open Web Payments effort were to:&lt;br /&gt;&lt;br /&gt;1. Provide Consistency APIs across platforms&lt;br /&gt;2. Provide a Single model for authorization, payments and transactions&lt;br /&gt;3. Support both real and virtual currencies&lt;br /&gt;4. Provide a Single, extensible document model&lt;br /&gt;&lt;br /&gt;Please review our presentation on slideshare below and please join the google group (&lt;a href="http://groups.google.com/group/owp-api"&gt;http://groups.google.com/group/owp-api&lt;/a&gt;) to help in discussing and evolving this proposal as a formal spec, and if possible help in building a few sample reference implementations.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_4808674"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/ppalavilli/open-web-payments" title="Open web payments"&gt;Open web payments&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse4808674" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=openwebpayments-100721171703-phpapp01&amp;rel=0&amp;stripped_title=open-web-payments" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse4808674" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=openwebpayments-100721171703-phpapp01&amp;rel=0&amp;stripped_title=open-web-payments" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ppalavilli"&gt;Praveen Alavilli&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-4622477784166944062?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/4622477784166944062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=4622477784166944062' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4622477784166944062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4622477784166944062'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2010/07/open-web-payments.html' title='Open Web Payments !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-2123024611142172293</id><published>2010-03-11T13:46:00.001-05:00</published><updated>2010-03-11T13:46:50.788-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paypalx'/><category scheme='http://www.blogger.com/atom/ns#' term='wallet'/><title type='text'>Fueling the Wallet.Next</title><content type='html'>&lt;div style="width:425px" id="__ss_3393574"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/paypalx/fueling-the-walletnext" title="Fueling the Wallet.Next"&gt;Fueling the Wallet.Next&lt;/a&gt;&lt;/strong&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=twitter-fueling-wallet-next-100310232211-phpapp02&amp;stripped_title=fueling-the-walletnext" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=twitter-fueling-wallet-next-100310232211-phpapp02&amp;stripped_title=fueling-the-walletnext" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/paypalx"&gt;PayPalX Developer Network&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-2123024611142172293?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/2123024611142172293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=2123024611142172293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2123024611142172293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2123024611142172293'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2010/03/fueling-walletnext.html' title='Fueling the Wallet.Next'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-8383219990042162214</id><published>2010-03-05T01:19:00.001-05:00</published><updated>2010-03-05T01:21:46.829-05:00</updated><title type='text'>In Search of your Wallet ?</title><content type='html'>&lt;div style="width: 425px;" id="__ss_3341008"&gt;&lt;strong style="margin: 12px 0pt 4px; display: block;"&gt;&lt;a href="http://www.slideshare.net/paypalx/in-search-of-wallet" title="In Search of Your Wallet ?"&gt;In Search of Your Wallet ?&lt;/a&gt;&lt;/strong&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ignite-search-of-wallet-v6-100304234618-phpapp02&amp;amp;stripped_title=in-search-of-wallet"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ignite-search-of-wallet-v6-100304234618-phpapp02&amp;amp;stripped_title=in-search-of-wallet" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding: 5px 0pt 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/paypalx"&gt;PayPalX Developer Network&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-8383219990042162214?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/8383219990042162214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=8383219990042162214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/8383219990042162214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/8383219990042162214'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2010/03/in-search-of-your-wallet.html' title='In Search of your Wallet ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-2082670086792237461</id><published>2010-01-25T20:55:00.008-05:00</published><updated>2010-01-25T21:14:24.085-05:00</updated><title type='text'>Online Payments for Developers - Part 2 - Clearing House Based Networks</title><content type='html'>&lt;!--StartFragment--&gt;  &lt;p class="MsoNormal"&gt;(this is a continuation of my previous post on Online Payments for Developers - Part 1)&lt;b&gt; &lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;Clearing House Based Network (a.k.a ACH)&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;A Clearing House simply is a central collection place where banks and other financial institutions exchange checks or drafts and settle accounts. In other words, it’s a common ground for all banks and financial institutions to transact with each other. ACH (Automated Clearing House) is an electronic network for the Clearing House, which was introduced in late 1960s as a result of the first “Paper-less Cache” initiative lead by several banks and Govt. The Federal Govt. wanted to reduce the cost involved in printing and mailing the Social Security, Tax returns, and Payroll checks, and the fraud in stolen checks from peoples mail boxes. The banks wanted to reduce the manual effort required in handling the checks submitted by the people. And last but not least, people wanted quicker access to the funds in their accounts, which otherwise takes a long time for the checks to be processed by the banks manually. &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;Over time several other big corporations started using ACH for direct Payroll processing, and several insurance and utility companies started using ACH for direct debits for their service payments.&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;The ACH is usually called 4 Participants Model, as there are 4 participants in addition to the Clearing House itself. &lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ea5XOGJFPEY/S15MH2OMcMI/AAAAAAAAMyw/lJ2KkAIX5gQ/s1600-h/Slide4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_Ea5XOGJFPEY/S15MH2OMcMI/AAAAAAAAMyw/lJ2KkAIX5gQ/s400/Slide4.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5430861898353242306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;!--StartFragment--&gt;  &lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-indent:-.25in;mso-list:l0 level1 lfo1"&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;The Originator&lt;/b&gt; – that initiates the payments transactions into the ACH (company that’s processing payroll funds, or the utility/insurance company collecting payments or more recently online and telemarketing companies to debit consumer accounts for purchase of goods and services).&lt;/li&gt;&lt;li&gt;&lt;b&gt;ODFI&lt;/b&gt; (Originator Depositor Financial Institution) – a national/state charter bank, financial institution or a credit union or an insurance company that consolidates many transactions from many Originators and submits them to the Clearing House for processing. The ODFI makes sure the transactions are valid and confirm to the ACH standards.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RDFI&lt;/b&gt; (Received Depositor Financial Institution) – a national/start charter bank, a credit union or a loan and savings institution that participates in ACH. The RDFI holds the receivers deposit account and is responsible for accurately processing the transactions by debiting/credits the right accounts and for timely returning information to the ODFI for any transactions that cannot be processed.&lt;/li&gt;&lt;li&gt;&lt;b&gt;The Receiver&lt;/b&gt; – that receives the transaction. The transaction can be a credit or a debit request, which means money, may be added or subtracted from the receivers account. The Receiver holds a depository bank account with the RDFI. The receivers can be consumers or businesses or some other form of a corporate entity.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;        &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;Connecting the ODFIs and RDFIs is the Clearing House that processes all the transactions submitted by the ODFIs and delivers them to the RDFIs. As you can imagine the Clearing House processes gigantic volumes of transactions between the ODFIs and RDFIs. There are 2 Clearing Houses in US – the first one is a public Clearing House operated by Federal Reserve bank, where as the second one is a private Clearing House operated by a consortium of financial institutes and is called Electronic Payments Network.&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Most financial institutions connect directly to the ACH with an exception of a few smaller institutes that connect indirectly to the ACH through another larger financial institution.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Both Clearing Houses operate on the same set of rules defined by the National Automated Clearing House Association (NACHA). NACHA is a non-profit association of member banks, and participants that oversee the ACH network. There are obviously several other regulations that control how the ACH must operate, which you don’t really need to know or worry about unless you are building a system for a financial institution that wants to participate in ACH. &lt;span style="font-family:Wingdings;mso-ascii-font-family:Cambria;mso-ascii-theme-font: minor-latin;mso-hansi-font-family:Cambria;mso-hansi-theme-font:minor-latin; mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type: symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Also as you can guess, most of the financial institutions act as both ODFIs and RDFIs (with varying volumes based on the businesses they cater to – for example a bank processing Payroll sends more transactions as an ODFI than a consumer bank providing checking/saving accounts to end consumers that handles more transactions as an RDFI), although for a given transaction they can only act as one or the other (all the transactions across different accounts with-in the same financial institution are handled by the financial institutions itself and not sent through the Clearing House). &lt;/p&gt;  &lt;p class="MsoNormal"&gt; &lt;/p&gt;  &lt;p class="MsoNormal"&gt;I know you must be as confused as me when I first read about it &lt;span style="font-family:Wingdings;mso-ascii-font-family:Cambria; mso-ascii-theme-font:minor-latin;mso-hansi-font-family:Cambria;mso-hansi-theme-font: minor-latin;mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt; - it helps to understand how this 4 Participants Model work by looking at a sample use case scenario. Let’s walk through a scenario where an employee signs up for direct deposit of paycheck into his personal bank account.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;!--EndFragment--&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ea5XOGJFPEY/S15MdhLoWXI/AAAAAAAAMy4/0NkDfuQQGYo/s1600-h/Slide1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_Ea5XOGJFPEY/S15MdhLoWXI/AAAAAAAAMy4/0NkDfuQQGYo/s400/Slide1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5430862270662465906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;!--StartFragment--&gt;  &lt;p class="MsoNormal"&gt;As indicated in the diagram above, an ACH transaction starts when a receiver &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;(employee in example) authorizes the originator to credit/debit money into their accounts (say Bank of America checking account) for any goods or services they have received, by providing his bank’s routing and account information to the Originator (the employer on our example) for direct deposit of paycheck into his account. Once or several times of a day (depending on the business – in case of payroll it would be biweekly or once a month), the Originator (Employer) sends all of it’s transactions (Paycheck information) in a file to it’s ODFI (say Wells Fargo Bank).&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Once the ODFI processes the files, it debits the money from the Originator’s account for the net value of all the transactions listed in the file. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Similar to the Originator, once a day the ODFI (Wells Fargo Bank in our example) consolidates all the files coming from all of it’s Originators into a single file (format defined by NACHA) and sends it to the Clearing House.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;The Clearing House processes the ODFI files, sorts the transactions by ABA-RTN numbers and calculates the net position for each financial institution including the transaction fee that the Clearing House charges the ODFI and RDFI for processing the transactions. The Clearing House groups the transactions based on the bank routing numbers, and then send the files to the corresponding RDFIs (in our example Bank of America will receive one).&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;It must be noted that even though these files contain millions of transactions, the net value for each RDFI might still be zero, or negative in some cases, since almost all the banks and financial institutions act as both ODFI and RDFI for it’s customers sending and receiving money on behalf of them.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Each day after it processes these files, the Clearing House also tells the ODFI and RDFI Financial Institutes whether they (in our example, Wells Fargo Bank and Bank of America) owes money to the Clearing House or the Clearing House owes the money to the financial institution. All the Settlements between the Financial Institutions are done using the accounts that each one of them holds with the Federal Reserve Bank (in case of public Clearing House) or the corresponding Bank of the Bankers (in case of a private Clearing House).&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Let’s say in our example, the Wells Fargo owes $3M to the Clearing House to provide Salaries to all the employees, out of which say $1M goes to the Bank Of America for all the employees that use accounts in Bank of America and the rest goes to other banks that the employees hold accounts at.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;As indicated in the diagram above, the Originator pays the ODFI a negotiated transaction fee varying based on it’s transaction volumes, and it’s negotiating power and relationship with ODFI. There are additional fee for the files that are processed, transaction reports generated, and the process to bank account, etc. The ODFI and RDFI also pay a processing fee to the Clearing House. There are additional fees associated with services (fraud detection, etc.) provided by the Clearing House operator (NACHA).&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;Similar to the ODFI, the RDFI charges it’s consumers a transaction fee based on the type of account (personal or business).&lt;/p&gt;&lt;p class="MsoNormal"&gt;Alright that's it for the Clearing House Based Networks - next up is Card Based Networks, which I am sure is more interesting than the Clearing House Based Networks. :-)&lt;/p&gt;  &lt;!--EndFragment--&gt;   &lt;p&gt;&lt;/p&gt;  &lt;!--EndFragment--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-2082670086792237461?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/2082670086792237461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=2082670086792237461' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2082670086792237461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2082670086792237461'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2010/01/online-payments-for-developers-part-2.html' title='Online Payments for Developers - Part 2 - Clearing House Based Networks'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ea5XOGJFPEY/S15MH2OMcMI/AAAAAAAAMyw/lJ2KkAIX5gQ/s72-c/Slide4.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-3325645133843627461</id><published>2010-01-20T02:21:00.017-05:00</published><updated>2010-01-25T20:45:33.937-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='payments for developers'/><category scheme='http://www.blogger.com/atom/ns#' term='payment networks'/><category scheme='http://www.blogger.com/atom/ns#' term='payments'/><category scheme='http://www.blogger.com/atom/ns#' term='online payments'/><title type='text'>Online Payments for Developers - Part 1</title><content type='html'>&lt;div&gt;I must admit, when I joined PayPal 2 months back (in Nov) as the Developer Evangelist for PayPal X, I was little excited and little scared. Well everyone can feel the excitement with new Job, new opportunities, new place, new colleagues, etc., but back of my mind there was always a little uncomfortable feeling about Payments and related things, mainly because it's not only a new technology area for me, but also I never knew how payments work behind the scene. Though I am big time online shopper (bought my car online 10 years back on carsdirect.com - still the biggest purchase I've made online) and a heavy credit/debit card user, to be honest I never really bothered about how they work.&lt;br /&gt;&lt;br /&gt;Given my technical background in Online Identity, Authentication and Authorization areas, I was able to quickly come up to speed on the technology side, and with great help from my new colleagues and friends at PayPal, and a few resources online, I've learned a lot about what goes on behind the scenes on the Payment networks now. I know there are a few out there just like me, who is kind of curious to know how it works or want to build something that deals with online Payments but little apprehensive due to lack of understanding of various things that you would have to deal with. So I thought I would give some basic information, which might help you learn a little bit more and helps in building something that might &lt;span style="font-weight: bold; "&gt;change the way we pay&lt;/span&gt;. :-)&lt;br /&gt;&lt;br /&gt;Well to begin with, as we all know, Payments in the modern days usually mean transfer of money (in whatever currency it is) from one party to other, made in exchange of goods, and services, or some times as gifts, donation and support. Payments started back in the old days with people exchanging goods and services that they could offer, for another (bartering) from their fellow citizens. But in the modern days, payments are commonly made using Money (currency/cash notes and coins), Credit/Debit Cards, various forms of Checks (Personal, Demand Drafts, Cashier’s, etc.), and Bank transfers from account to account. While the first one that involves money in physical form is called “&lt;span style="font-weight: bold; "&gt;Cash-based Payments&lt;/span&gt;”, all the others that do not involve money in physical form are called “&lt;span style="font-weight: bold; "&gt;Cashless Payments&lt;/span&gt;“.&lt;br /&gt;&lt;br /&gt;Also just as there are different types of payments being in use today, there are quite a few different names used to indicate who the Senders and Receivers are for a given payment transaction based on their role and participation.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ea5XOGJFPEY/S14o4U17ewI/AAAAAAAAMyg/nUuCKnoPLTw/s1600-h/Slide2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_Ea5XOGJFPEY/S14o4U17ewI/AAAAAAAAMyg/nUuCKnoPLTw/s400/Slide2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5430823148788087554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--StartFragment--&gt;  &lt;p class="MsoNormal"&gt;Cashless Payments are more appealing to everyone as they reduce the overheads of handling cash, cuts down on the risk of theft, the inconvenience of having to the find the right amount of change for a vending or car park machines, and more over, they make payments possible in the online electronic world where direct Cash-based Payments are just impossible.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;There isn’t much to discuss on the technical side of Cash-based Payments, apart from the conversion rates across different currencies, several rules and regulations imposed by different countries and governments, several accounting systems that the financial organizations operate on and last but not least the actual printing of the currency &lt;span style="font-family:Wingdings;mso-ascii-font-family:Cambria;mso-ascii-theme-font: minor-latin;mso-hansi-font-family:Cambria;mso-hansi-theme-font:minor-latin; mso-char-type:symbol;mso-symbol-font-family:Wingdings;"&gt;&lt;span style="mso-char-type: symbol;mso-symbol-font-family:Wingdings;"&gt;J&lt;/span&gt;&lt;/span&gt;. On the other hand, Cashless Payments are technically more challenging given the various forms of online money transfers, and due to the fact that there is no physical money moved between different parties. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The Cashless payments are typically processed through commercial and Govt. controlled Payment Networks. There are several Payment Networks available to provide the cashless payments functionality in both physical and online worlds. Fortunately for developers, the Payment networks they use online hide most of these complexities. So that gives the developers the choice of choosing the form of payments that best fits their applications and use cases, and in some cases that provides them with the best transaction fee too. Almost every form of payment through a payment network involves either a per-transaction fee or a subscription fee or a combination of both.&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight:normal"&gt;Payment Networks&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;o:p&gt;As mentioned earlier, the cashless payments consist of payments using Credit and Debit Cards, various forms of Checks (personal, cashier’s, demand drafts, etc.), and bank transfers between accounts. Out of the 3 types, though more recently they are processed through the same payment network as bank transfers (after they are scanned and processed by banks), the Checks based payments are generally not suited well for the online transactions. The rest of the two falls into 2 types of payment networks categories:&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Clearing House Based Network&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Card Based Network&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;  &lt;!--EndFragment--&gt;   &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ea5XOGJFPEY/S14p4NJ5FrI/AAAAAAAAMyo/cNzFwqTe-04/s1600-h/Slide3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_Ea5XOGJFPEY/S14p4NJ5FrI/AAAAAAAAMyo/cNzFwqTe-04/s400/Slide3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5430824246235961010" /&gt;&lt;/a&gt;&lt;div&gt;Alright I think that's too much for a single post :-) - I will write more about these 2 Payment networks in the next couple of blog posts starting with Clearing House Based Networks.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Disclaimer: This information is in no way a complete/authoritative guide to payments and payment networks. This is just for giving a very quick and high level intro to how online payments work for people like me.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-3325645133843627461?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/3325645133843627461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=3325645133843627461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/3325645133843627461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/3325645133843627461'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2010/01/online-payments-for-developers-part-1.html' title='Online Payments for Developers - Part 1'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ea5XOGJFPEY/S14o4U17ewI/AAAAAAAAMyg/nUuCKnoPLTw/s72-c/Slide2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-674847980880487615</id><published>2009-12-09T15:10:00.003-05:00</published><updated>2009-12-09T15:45:57.828-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='paypal'/><title type='text'>New Role @ PayPal X</title><content type='html'>Well as most of you know - I have moved from the rainy Seattle back to the sunny (but chilly! since last one week) Bay Area, where I started my career as a software engineer 9 years back at Netscape/AOL. My short stay at Amazon.com in Seattle has been an interesting experience - learned a lot working on their platform and helped in building a new Authentication Portal for all Amazon.com, AWS, and it's subsidiaries.  But as you can guess, that's what I've been doing since last 9 years. :-)  It is still exciting to build Web Identity and Authentication Services/Applications, but after 9 years it's definitely not as exciting as it used to be before. Just about the time the new opportunity at PayPal came along to help in their recent efforts to open up their payments platform. What's more interesting than Online Payments for some one with Identity background ? Just kidding ... but just like Online Identity, a lot of things like authentication, authorization, data portability, contacts, activity, risk , fraud, etc..., apply for Online Payments too just at a different (higher) level.  So I took the opportunity to join the PayPal Platform team as the Evangelist to help in making Online Payments more sexy.  The new PayPal X Adaptive Payments Platform been opened up recently (early Nov at the PayPal Innovate Dev Conference) and the APIs are available for developers to make use of and build/convert/monetize their cool ideas around payments into reality. &lt;br /&gt;&lt;br /&gt;I'm looking forward to learn more about the Payments world,  help in improving the PayPal's Adaptive Payments platform/APIs and, above all, be the voice of external developers at PayPal.  When you get a chance, check out https://www.x.com web site - it's our new developer portal with tons of information about PayPal's platform and APIs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-674847980880487615?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/674847980880487615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=674847980880487615' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/674847980880487615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/674847980880487615'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2009/12/new-role-paypal-x.html' title='New Role @ PayPal X'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-627592653252272354</id><published>2009-05-18T01:29:00.003-04:00</published><updated>2009-05-18T01:52:11.619-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iiw#8'/><title type='text'>At the Internet Identity Workshop 2009A</title><content type='html'>wow it's been a long time since I've last blogged. Last couple of months have been quite busy with couple of projects on hand. I've almost lost track (other than checking from OpenID and OAuth mailing lists once in a while) of what's going on in the Identity world outside of Amazon. So looking forward to get upto speed on  what's going on in the Identity world and also catching up with fellow technologists from other companies.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-627592653252272354?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/627592653252272354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=627592653252272354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/627592653252272354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/627592653252272354'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2009/05/at-internet-identity-workshop-2009a.html' title='At the Internet Identity Workshop 2009A'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-1359077126915884600</id><published>2009-01-06T01:53:00.005-05:00</published><updated>2009-01-06T02:52:37.311-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='w3c'/><category scheme='http://www.blogger.com/atom/ns#' term='wsc'/><category scheme='http://www.blogger.com/atom/ns#' term='oauth'/><title type='text'>Concerned about phishing ?</title><content type='html'>With all the swirls going on about &lt;a href="http://blog.twitter.com/2009/01/gone-phishing.html"&gt;phishing, Twitter APIs&lt;/a&gt; and &lt;a href="http://michaelrichardson.me/post/68525320/oauth-doesnt-stop-phishing"&gt;OAuth &lt;/a&gt;- I just wanted to say - user education and awareness is the only way to solve phishing completely. No single technology can stop users from getting phished - unless the user knows what he/she is doing.  Even websites using the out of band authentication and some OTP technologies are prone to phishing - an attacker can simply proxy the requests between the user and the real server.    What technology can do is to make it easy for the users to learn how to protect themselves from getting phished.&lt;br /&gt;&lt;br /&gt;OAuth just does the same - it introduces a consistent way to authorize clients to do something on behalf of a user, with the user's permission and not ask for their login credentials.  Yes one might argue that malicious clients can spoof as the provider and phish for user's credentuals, but given that most of the providers allow SSO and session persistence, a user would still get alarmed if he is asked to provide his login credentials again. &lt;br /&gt;&lt;br /&gt;Cardspace/Infocard selector provides a better security model against phishing by providing a way to completely eliminate the need for passwords. But if the Identity Providers (STS) still require Username/Password claims even with their managed cards, their users are still prone to phishing attacks.&lt;br /&gt;&lt;br /&gt;I would recommend everyone to read the &lt;a href="http://www.w3.org/2006/WSC/drafts/rec/"&gt;User Interface guidelines&lt;/a&gt; written by the &lt;a href="http://www.w3.org/2006/WSC/"&gt;Web Security Context&lt;/a&gt; working group in W3C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-1359077126915884600?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/1359077126915884600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=1359077126915884600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/1359077126915884600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/1359077126915884600'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2009/01/concerned-about-phishing.html' title='Concerned about phishing ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-65624320453393311</id><published>2008-12-31T01:07:00.003-05:00</published><updated>2008-12-31T01:47:01.853-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2009'/><category scheme='http://www.blogger.com/atom/ns#' term='value'/><category scheme='http://www.blogger.com/atom/ns#' term='predictions'/><category scheme='http://www.blogger.com/atom/ns#' term='identity'/><category scheme='http://www.blogger.com/atom/ns#' term='ux'/><category scheme='http://www.blogger.com/atom/ns#' term='new year'/><title type='text'>2009 The Year Of ....</title><content type='html'>well everyone is predicting what's gonna happen in 2009 so thought why not me too :-)&lt;br /&gt;&lt;br /&gt;Nope, I am not going to predict what technology is going to be widely adopted over another, which company will succeed in their online identity and data portability strategies, etc....  to be frankly I don't care. :-)&lt;br /&gt;&lt;br /&gt;2008 has been a good year for Identity (Management and Access Control) and I think it will continue into 2009 with more emphasis on the following things:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;User Experience and Value to End Users - I am one of those who say "my mom knows what email is but doesn't know what SMTP/IMAP are" and I want to see the same in online Identity world. Also I am strong believer that SSO alone doesn't carry many benefits to the end users unless there is some data associated with user's Identity that can be shared across different sites/services. IMO - these two together will play a major role in bringing several Identity related technologies into the mainstream.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Interoperability - not just between services/providers but also between various protocols and technologies in the Open (Web) Stack so they can be all stitched together seamlessly and effortlessly to bring better UX and value to end users.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Anyway eager to see what 2009 has for us and looking forward to work on even more interesting things.... and also very eagerly looking forward to hear my daughter (15m old) talking.&lt;br /&gt;&lt;br /&gt;Happy and a Prosperous New Year Everyone !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-65624320453393311?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/65624320453393311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=65624320453393311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/65624320453393311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/65624320453393311'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/12/2009-year-of.html' title='2009 The Year Of ....'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-6775009422653963141</id><published>2008-12-05T12:20:00.004-05:00</published><updated>2008-12-05T14:35:02.345-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user-centric'/><category scheme='http://www.blogger.com/atom/ns#' term='fbconnect'/><category scheme='http://www.blogger.com/atom/ns#' term='friendconnect'/><category scheme='http://www.blogger.com/atom/ns#' term='connect'/><title type='text'>Open User-Centric Connect ?</title><content type='html'>Just wondering if anyone started working on building an Open Source Connect-like application using the Open Stack (OpenId, OAuth, PoCo, OpenSocial, etc.) that provides users "control" on what Service Provider they want it to use.  Or is Google Friend Connect going to become an Open Source project ?&lt;br /&gt;&lt;br /&gt;Basically IMO - it should be a collection of client side Javascipt, HTML/CSS and server side php/java/.. code, which can be deployed by any Web Site.  It should let users configure where they want their activities should be posted to, where to bring their contacts/friends from, etc..&lt;br /&gt;&lt;br /&gt;Ofcourse all this should be done only using a combination of open standards like OpenID, OAuth, PoCo, OpenSocial, etc..&lt;br /&gt;&lt;br /&gt;Thoughts ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-6775009422653963141?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/6775009422653963141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=6775009422653963141' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6775009422653963141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6775009422653963141'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/12/open-user-centric-connect.html' title='Open User-Centric Connect ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-5251015588485492063</id><published>2008-11-12T02:16:00.003-05:00</published><updated>2008-11-12T03:21:18.263-05:00</updated><title type='text'>Static OpenID Associations !</title><content type='html'>&lt;p class="western" style="margin-bottom: 0in;"&gt;One of the things that I have been thinking about recently is about what changes we would need in OpenID to make it easy to build something that provides seamless user experience like FBConnect (just user authentication not sharing user data like friends list, feeds, etc.).&lt;br /&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in;"&gt;Of course, with the existing OpenID 2.0 spec, it's quite easy to do it (using a combination of  checkid_immediate and checkid_setup calls) but the RPs still need to do some heavy lifting in terms of setting up their servers, databases and database replication, etc..  to run on a farm of servers for scalability and performance. (for example storing and sharing discovery, associations and nonce verification information on multiple servers across different data centers and not to mention issues around enabling outgoing http connections to fetch discovery and associations info)&lt;br /&gt;&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in;"&gt;We could argue that the RPs can just use the check_authentication call to OP to verify the assertion but this adds up unnecessary additional latency in the overall authentication process.&lt;/p&gt;&lt;p class="western" style="margin-bottom: 0in;"&gt;And when it comes to enabling SSO with in trusted circles using OpenID, the dynamic discovery and association steps seems unnecessary. Usually trusted circles are limited in size and are used to sharing keys and secrets (meta-data) in some other offline provisioing process anyway.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;So with those in mind I wonder if it makes sense to propose an extension to OpenID that would allow OPs and RPs in a trusted circle to establish static associations such that the RPs can just host a simple php/servlet/perl/.net/etc.. handler that validates the assertion returned by the OP using the stored association information locally.  &lt;p class="western" style="margin-bottom: 0in;"&gt;It goes something like this&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;Allows an RP to preregister with   an OP to get it’s own association data.&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;RP provides it’s preferred   association type (HMAC-SHA1/256), and realm&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;OP SHOULD do the necessary checks   based on their business relationship to make sure the realm   provided matches the RP , which is out of scope of this extension&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;OP generates and provides   assoc_handle, mac_key and expires_in    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;RP uses the assoc_handle in the   checkid_immediate and checked_setup requests.&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;OP MUST always make sure the   return_to url matches the realm exchanged during the offline   provisioning process – not the realm passed in as a request   parameter.&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;OP MUST sign all the positive   assertions with the mac_key corresponding to the assoc_handle   passed in by the RP.&lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;If a given assoc_handle is   expired, OP MUST fail the request (both immediate and   non-immediate) with an openid.mode value as “expired_association”   along with the expired association handle value as   invalidate_handle  parameter.    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;RP MUST verify the assertion   signature locally (must not send check_authentication request to   OP)    &lt;/p&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;RP MUST make sure the timestamp   passed in the response_nonce is within an allowed time period (say   5 mins)    &lt;/p&gt;   &lt;ol type="i"&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;If the RP can do regular nonce    checking (to make sure it’s only used once) then it SHOULD    do so instead of just checking for the allowed time period as this    exposes the replay attacks for a small window of time.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;Alternatively RP MAY sync it's clock based on OP&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;   &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0in;"&gt;RP extracts the user’s   identity provided by the OP as per the OpenID specification.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;To implement this all an RP would need are&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a few config file entries to provide association handle and mac_key to the application code&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a simple OpenID handler (php/perl/servlet/etc..) that uses the association information from config file to generate OpenID Server redirect url to request authentication (which can be cached as the assoc_handle doesn't change) and to verify the response from the OP (validate signature, nonce, etc..)&lt;/li&gt;&lt;/ul&gt; Now compare this with what it takes to become an RP with current OpenID2.0 spec.&lt;br /&gt;&lt;br /&gt;Of course I know this is defeating the original purpose and intent of OpenID to provide authentication framework for the internet, but given that several people that have done various user experience analysis and finding that OpenID is more useful and meaningful to users when the RPs provide OP specific login buttons anyway (Login with Yahoo, Login with Google, etc..), would supporting something like this be way off the original intent ? Since this will be an optional extension, people who want to support any OpenID out there can still do it, while others who only care about SSO with a few trusted OPs (that they have business relationship with) do not need to reinvent the wheel.&lt;br /&gt;&lt;br /&gt;Also another thing to keep in mind is for other apis/protocols (like OAuth) the RPs would need to share consumer information (keys and secrets) anyway.&lt;br /&gt;&lt;br /&gt;Thoughts ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-5251015588485492063?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/5251015588485492063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=5251015588485492063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/5251015588485492063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/5251015588485492063'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/11/static-openid-associations.html' title='Static OpenID Associations !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-4958873579860609328</id><published>2008-11-11T16:45:00.004-05:00</published><updated>2008-11-12T02:16:29.671-05:00</updated><title type='text'>Account Recovery for terminated OpenIDs</title><content type='html'>Wells one question that always comes up when talking about becoming an RP is - what do we do when the OP that our users chose to use, shuts down it's OpenID support ? The answer has always been - well collect your own credentials (which in most cases is a password, because no one wants to collect lots of PII info for online account recovery)  so you can let the users recover their lost accounts if necessary in the future.  Then the next question comes - well then why do I need to support OpenID  and more over it's not solving the original goal of reducing the number of passwords the users have to remember.&lt;br /&gt;&lt;br /&gt;Can all OPs provide 99.9% uptime SLA ? Or should every user on the internet have his/her own domain that delegates to a trusted OP and can be changed by the user if necessary ?&lt;br /&gt;&lt;br /&gt;Any other thoughts ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-4958873579860609328?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/4958873579860609328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=4958873579860609328' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4958873579860609328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4958873579860609328'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/11/account-recovery-for-terminated-openids.html' title='Account Recovery for terminated OpenIDs'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-2251042893852688885</id><published>2008-11-11T01:40:00.004-05:00</published><updated>2008-11-11T01:54:07.750-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iiw2008b'/><category scheme='http://www.blogger.com/atom/ns#' term='iiw'/><title type='text'>all set for Internet Identity Workshop</title><content type='html'>Just arrived in bayarea to attend the &lt;a href="http://iiw.idcommons.net/Index.php/Iiw2008b"&gt;IIW &lt;/a&gt;from tomorrow. Missed all the fun today but the next two days is when things start getting more serious. Looking forward to participate in various discussions, learn and hear about things related to Identity and Authentication from others and of course meet some good old friends and great technologists from other companies.&lt;br /&gt;&lt;br /&gt;I am in particular interested about things happening in the OpenID UX improvements side and also to talk about UX improvements in OAuth for mobile/client apps. It's been a long time (June 26th) since we started talking about OAuth spec updates covering very important usecases at the OAuth Summit - so time now to find out where things are with those too.&lt;br /&gt;&lt;br /&gt;With the recent job change and the big relocation from East coast to west, I feel like I have been disconnected with the Identity community. Hopefully this IIW would get me back up to speed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-2251042893852688885?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/2251042893852688885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=2251042893852688885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2251042893852688885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2251042893852688885'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/11/all-set-for-internet-identity-workshop.html' title='all set for Internet Identity Workshop'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-627099032090160909</id><published>2008-10-23T00:50:00.005-04:00</published><updated>2008-10-23T09:41:25.872-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='openid'/><category scheme='http://www.blogger.com/atom/ns#' term='fbconnect'/><category scheme='http://www.blogger.com/atom/ns#' term='oauth'/><title type='text'>FB Connect really raising the bar for OpenID ?</title><content type='html'>I was reading John McCrea's guest post on techcrunch titled "&lt;a href="http://www.techcrunchit.com/2008/10/22/facebook-connect-and-openid-relationship-status-%E2%80%9Cit%E2%80%99s-complicated%E2%80%9D/"&gt;Facebook Connect and OpenID Relationship status: it's complicated!&lt;/a&gt;" and that started me thinking is it really raising the bar for OpenID ? I don't think so. It's raising the bar for OpenID "Providers" to provide better user experience &lt;span style="font-weight: bold;"&gt;"not" &lt;/span&gt;for OpenID itself at the expense of being an example for "just do it your way and don't worry about open standards".  Isn't it ? May be I am thinking it so because I missed their presentation at the &lt;a href="http://therealmccrea.com/2008/10/20/live-blogging-the-openidoauth-ux-summit/"&gt;OpenID UX Summit&lt;/a&gt; last monday.&lt;br /&gt;&lt;br /&gt;Seriously, FB Connect provides 2 things at it's core -&lt;br /&gt;&lt;ol&gt;&lt;li&gt;an identity exchange (or so the called SSO) protocol for sign in, and&lt;/li&gt;&lt;li&gt;a web api to retrieve some information from your profile, friends and post to your activity stream&lt;/li&gt;&lt;/ol&gt;Then it provides an easy to use web toolkit/library/Javascript built on top of their platform to make the integration easy (totally hiding the complexity in implementing #1 &amp;amp; #2 above). This is not new - several have done it before. But they weren't probably as successful as FB connect is (or will be) because they don't have the same kind of crowd (user base) and utility as Facebook Connect to the end users !?!&lt;br /&gt;&lt;br /&gt;Here is an example from the previous company I worked for: &lt;a href="http://dev.aol.com/aim/tutorials/add_blist_widget"&gt;Adding AIM buddylist to your webpage&lt;/a&gt; (click on see the buddylist widget in action button). Yeah it uses iframe to load the sign in form (which FBConnect used to do when it launched in the beginning) but you get my point.&lt;br /&gt;&lt;br /&gt;When we did something very similar (but only for displaying authentication status dynamically) back in my previous job, which we called "Auth touch point Hat" that anyone (internal/external partners) could use to automatically detect and display user's authentication status with as simple as inserting a line of javascript code, it was well taken initially by everyone. (I believe it's still in use on some sites like journals.aol.com and myaccount.aol.com but not so sure ...) But as the sites grew in terms of page views  then came along the high performance requirements.  They started to hating it because when the browser loads their page, it has to make a connection to the login server (on SSL) to download the JS,  which is cacheable but it makes a SSL request back to the host every time  the page loads to detect authentication status and also loads couple of static images/css files from CDN (yet another server the browser needs to make connections with).  All these add extra weight on the page. If there are enough number of users on the page using it then may be it's a good trade off but otherwise, you are slowing down the rest of the users who don't really care about it. In such cases, it's much more easy to make the Sign In link/button static and deal with the rest only when a user completes the Sign In part and comes back with an Authentication token/assertion. I am sure several other providers might have gone through similar experiences.&lt;br /&gt;&lt;br /&gt;Now looking at the # of html elements theinsider.com is loading for FB Connect, I really wonder how long before these guys would start saying it's slowing down my site (even the static content coming from their cdn has "no-cache" headers !?) and go back to static links and do things only when it's really required.&lt;br /&gt;&lt;br /&gt;But anyway going back to my original point, it's really an eye opener for all Identity Providers. Unless the SignIn is contextual, has value and easy to understand, end users don't get it. Just merely telling them that you can type your OpenID url doesn't bring in good experience.  OpenID has to get away from being a "product" to an "open protocol for WebSSO".  One can add all other flavours on top of it (as extensions, OAuth, etc.. as per their needs) to make it really useful to the users.  It's really not worth reinventing the whole wheel again and again. Personally I have done it thrice already in my previous jobs - well I did it because there was no one single standard that's been adopted by everyone, easy to implement and use at that time. Not sure why FB Connect couldn't use OpenID protocol as the underlying SSO protocol and OAuth as the authorization protocol and build the rest of the things (exact same UI and UX) on top of them !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-627099032090160909?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/627099032090160909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=627099032090160909' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/627099032090160909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/627099032090160909'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/10/fb-connect-really-raising-bar-for.html' title='FB Connect really raising the bar for OpenID ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-532992984399693717</id><published>2008-10-17T01:48:00.003-04:00</published><updated>2008-10-17T02:28:13.978-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open platform'/><category scheme='http://www.blogger.com/atom/ns#' term='open services'/><category scheme='http://www.blogger.com/atom/ns#' term='application platform'/><title type='text'>Open Services to Open Application Platforms!</title><content type='html'>Imagine you are an emerging artist with lots of ideas to create beautiful paintings. Now if I give you 2 options:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I will give you all the material (paint, canvas, brushes, etc..) and you go create whatever paintings that you want to create and display/market/promote them where ever you want&lt;/li&gt;&lt;li&gt;You create a painting in your own workshop using your own materials (I might give you a few tools to help you make the painting even more beautiful - nice frame to put it in, etc..) and bring it to me - I will put in my gallery where thousands/millions/billions of art loving people come to see/buy paintings everyday&lt;/li&gt;&lt;/ol&gt;Which one would you like the most ? Obviously #2 isn't it ? Materials are something that you can afford on your own (you don't have to be a popular artist to buy this stuff) but getting your art displayed in a popular gallery .. not so easy for many !&lt;br /&gt;&lt;br /&gt;That's what exactly is the reason behind why so many providers getting on to the Open Application Platform business.  The recent Yahoo Application Platform (YAP) is one such strategy in my opinion. Yeah I can use their Address Book, Mail APIs, Messenger APIs, etc.. to build cool and interesting applications, but how can I get real users find it and use it ? With YAP what ever I build instantly becomes available to millions of users.  Obviously this is no different than the platforms that are already available out there (MySpace, Facebook, Bebo, etc..) - but the interesting thing to watch is how end users are going to use it - I don't think Yahoo has any social apps (flickr is one but I don't think there are similar kinds of social circles as you find on others) that are as popular as other social networking sites. As we all know recently with the new UI redesign, at least the Facebook guys kind of deprioritized the importance of Applications on Facebook for several reasons (UI, UX, privacy, etc..). Now we have to see how much control YAP would give the developers control on the UI, position and user data access. &lt;br /&gt;&lt;br /&gt;Anyway, I wonder if this is the end of the Open Services era and the start of a new "Applications on the cloud" era. We have already seen the success of iPhone Apps, Google documents are becoming part of day to day work for many instead of MS Office, and many more SaaS based consumer applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-532992984399693717?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/532992984399693717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=532992984399693717' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/532992984399693717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/532992984399693717'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/10/open-services-to-open-application.html' title='Open Services to Open Application Platforms!'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-6237908368530793026</id><published>2008-10-08T13:13:00.005-04:00</published><updated>2008-10-08T13:22:22.772-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl warnings'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>What's up with FB and SSL ?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ea5XOGJFPEY/SOzqRoDFwJI/AAAAAAAAJQE/LzBs3w0Yuuc/s1600-h/fb-reg-ssl-error.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Ea5XOGJFPEY/SOzqRoDFwJI/AAAAAAAAJQE/LzBs3w0Yuuc/s400/fb-reg-ssl-error.JPG" alt="" id="BLOGGER_PHOTO_ID_5254832453763580050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;These are the kind of things that make SSL warnings in a browser useless for end users - because they would accept it anyway - deliberately or not !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-6237908368530793026?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/6237908368530793026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=6237908368530793026' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6237908368530793026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6237908368530793026'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/10/whats-up-with-fb-and-ssl.html' title='What&apos;s up with FB and SSL ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ea5XOGJFPEY/SOzqRoDFwJI/AAAAAAAAJQE/LzBs3w0Yuuc/s72-c/fb-reg-ssl-error.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-100927796595712503</id><published>2008-10-01T10:28:00.004-04:00</published><updated>2008-10-01T10:48:32.329-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pii'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox3'/><category scheme='http://www.blogger.com/atom/ns#' term='gmail'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><title type='text'>Privacy concern with GMail in Firefox 3 ?</title><content type='html'>Don't know if any one else have noticed, but when you are reading mails on GMail.com, it changes the html 'TITLE' of the page as the mail subject along with your email address. Something like "Gmail - &lt;mail subject=""&gt; - &lt;your email="" addr=""&gt;". Since FF3 now displays (I don't remember seeing this problem with FF2) the page title also along with the urls matching in the Location bar, when you start typing "gmail.com",  some of your personal data/information could get exposed (look at the screenshot below), unless you make sure you clear all the browsing history in the browser after you are done.  Obviously this probably isn't a big concern when you are not sharing your computer with others.&lt;br /&gt;&lt;/your&gt;&lt;/mail&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ea5XOGJFPEY/SOONCNNGQfI/AAAAAAAAJPk/tNd2t8COG2Y/s1600-h/firefox_location_bar.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ea5XOGJFPEY/SOONCNNGQfI/AAAAAAAAJPk/tNd2t8COG2Y/s400/firefox_location_bar.JPG" alt="" id="BLOGGER_PHOTO_ID_5252196659487982066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;mail subject=""&gt;&lt;your email="" addr=""&gt;I have checked Yahoo!, Hotmail &amp;amp; AOL webmail applications and they don't do the same - the title of the page doesn't change to the mail subject &amp;amp; email address. So no privacy issues there.&lt;br /&gt;&lt;br /&gt;Also IE doesn't seem to display the page titles in location bar although I didn't check in the new IE8 beta.&lt;br /&gt;&lt;br /&gt;&lt;/your&gt;&lt;/mail&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-100927796595712503?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/100927796595712503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=100927796595712503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/100927796595712503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/100927796595712503'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/10/privacy-concern-with-gmail-in-firefox-3.html' title='Privacy concern with GMail in Firefox 3 ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ea5XOGJFPEY/SOONCNNGQfI/AAAAAAAAJPk/tNd2t8COG2Y/s72-c/firefox_location_bar.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-3791939656737861116</id><published>2008-09-27T16:02:00.003-04:00</published><updated>2008-09-30T14:22:46.872-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sso'/><category scheme='http://www.blogger.com/atom/ns#' term='identity protocols'/><category scheme='http://www.blogger.com/atom/ns#' term='web authentication'/><category scheme='http://www.blogger.com/atom/ns#' term='authentication system'/><title type='text'>What it takes to build a Web Authentication Service ?</title><content type='html'>I wanted to write about things that a Web Authentication/SSO Service would need to have for a long time but never got a chance to do so. During the last one week I started writing this down whenever I got a chance during my big move to Seattle.&lt;br /&gt;&lt;br /&gt;The main reason behind this post is to point out the common features that most of the "Web" Authentication, SSO &amp;amp; Identity Providers would need to provide to support Consumer apps and Services (both internal and external Consumers) :&lt;br /&gt;&lt;ol&gt;&lt;li&gt;a way to detect if a user is already Signed-In or not&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a way to Authentication users with support for 2nd factor and strong authentication methods where ever applicable&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a protocol to exchange user Identity and profile information&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a way to request a security token to bootstrap authentication process to invoke services on behalf of the users&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a way to validate/verify the security tokens&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a way to request user's permission to do something on behalf of the user using the security token&lt;br /&gt;&lt;/li&gt;&lt;li&gt;a way to provision required configuration and crypto keys (manual or automatic)&lt;/li&gt;&lt;li&gt;a way to discover various end points (service end points, authentication server end points, etc.)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;And of course for the users&lt;br /&gt;&lt;ol&gt;&lt;li&gt;a way for user to register account&lt;/li&gt;&lt;li&gt;a way for user to update account information&lt;/li&gt;&lt;li&gt;a way for user to reset authentication credentials (password, security question, etc...)&lt;/li&gt;&lt;li&gt;a way for user to manage permissions/sessions/etc...&lt;/li&gt;&lt;li&gt;a way for user to manage account relationships, Parental Control information and federations&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Obviously to provide all the above functionality, it would need&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A Token management system to generate secure (encrypted or signed) tokens&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A Service management system to provision and manager Consumers and Services utilizing Authentication Services&lt;br /&gt;&lt;/li&gt;&lt;li&gt;An Account management system for users to register and manage account information&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A Session management system for keeping track of user's activity and authentication status&lt;/li&gt;&lt;li&gt;A Permission management system for keeping track of user's authorization decisions&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A front end Web-Application to serve customizable Login UI&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A front end Web-Application to handle different protocols,&lt;/li&gt;&lt;li&gt;A Access Control/Authorization System&lt;/li&gt;&lt;li&gt;A Database to store account and credential information&lt;/li&gt;&lt;li&gt;A Discovery system to manage and provide both user and service discovery data&lt;br /&gt;&lt;/li&gt;&lt;li&gt;strong security filters to prevent XSS/SQL &amp;amp; Script injection attacks, and&lt;br /&gt;&lt;/li&gt;&lt;li&gt; last but not least an Encryption Key management system&lt;/li&gt;&lt;/ol&gt;All these could exist as different components in a single System or as different services (most commonly) that are used together or a combination of both to build the complete Authentication Service.  Oh and don't forget the other basic operational things like logging, metrics, monitoring, rate limiting, etc..  - without those it would be a nightmare for the Operations teams to run and manage the Authentication Systems.&lt;br /&gt;&lt;br /&gt;There are several Open Standard Protocols that provide most of the functionalities listed above, so pick and choose the ones that makes the most sense for your needs.&lt;br /&gt;&lt;br /&gt;UPDATE: I missed a few mainly the obvious Database to store both account information &amp;amp; authentication/challenge credentials, a discovery service and some kind of "role" management system to access control users to various resources/functionality.  Account relationships and Parental Controls kind of fall in the same category.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-3791939656737861116?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/3791939656737861116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=3791939656737861116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/3791939656737861116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/3791939656737861116'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/what-it-takes-to-build-web.html' title='What it takes to build a Web Authentication Service ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-6199007517294136416</id><published>2008-09-17T22:14:00.010-04:00</published><updated>2008-09-18T07:36:09.097-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='online password reset'/><category scheme='http://www.blogger.com/atom/ns#' term='phishing'/><category scheme='http://www.blogger.com/atom/ns#' term='social engineering attack'/><title type='text'>Social Engineering Attack</title><content type='html'>Here is a good example of Social Engineering Attacks:&lt;br /&gt;&lt;br /&gt;http://ap.google.com/article/ALeqM5iem-vu_mlRjRYfqkscEkw2ciRm7wD938OLM81&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"It wasn't immediately clear how hackers broke into Palin's Yahoo! account, but it would have been possible to trick the service into revealing her password knowing personal details about Palin that include her birthdate and ZIP code. A hacker also might have sent a forged e-mail to her account tricking her into revealing her own password."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;A quick look at all the Online Password Reset flows at all major providers, all you need to know is the answer to the Security Question. Some doesn't even verify any more additional data - not that they are hard to guess but at least it adds little more complexity for hackers to try all possible combinations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-6199007517294136416?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/6199007517294136416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=6199007517294136416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6199007517294136416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6199007517294136416'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/social-engineering-attack.html' title='Social Engineering Attack'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-173506816195430616</id><published>2008-09-17T22:14:00.007-04:00</published><updated>2008-09-18T07:14:53.134-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aol'/><category scheme='http://www.blogger.com/atom/ns#' term='sns'/><category scheme='http://www.blogger.com/atom/ns#' term='magiccarpet'/><category scheme='http://www.blogger.com/atom/ns#' term='openauth'/><title type='text'>A3 &gt;&gt;&gt;&gt; A6</title><content type='html'>Two more days left for me at AOL. Since last 2 weeks I have been quite busy doing lots of knowledge transfer and various project transition meetings. It's just amazing to recap the number of things I have worked on, dealt with and learned, and the number of great people I worked  with in the last 8 years. I still remember the day one at Netscape (MView) back in 2000 going through the new employee orientation. For the first few months I spent lot of time in learning more about Authentication, SSO,  how Passport works, how MagicCarpet works, etc.. - I should say those were the real foundations for me right after coming out of school. Learned a lot from the original authentication gurus at AOL (&lt;a href="http://www.linkedin.com/pub/0/5b/1a2"&gt;Chris Toomey&lt;/a&gt; and &lt;a href="http://perlmeister.com/"&gt;Mike Schilli&lt;/a&gt;). I still can't believe how several features that we designed and implemented in the earlier versions of &lt;a href="http://www.google.com/search?hl=en&amp;amp;client=firefox-a&amp;amp;rls=org.mozilla:en-US:official&amp;amp;hs=b0T&amp;amp;pwst=1&amp;amp;sa=X&amp;amp;oi=spell&amp;amp;resnum=0&amp;amp;ct=result&amp;amp;cd=1&amp;amp;q=aol+magic+carpet&amp;amp;spell=1"&gt;MagicCarpet&lt;/a&gt; still being used in several places (both internally and externally). From MagicCarpet to &lt;a href="https://my.screenname.aol.com/"&gt;Screen Name Service&lt;/a&gt; to &lt;a href="http://dev.aol.com/api/openauth"&gt;OpenAuth&lt;/a&gt;- it's been a great ride for me at AOL. I just hope to continue the same in my next job at Amazon - yup a big move from East Coast back to the West. Wish me luck !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-173506816195430616?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/173506816195430616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=173506816195430616' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/173506816195430616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/173506816195430616'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/a3-a6.html' title='A3 &gt;&gt;&gt;&gt; A6'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-7224582366009419963</id><published>2008-09-15T12:50:00.004-04:00</published><updated>2008-09-15T13:39:57.839-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='tls'/><category scheme='http://www.blogger.com/atom/ns#' term='certificates'/><title type='text'>SSL != Rocket Science</title><content type='html'>Not sure why but since last week I got an impression that most of the developers think SSL as rocket science. :-(&lt;br /&gt;&lt;br /&gt;Truth is it's not that complex - there are tons of resources online that describe how SSL works in simple terms. In most cases you just need to read the protocol, and don't worry about the internal details because all those are taken care of applications, packages, libraries, etc.. that have been out there for a really really long time.&lt;br /&gt;&lt;br /&gt;Here are some that explain the SSL protocol in simple terms ( I will add more as I find them):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Secure_Sockets_Layer"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www2.rad.com/networks/2001/ssl/index.htm"&gt;SSL Tutorial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.definityhealth.com/marketing/how_ssl_works.html"&gt;How SSL Works?&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://video.google.com/videoplay?docid=7130470471741831613&amp;amp;ei=r5vOSPD9KoLOrgLDv-jXAg&amp;amp;q=SSL"&gt;A Video tutorial&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;As an application developer dealing with SSL, all you have to worry about is how to manage the SSL certificates (client side or server side), how to manage your CA Certs files so you can verify the certificates presented by the servers, and how to check if a certificate has expired or revoked.&lt;br /&gt;&lt;br /&gt;Of course as with any other security software, always make sure you subscribe for the updates to the software you are using for bug fixes and patches that could make your application vulnerable to security attacks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-7224582366009419963?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/7224582366009419963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=7224582366009419963' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/7224582366009419963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/7224582366009419963'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/ssl-rocket-science.html' title='SSL != Rocket Science'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-5187201699082818283</id><published>2008-09-14T16:44:00.009-04:00</published><updated>2008-10-03T18:03:42.595-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fbconnect'/><category scheme='http://www.blogger.com/atom/ns#' term='ssl'/><category scheme='http://www.blogger.com/atom/ns#' term='tls'/><category scheme='http://www.blogger.com/atom/ns#' term='certificates'/><title type='text'>FBConnect - still insecure ?!?</title><content type='html'>Today I realized it's been over 2 weeks since I &lt;a href="http://whyidentity.blogspot.com/2008/09/facebook-connect.html"&gt;last wrote on the FBConnect stuff&lt;/a&gt; and thought of checking it out again to see if there have been any changes done to improve the security and any other things after their recent Facebook Developer Garage event (called Connect Edition).&lt;br /&gt;&lt;br /&gt;Surprisingly the only change they have done is to change the login form into a popup instead of an IFRAME embedded in the site. Here is the screenshot of how it looks now:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ea5XOGJFPEY/SM17fyIBWhI/AAAAAAAAJJ8/8yPWBshGhs0/s1600-h/fbconnect.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ea5XOGJFPEY/SM17fyIBWhI/AAAAAAAAJJ8/8yPWBshGhs0/s320/fbconnect.png" alt="" id="BLOGGER_PHOTO_ID_5245984926918072850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;But still no SSL ! I wonder why ? Even the form POST is on non-SSL - means your login credentials are in clear and you are vulnerable to MITM attacks (eavesdropping).&lt;br /&gt;&lt;br /&gt;&lt;form method="post" action="http://www.connect.facebook.com/login.php?popup=1&amp;amp;                fbconnect=1" onsubmit="return confirmation_validate_add();"&gt;&lt;br /&gt;&lt;br /&gt;Mainly if you are using those free insecure wi-fi's, please make sure you don't login through FBConnect.&lt;br /&gt;&lt;br /&gt;UPDATE 10/3/2008:&lt;br /&gt;The FBConnect now switched over to SSL for their form POST. &lt;br /&gt;&lt;blockquote&gt;&lt;pre id="line1"&gt;&lt;span class="start-tag"&gt;{form&lt;/span&gt;&lt;span class="attribute-name"&gt; method&lt;/span&gt;=&lt;span class="attribute-value"&gt;"post" &lt;/span&gt;&lt;span class="attribute-name"&gt;action&lt;/span&gt;=&lt;span class="attribute-value"&gt;"https://login.new.facebook.com/login.php?&lt;br /&gt;popup=1&amp;amp;fbconnect=1&amp;amp;connect_display=popup"}&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;/form&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-5187201699082818283?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/5187201699082818283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=5187201699082818283' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/5187201699082818283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/5187201699082818283'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/fbconnect-still-insecure.html' title='FBConnect - still insecure ?!?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ea5XOGJFPEY/SM17fyIBWhI/AAAAAAAAJJ8/8yPWBshGhs0/s72-c/fbconnect.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-4291247148979368721</id><published>2008-09-12T18:09:00.004-04:00</published><updated>2008-09-12T18:24:46.223-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aol password anti-pattern oauth bbauth'/><title type='text'>AOL.com now with Yahoo Mail and GMail Preview !</title><content type='html'>I was pleasantly surprised to see the Yahoo Mail and GMail preview widgets on AOL.com today. I didn't had a chance to talk with the AOL.com developers yet but looks like for Yahoo Mail they are using &lt;a href="http://developer.yahoo.com/auth/"&gt;BBAuth&lt;/a&gt; and their&lt;a href="http://developer.yahoo.com/mail/"&gt; Mail API&lt;/a&gt;s but for GMail it's same old story - see "&lt;a href="http://adactio.com/journal/1357"&gt;The password anti-pattern&lt;/a&gt;" :-(&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ea5XOGJFPEY/SMrqoh8dbHI/AAAAAAAAJJU/7aHH5HTYP1g/s1600-h/aol_com.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_Ea5XOGJFPEY/SMrqoh8dbHI/AAAAAAAAJJU/7aHH5HTYP1g/s320/aol_com.png" alt="" id="BLOGGER_PHOTO_ID_5245262698053987442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hope the GMail team will launch OAuth enabled APIs soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-4291247148979368721?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/4291247148979368721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=4291247148979368721' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4291247148979368721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4291247148979368721'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/aolcom-now-with-yahoo-mail-and-gmail.html' title='AOL.com now with Yahoo Mail and GMail Preview !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ea5XOGJFPEY/SMrqoh8dbHI/AAAAAAAAJJU/7aHH5HTYP1g/s72-c/aol_com.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-760555888748004122</id><published>2008-09-11T14:38:00.002-04:00</published><updated>2008-09-11T14:47:41.076-04:00</updated><title type='text'>Chrome's stats for the nerds !</title><content type='html'>First thing I tried after I installed the Chrome last week was the about:config url to see various internal configs and was surprised to see that it's not supported.&lt;br /&gt;&lt;br /&gt;But then I found several very useful other pages that are  supported by Chrome:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:memory &lt;span style="font-family: arial;"&gt;(you can go to this by clicking on the stats for the nerds link in the Chrome's Task Manager - Shift + Esc)&lt;/span&gt;&lt;/strong&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:cache&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:dns&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:histrograms&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:internets&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:network&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:plugins&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:stats&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="Article_Date"&gt;&lt;span class="Article_Date"&gt;&lt;span class="txt"&gt;&lt;strong&gt;about:version&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;Wonderful!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-760555888748004122?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/760555888748004122/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=760555888748004122' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/760555888748004122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/760555888748004122'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/chromes-stats-for-nerds.html' title='Chrome&apos;s stats for the nerds !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-4772180700445584118</id><published>2008-09-10T11:24:00.000-04:00</published><updated>2008-09-10T11:44:46.868-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='oauth extensions javascript consumers'/><title type='text'>OAuth for Javascript (AJAX) clients</title><content type='html'>&lt;a href="http://tonycode.com/"&gt;Tony &lt;/a&gt;reminded me about something on &lt;a href="http://twitter.com/ppalavilli"&gt;twitter&lt;/a&gt; today that I wanted to write about since long time after a &lt;a href="http://groups.google.com/group/oauth-extensions/browse_thread/thread/e64243d0c6518d6a"&gt;discussion on OAuth-Extensions mailing list&lt;/a&gt; about how to use OAuth from Javascript based "in-browser" Consumers using various AJAX technologies/methods that are already available.&lt;br /&gt;&lt;br /&gt;Before I jump into how this will work - here are some building blocks that you would need:&lt;br /&gt;&lt;br /&gt;At the minimum you would need:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://oauth.net/core/1.0/"&gt;OAuth Core 1.0&lt;/a&gt; (this is obvious :-) )&lt;/li&gt;&lt;li&gt;&lt;a href="http://oauth.googlecode.com/svn/spec/ext/response_data_format/1.0/drafts/1/oauth_response_data_format_ext.html"&gt;OAuth Custom Response Data Format Extension&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://oauth.pbwiki.com/ProblemReporting"&gt;OAuth Problem Reporting Extension&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://breno.demedeiros.googlepages.com/oauth-unregistered.html"&gt;OAuth Extension to support unregistered consumers&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The following are more for advanced users as they require strong security/access controls:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://dojotoolkit.org/book/dojo-book-0-4/part-5-connecting-pieces/i-o/cross-domain-xmlhttprequest-using-iframe-proxy"&gt;Cross Domain XMLHTTPRequest using an IFRAME Proxy&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The new &lt;a href="http://www.w3.org/TR/XMLHttpRequest2/"&gt;XMLHttpRequest Level 2&lt;/a&gt; (and related &lt;a href="http://www.w3.org/TR/access-control/"&gt;Access Control for Cross-site Requests&lt;/a&gt;) and &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/#crossDocumentMessages"&gt;Cross-document Messaging&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;Alright so the main problem with the OAuth Core 1.0 spec that makes it hard to use from a Javascript Consumer is that all the response error codes are returned as HTTP Status Codes and the response data is in a simple form-encoded format (parameters separated with '=' and '&amp;amp;' signs) .&lt;br /&gt;&lt;br /&gt;Almost all methods except for the XMLHttpRequest for doing AJAX calls in a browser neither provide access to the raw HTTP headears nor the HTTP response status code. So it is pretty much not possible to handle OAuth requests and responses unless the Consumer is hosted on the same domain as the Service Provider so it can use XMLHttpRequest or if the Service Provider provides an IFRAME Proxy that the Consumers can use to make XMLHttpRequest (see &lt;a href="http://dojotoolkit.org/book/dojo-book-0-4/part-5-connecting-pieces/i-o/cross-domain-xmlhttprequest-using-iframe-proxy"&gt;Cross Domain XMLHTTPRequest using an IFRAME Proxy&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The problem with the response data is that it just doesn't work for jsonp calls, which is the most common way to do cross domain requests using javascript (when XMLHttpRequest cannot be used).&lt;br /&gt;&lt;br /&gt;So to solve this problem, couple of extensions were proposed. The first important one is "Custom Response Data Format" Extension, that allows a Service Provider to advertise what other data formats are supported in it's Discovery (XRDS) document and the Consumer can pick the data format that best suites it's need. The default data formats defined in the extension are the most commonly used ones like xml, json, yaml, and amf0/3.  Service Providers can define their own data formats too and document them in their own API documentation along with the format identifier and the corresponding processing rules/logic.  With this extension,  the Service Providers can support the response data in a format that can be easily read and processed by the Javascript Consumers. The most commonly used data format for Javascript clients is "json". The Javascript Consumers can also pass "xoauth_json_callback" to get the response as a jsonp call back.&lt;br /&gt;&lt;br /&gt;The second important extension is the "Problem Reporting Extension", which lets the Service Providers to provide more information about the "problem" (error really) with the OAuth request that was sent by the Consumer. We have added some changes to this extension for the Consumer to specify if it wants the status code (which usually represents the error code in case of a failure) returned back in the response body. This would let the Javascript Consumers to be able to read the error code even when using jsonp method and take on the appropriate action.&lt;br /&gt;&lt;br /&gt;One last thing to consider for Javascript Consumers is the security of the consumer secret that needs to go along with the consumer key so all the OAuth requests can be signed. Since the code of the Javascript Consumer is visible to everyone, it's not obviously advisable to include the consumer secret also in the same code. So the better way is to use an empty string as the consumer secret and rely on other things that all browsers provide - like HTTP Referer header to enforce the same origin (site) policy and/or HTTP Cookies to enforce same application/browser instance policy.  One could argue that both HTTP Referer and Cookies are spoofable and replayable, it's almost impossible to do it in a user's browser with out getting some malware installed on it. But we all know when a malware is installed on a machine, all bets are off at that point.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://breno.demedeiros.googlepages.com/oauth-unregistered.html"&gt;OAuth Extension to support unregistered consumers&lt;/a&gt; defines a way to allow Consumers to use the OAuth end points provided by the Service Providers with no prior provisioing of consumer key/secret. This is mainly useful when you want to allow anonymous consumer access to your APIs with a certain level of security.&lt;br /&gt;&lt;br /&gt;With the support for the new &lt;a href="http://www.w3.org/TR/XMLHttpRequest2/"&gt;XMLHttpRequest Level 2&lt;/a&gt; (and related &lt;a href="http://www.w3.org/TR/access-control/"&gt;Access Control for Cross-site Requests&lt;/a&gt;) and &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/#crossDocumentMessages"&gt;Cross-document Messaging&lt;/a&gt;, Service Providers can allow XMLHttpRequest access to the Javascript Consumers on other domains but as I said above, it requires a very careful configuration of the access control policy files to make sure access is only allowed for the resources that can be shared across domains. Another problem with this is the support for these new versions in the browsers - almost all the newer versions of the browsers support this but as we all know it would take a while before majority of the users upgrade to the newer versions.&lt;br /&gt;&lt;br /&gt;The problem with the &lt;a href="http://dojotoolkit.org/book/dojo-book-0-4/part-5-connecting-pieces/i-o/cross-domain-xmlhttprequest-using-iframe-proxy"&gt;Cross Domain XMLHTTPRequest using an IFRAME Proxy&lt;/a&gt; is that it uses yet another way to transfer data from one domain to another using URL Fragments. It requires bunch of requests and responses back and forth between the iframes to transfer all the data (including HTTP headers and body) and might even cause problems with both Consumer &amp;amp; Service Provider performance.&lt;br /&gt;&lt;br /&gt;Hope this is useful. Let me know if I am missing anything and if there any any improvements that can be done. I will see if I can try to build some prototypes when I get some free time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-4772180700445584118?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/4772180700445584118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=4772180700445584118' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4772180700445584118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4772180700445584118'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/oauth-for-javascript-ajax-clients.html' title='OAuth for Javascript (AJAX) clients'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-5470734145597956721</id><published>2008-09-10T09:44:00.002-04:00</published><updated>2008-09-10T09:52:54.879-04:00</updated><title type='text'>Simplified Laws of Identity</title><content type='html'>Just noticed that Kim Cameron the  Chief Architect of Identity at Micosoft posted a &lt;a href="http://www.identityblog.com/?p=1007"&gt;simplified version&lt;/a&gt; of his &lt;a href="http://www.identityblog.com/stories/2005/05/13/TheLawsOfIdentity.pdf"&gt;Laws Of Identity&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="padding-left: 30px;"&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="padding-left: 30px;"&gt;"People using computers should be in control of giving out information about themselves, just as they are in the physical world.&lt;/p&gt; &lt;p style="padding-left: 30px;"&gt;The minimum information needed for the purpose at hand should be released, and only to those who need it. Details should be retained no longer than necesary.&lt;/p&gt; &lt;p style="padding-left: 30px;"&gt;It should NOT be possible to automatically link up everything we do in all aspects of how we use the Internet. A single identifier that stitches everything up would have many unintended consequences.&lt;/p&gt; &lt;p style="padding-left: 30px;"&gt;We need choice in terms of who provides our identity information in different contexts.&lt;/p&gt; &lt;p style="padding-left: 30px;"&gt;The system must be built so we can understand how it works, make rational decisions and protect ourselves.&lt;/p&gt; &lt;p style="padding-left: 30px;"&gt;Devices through which we employ identity should offer people the same kinds of identity controls - just as car makers offer similar controls so we can all drive safely."&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="padding-left: 30px;"&gt;&lt;/p&gt;I particularly like the last point "just as car makers offer similar controls so we can all drive safely" - that's so true. Unless "&lt;span style="font-weight: bold;"&gt;User-Experience&lt;/span&gt;" is thought out from day 1 in all aspects of Identity Management (protocols/identifiers/credentials/information control/permissions/etc..) it will be hard to bring it into the mainstream - most users just don't get it !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-5470734145597956721?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/5470734145597956721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=5470734145597956721' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/5470734145597956721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/5470734145597956721'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/simplified-laws-of-identity.html' title='Simplified Laws of Identity'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-6134196767709212409</id><published>2008-09-08T10:58:00.003-04:00</published><updated>2008-09-08T12:39:07.003-04:00</updated><title type='text'>Identity Evolution - a personal story !</title><content type='html'>This weekend my daughter has turned "1" - we had a great birthday party for her and we were glad she enjoyed it too by clapping to people singing Happy Birthday song for her and cut the cake with her birthday hat and more than that we were very happy that she overcome the fear of strangers and enjoyed the company of all our friends &amp;amp; family.&lt;br /&gt;&lt;br /&gt;After the party, on Sunday I started thinking about how in the last 12 months, her Identity evolved not just in the inner circle but also outer trust circle too. By inner circle I mean inside our family and by outer circle I meant friends, neighbors, etc...&lt;br /&gt;&lt;br /&gt;I still remember the day a year back when we gave her an "ID" as "Ruchi" on which she didn't even had any say - whether she likes being called Ruchi or not.  She was called "Baby Alavilli" for a few hours before which the hospital official came by and asked us if we have decided on any name to finish the required paper work - birth certificate, hospital records, passport app, etc..  Even though we (my wife and I) agreed on the name already - we still had some what strange feeling - mainly after reading a book titled &lt;a href="http://books.google.com/books?id=Nx-vY7ac1OcC&amp;amp;dq=name+sake&amp;amp;pg=PP1&amp;amp;ots=TYgRiMCa3j&amp;amp;sig=ZrOoGTO7Whx-EYZ8epJau4tx7os&amp;amp;hl=en&amp;amp;sa=X&amp;amp;oi=book_result&amp;amp;resnum=1&amp;amp;ct=result"&gt;"The Namesake" by Jhumpa Lahiri&lt;/a&gt;.  Great book btw - if you like non-fiction.&lt;br /&gt;&lt;br /&gt;Anyway, so thought about other things we did in the last year ever since was born that kind of helped in establishing her identity all around -&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the online ids on google and flickr so she can have her own email address reserved for her and an online photo album that we can share her pictures with friends and family&lt;/li&gt;&lt;li&gt;our &lt;a href="http://www.alavilli.com/blogs"&gt;family blog&lt;/a&gt;  where my wife writes about what's going on here with Ruchi so all our family members in US and back home in India can feel more connected to her.&lt;/li&gt;&lt;li&gt;the daily trips to the totlot in our community where she made friends with a lot of other kids &lt;/li&gt;&lt;li&gt;taking her to Ashburn library every saturday for the baby lap-sit and play time&lt;br /&gt;&lt;/li&gt;&lt;li&gt;taking her to Cascades library twice a week for the baby garten class&lt;/li&gt;&lt;li&gt;and of course last but not least trying to interact with her using her name at all other times at home.&lt;/li&gt;&lt;/ul&gt;I think the next task for me is to make sure she gets introduced to the good side of WWW as she starts growing up (along with a computer for sure) - so comes the parental controls, content filtering, etc.... including blocking access to her stuff online from random people (and machines).&lt;br /&gt;&lt;br /&gt;Well it's just amazing to see how everything in real life correlate to the digital world. I am very eagerly looking forward to see how she grows up on the digital world in the coming years and (re)establishes her &lt;span style="font-weight: bold;"&gt;Identity&lt;/span&gt; by herself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-6134196767709212409?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/6134196767709212409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=6134196767709212409' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6134196767709212409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6134196767709212409'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/identity-evolution-personal-story.html' title='Identity Evolution - a personal story !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-2069618575960449536</id><published>2008-09-04T17:20:00.002-04:00</published><updated>2008-09-04T17:33:05.365-04:00</updated><title type='text'>Carpet Bombing</title><content type='html'>no - I am not talking about the &lt;a href="http://en.wikipedia.org/wiki/Carpet_bombing"&gt;Carpet Bombing&lt;/a&gt; related to wars and destruction. This post is about a recent popular topic of interest for many security geeks and probably for Google Chrome browser users - Carpet Bombing flaw in WebKit that effected both earlier versions of Safari (3.1) and Chrome browsers.&lt;br /&gt;&lt;br /&gt;Several asked me what is this flaw and why is it called so - so thought I will write up a quick post with some details....&lt;br /&gt;&lt;br /&gt;Like the attacking strategy in wars, the Carpet Bombing flaw in browsers is related to a security hole that allows hackers to host malicious code on a web site, which when visited by the users causes the browser to download several files  (not just one or two - literally many many many files) on to the user's desktop. Means malicious files could be downloaded and run on the user's machines causing further havoc all without the user's permission. Well it doesn't mean that if the user is asked for the permission, he/she would deny it - given that most people don't even read what's in a window/dialog and just click on "ok" button, but still it's a big problem.&lt;br /&gt;&lt;br /&gt;Here is a screenshot of such attack (source&lt;a href="http://www.dhanjani.com/blog/2008/05/safari-carpet-b.html"&gt; Nitesh Dhanjani blog&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dhanjani.typepad.com/photos/uncategorized/2008/07/14/safaricarpetbomb.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://dhanjani.typepad.com/photos/uncategorized/2008/07/14/safaricarpetbomb.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-2069618575960449536?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/2069618575960449536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=2069618575960449536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2069618575960449536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2069618575960449536'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/carpet-bombing.html' title='Carpet Bombing'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-1497598840133159488</id><published>2008-09-04T10:06:00.002-04:00</published><updated>2008-09-04T10:11:23.934-04:00</updated><title type='text'>Google Mule !</title><content type='html'>If you haven't read Aviv Raff's blog it's worth reading - &lt;a href="http://aviv.raffon.net/2008/09/03/GoogleMule.aspx"&gt;here it is&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;         &lt;table class="Item" border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="ItemTitle"&gt;&lt;div class="ItemTitle"&gt;&lt;a class="TitleLinkStyle" rel="bookmark" href="http://aviv.raffon.net/2008/09/03/GoogleMule.aspx"&gt;"Google Mule&lt;/a&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;    &lt;tr&gt;&lt;td class="ItemText"&gt;&lt;div class="ItemText"&gt;&lt;p&gt;In real life, when you take two species, a horse and a donkey, and mix them up you get &lt;a href="http://en.wikipedia.org/wiki/Mule" target="_blank"&gt;a mule&lt;/a&gt;. In the browsers world, when you take a horse (Firefox/IE) and a donkey (Safari) and mix them up, you get – &lt;a href="http://www.google.com/chrome" target="_blank"&gt;Google Chrome&lt;/a&gt;."&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-1497598840133159488?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/1497598840133159488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=1497598840133159488' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/1497598840133159488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/1497598840133159488'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/google-mule.html' title='Google Mule !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-2039336336230501157</id><published>2008-09-03T15:22:00.002-04:00</published><updated>2008-09-03T15:27:06.348-04:00</updated><title type='text'>Access control for cross-site requests!</title><content type='html'>&lt;a href="http://www.w3.org/TR/access-control/"&gt;http://www.w3.org/TR/access-control/&lt;/a&gt;&lt;br /&gt;good or bad ? any thoughts ?&lt;br /&gt;&lt;br /&gt;Yeah it's well thought out and a nice way to enforce access controls on the web - but seems like it's making it too complicated (header, policy-path, cache control, etc...) , which would probably make everyone allow access for all "*" in the future - same as what happened to Flash crossdomain.xml in most cases.&lt;br /&gt;&lt;br /&gt;Hopefully some one in the ASF will write a simple module for Apache/Tomcat that makes everyone's life easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-2039336336230501157?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/2039336336230501157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=2039336336230501157' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2039336336230501157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/2039336336230501157'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/access-control-for-cross-site-requests.html' title='Access control for cross-site requests!'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-8835607129992954739</id><published>2008-09-03T14:34:00.004-04:00</published><updated>2008-09-04T09:57:48.396-04:00</updated><title type='text'>Surprising Google Chrome's EULA !</title><content type='html'>well I must say I didn't even bothered to read it when I downloaded and installed it on my other "windows" machine - but some one pointed this out to me today:&lt;br /&gt;&lt;br /&gt;http://gizmodo.com/5044871/google-chrome-eula-claims-ownership-of-everything-you-create-on-chrome-from-blog-posts-to-emails&lt;br /&gt;&lt;br /&gt;So be careful in what you do using Chrome !&lt;br /&gt;&lt;br /&gt;[UPDATE - 9/4] Looks like Google is going to change the EULA - more &lt;a href="http://arstechnica.com/news.ars/post/20080903-google-on-chrome-eula-controversy-our-bad-well-change-it.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-8835607129992954739?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/8835607129992954739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=8835607129992954739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/8835607129992954739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/8835607129992954739'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/surprising-google-chromes-eula.html' title='Surprising Google Chrome&apos;s EULA !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-8599089927342216011</id><published>2008-09-03T10:56:00.002-04:00</published><updated>2008-09-03T12:32:30.081-04:00</updated><title type='text'>Open Identity Token and Personal Discovery Service</title><content type='html'>This is a follow up to George's post on &lt;a href="http://practicalid.blogspot.com/2008/09/open-identity-token.html"&gt;Open Identity Token&lt;/a&gt; to solve use cases like the one described &lt;a href="http://practicalid.blogspot.com/2008/09/protecting-discovery-information.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some thoughts on this use case and Open Identity Tokens in general (in random order)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"Bob’s discovery service" might not know Alice with the same Id (OpenID) - Bob might have only entered Alice's alternate email address that doesn't even resolve to the same OpenID that Alive used currently to sign in to HikingTrails.com&lt;br /&gt;&lt;/li&gt;&lt;li&gt;HikingTrails.com might need to go back to Alice's OpenID provider for each (notification) service that it wants to invoke on behalf of the user. Bob might use notification service A, David might use notification service B, and so on... - where A, B, etc.. totally different services.&lt;/li&gt;&lt;li&gt;If the Identity/OpenID Provider provides a Open Token verification API, then it would have no way to make sure the token is being used at the same place for which it is granted. This goes back to the same problem that was solved by doing a &lt;a href="http://openid.net/specs/openid-authentication-2_0.html#rp_discovery"&gt;RP Discovery in OpenID2.0&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;This requires a real discovery service (process) instead of a simple XRDS (static) file hosted some where - since the services defined in the XRDS will be anyway protected, there shouldn't be any harm in saying "my notification service is here and oh btw, it's only open to a restricted list of people so you might not be able to send notification to me".&lt;/li&gt;&lt;li&gt;Open Identity Token seems less trust worthy - of course the same problem that people attribute to OpenID but at least in OpenID case, it is not directly meant for a specific service invocation - it's merely for knowing who the user is and the RP/SP can do more things before it allows the user to do certain things.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can we do this with a simple extensions to OAuth ? Something like this...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Consumer gets it's Access Token from IDP(usual OAuth dance) for Alice&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Consumer asks IDP for another Access Token to access another 3rd party service B  on behalf of Alice (using 'scope' param) to contact Bob&lt;br /&gt;&lt;/li&gt;&lt;li&gt; IDP checks if Alice has previously given authorization for Consumer to talk with her friend's notification services on her behalf. If not IDP would return 401 unauthorized error instructing the Consumer to send the user back to authorization url (See Scalable OAuth extension).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;IDP generates new access token/secret pair (or updates it's local session ) with new authorization information.&lt;/li&gt;&lt;li&gt;Consumer makes a OAuth protected resource call (signed) using the new Access Token/secret,  and passes Alice &amp;amp; Bob's IDs&lt;/li&gt;&lt;li&gt;3rd Party service makes a discovery call on Alice's ID and find the IDP's OAuth end points in it's XRDS file&lt;/li&gt;&lt;li&gt;3rd Party service makes a OAuth protected request validation request to the IDP by passing in all the request params it received from Consumer and also adds a special HTTP header with the SIGNATURE_BASE_STRING as it calculates from the incoming request from the Consumer.&lt;/li&gt;&lt;li&gt;IDP validates the request and returns success or failure&lt;/li&gt;&lt;li&gt;3rd Party service let's the Consumer request through to send notification request &lt;/li&gt;&lt;li&gt;Something like this can be build on top of the &lt;a href="http://oauth.googlecode.com/svn/spec/ext/session/1.0/drafts/1/spec.html"&gt;ScalableOAuth&lt;/a&gt; extension that we are already working on to support session extension and multiple authorization use cases and of course this also assumes the user's ID is discoverable.&lt;/li&gt;&lt;li&gt;Not sure if I am thinking through all cases but that sounds better than the Open Identity Token model - I hope !&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;In general in the current social networking era where things (notification) are more publish/subscribe model, not sure how important it is to solve this use case. Most of the user's anyway still use their email addresses not a notification service.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A more practical and useful use case to solve might be for a need to have a personalizable discovery services where the user's can login, select the services they want to use for different things (flickr for photo interest friends, facebook for college friends, myspace for music buddies, LinkedIn for professional contacts, Yahoo for family contacts, etc..) - based on which any Consumer can send the request to the corresponding network based on user's choice. As a user I can say I want to share this with my professional network - so go do what ever it takes to post this into my professional network feed. The Consumer does a discovery on my ID to find out where my Personal discovery service is or the ID discovery itself could cover personal discovery services listed too.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;more later ....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-8599089927342216011?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/8599089927342216011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=8599089927342216011' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/8599089927342216011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/8599089927342216011'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/open-identity-token-and-personal.html' title='Open Identity Token and Personal Discovery Service'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-6155147542376580605</id><published>2008-09-02T15:15:00.002-04:00</published><updated>2008-09-02T15:43:52.947-04:00</updated><title type='text'>Google Chrome - now available for download and developer site</title><content type='html'>Try it out - http://www.google.com/chrome  - only for winxp/vista though :-(&lt;br /&gt;&lt;br /&gt;It didn't give me option to import my stuff (bookmarks, saved passwords, etc.) from Firefox though I am happy with that given that I don't want it to mess up with my Firefox yet. It imported stuff from IE seamlessly. Web pages are definitely loading faster than IE8 (yes I have a beta version) and Firefox (with tons of plugins).&lt;br /&gt;&lt;br /&gt;On the cookies side, it's definitely on par with Firefox cookie implementation - so all good unlike the confusing cookie handling in multiple IE processes.&lt;br /&gt;&lt;br /&gt;Btw - more info here on the &lt;a href="http://dev.chromium.org/"&gt;Chromium developer site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now back to trying out more Chromium features ......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-6155147542376580605?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/6155147542376580605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=6155147542376580605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6155147542376580605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/6155147542376580605'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/google-chrome-now-available-for.html' title='Google Chrome - now available for download and developer site'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-4047882078334011430</id><published>2008-09-02T11:55:00.002-04:00</published><updated>2008-09-02T12:11:13.616-04:00</updated><title type='text'>Facebook Connect</title><content type='html'>Several people pinged me about the weird tweet I posted on last friday about Facebook Connect. So let me explain....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.developers.facebook.com/index.php/Facebook_Connect"&gt;Facebook Connect &lt;/a&gt;is a new feature provided by the Facebook guys as part of their Facebook Platform to allow their users to expand their online social activity to outside the Facebook website. It is a very interesting, useful and a core functionality that helps everyone to build the Open Social Web for the users.&lt;br /&gt;&lt;br /&gt;OF course you would ask so what's the problem - well the first problem is it's YET ANOTHER PROTOCOL - though you can't really say it's a protocol since it's built on top of their existing Facebook platform but it's still does things in it's own proprietary way. No matter how many tool kits and SDKs you provide it's still proprietary and not community driven.&lt;br /&gt;&lt;br /&gt;Now the problem that I was referring to in my tweet was about they not using &lt;a href="http://en.wikipedia.org/wiki/Secure_Sockets_Layer"&gt;SSL,&lt;/a&gt; which is a commonly used  "de facto" standard used to transfer sensitive user information (like login credentials) securely on the wire. So this weekend I played more with it and even installed their sample app on my &lt;a href="http://www.alavilli.com/demo"&gt;personal site&lt;/a&gt;. I could neither find any configuration option where I can say I want to use SSL for the FBConnect iframe nor could I just use 'https' url while loading  their javascript (which inserts the iframe). I guess I have to keep looking and may be play with their api directory instead of using their sample code - but I must say using a non-secure example to demo their new functionality is definitely not encouraging. :-/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-4047882078334011430?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/4047882078334011430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=4047882078334011430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4047882078334011430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/4047882078334011430'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/facebook-connect.html' title='Facebook Connect'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-7401696673447399980</id><published>2008-09-02T10:47:00.000-04:00</published><updated>2008-09-02T11:28:58.097-04:00</updated><title type='text'>Google Chrome  - Yet another browser or not ?</title><content type='html'>Google announced yesterday it's new and &lt;a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html"&gt;a fresh take on browser&lt;/a&gt; - on a quick read through their blog post, it definitely sounds very nice as with any other &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Google's&lt;/span&gt; announcements related to Open Source and community driven technologies.&lt;br /&gt;&lt;br /&gt;Their comic book approach to introduce the new technologies and the reasons behind their design and implementation was really good. After going through it - it sounded to me like most of it's features and design was derived from people's good and bad experiences with other browsers like FireFox, Safari, Opera and IE. The multi-process vs the threads is probably one of the basic differences between &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Firefox&lt;/span&gt;/Netscape/Mozilla and IE. But yes I agree taking that to the tabs itself is a totally new approach. But I hope it doesn't cause more confusion to the users (at least the tech savvy ones) with the way it's going to handle session cookies.&lt;br /&gt;&lt;br /&gt;In &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Firefox&lt;/span&gt;, session cookies are never a problem because they are all stored in the same memory space - regardless of how many tabs/windows you run, they all use the same cookie jar. But in IE it's totally different. Based on how you launch new IE windows, your cookie jar will contain same or totally different cookies with in the same session - they might share or not depending on whether they are launched as new tabs or a new window using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Ctrl&lt;/span&gt;+N (child process) or a window using IE icon/menu item in the start menu/desktop.  This is always confusing to the developers when their applications write both persistent and session cookies, which end up causing different behaviours based on the way users open the IE browser.  I am hoping Google Chrome doesn't have the same problem or at least some nice ways for the developers to deal with it.&lt;br /&gt;&lt;br /&gt;On the security side I must say I am not too excited - most of the things like blacklisting, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;sand boxing&lt;/span&gt;, and private browsing are already available in other browsers so one would ask what's more it's doing than those ?&lt;br /&gt;&lt;br /&gt;Anyway, I am waiting for them to release it to the public so I can try it out myself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-7401696673447399980?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/7401696673447399980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=7401696673447399980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/7401696673447399980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/7401696673447399980'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/google-chrome-yet-another-browser-or.html' title='Google Chrome  - Yet another browser or not ?'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-754260340057137512.post-3570009184191862459</id><published>2008-09-02T10:34:00.000-04:00</published><updated>2008-09-02T11:44:44.167-04:00</updated><title type='text'>I CAN HAS 'MY OWN' BLOG !</title><content type='html'>yey ! I finally decided to start my own blog. After blogging on &lt;a href="http://dev.aol.com/blog/82"&gt;AOL Developer Network&lt;/a&gt; for over an year and on my &lt;a href="http://www.alavilli.com/blogs/"&gt;personal family blog&lt;/a&gt; - I guess it's time to have my own so I can exercise my right to &lt;a href="http://en.wikipedia.org/wiki/Freedom_of_speech"&gt;Freedom of Speech and/or Expression&lt;/a&gt;. (where ever applicable) :-)&lt;br /&gt;&lt;br /&gt;I will start writing about existing and new things in the world of Online Identity, Authentication and SSO, and any other interesting technologies that I come across in my day to day life.&lt;br /&gt;&lt;br /&gt;Wish me luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/754260340057137512-3570009184191862459?l=whyidentity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whyidentity.blogspot.com/feeds/3570009184191862459/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=754260340057137512&amp;postID=3570009184191862459' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/3570009184191862459'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/754260340057137512/posts/default/3570009184191862459'/><link rel='alternate' type='text/html' href='http://whyidentity.blogspot.com/2008/09/i-can-has-blog.html' title='I CAN HAS &apos;MY OWN&apos; BLOG !'/><author><name>Praveen</name><uri>http://www.blogger.com/profile/10778095038892167017</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_Ea5XOGJFPEY/SNHIdsJnLPI/AAAAAAAAJKk/UphG-qFhIIg/S220/Picture+1.png'/></author><thr:total>0</thr:total></entry></feed>
