{"id":1669,"date":"2010-01-18T23:01:03","date_gmt":"2010-01-19T04:01:03","guid":{"rendered":"http:\/\/www.coresecuritypatterns.com\/blogs\/?p=1669"},"modified":"2020-08-08T04:19:15","modified_gmt":"2020-08-08T04:19:15","slug":"web-sso-with-one-time-passwords-via-mobile-sms-and-email","status":"publish","type":"post","link":"https:\/\/websecuritypatterns.com\/blogs\/2010\/01\/18\/web-sso-with-one-time-passwords-via-mobile-sms-and-email\/","title":{"rendered":"Web SSO with One-time Passwords via Mobile SMS and Email"},"content":{"rendered":"<p>With increasing incidents of online frauds through&nbsp;username\/password compromises and stolen\/forged identity credentials &#8211;&nbsp;Strong authentication using multi-factor credentials&nbsp;is often considered as a&nbsp; defensive solution for ensuring high-degree of identity assurance&nbsp;to accessing&nbsp; Web applications. Adopting multi-factor credentials based authentication&nbsp;has also become a most common security requirement for enabling access control to critical online banking transactions and to safeguard online customer&nbsp;information&nbsp;&nbsp;(Mandated by <a href=\"http:\/\/www.ffiec.gov\/pdf\/authentication_guidance.pdf\" target=\"_blank\" rel=\"noopener noreferrer\">FFIEC authentication guidelines<\/a>).&nbsp;One-time Passwords using Tokens, USB dongles, Java Smartcards\/SIM cards,&nbsp;Mobile Phones and other specialized devices has become&nbsp;the most simplest and effective option that can be easily adopted as the &#8220;second-factor credential (Something I have)&#8221;&nbsp;for&nbsp;strong authentication&nbsp;solution.&nbsp;&nbsp;&nbsp;Although&#8230;and there is a myriad ways to create one-time passwords, the overwhelming developer issue is to make it&nbsp;to work by&nbsp;readily&nbsp;integrating it with existing applications and further enabling them for use in Web SSO and Federation scenarios.<\/p>\n<h2>One-time Password (OTP) Authentication using OpenSSO<\/h2>\n<p>The One-time password (OTP) is commonly generated on a physical device such as a token and is entered by the user at the time of authentication, once used it cannot be reused which renders it useless to anyone that may have intercepted it during the authentication process.<\/p>\n<p><strong>Sun OpenSSO Enterprise 8.x<\/strong> offers a ready-to-use OTP based authentication module that allows to deliver <strong><em>One-time passwords via SMS (on Mobile phones) and Personal email<\/em><\/strong> or combination of both. OpenSSO implements <strong>Hashed Message Authentication Code (HMAC)&nbsp;based One-time password (HOTP)<\/strong> algorithm as defined in <a href=\"http:\/\/www.ietf.org\/rfc\/rfc4226.txt\" target=\"_blank\" rel=\"noopener noreferrer\">RFC 4226 <\/a>&#8211;&nbsp;an IETF &#8211; OATH (Open Authentication)&nbsp;joint initiative. The HOTP is based on HMAC-SHA-1 algorithm&nbsp;&#8211; using an increasing 8-bit&nbsp;counter value and a static symmetric key that is known to the HOTP generator and validation service.&nbsp; In a typical OpenSSO deployment, the HOTP authentication module is configured to work as part of an authentication chain that includes a first-factor authentication (ex. Username\/Password authentication with LDAP, Datastore). This means that atleast one of the existing authentication must be performed successful before commencing HOTP authentication.<\/p>\n<h2>Try it yourself<\/h2>\n<p>To deploy OTP for Web SSO authentication, all you would need is to have OpenSSO Enterprise 8.x and configured up and running&#8230;.&nbsp;and then follow these steps:<\/p>\n<ol>\n<li>Login to OpenSSO Administrator console, select the &#8220;Access Control&#8221; tab, select your default &#8220;Realm&#8221;, select &#8220;Authentication&#8221;. Click on &#8220;Module Instances&#8221; and click on &#8220;New&#8221; to create a Module instance. Assign a name to the module instance (ex. HOTP) and select &#8220;HOTP&#8221; as type.<\/li>\n<li>Configure the HOTP authentication module properties.&nbsp; You need to identify the values for Authentication Level, SMTP Server (Access credentials including host name, port, username, password), One-time password validity length (Maximun validity time valid since creation and&nbsp;before OTP expires), One-time Password length (6 or 8 digits), One-time Password Delivery (&#8220;SMS&#8221; or &#8220;Email&#8221; or &#8220;Both&#8221; to receive SMS and Email).\n<ul>\n<li>\n<div id=\"attachment_1777\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/two-factor-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1777\" class=\"size-full wp-image-1777\" src=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/two-factor-1.png\" alt=\"Configuring HOTP Authentication Module Properties\" width=\"500\" height=\"255\"><\/a><p id=\"caption-attachment-1777\" class=\"wp-caption-text\">Configuring HOTP Authentication Module Properties<\/p><\/div>\n<p>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<li>Configure an Authentication Chain that includes HOTP authentication module with any other authentication module (ex. Datastore, LDAP). You may note HOTP authentication cannot act as primary authentication since it HOTP authentication does not identify the user profile, so it must be combined with an authentication module that identifies the calling user identity. To create an authentication chain&#8230; goto the OpenSSO administrator console, select &#8220;Access Control&#8221;, Goto &#8220;Authentication Chaining&#8221;, click on &#8220;New&#8221;, assign a name to the authentication chain (ex. Two-factor&#8221;) and the choose &#8220;HOTP&#8221; module instance and select &#8220;Required&#8221;.\n<ul>\n<li>\n<div id=\"attachment_1779\" style=\"width: 510px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/two-factor-2.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1779\" class=\"size-full wp-image-1779\" src=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/two-factor-2.png\" alt=\"Configuring the Two-factor authentication chain including HOTP\" width=\"500\" height=\"136\"><\/a><p id=\"caption-attachment-1779\" class=\"wp-caption-text\">Configuring the Two-factor authentication chain including HOTP<\/p><\/div>\n<p>&nbsp;<\/li>\n<\/ul>\n<\/li>\n<li>Now the OpenSSO One-time Authentication Module is ready for use as par of &#8220;Two-factor&#8221; authentication chain.<\/li>\n<li>Create an User Profile that identifies the user&#8217;s &#8220;Telephone Number&#8221; attribute with the Mobile Phone Number appended with the SMS Gateway domain.\n<ul>\n<li>For example:\n<ul>\n<li>AT&amp;T (USA)&nbsp;:&nbsp;&nbsp;<a href=\"mailto:YourPhoneNumber@txt.att.net\">YourPhoneNumber@txt.att.net<\/a>&nbsp; (<a href=\"mailto:178199931234@txt.att.net\">178199931234@txt.att.net<\/a>)<\/li>\n<li>SprintPCS&nbsp;&nbsp; :&nbsp;&nbsp; <a href=\"mailto:YourPhoneNumber@messaging.sprintpcs.com\">YourPhoneNumber@messaging.sprintpcs.com<\/a><\/li>\n<li>T-Mobile&nbsp; :&nbsp;&nbsp;&nbsp;&nbsp; <a href=\"mailto:YourPhoneNumber@tmomail.net\">YourPhoneNumber@tmomail.net<\/a><\/li>\n<li>Virgin Mobile:&nbsp; <a class=\"moz-txt-link-abbreviated\" href=\"mailto:YourPhoneNumber@vmobl.com\">YourPhoneNumber@vmobl.com<\/a><\/li>\n<li>Verizon: <a class=\"moz-txt-link-abbreviated\" href=\"mailto:YourPhoneNumber@vtext.com\">YourPhoneNumber@vtext.com<\/a><\/li>\n<li>Metro PCS: <a class=\"moz-txt-link-abbreviated\" href=\"mailto:YourPhoneNumber@MyMetroPcs.com\">YourPhoneNumber@MyMetroPcs.com<\/a><\/li>\n<li>For a complete list of Email to SMS Gateways refer to: <a href=\"http:\/\/www.mutube.com\/projects\/open-email-to-sms\/gateway-list\/\">http:\/\/www.mutube.com\/projects\/open-email-to-sms\/gateway-list\/<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li>&nbsp;Test drive the configured One-time Password based SSO authentication, by accessing the URL of the configured &#8220;Two-factor&#8221; authentication chain as follows:\n<ul>\n<li><a href=\"http:\/\/openssoserver:port\/opensso\/UI\/Login?service=Two-factor\">http:\/\/openssoserver:port\/opensso\/UI\/Login?service=Two-factor<\/a><\/li>\n<\/ul>\n<\/li>\n<li>As a result, you will be prompted to perform username\/password authentication and then followed by HOTP. To deliver One-Time Password, click &#8220;Request OTP Code&#8221;, the One-time password will be delivered to your Mobile via SMS and also via email (provided in your User profile).\n<ul>\n<li>\n<p style=\"center;\">\n<p><div id=\"attachment_1782\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/hotp.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1782\" class=\"size-full wp-image-1782   \" src=\"http:\/\/www.coresecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/hotp.png\" alt=\"One-time Password based SSO\" width=\"560\" height=\"284\"><\/a><p id=\"caption-attachment-1782\" class=\"wp-caption-text\">One-time Password based SSO<\/p><\/div><\/li>\n<li>As verified using my Blackberry&#8230;the OTP showed up as follows:&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/blackberry.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1785 aligncenter\" src=\"http:\/\/www.websecuritypatterns.com\/blogs\/wp-content\/uploads\/2010\/03\/blackberry.jpg\" alt=\"\" width=\"442\" height=\"332\"><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Adopting to&nbsp;One-time Pasword based authentication&nbsp;credentials&nbsp;certainly<span style=\"#000000;\"> <\/span>helps to&nbsp;defend against many&nbsp;illegitimate access using compromised user credentials such as Passwords, PIN and Digital certificates.&nbsp; Using OpenSSO based OTP authentication is just a no-brainer&#8230;&nbsp;try it for yourselves, I am sure you will enjoy !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With increasing incidents of online frauds through&nbsp;username\/password compromises and stolen\/forged identity credentials &#8211;&nbsp;Strong authentication using multi-factor credentials&nbsp;is often considered as a&nbsp; defensive solution for ensuring high-degree of identity assurance&nbsp;to accessing&nbsp; Web applications. Adopting multi-factor credentials based authentication&nbsp;has also become a most common security requirement for enabling access control to critical online banking transactions and to safeguard online customer&nbsp;information&nbsp;&nbsp;(Mandated by FFIEC&#8230; <a href=\"https:\/\/websecuritypatterns.com\/blogs\/2010\/01\/18\/web-sso-with-one-time-passwords-via-mobile-sms-and-email\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5,6,8,9,11],"tags":[51,57,62,64,69],"class_list":["post-1669","post","type-post","status-publish","format-standard","hentry","category-identity-management","category-main","category-pki-main","category-security","category-smartcards-pki","tag-opensso","tag-pki-main","tag-security","tag-smartcards","tag-sso"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts\/1669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/comments?post=1669"}],"version-history":[{"count":1,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts\/1669\/revisions"}],"predecessor-version":[{"id":2844,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/posts\/1669\/revisions\/2844"}],"wp:attachment":[{"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/media?parent=1669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/categories?post=1669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/websecuritypatterns.com\/blogs\/wp-json\/wp\/v2\/tags?post=1669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}