SlideShare a Scribd company logo
Strong Authentication in Web Application
         “State of the Art 2011”


      Sylvain Maret / Digital Security Expert / OpenID Switzerland

                               @smaret
                           Version 1.0 / 2PM
Strong Authentication in Web Application #SCS III
RSA FAILED ?
Who am I?




   Security Expert
        17 years of experience in ICT Security
        Principal Consultant at MARET Consulting
        Expert at Engineer School of Yverdon & Geneva University
        Swiss French Area delegate at OpenID Switzerland
        Co-founder Geneva Application Security Forum
        OWASP Member
        Author of the blog: la Citadelle Electronique
        http://ch.linkedin.com/in/smaret or @smaret
        http://www.slideshare.net/smaret


   Chosen field
        AppSec & Digital Identity Security
Protection of digital identities: a topical issue…




                                    Strong Auth
«Digital identity is the cornerstone of trust»




         http://fr.wikipedia.org/wiki/Authentification_forte
Definition of strong authentication




       Strong Authentication on Wikipedia
Strong Authentication

 A new paradigm?
Which Strong Authentication technology ?
Legacy Token / OTP / PKI / SuisseID ? / Open Source Solution ?
Strong Authentication in Web Application #SCS III
OTP   PKI (HW)   Biometry
    Strong
 authentication
  Encryption

Digital signature

Non repudiation

Strong link with
    the user
Strong Authentication
      with PKI
PKI: Digital Certificate

                           Hardware Token (Crypto PKI)
                              Strong Authentication
Software Certificate
  (PKCS#12;PFX)
SSL/TLS Mutual Authentication : how does it work?

                     Validation
                     Authority


   CRL
     or
OCSP Request

                     Valid
                     Invalid
                     Unknown




                   SSL / TLS Mutual Authentication
                                                     Alice
    Web Server
Demo #1: Software Certificate Auth using an IDP OpenID




          http://www.clavid.com/
Strong Authentication with Biometry (Match on Card technology)




   A reader
       Biometry
       SmartCard




   A card with chip
       Technology MOC
       Crypto Processor
            PC/SC
            PKCS#11
            Digital certificate X509
Strong Authentication


         With


(O)ne (T)ime (P)assword
(O)ne (T)ime (P)assword




   OTP Time Based           Others:
       Like SecurID
                                 OTP via SMS
   OTP Event Based              OTP via email
                                 Biometry and OTP
                                 Bingo Card
   OTP Challenge
                                 Etc.
    Response Based
OTP T-B?
OTP E-B?
OTP C-R-B?


Crypto - 101
Crypto-101 / Time Based OTP




                                     HASH Function

K=Secret Key / Seed


                                                     OTP
 T=UTC Time




          ie = OTP(K,T) = Truncate(HMAC-SHA-1(K,T))
Crypto-101 / Event Based OTP




                                      HASH Function

K=Secret Key / Seed


                                                      OTP
  C = Counter




          ie = OTP(K,C) = Truncate(HMAC-SHA-1(K,C))
Crypto-101 / OTP Challenge Response Based




                                    HASH Function

K=Secret Key / Seed

                                                      OTP
                                                    Challenge
          nonce




                                             ie:
Other[s] OTP technologies…




OTP Via SMS




                             “Flicker code” Generator Software
                                   that converts already
                                    encrypted data into
                                  optical screen animation

     By Elcard
Demo #2: Protect WordPress (OTP Via SMS)
How to Store
my Secret Key ?

   A Token !
OTP Token: Software vs Hardware ?
Software OTP for Smartphone




       http://itunes.apple.com/us/app/iotp/id328973960
Strong Authentication in Web Application #SCS III
Where are[is] the seed ?
Strong Authentication in Web Application #SCS III
Seed generation & distribution ? Still a good model ?


                                                  K1

    Threat
    Agent                                                Editor / Vendor
    (APT)
                                                         Secret Key are[is]
                                                        generated on promise




                 K1                                               K1
TokenCode
New Standards

     &
Open Source
Technologies accessible to everyone 




   Initiative for Open AuTHentication (OATH)
       HOTP
       TOTP
       OCRA
       Etc.


   Mobile OTP
       (Use MD5 …..)
Initiative for Open AuTHentication (OATH)




   HOTP
       Event Based OTP                       Token Identifier
       RFC 4226                               Specification

   TOTP                                      IETF KeyProv Working Group
       Time Based OTP                             PSKC - Portable Symmetric Key
                                                    Container, RFC 6030
       Draft IETF Version 8
                                                   DSKPP - Dynamic Symmetric
                                                    Key Provisioning Protocol, RFC
                                                    6063
   OCRA
       Challenge/Response OTP                And more !
       Draft IETF Version 13

          http://www.openauthentication.org/specifications
(R)isk

(B)ased

(A)uthentication
RBA (Risk-Based Authentication) = Behavior Model
Use OATH-HOTP & TOTP
http://code.google.com/p/google-authenticator/
Strong Authentication in Web Application #SCS III
Integration with
web application
Web application: basic authentication model
Web application: Strong Authentication Implementation Blueprint
“Shielding" approach: perimetric authentication using Reverse Proxy / WAF
Module/Agent-based approach (example)
Demo #3: Apache and Mod_OpenID (Using Biometry / OTP)
Demo #3: Challenge / Response OTP with Biometry
API/SDK based approach (example)
Multi OTP PHP Class Demo #4 & Hardening OS
Proof of Concept Code by
           Anne Gosselin, Antonio Fontes, Sylvain Maret !

if (! empty($_REQUEST['pma_username'])) {
        // The user just logged in
        $GLOBALS['PHP_AUTH_USER'] = $_REQUEST['pma_username'];

       // we combine both OTP + PIN code for the token verification
       $fooPass = empty($_REQUEST['pma_password']) ? '' : $_REQUEST['pma_password'];
       $fooOtp = empty($_REQUEST['pma_otp']) ? '' : $_REQUEST['pma_otp'];
       $GLOBALS['PHP_AUTH_PW'] = $fooPass.''.$fooOtp;

       // OTP CHECK
       require_once('./libraries/multiotp.class.php');
       $multiotp = new Multiotp();
       $multiotp->SetUser($GLOBALS['PHP_AUTH_USER']);
       $multiotp->SetEncryptionKey('DefaultCliEncryptionKey');
       $multiotp->SetUsersFolder('./libraries/users/');
       $multiotp->SetLogFolder('./libraries/log/');
       $multiotp->EnableVerboseLog();

       $otpCheckResult = $multiotp->CheckToken($GLOBALS['PHP_AUTH_PW']);
       // the PIN code use kept for accessing the database
       $GLOBALS['PHP_AUTH_PW'] = substr($GLOBALS['PHP_AUTH_PW'], 0, strlen($GLOBALS['PHP_AUTH_PW']

       if($otpCheckResult == 0)
               return true;
       else
               die("auth failed.");
Step1: Add a new method using cookie authentication

                            In config.inc.php
Howto #1
Step2: Add pma_otp field

  In common.inc.php
Step3: Add new input




 File ori: cookie.auth.lib.php




New file: cookieotp.auth.lib.php
File ori: cookie.auth.lib.php
New file: cookieotp.auth.lib.php   Step3: Call multiotp
Demo 4#: PHP[OTP] integration for[in] phpmyadmin
Multi OTP PHP Class by André Liechti (Switzerland)




      Source Code will be publish soon:
      http://www.citadelle-electronique.net/
      http://www.multiotp.net/
Strong Authentication in Web Application #SCS III
SSH Hardening with OTP Multi OTP PHP Class




                               AES 256




                                             PAM
Strong Authentication
Strong Authentication and Application Security




                                     &

   Application Security
Threat Modeling

“detecting web application

threats before coding”
ICAM:

a changing paradigm

on Strong Authentication
Federation of identity approach a change of paradigm:
using IDP for Authentication and Strong Authentication




                                                         Identity Provider
                                                         SAML, OpenID, etc
SECTION 2
OpenID
> What is it?
> How does it work?
> How to integrate?
OpenID - What is it?




>   Internet SingleSignOn              >   Free Choice of Identity Provider
>   Relatively Simple Protocol         >   No License Fee
>   User-Centric Identity Management   >   Independent of Identification Methods
>   Internet Scalable                  >   Non-Profit Organization
OpenID - How does it work?




     User Hans Muster

                                    3

                                   4, 4a                              Identity Provider
                                                                      e.g. clavid.com
  hans.muster.clavid.com       5                6

                           1                         2 Identity URL
  Caption                                              https://hans.muster.clavid.com
  1. User enters OpenID
  2. Discovery
  3. Authentication
  4. Approval
  4a. Change Attributes
  5. Send Attributes
  6. Validation                            Enabled Service
Surprise! You may already
    have an OpenID !
Other Well Known
       &
Simple Providers




      http://en.wikipedia.org/wiki/List_of_OpenID_providers
Get an OpenID with Strong Authentication for free !
Questions ?
Resources on Internet 1/2




   http://motp.sourceforge.net/
   http://www.clavid.ch/otp
   http://code.google.com/p/mod-authn-otp/
   http://www.multiotp.net/
   http://www.openauthentication.org/
   http://wiki.openid.net/
   http://www.citadelle-electronique.net/
   http://code.google.com/p/mod-authn-otp/
Resources on Internet 2/2




   http://rcdevs.com/products/openotp/
   https://github.com/adulau/paper-token
   http://www.yubico.com/yubikey
   http://code.google.com/p/mod-authn-otp/
   http://www.nongnu.org/oath-toolkit/
   http://www.nongnu.org/oath-toolkit/
   http://www.gpaterno.com/publications/2010/dublin_oss
    barcamp_2010_otp_with_oss.pdf
Backup Slides
Kerckhoffs's Principle ?
Une conviction forte !




Authentification forte
SECTION 1
SAML
>What is it?
>How does it work?
Using SAML for Authentication and Strong Authentication




                                                             (Assertion
                                                          Consumer Service)
SAML – What is it?


SAML (Security Assertion Markup Language):
> Defined by the Oasis Group
> Well and Academically Designed Specification
> Uses XML Syntax
> Used for Authentication & Authorization

> SAML Assertions
   >   Statements: Authentication, Attribute, Authorization

> SAML Protocols
   >   Queries: Authentication, Artifact, Name Identifier Mapping, etc.

> SAML Bindings
   >   SOAP, Reverse-SOAP, HTTP-Get, HTTP-Post, HTTP-Artifact

> SAML Profiles
   >   Web Browser SingleSignOn Profile, Identity Provider Discovery Profile, Assertion Query
       / Request Profile, Attribute Profile
SAML – How does it work?




    User Hans Muster

                                 3
                                 2
                                 4                              Identity Provider
                                                                e.g. clavid.ch

                             4
                         2
                     1
                 6




                                     Enabled Service

                                             e.g. Google Apps
                                             for Business
Example with HTTP POST Binding

                                       Access Resource
          Browser                                              Web App SAML Ready

                                        1
                                                             AuthN

                                                         2
                            <AuthnRequest>
                      3
  + PIN                       Redirect 302



                                                              ACS
                          POST
                       <Response> 7

                                                         Ressource
                                  Ressource    8

                       <Response>
                      in HTML Form       6

                                                         Single Sign On
                                                            Service

                    <AuthnRequest>      4


                          Credential
                          Challenge     5a


                     User Login                                      IDP MC
                                       5b
A major event in the world of strong authentication




     12 October 2005: the Federal Financial Institutions Examination
      Council (FFIEC) issues a directive

          « Single Factor Authentication » is not enough for the web financial
           applications
          Before end 2006 it is compulsory to implement a strong
           authentication system
          http://www.ffiec.gov/press/pr101205.htm

     And the PCI DSS norm
          Compulsory strong authentication for distant accesses

     And now European regulations
          Payment Services (2007/64/CE) for banks

     Social Networks, Open Source
Out of Band Authentication
Phone Factor
SAML
SAML AuthnRequst Transfer via Browser


Redirect-Binding




POST-Binding
A SAML AuthnRequest (no magic, just XML)



<?xml version="1.0" encoding="UTF-8"?>

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol“
     ID="glcmfhikbbhohichialilnnpjakbeljekmkhppkb“
     Version="2.0”
     IssueInstant="2008-10-14T00:57:14Z”
     ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST”
     ProviderName="google.com”
     ForceAuthn="false”
     IsPassive="false”
     AssertionConsumerServiceURL="https://www.google.com/a/unopass.net/acs">

  <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
      google.com
  </saml:Issuer>

  <samlp:NameIDPolicy AllowCreate="true"
     Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" />

</samlp:AuthnRequest>
SAML Assertion Transfer via Browser




POST-Binding
A SAML Assertion Response (no magic, just XML)
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
     ID="s247893b2ec90665dfd5d9bd4a092f5e3a7194fef4"
     InResponseTo="hkcmljnccpheoobdofbjcngjbadmgcfhaapdbnni"
     Version="2.0"
     IssueInstant="2008-10-15T17:24:46Z"
     Destination="https://www.google.com/a/unopass.net/acs">

  <saml:Issuer>
      http://idp.unopass.net:80/opensso
  </saml:Issuer>

  <samlp:Status>
     <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
  </samlp:Status>

  <saml:Assertion
    ID="s295c56ccd7872209ae336b934d1eed5be52a8e6ec"
    IssueInstant="2008-10-15T17:24:46Z"
    Version="2.0">
    <saml:Issuer>http://idp.unopass.net:80/opensso</saml:Issuer>
    <Signature>
      … A DIGITAL SIGNATURE …
    </Signature>


    ...
A SAML Assertion Response (no magic, just XML)



   ...

   <saml:Subject>
      <saml:NameID
         NameQualifier="http://idp.unopass.net:80/opensso">
         sylvain.maret
      </saml:NameID>
      <saml:SubjectConfirmation Method="urn:oasis:...:bearer">
         <saml:SubjectConfirmationData
           InResponseTo="hkcmljnccpheoobdofbjcngjbadmgcfhaapdbnni"
           NotOnOrAfter="2008-10-15T17:34:46Z"
           Recipient="https://www.google.com/a/unopass.net/acs"/>
      </saml:SubjectConfirmation>
   </saml:Subject>

   ...
A SAML Assertion Response (no magic, just XML)



    ...


     <saml:Conditions NotBefore="2008-10-15T17:14:46Z"
                NotOnOrAfter="2008-10-15T17:34:46Z">
        <saml:AudienceRestriction>
           <saml:Audience>google.com</saml:Audience>
        </saml:AudienceRestriction>
     </saml:Conditions>
     <saml:AuthnStatement AuthnInstant="2008-10-15T17:24:46Z“
                SessionIndex="s2bb816b5a8852dcc29f3301784c1640f245a9ec01">
        <saml:AuthnContext>
           <saml:AuthnContextClassRef>
             urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
           </saml:AuthnContextClassRef>
        </saml:AuthnContext>
     </saml:AuthnStatement>
  </saml:Assertion>
</samlp:Response>

More Related Content

What's hot (20)

PPTX
Enabling Web Apps For DoD Security via PKI/CAC Enablement (Forge.Mil case study)
Richard Bullington-McGuire
 
PPTX
Securing online services by combining smart cards and web-based applications
Olivier Potonniée
 
PPTX
Crypography in c#
Manu Cohen-Yashar
 
PPTX
PDF Digital signatures
Bruno Lowagie
 
PDF
Demystifying Apple 'Pie' & TouchID
Sebastián Guerrero Selma
 
PPTX
OpenID Connect 1.0 Explained
Eugene Siow
 
PDF
Full stack security
DPC Consulting Ltd
 
PPTX
Implementing PII Encryption with PDX Serialization
VMware Tanzu
 
PPT
Implementing Public-Key-Infrastructures
Oliver Pfaff
 
PDF
Smart Cards & Devices Forum 2012 - Securing Cloud Computing
OKsystem
 
PDF
OpenID Connect - An Emperor or Just New Cloths?
Oliver Pfaff
 
PPT
Marco Casassa Mont: Pki overview
Information Security Awareness Group
 
DOC
Internet security evaluation system documentation nikitha
Susmitha Reddy
 
PPT
Cryptography Simplified - Symmetric Key, Public Key, PKI, Digital Signature, ...
Muhammad Faisal Naqvi, CISSP, CISA, AMBCI, ITIL, ISMS LA n Master
 
PDF
Digital Signatures in the Cloud: A B2C Case Study
iText Group nv
 
PPTX
TrialPay Security Tech Talk at Stanford ACM
hackingtrialpay
 
PPT
Understanding OpenID
Prabath Siriwardena
 
PPT
Securing RESTful API
Muhammad Zbeedat
 
PDF
Apache Milagro Presentation at ApacheCon Europe 2016
Brian Spector
 
PDF
Pki and OpenSSL
Tony Fabeen
 
Enabling Web Apps For DoD Security via PKI/CAC Enablement (Forge.Mil case study)
Richard Bullington-McGuire
 
Securing online services by combining smart cards and web-based applications
Olivier Potonniée
 
Crypography in c#
Manu Cohen-Yashar
 
PDF Digital signatures
Bruno Lowagie
 
Demystifying Apple 'Pie' & TouchID
Sebastián Guerrero Selma
 
OpenID Connect 1.0 Explained
Eugene Siow
 
Full stack security
DPC Consulting Ltd
 
Implementing PII Encryption with PDX Serialization
VMware Tanzu
 
Implementing Public-Key-Infrastructures
Oliver Pfaff
 
Smart Cards & Devices Forum 2012 - Securing Cloud Computing
OKsystem
 
OpenID Connect - An Emperor or Just New Cloths?
Oliver Pfaff
 
Marco Casassa Mont: Pki overview
Information Security Awareness Group
 
Internet security evaluation system documentation nikitha
Susmitha Reddy
 
Cryptography Simplified - Symmetric Key, Public Key, PKI, Digital Signature, ...
Muhammad Faisal Naqvi, CISSP, CISA, AMBCI, ITIL, ISMS LA n Master
 
Digital Signatures in the Cloud: A B2C Case Study
iText Group nv
 
TrialPay Security Tech Talk at Stanford ACM
hackingtrialpay
 
Understanding OpenID
Prabath Siriwardena
 
Securing RESTful API
Muhammad Zbeedat
 
Apache Milagro Presentation at ApacheCon Europe 2016
Brian Spector
 
Pki and OpenSSL
Tony Fabeen
 

Viewers also liked (20)

DOC
Tailieu.vncty.com bao cao xay dung he thong thong tin mang
Trần Đức Anh
 
DOC
Krzysztof topolski 04.2016 (1)
Krzysztof Topolski
 
PPTX
Smart Training Manager
EcoLogic-Systems
 
DOCX
M-List 2015
Lorrie Heinemann
 
PPT
ENUM in Austria
Kurt Reichinger
 
PDF
Seva english
EternalHappinessOfLife
 
PDF
Labour ca report[sp]
Marco Marquez
 
PDF
Diari del 27 de novembre de 2012
diarimes
 
PPT
Sikkerhet og menneskerettigheter
Amnesty International Norge
 
PDF
Dansk MonaVie præsentation
The Shift Key
 
PDF
Sanctuary Falls Magazine Issue 1
George Thakur
 
PDF
Admira digital signage saas platform 2013
Kevin Sigliano
 
PDF
Policia Local
guest4db73c5
 
PDF
Stabi Jahresbericht 2014
stabihh
 
DOC
Lepak chapter1
garlandyan
 
PDF
Instituto de Paz, Derechos Humanos y Vida Independiente (IPADEVI)
Soledad Arnau Ripollés
 
PDF
Canadine ¿Qué es la historia ahora?
Azucena Alverdín
 
PPT
Vivaldi Pps
maanciudad
 
PDF
Global Database on Crop Wild Relatives
CWR Project
 
Tailieu.vncty.com bao cao xay dung he thong thong tin mang
Trần Đức Anh
 
Krzysztof topolski 04.2016 (1)
Krzysztof Topolski
 
Smart Training Manager
EcoLogic-Systems
 
M-List 2015
Lorrie Heinemann
 
ENUM in Austria
Kurt Reichinger
 
Labour ca report[sp]
Marco Marquez
 
Diari del 27 de novembre de 2012
diarimes
 
Sikkerhet og menneskerettigheter
Amnesty International Norge
 
Dansk MonaVie præsentation
The Shift Key
 
Sanctuary Falls Magazine Issue 1
George Thakur
 
Admira digital signage saas platform 2013
Kevin Sigliano
 
Policia Local
guest4db73c5
 
Stabi Jahresbericht 2014
stabihh
 
Lepak chapter1
garlandyan
 
Instituto de Paz, Derechos Humanos y Vida Independiente (IPADEVI)
Soledad Arnau Ripollés
 
Canadine ¿Qué es la historia ahora?
Azucena Alverdín
 
Vivaldi Pps
maanciudad
 
Global Database on Crop Wild Relatives
CWR Project
 
Ad

Similar to Strong Authentication in Web Application #SCS III (20)

PDF
TrustBearer - CTST 2009 - OpenID & Strong Authentication
TrustBearer
 
PPT
10 1 otp all
Mohammad Alyan
 
PDF
SmartCard Forum 2011 - Evolution of authentication market
OKsystem
 
PDF
Stronger/Multi-factor Authentication for Enterprise Applications
Ramesh Nagappan
 
PDF
TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...
TrustBearer
 
PPTX
Access management
Venkatesh Jambulingam
 
PDF
Creating OTP with free software
Giuseppe Paterno'
 
PDF
How to 2FA-enable Open Source Applications
All Things Open
 
PDF
Iiw2007b Madsen 01
Paul Madsen
 
PDF
OAuth 2.0 Updates #technight in Osaka
Nov Matake
 
PDF
Digital Identity
ZendCon
 
PDF
Smart OpenID & Mobile Network Security
Andreas Leicher
 
PDF
Assurity seminar 24 jan
Jason Kong
 
PPT
Authentication Technologies
Nicholas Davis
 
PPT
Authentication technologies
Nicholas Davis
 
PPTX
User Authentication for Government
Carahsoft
 
PDF
Pay Forum Conference
hagero
 
PDF
325 330
Editor IJARCET
 
PPTX
Week3 lecture
Shaikha AlQaydi
 
PDF
IRJET- Multi sharing Data using OTP
IRJET Journal
 
TrustBearer - CTST 2009 - OpenID & Strong Authentication
TrustBearer
 
10 1 otp all
Mohammad Alyan
 
SmartCard Forum 2011 - Evolution of authentication market
OKsystem
 
Stronger/Multi-factor Authentication for Enterprise Applications
Ramesh Nagappan
 
TrustBearer - Virginia Security Summit - Web Authentication Strategies - Apri...
TrustBearer
 
Access management
Venkatesh Jambulingam
 
Creating OTP with free software
Giuseppe Paterno'
 
How to 2FA-enable Open Source Applications
All Things Open
 
Iiw2007b Madsen 01
Paul Madsen
 
OAuth 2.0 Updates #technight in Osaka
Nov Matake
 
Digital Identity
ZendCon
 
Smart OpenID & Mobile Network Security
Andreas Leicher
 
Assurity seminar 24 jan
Jason Kong
 
Authentication Technologies
Nicholas Davis
 
Authentication technologies
Nicholas Davis
 
User Authentication for Government
Carahsoft
 
Pay Forum Conference
hagero
 
Week3 lecture
Shaikha AlQaydi
 
IRJET- Multi sharing Data using OTP
IRJET Journal
 
Ad

More from Sylvain Maret (20)

PDF
Air Navigation Service Providers - Unsecurity on Voice over IP Radion
Sylvain Maret
 
PDF
factsheet_4g_critical_comm_en_vl
Sylvain Maret
 
PDF
INA Volume 1/3 Version 1.02 Released / Digital Identity and Authentication
Sylvain Maret
 
PDF
INA Volume 1/3 Version 1.0 Released / Digital Identity and Authentication
Sylvain Maret
 
PDF
INA Volume 1/3 Version 1.0 RC / Digital Identity and Authentication
Sylvain Maret
 
PDF
Securite des Web Services (SOAP vs REST) / OWASP Geneva dec. 2012
Sylvain Maret
 
PDF
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
Sylvain Maret
 
PDF
Threat Modeling / iPad
Sylvain Maret
 
PDF
Strong Authentication in Web Applications: State of the Art 2011
Sylvain Maret
 
PDF
Strong Authentication in Web Application / ConFoo.ca 2011
Sylvain Maret
 
PPT
Authentication and strong authentication for Web Application
Sylvain Maret
 
PDF
Geneva Application Security Forum 2010
Sylvain Maret
 
PDF
Final conclusions of Working Group 3 at Workshop Münchenwiler 20-21 of May 20...
Sylvain Maret
 
PPTX
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...
Sylvain Maret
 
PPTX
Digital identity trust & confidence
Sylvain Maret
 
PDF
Implementation of a Biometric Solution Providing Strong Authentication To Gai...
Sylvain Maret
 
PDF
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 
PDF
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 
PDF
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 
PPTX
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 
Air Navigation Service Providers - Unsecurity on Voice over IP Radion
Sylvain Maret
 
factsheet_4g_critical_comm_en_vl
Sylvain Maret
 
INA Volume 1/3 Version 1.02 Released / Digital Identity and Authentication
Sylvain Maret
 
INA Volume 1/3 Version 1.0 Released / Digital Identity and Authentication
Sylvain Maret
 
INA Volume 1/3 Version 1.0 RC / Digital Identity and Authentication
Sylvain Maret
 
Securite des Web Services (SOAP vs REST) / OWASP Geneva dec. 2012
Sylvain Maret
 
ASFWS 2012 / Initiation à la sécurité des Web Services par Sylvain Maret
Sylvain Maret
 
Threat Modeling / iPad
Sylvain Maret
 
Strong Authentication in Web Applications: State of the Art 2011
Sylvain Maret
 
Strong Authentication in Web Application / ConFoo.ca 2011
Sylvain Maret
 
Authentication and strong authentication for Web Application
Sylvain Maret
 
Geneva Application Security Forum 2010
Sylvain Maret
 
Final conclusions of Working Group 3 at Workshop Münchenwiler 20-21 of May 20...
Sylvain Maret
 
Comment protéger de façon efficace son/ses identité(s) numérique(s) sur le We...
Sylvain Maret
 
Digital identity trust & confidence
Sylvain Maret
 
Implementation of a Biometric Solution Providing Strong Authentication To Gai...
Sylvain Maret
 
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 
Geneva Application Security Forum: Vers une authentification plus forte dans ...
Sylvain Maret
 

Recently uploaded (20)

PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
PDF
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Digital Circuits, important subject in CS
contactparinay1
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
Go Concurrency Real-World Patterns, Pitfalls, and Playground Battles.pdf
Emily Achieng
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
What’s my job again? Slides from Mark Simos talk at 2025 Tampa BSides
Mark Simos
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 

Strong Authentication in Web Application #SCS III

  • 1. Strong Authentication in Web Application “State of the Art 2011” Sylvain Maret / Digital Security Expert / OpenID Switzerland @smaret Version 1.0 / 2PM
  • 4. Who am I?  Security Expert  17 years of experience in ICT Security  Principal Consultant at MARET Consulting  Expert at Engineer School of Yverdon & Geneva University  Swiss French Area delegate at OpenID Switzerland  Co-founder Geneva Application Security Forum  OWASP Member  Author of the blog: la Citadelle Electronique  http://ch.linkedin.com/in/smaret or @smaret  http://www.slideshare.net/smaret  Chosen field  AppSec & Digital Identity Security
  • 5. Protection of digital identities: a topical issue… Strong Auth
  • 6. «Digital identity is the cornerstone of trust» http://fr.wikipedia.org/wiki/Authentification_forte
  • 7. Definition of strong authentication Strong Authentication on Wikipedia
  • 8. Strong Authentication A new paradigm?
  • 9. Which Strong Authentication technology ? Legacy Token / OTP / PKI / SuisseID ? / Open Source Solution ?
  • 11. OTP PKI (HW) Biometry Strong authentication Encryption Digital signature Non repudiation Strong link with the user
  • 13. PKI: Digital Certificate Hardware Token (Crypto PKI) Strong Authentication Software Certificate (PKCS#12;PFX)
  • 14. SSL/TLS Mutual Authentication : how does it work? Validation Authority CRL or OCSP Request Valid Invalid Unknown SSL / TLS Mutual Authentication Alice Web Server
  • 15. Demo #1: Software Certificate Auth using an IDP OpenID http://www.clavid.com/
  • 16. Strong Authentication with Biometry (Match on Card technology)  A reader  Biometry  SmartCard  A card with chip  Technology MOC  Crypto Processor  PC/SC  PKCS#11  Digital certificate X509
  • 17. Strong Authentication With (O)ne (T)ime (P)assword
  • 18. (O)ne (T)ime (P)assword  OTP Time Based  Others:  Like SecurID  OTP via SMS  OTP Event Based  OTP via email  Biometry and OTP  Bingo Card  OTP Challenge  Etc. Response Based
  • 19. OTP T-B? OTP E-B? OTP C-R-B? Crypto - 101
  • 20. Crypto-101 / Time Based OTP HASH Function K=Secret Key / Seed OTP T=UTC Time ie = OTP(K,T) = Truncate(HMAC-SHA-1(K,T))
  • 21. Crypto-101 / Event Based OTP HASH Function K=Secret Key / Seed OTP C = Counter ie = OTP(K,C) = Truncate(HMAC-SHA-1(K,C))
  • 22. Crypto-101 / OTP Challenge Response Based HASH Function K=Secret Key / Seed OTP Challenge nonce ie:
  • 23. Other[s] OTP technologies… OTP Via SMS “Flicker code” Generator Software that converts already encrypted data into optical screen animation By Elcard
  • 24. Demo #2: Protect WordPress (OTP Via SMS)
  • 25. How to Store my Secret Key ? A Token !
  • 26. OTP Token: Software vs Hardware ?
  • 27. Software OTP for Smartphone http://itunes.apple.com/us/app/iotp/id328973960
  • 31. Seed generation & distribution ? Still a good model ? K1 Threat Agent Editor / Vendor (APT) Secret Key are[is] generated on promise K1 K1
  • 33. New Standards & Open Source
  • 34. Technologies accessible to everyone   Initiative for Open AuTHentication (OATH)  HOTP  TOTP  OCRA  Etc.  Mobile OTP  (Use MD5 …..)
  • 35. Initiative for Open AuTHentication (OATH)  HOTP  Event Based OTP  Token Identifier  RFC 4226 Specification  TOTP  IETF KeyProv Working Group  Time Based OTP  PSKC - Portable Symmetric Key Container, RFC 6030  Draft IETF Version 8  DSKPP - Dynamic Symmetric Key Provisioning Protocol, RFC 6063  OCRA  Challenge/Response OTP  And more !  Draft IETF Version 13 http://www.openauthentication.org/specifications
  • 38. Use OATH-HOTP & TOTP http://code.google.com/p/google-authenticator/
  • 41. Web application: basic authentication model
  • 42. Web application: Strong Authentication Implementation Blueprint
  • 43. “Shielding" approach: perimetric authentication using Reverse Proxy / WAF
  • 45. Demo #3: Apache and Mod_OpenID (Using Biometry / OTP)
  • 46. Demo #3: Challenge / Response OTP with Biometry
  • 48. Multi OTP PHP Class Demo #4 & Hardening OS
  • 49. Proof of Concept Code by Anne Gosselin, Antonio Fontes, Sylvain Maret ! if (! empty($_REQUEST['pma_username'])) { // The user just logged in $GLOBALS['PHP_AUTH_USER'] = $_REQUEST['pma_username']; // we combine both OTP + PIN code for the token verification $fooPass = empty($_REQUEST['pma_password']) ? '' : $_REQUEST['pma_password']; $fooOtp = empty($_REQUEST['pma_otp']) ? '' : $_REQUEST['pma_otp']; $GLOBALS['PHP_AUTH_PW'] = $fooPass.''.$fooOtp; // OTP CHECK require_once('./libraries/multiotp.class.php'); $multiotp = new Multiotp(); $multiotp->SetUser($GLOBALS['PHP_AUTH_USER']); $multiotp->SetEncryptionKey('DefaultCliEncryptionKey'); $multiotp->SetUsersFolder('./libraries/users/'); $multiotp->SetLogFolder('./libraries/log/'); $multiotp->EnableVerboseLog(); $otpCheckResult = $multiotp->CheckToken($GLOBALS['PHP_AUTH_PW']); // the PIN code use kept for accessing the database $GLOBALS['PHP_AUTH_PW'] = substr($GLOBALS['PHP_AUTH_PW'], 0, strlen($GLOBALS['PHP_AUTH_PW'] if($otpCheckResult == 0) return true; else die("auth failed.");
  • 50. Step1: Add a new method using cookie authentication In config.inc.php Howto #1
  • 51. Step2: Add pma_otp field In common.inc.php
  • 52. Step3: Add new input File ori: cookie.auth.lib.php New file: cookieotp.auth.lib.php
  • 54. New file: cookieotp.auth.lib.php Step3: Call multiotp
  • 55. Demo 4#: PHP[OTP] integration for[in] phpmyadmin
  • 56. Multi OTP PHP Class by André Liechti (Switzerland) Source Code will be publish soon: http://www.citadelle-electronique.net/ http://www.multiotp.net/
  • 58. SSH Hardening with OTP Multi OTP PHP Class AES 256 PAM
  • 59. Strong Authentication Strong Authentication and Application Security & Application Security
  • 60. Threat Modeling “detecting web application threats before coding”
  • 61. ICAM: a changing paradigm on Strong Authentication
  • 62. Federation of identity approach a change of paradigm: using IDP for Authentication and Strong Authentication Identity Provider SAML, OpenID, etc
  • 63. SECTION 2 OpenID > What is it? > How does it work? > How to integrate?
  • 64. OpenID - What is it? > Internet SingleSignOn > Free Choice of Identity Provider > Relatively Simple Protocol > No License Fee > User-Centric Identity Management > Independent of Identification Methods > Internet Scalable > Non-Profit Organization
  • 65. OpenID - How does it work? User Hans Muster 3 4, 4a Identity Provider e.g. clavid.com hans.muster.clavid.com 5 6 1 2 Identity URL Caption https://hans.muster.clavid.com 1. User enters OpenID 2. Discovery 3. Authentication 4. Approval 4a. Change Attributes 5. Send Attributes 6. Validation Enabled Service
  • 66. Surprise! You may already have an OpenID !
  • 67. Other Well Known & Simple Providers http://en.wikipedia.org/wiki/List_of_OpenID_providers
  • 68. Get an OpenID with Strong Authentication for free !
  • 70. Resources on Internet 1/2  http://motp.sourceforge.net/  http://www.clavid.ch/otp  http://code.google.com/p/mod-authn-otp/  http://www.multiotp.net/  http://www.openauthentication.org/  http://wiki.openid.net/  http://www.citadelle-electronique.net/  http://code.google.com/p/mod-authn-otp/
  • 71. Resources on Internet 2/2  http://rcdevs.com/products/openotp/  https://github.com/adulau/paper-token  http://www.yubico.com/yubikey  http://code.google.com/p/mod-authn-otp/  http://www.nongnu.org/oath-toolkit/  http://www.nongnu.org/oath-toolkit/  http://www.gpaterno.com/publications/2010/dublin_oss barcamp_2010_otp_with_oss.pdf
  • 74. Une conviction forte ! Authentification forte
  • 75. SECTION 1 SAML >What is it? >How does it work?
  • 76. Using SAML for Authentication and Strong Authentication (Assertion Consumer Service)
  • 77. SAML – What is it? SAML (Security Assertion Markup Language): > Defined by the Oasis Group > Well and Academically Designed Specification > Uses XML Syntax > Used for Authentication & Authorization > SAML Assertions > Statements: Authentication, Attribute, Authorization > SAML Protocols > Queries: Authentication, Artifact, Name Identifier Mapping, etc. > SAML Bindings > SOAP, Reverse-SOAP, HTTP-Get, HTTP-Post, HTTP-Artifact > SAML Profiles > Web Browser SingleSignOn Profile, Identity Provider Discovery Profile, Assertion Query / Request Profile, Attribute Profile
  • 78. SAML – How does it work? User Hans Muster 3 2 4 Identity Provider e.g. clavid.ch 4 2 1 6 Enabled Service e.g. Google Apps for Business
  • 79. Example with HTTP POST Binding Access Resource Browser Web App SAML Ready 1 AuthN 2 <AuthnRequest> 3 + PIN Redirect 302 ACS POST <Response> 7 Ressource Ressource 8 <Response> in HTML Form 6 Single Sign On Service <AuthnRequest> 4 Credential Challenge 5a User Login IDP MC 5b
  • 80. A major event in the world of strong authentication  12 October 2005: the Federal Financial Institutions Examination Council (FFIEC) issues a directive  « Single Factor Authentication » is not enough for the web financial applications  Before end 2006 it is compulsory to implement a strong authentication system  http://www.ffiec.gov/press/pr101205.htm  And the PCI DSS norm  Compulsory strong authentication for distant accesses  And now European regulations  Payment Services (2007/64/CE) for banks  Social Networks, Open Source
  • 81. Out of Band Authentication
  • 83. SAML
  • 84. SAML AuthnRequst Transfer via Browser Redirect-Binding POST-Binding
  • 85. A SAML AuthnRequest (no magic, just XML) <?xml version="1.0" encoding="UTF-8"?> <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol“ ID="glcmfhikbbhohichialilnnpjakbeljekmkhppkb“ Version="2.0” IssueInstant="2008-10-14T00:57:14Z” ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST” ProviderName="google.com” ForceAuthn="false” IsPassive="false” AssertionConsumerServiceURL="https://www.google.com/a/unopass.net/acs"> <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"> google.com </saml:Issuer> <samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" /> </samlp:AuthnRequest>
  • 86. SAML Assertion Transfer via Browser POST-Binding
  • 87. A SAML Assertion Response (no magic, just XML) <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="s247893b2ec90665dfd5d9bd4a092f5e3a7194fef4" InResponseTo="hkcmljnccpheoobdofbjcngjbadmgcfhaapdbnni" Version="2.0" IssueInstant="2008-10-15T17:24:46Z" Destination="https://www.google.com/a/unopass.net/acs"> <saml:Issuer> http://idp.unopass.net:80/opensso </saml:Issuer> <samlp:Status> <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> </samlp:Status> <saml:Assertion ID="s295c56ccd7872209ae336b934d1eed5be52a8e6ec" IssueInstant="2008-10-15T17:24:46Z" Version="2.0"> <saml:Issuer>http://idp.unopass.net:80/opensso</saml:Issuer> <Signature> … A DIGITAL SIGNATURE … </Signature> ...
  • 88. A SAML Assertion Response (no magic, just XML) ... <saml:Subject> <saml:NameID NameQualifier="http://idp.unopass.net:80/opensso"> sylvain.maret </saml:NameID> <saml:SubjectConfirmation Method="urn:oasis:...:bearer"> <saml:SubjectConfirmationData InResponseTo="hkcmljnccpheoobdofbjcngjbadmgcfhaapdbnni" NotOnOrAfter="2008-10-15T17:34:46Z" Recipient="https://www.google.com/a/unopass.net/acs"/> </saml:SubjectConfirmation> </saml:Subject> ...
  • 89. A SAML Assertion Response (no magic, just XML) ... <saml:Conditions NotBefore="2008-10-15T17:14:46Z" NotOnOrAfter="2008-10-15T17:34:46Z"> <saml:AudienceRestriction> <saml:Audience>google.com</saml:Audience> </saml:AudienceRestriction> </saml:Conditions> <saml:AuthnStatement AuthnInstant="2008-10-15T17:24:46Z“ SessionIndex="s2bb816b5a8852dcc29f3301784c1640f245a9ec01"> <saml:AuthnContext> <saml:AuthnContextClassRef> urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport </saml:AuthnContextClassRef> </saml:AuthnContext> </saml:AuthnStatement> </saml:Assertion> </samlp:Response>