SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
abcdefg
Smartcard-Login into Gemstone


     An exercise in applied security

                   by

          Alfred Wullschleger,
          Swiss National Bank


                                       awu030828   1
abcdefg
                                                               Disclaimer
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

This Material is a copy of the presentation at the ESUG 2003, Bleed,
Slovenia.

It has been developed by Alfred Wullschleger,
Swiss National Bank.


Any liability is explicitely excluded.
This publication completely reflects opinions of the author.
The Swiss National Bank shall not be bound by any
information contained herein.



You may send comments
                                    to: wully@bluewin.ch
                  or                to: alfred.wullschleger@snb.ch


-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0

iQA/AwUBP1MlRIBkqNDRsW06EQINYACg63d2yK0GCdIz0f2IQcfWupyx1fwAoO4Q
px5moaJuaAkPTCCgtxq5+iNK
=bMoJ
-----END PGP SIGNATURE-----




                                                                            awu030828   2
abcdefg
        Talk and Technical Discussion
●   Two Parts
    –   first Part (this Talk): Presentation of the ideas
    –   second Part: Technical discussion
         ●   code examples
         ●   demonstrations
         ●   details of the implementation
              –   as requested by the audience




                                                       awu030828   3
abcdefg
                       The Author
●   Smalltalker since 1992, never ending enthusiasm
●   Project OVID at FIDES Informatik (1992-1999)
●   Leading the project OASE at SNB since 1999
    –   Financial statistics from Swiss banks and Swiss
        companies
    –   Fully object oriented application using VW3.0 and
        Gemstone as development base


                                                      awu030828   4
abcdefg
                          Motivation
●   Gemstone Login uses username and password
    –   Both are sent over the network in clear text
    –   passwords are typically „trivial“ by User
        requirement?!
●   Smartcards (SC) have many advantages
    –   Very high security
         ●   User must have the card and a password for the card
    –   Even relatively trivial passwords are acceptable since
        the SC is completely disabled after 3 trials
                                                            awu030828   5
abcdefg
                Smartcards at SNB
●   Smartcards will be introduced in the Bank during
    2004
●   Goal is Single Signon
    –   OASE is one of the first applications which today are
        ready for Smartcard logon




                                                     awu030828   6
abcdefg
Smartcard Login




  How to implement?




                      awu030828   7
abcdefg
             Gemstone Prerequisites
●   Logon uses username and password
    –   Password size 1024 byte maximum
    –   Password expiration can be set to exactely one logon
●   So, we can use a „complicated“ One-Time-
    Password, we call it EPW (from german)
    –   format can be choosen appropriate
●   Smartcard can be combined with GS:
    –   use a Logonserver
                                                    awu030828   8
abcdefg

                                  Server machine

    Logonserver                                        Gemstone-DB




                  logon traffic                        normal GS traffic




critical connection
(uses priviledged                  Clientapplication
GS login for setting
of EPW)



                                                                           awu030828   9
abcdefg
                     Logonserver (LS)
●   LS runs on the same machine as the GS server(s)
    –   this guarantees the exchange of critical data with GS
        without network traffic
    –   handles all GS servers on the same machine
    –   handles all client logon requests for these servers
    –   is implemented as a headless VW3.0 application
         ●   so it runs wherever we want (AIX, Win2000, Linux,
             WinXP...)
         ●   runs as TCP/IP-Server
                                                            awu030828   10
abcdefg
                          LS basic operation
LogonServer                          GemstoneServer                     Client

                                                      Request EPW
         Request User Credentials

                                             check User Credentials
         Supply User Credentials

       verify User
              generate and set EPW

       encrypt EPW
                                             send encrypted EPW


                                                                        decrypt EPW
                                               Logon with EPW

                                               Logon wit EPW accepted


          red = encrypted
                                                                             awu030828   11
abcdefg
                LS basic operation
●   the client requests his EPW from LS
●   LS verifies with GS, that user is ok
    –   (i.e. has credentials and a user account)
●   LS generates EPW and sets it in GS for one use
●   LS encrypts the EPW and sends it to the client
●   the client decrypts the EPW and makes normal
    GS login with his username and the EPW

                                                    awu030828   12
abcdefg
        LS has two concurrent modes
●   SC-RSA (Smartcard-RSA-mode)
    –   The user uses a Smartcard with RSA-signature keypair
●   PW-DH (Password-Diffie-Hellman-mode)
    –   The user has no Smartcard
         ●   a forgotten Smartcard should not prevent the user from
             logging into GS
         ●   this mode must be activated in GS for each user
             individually by administrators, if in SC-RSA-mode before


                                                              awu030828   13
abcdefg
              We need a secure
         data exchange Client <> LS
●   Exchange of secret data through encryption
    –   we use Blowfish block cipher
●   Each session Client-LS must have a session key
    –   can be generated by using Diffie-Hellman (DH)
        technique
    –   how does DH work?




                                                   awu030828   14
abcdefg
                Diffie-Hellman part1
●   creation of one secret for two parties
●   based on the cyclic group Zp = {1,2,3...p},
    where p is prime.
    –   this is equivalent to multiplication of natural
        numbers modulo p
    –   p size large, typically > 256 bits
●   use a common base b ∈ Zp, e.g. 65537
●   each party selects a secret random number
    rj > 1, typically large. j=1,2            awu030828       15
abcdefg
                  Diffie-Hellman part2
●   each party calculates pubj = (b ** rj) mod p,
    so, pubj ∈ Zp
●   both parties publicly exchange their pubj
    –   we call pubj the DH-Halfkey of party j

●   each party calculates key = (pubj)**ri mod p
    –   (j = other, i = self)
●   Since (b**ri)**rj == (b**rj)**ri, both parties get
    the same key!
                                                 awu030828   16
abcdefg
                       LS connection start
LogonServer                                                                    Client




                                   open Socket on LS port

      create DH halfkey, sign it

                         „connection accepted“ with DH halfkey and signature




                                             if needed:
                                             Client may generate
                                             its own DH halfkey
                                             and so calculate the
                                             session key for
                                             Blowfish



                                                                                    awu030828   17
abcdefg
    LS connection start (both modes)
●   As soon as a connection to LS is established
    –   LS creates a Diffie-Hellman halfkey for generation of
        a session key
    –   LS signs this halfkey, so that a user can verify, that
        he is connected to a legal LS
    –   LS sends this information as a „connection accepted“
        message to the client
    –   this is done irrespective of the mode wished by the
        client
                                                       awu030828   18
abcdefg
                           SC-RSA Overview
LogonServer                        GemstoneServer                                    Client

              Cleartext Request EPW SC-RSA(username, servername)

         Request RSA User Credentials

                                          get X.509-certificate for user signature
         Supply User Credentials

       generate EPW

          set EPW

      encrypt EPW by User public RSA-Key
                                        send RSA-encrypted EPW
                                                                                      decrypt EPW using
                                                                                      Smartcard
                                             Logon with EPW

                                             Logon wit EPW accepted



                                                                                          awu030828   19
abcdefg
                      SC-RSA part1
●   User requests EWP in SC-RSA-mode
    –   parameters: GS servername, GS username
    –   sent in clear text to LS
●   LS requests X.509-Certificate for the user from
    GS
    –   LS generates EPW and sets it in GS
    –   LS RSA-encrypts EPW using signaturekey from the
        X.509-Certificate

                                                   awu030828   20
abcdefg
                    SC-RSA part2
●   LS sends encrypted EPW to client
    –   if the user has the corresponding Smartcard, he can
        decrypt the EPW, if not, the information from LS is
        useless
●   user decrypts EPW with his Smartcard
    –   makes login in GS, using GS username and EPW




                                                    awu030828   21
abcdefg
                            PW-DH Overview
LogonServer                          GemstoneServer                          Client

      Blowfish Encrypted Request EPW PW-DH( username, servername, password) calculate DH session key
         Request DH User Credentials

                                             get DH-UC
         Supply User Credentials

       decrypt DH-UC by Blowfish
       using SHA-1 hashed password
       verify username in result
              generate and set EPW

      encrypt EPW with Blowfish with session key
                                           send encrypted EPW
                                                                               decrypt EPW using
                                                                               Blowfish with
                                                                                session key
                                                Logon with EPW

                                                Logon wit EPW accepted

                                                                                  awu030828   22
abcdefg
                     PW-DH part1
●   client requests EWP in PW-DH-mode
    –   parameters: GS servername, GS username, password
    –   client generates halfkey for DH-Keyexchange
    –   creates with the halfkey from LS the session key for
        blowfish encryption
    –   sends EPW request encryted to LS together with his
        halfkey
●   LS decrypts EPWrequest
    –   by that gets servername, username and password
                                                      awu030828   23
abcdefg
                         PW-DH part2
●   LS gets encrypted PW-DH-credentials for
    username from GS
    –   GS stores PW-DH-credentials as blowfish-encrypted
        username plus randomdata
    –   password is hashed with SHA-1 to get a blowfish key
         ●   Watch out: hashing does not help if password is trivial
    –   These data are generated by interaction of an
        administrator with the user
         ●   when RSA-SC is used, PW-DH-credentials are ereased

                                                               awu030828   24
abcdefg
                     PW-DH part3
●   LS decrypts PW-DH-credentials using the
    password, if ok:
    –   LS generates EPW and sets it in GS
    –   LS blowfish-encrypts EPW using the sessionkey
●   client receives and decrypts EPW
    –   makes login in GS, using GS username and EPW



                                                   awu030828   25
abcdefg
Implementation issues




        Encryption,
    Formats of EPW etc.




                          awu030828   26
abcdefg
                            RSA basics
●   use two secret primes p and q:
    –   get n = p*q, a large number (1024 bit)
    –   select a number e with gcd(e,(p-1)*(q-1))=1
    –   e typically 65537 (or 17 or 3)
         ●   n and e form the public key for encryption
    –   calculate d so that ed == 1 mod(p-1)*(q-1)
         ●   n and d form the secret decryption key



                                                          awu030828   27
abcdefg
                 RSA implementation
●   Security is based on factorization being a hard
    problem
●   RSA is fully implemented in VW7.*
    –   we have ported it to VW3.0
         ●   was very easy




                                              awu030828   28
abcdefg
                         Blowfish
●   Block cipher defined by Bruce Schneier, 1994
    –   encrypts 64-bit-Blocks
●   uses keylength between 128 and 448 bit
    –   we use 256 bit keys
●   we use CBC-Mode
    –   each block is XORed with the preceeding
        encryptedBlock, first block with an InitialVector


                                                      awu030828   29
abcdefg
                                Sizes
●   RSA-keys on SC and signing key of LS: 1024bit
●   Diffie-Hellman parameters
    –   p: currently 256 bit
    –   base = 65537
●   EPW
    –   20-byte random ByteArray converted to
        LargePositiveInteger
         ●   giving a passwordstring of 48 to 49 digit characters

                                                              awu030828   30
abcdefg
        XML for all requests/responses
●   XML as exchange format between Client and LS
    –   To avoid escape sequences like &#x0027; etc., we are using
        integer formats throughout all exchanges which use
        encryption
    –   The ByteArrays are converted using „asLargePositiveInteger“
         ●   this is compatible with PKCS#1-specification of conversion
              between bytes and integers




                                                              awu030828   31
abcdefg
          LS Answer on Socket accept:
     –   <XmlResponse>
         <Validation>true</Validation>
         <DhCode>1588342583341664246536080884883637711967782785292526
         5980146286745390962263576</DhCode>
         <ServerDHSignatur>1837090060268423857924167053495562451884751
         288762027596014818947508697902699959279787764051953251210518
         835088865241327868618698753687189866681129504242203066018314
         921615856755804950286871069415444994298422094470968257289272
         110594464664365849721683826653601332531687887166125489512675
         5085488495158339417264534</ServerDHSignatur>
         </XmlResponse>
●   User can verify the Signature of the LS




                                                            awu030828   32
abcdefg
                  SC-RSA basic format
●   SC-RSA-request from client to LS is unencrypted:
     –   <RSAEPWRequest>
         <Server>lightning</Server><User>rog</User>
         </RSAEPWRequest>
●   SC-RSA-response from LS to client:
     –   <EinmalPasswort>254036481566762758850660080224084753875223586
         838390721369209245892308754789435119113869732769585450706139
         953046640274448442599416470993396942547126224650088959281761
         150591890399102073665906605091766315849615345087595361055920
         327412405609537797569746156102333670979136662194517047330045
         30461339320939262107515</EinmalPasswort>




                                                             awu030828   33
abcdefg
                    SC-RSA improved
●   we could improve the protocol by requesting,
    that the client has to sign the LS halfkey
    –   so, we avoid setting EPW for a user, who has no
        corresponding X.509-certificate on GS for the SC
         ●   has more computing overhead
    –   could avoid denial-of-service-attacks
         ●   disable user, if repeatedly illegally requesting an EPW
●   this is implemented for ticket requests (see
    later)
                                                               awu030828   34
abcdefg
                       PW-DH request
●   Internal PW-DH-Request:
     –   <XmlEPWRequest>
         <Server>lightning</Server>
         <User>awu</User><Password>xxxxxx</Password></XmlEPWRequest>
●   encrypted PW-DH-Request:
     –   <XmlEPWRequest>
         <DhCode>2815747482711583432974205332271263279346890877810142
         0710560243267932546510264</DhCode>
         <EinmalPasswortRequest>421701460956386515843309546275011481111
         952142904853134983891656694841409986396784019003171859680754
         920531201111390893851148664959465630186555935507756945874285
         836772314488857119582594456372386721952350160342234743728624
         71711709551746300760031120608509510132548629714428</EinmalPass
         wortRequest>
         </XmlEPWRequest>
                                                              awu030828   35
abcdefg
                     PW-DH response
●   Encrypted Response from LS:
     –   <EinmalPasswort>391016871021610782724341211645684570668712594
         970979368692619795917841928462118545730795848292112003218739
         3806816930803570651576119091883739061802251407795
         </EinmalPasswort>




                                                             awu030828   36
abcdefg
Other Functions of LS




        Tickets




                        awu030828   37
abcdefg
                   XML-Bulkserver
●   OASE data can be requested from the so called
    XML-Bulkserver which is fully XML-based
    –   Like LS a headless VW3.0-application
●   The user must login into GS to access the data
●   How can this be achieved when the user must
    supply an EPW?
    –   by an XML-Ticket which allows access to GS


                                                     awu030828   38
abcdefg

                        Server machine
Logonserver
                                          Gemstone-DB


                   XML-BulkServer


ticket request             XML-requests
                                          critical connection


          XML-Clientapplication


                                                   awu030828    39
abcdefg
                    XML-Ticket Overview for PW-DH
             LogonServer                        GemstoneServer                                Client
                                                                        BulkServer
                   Blowfish Encrypted XMLRequest PW-DH( username, servername, password)calculate DH session key
                      Request DH User Credentials

                                                        get DH-UC
as for EPW




                      Supply User Credentials

                    decrypt DH-UC by Blowfish
                    using SHA-1 hashed password
                    verify username in result

                    generate Ticket(timestamp, username,
                    servername) with signature
                    encrypt Ticket with Blowfish with session key
                                                          send encrypted Ticket
                                                                                               decrypt Ticket using
                                                                                               Blowfish with
                                                                                                 session key
                                                                           send decrypted Ticket
                                                                            Ticket accepted

                                                                                                   awu030828    40
abcdefg
       XML-Ticket Overview for SC-RSA
LogonServer                        GemstoneServer                                 Client
                                                             BulkServer
      Blowfish Encr. XMLRequest ( username, servername, signed LS-DH-halfkey) calculate DH session key
         Request RSA User Credentials
                                                                                  Encryption not necessary,
                                           get X.509 cert.
         Supply User Credentials                                                  but simplifies code

       verify LS-DH-halfkey signature
       with X.509-user public key

       generate Ticket(timestamp, username,
       servername) with LS signature
       encrypt Ticket with Blowfish with session key

                                            send encrypted Ticket
                                                                                    decrypt Ticket using
                                                                                    Blowfish with
                                                                                      session key
                                                                send decrypted Ticket
                                                                Ticket accepted

                                                                                       awu030828     41
abcdefg
                 XML-Ticket basics
●   The user requests an XML-Ticket from the LS
●   When the user is allowed to access the database,
    LS creates a ticket
    –   contains servername, username and a timestamp for
        validity checking.
    –   the ticket is signed by LS
●   The ticket must be presented to the Bulkserver
    within a short period (currently < 10 seconds).
                                                  awu030828   42
abcdefg
                  XML-Ticket checking
●   The Bulkserver checks the ticket:
    –   verifies the signature of LS
    –   checks the timestamp
         ●   also verifies, that this ticket has not already been used
    –   uses the servername to access GS
         ●   today, we do not restrict access for read for legal users,
             because of that there is no check necessary for the
             username


                                                                awu030828   43
abcdefg
                 XML-Ticket modes
●   PW-DH and SC-RSA use the same technique for
    sending the ticket to the client:
    –   the ticket format has no difference for both modes
    –   the ticket is encrypted using blowfish with the DH-
        sessionkey




                                                     awu030828   44
abcdefg
               XML-Ticket formats
●   The TicketRequest differs for both modes
    –   parameters: servername and username
●   in SC-RSA the user signs the DH-halfkey from the
    LS with his signing key
●   in PW-DH the credentials for servername,
    username are checked as for EPW using password
●   these requests are both sent encrypted by
    blowfish
                                                awu030828   45
abcdefg
                     TicketResponse
    –   <XMLTicket>
        <Server>dpssM700</Server><User>awu</User>
        <XMLTicketTime>3233767397000</XMLTicketTime>
        <XMLTicketSignature>15022795967277155422365835660918884813150
        493043388515335841562848404653388507428348520470812988743204
        684100581555360979769072404615410077936309726151332490571843
        592914711119422903713287110926779070634207761829979664926899
        476112082718024066167433468885019163386939230270203100939218
        773849125730756896177136037</XMLTicketSignature>
        </XMLTicket>

●   identical for both modes



                                                            awu030828   46
abcdefg
        Encrypted TicketRequest Format
●   both modes send encrypted with Blowfish:
    –   <XMLLogonRequest>
        <DhCode>4021923930769221418014505334054508087735352248076679
        0930681240902947674828299</DhCode>
        <EncryptedXMLLogonRequest>1013770570829590745205458228324819
        952813554860299057479356650031543473116011689133005574889073
        439715230885236966998448272871724104085738820437166598534732
        977536812429181457436359960820992836673414486482059363023010
        62332051528870082493408610500435018279009052905430115234</Enc
        ryptedXMLLogonRequest>
        </XMLLogonRequest>




                                                            awu030828   47
abcdefg
        Internal SC-RSA TicketRequest
    –   <XMLRSARequest>
        <Server>dpssM700</Server><User>awu</User>
        <Password>106942665803893961652237782571282335715752848048653
        488271645277633172859414869405045021075475426683763871005096
        512550742078122566663290545340367303214617163684950078288221
        884273972865236822265399295831080513274720629788515005292693
        213055680355212564287254503022928044905763429004378965569364
        748530842326832384</Password>
        </XMLRSARequest>

●   <Password> contains the signature of the DH
    halfkey of the LS


                                                            awu030828   48
abcdefg
        Internal PW-DH TicketRequest
    –   <XmlEPWRequest>
        <Server>dpssM700</Server><User>awu</User>
        <Password>xxxxxxx</Password>
        </XmlEPWRequest>

●   Same format as for EPW




                                                    awu030828   49
abcdefg
                        Batch-Tickets
●   We plan, to introduce also Tickets for Batch-
    Processing
    –   the user requests a ticket for a batch job at some
        time at some date
    –   the LS delivers the ticket
         ●   the batch job is responsible for the secure deposit of the
             ticket until used
    –   the batch job presents the decrypted ticket at the
        correct time/date and can be processed

                                                               awu030828   50
abcdefg
That's it!




 Questions?




              awu030828   51

Weitere ähnliche Inhalte

Andere mochten auch

"How to Make the World More Interactive: Augmented Reality as the Interface B...
"How to Make the World More Interactive: Augmented Reality as the Interface B..."How to Make the World More Interactive: Augmented Reality as the Interface B...
"How to Make the World More Interactive: Augmented Reality as the Interface B...Edge AI and Vision Alliance
 
Smartcard vulnerabilities in modern banking malware
Smartcard vulnerabilities in modern banking malwareSmartcard vulnerabilities in modern banking malware
Smartcard vulnerabilities in modern banking malwareAlex Matrosov
 
Open source technology, freeware drone (by Joris Krüse)
Open source technology, freeware drone (by Joris Krüse)Open source technology, freeware drone (by Joris Krüse)
Open source technology, freeware drone (by Joris Krüse)Verhaert Masters in Innovation
 
Open source technology
Open source technologyOpen source technology
Open source technologyaparnaz1
 
Smart Card Technology
Smart Card TechnologySmart Card Technology
Smart Card TechnologyAmit Gaur
 
Smart Card Presentation
Smart Card PresentationSmart Card Presentation
Smart Card Presentationjaclor0408
 

Andere mochten auch (13)

"How to Make the World More Interactive: Augmented Reality as the Interface B...
"How to Make the World More Interactive: Augmented Reality as the Interface B..."How to Make the World More Interactive: Augmented Reality as the Interface B...
"How to Make the World More Interactive: Augmented Reality as the Interface B...
 
Smartcard vulnerabilities in modern banking malware
Smartcard vulnerabilities in modern banking malwareSmartcard vulnerabilities in modern banking malware
Smartcard vulnerabilities in modern banking malware
 
Open source technology, freeware drone (by Joris Krüse)
Open source technology, freeware drone (by Joris Krüse)Open source technology, freeware drone (by Joris Krüse)
Open source technology, freeware drone (by Joris Krüse)
 
Smartcard and Information Programme (METRO)
Smartcard and Information Programme (METRO)Smartcard and Information Programme (METRO)
Smartcard and Information Programme (METRO)
 
Open source technology
Open source technologyOpen source technology
Open source technology
 
Smart Card Technology
Smart Card TechnologySmart Card Technology
Smart Card Technology
 
Smart Card Presentation
Smart Card PresentationSmart Card Presentation
Smart Card Presentation
 
Smart card system ppt
Smart card system ppt Smart card system ppt
Smart card system ppt
 
Smart Card Technology
Smart Card TechnologySmart Card Technology
Smart Card Technology
 
Open Source Technology
Open Source TechnologyOpen Source Technology
Open Source Technology
 
Smart card ppt
Smart card pptSmart card ppt
Smart card ppt
 
Ppt Smart Card
Ppt Smart CardPpt Smart Card
Ppt Smart Card
 
Smart card
Smart cardSmart card
Smart card
 

Ähnlich wie Smartcard-Login into Gemstone

Shameful secrets of proprietary network protocols
Shameful secrets of proprietary network protocolsShameful secrets of proprietary network protocols
Shameful secrets of proprietary network protocolsSlawomir Jasek
 
Remote Access VPNs - pfSense Hangout September 2015
Remote Access VPNs - pfSense Hangout September 2015Remote Access VPNs - pfSense Hangout September 2015
Remote Access VPNs - pfSense Hangout September 2015Netgate
 
Challenges Building Secure Mobile Applications
Challenges Building Secure Mobile ApplicationsChallenges Building Secure Mobile Applications
Challenges Building Secure Mobile ApplicationsMasabi
 
WebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in DepthWebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in Depthyalegko
 
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment Sergey Gordeychik
 
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted GraphiteSREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted GraphiteHostedGraphite
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияPositive Hack Days
 
Netcat 101 by-mahesh-beema
Netcat 101 by-mahesh-beemaNetcat 101 by-mahesh-beema
Netcat 101 by-mahesh-beemaRaghunath G
 
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocolsCONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocolsPROIDEA
 
Security applications with Java Card
Security applications with Java CardSecurity applications with Java Card
Security applications with Java CardJulien SIMON
 
[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan Knudsen[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan KnudsenTI Safe
 
Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)Abhishek Kumar
 
Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014
Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014
Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014Jakub Kałużny
 
You wanna crypto in AEM
You wanna crypto in AEMYou wanna crypto in AEM
You wanna crypto in AEMDamien Antipa
 

Ähnlich wie Smartcard-Login into Gemstone (20)

Shameful secrets of proprietary network protocols
Shameful secrets of proprietary network protocolsShameful secrets of proprietary network protocols
Shameful secrets of proprietary network protocols
 
Secure PostgreSQL deployment
Secure PostgreSQL deploymentSecure PostgreSQL deployment
Secure PostgreSQL deployment
 
Remote Access VPNs - pfSense Hangout September 2015
Remote Access VPNs - pfSense Hangout September 2015Remote Access VPNs - pfSense Hangout September 2015
Remote Access VPNs - pfSense Hangout September 2015
 
Challenges Building Secure Mobile Applications
Challenges Building Secure Mobile ApplicationsChallenges Building Secure Mobile Applications
Challenges Building Secure Mobile Applications
 
WebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in DepthWebGoat.SDWAN.Net in Depth
WebGoat.SDWAN.Net in Depth
 
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
WebGoat.SDWAN.Net in Depth: SD-WAN Security Assessment
 
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted GraphiteSREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
SREcon Europe 2016 - Full-mesh IPsec network at Hosted Graphite
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управления
 
Go paranoid
Go paranoidGo paranoid
Go paranoid
 
Netcat 101 by-mahesh-beema
Netcat 101 by-mahesh-beemaNetcat 101 by-mahesh-beema
Netcat 101 by-mahesh-beema
 
Netcat - 101 Swiss Army Knife
Netcat - 101 Swiss Army KnifeNetcat - 101 Swiss Army Knife
Netcat - 101 Swiss Army Knife
 
Ice
IceIce
Ice
 
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocolsCONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
CONFidence 2014: Jakub Kałużny: Shameful secrets of proprietary protocols
 
Aoevideo
AoevideoAoevideo
Aoevideo
 
Security applications with Java Card
Security applications with Java CardSecurity applications with Java Card
Security applications with Java Card
 
[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan Knudsen[CLASS 2014] Palestra Técnica - Jonathan Knudsen
[CLASS 2014] Palestra Técnica - Jonathan Knudsen
 
Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)Insecurity-In-Security version.1 (2010)
Insecurity-In-Security version.1 (2010)
 
Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014
Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014
Shameful Secrets of Proprietary Network Protocols - OWASP AppSec EU 2014
 
You wanna crypto in AEM
You wanna crypto in AEMYou wanna crypto in AEM
You wanna crypto in AEM
 
Smart shopping cart (using RFID)
Smart shopping cart (using RFID)Smart shopping cart (using RFID)
Smart shopping cart (using RFID)
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 

Kürzlich hochgeladen (20)

Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 

Smartcard-Login into Gemstone

  • 1. abcdefg Smartcard-Login into Gemstone An exercise in applied security by Alfred Wullschleger, Swiss National Bank awu030828 1
  • 2. abcdefg Disclaimer -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This Material is a copy of the presentation at the ESUG 2003, Bleed, Slovenia. It has been developed by Alfred Wullschleger, Swiss National Bank. Any liability is explicitely excluded. This publication completely reflects opinions of the author. The Swiss National Bank shall not be bound by any information contained herein. You may send comments to: wully@bluewin.ch or to: alfred.wullschleger@snb.ch -----BEGIN PGP SIGNATURE----- Version: PGP 8.0 iQA/AwUBP1MlRIBkqNDRsW06EQINYACg63d2yK0GCdIz0f2IQcfWupyx1fwAoO4Q px5moaJuaAkPTCCgtxq5+iNK =bMoJ -----END PGP SIGNATURE----- awu030828 2
  • 3. abcdefg Talk and Technical Discussion ● Two Parts – first Part (this Talk): Presentation of the ideas – second Part: Technical discussion ● code examples ● demonstrations ● details of the implementation – as requested by the audience awu030828 3
  • 4. abcdefg The Author ● Smalltalker since 1992, never ending enthusiasm ● Project OVID at FIDES Informatik (1992-1999) ● Leading the project OASE at SNB since 1999 – Financial statistics from Swiss banks and Swiss companies – Fully object oriented application using VW3.0 and Gemstone as development base awu030828 4
  • 5. abcdefg Motivation ● Gemstone Login uses username and password – Both are sent over the network in clear text – passwords are typically „trivial“ by User requirement?! ● Smartcards (SC) have many advantages – Very high security ● User must have the card and a password for the card – Even relatively trivial passwords are acceptable since the SC is completely disabled after 3 trials awu030828 5
  • 6. abcdefg Smartcards at SNB ● Smartcards will be introduced in the Bank during 2004 ● Goal is Single Signon – OASE is one of the first applications which today are ready for Smartcard logon awu030828 6
  • 7. abcdefg Smartcard Login How to implement? awu030828 7
  • 8. abcdefg Gemstone Prerequisites ● Logon uses username and password – Password size 1024 byte maximum – Password expiration can be set to exactely one logon ● So, we can use a „complicated“ One-Time- Password, we call it EPW (from german) – format can be choosen appropriate ● Smartcard can be combined with GS: – use a Logonserver awu030828 8
  • 9. abcdefg Server machine Logonserver Gemstone-DB logon traffic normal GS traffic critical connection (uses priviledged Clientapplication GS login for setting of EPW) awu030828 9
  • 10. abcdefg Logonserver (LS) ● LS runs on the same machine as the GS server(s) – this guarantees the exchange of critical data with GS without network traffic – handles all GS servers on the same machine – handles all client logon requests for these servers – is implemented as a headless VW3.0 application ● so it runs wherever we want (AIX, Win2000, Linux, WinXP...) ● runs as TCP/IP-Server awu030828 10
  • 11. abcdefg LS basic operation LogonServer GemstoneServer Client Request EPW Request User Credentials check User Credentials Supply User Credentials verify User generate and set EPW encrypt EPW send encrypted EPW decrypt EPW Logon with EPW Logon wit EPW accepted red = encrypted awu030828 11
  • 12. abcdefg LS basic operation ● the client requests his EPW from LS ● LS verifies with GS, that user is ok – (i.e. has credentials and a user account) ● LS generates EPW and sets it in GS for one use ● LS encrypts the EPW and sends it to the client ● the client decrypts the EPW and makes normal GS login with his username and the EPW awu030828 12
  • 13. abcdefg LS has two concurrent modes ● SC-RSA (Smartcard-RSA-mode) – The user uses a Smartcard with RSA-signature keypair ● PW-DH (Password-Diffie-Hellman-mode) – The user has no Smartcard ● a forgotten Smartcard should not prevent the user from logging into GS ● this mode must be activated in GS for each user individually by administrators, if in SC-RSA-mode before awu030828 13
  • 14. abcdefg We need a secure data exchange Client <> LS ● Exchange of secret data through encryption – we use Blowfish block cipher ● Each session Client-LS must have a session key – can be generated by using Diffie-Hellman (DH) technique – how does DH work? awu030828 14
  • 15. abcdefg Diffie-Hellman part1 ● creation of one secret for two parties ● based on the cyclic group Zp = {1,2,3...p}, where p is prime. – this is equivalent to multiplication of natural numbers modulo p – p size large, typically > 256 bits ● use a common base b ∈ Zp, e.g. 65537 ● each party selects a secret random number rj > 1, typically large. j=1,2 awu030828 15
  • 16. abcdefg Diffie-Hellman part2 ● each party calculates pubj = (b ** rj) mod p, so, pubj ∈ Zp ● both parties publicly exchange their pubj – we call pubj the DH-Halfkey of party j ● each party calculates key = (pubj)**ri mod p – (j = other, i = self) ● Since (b**ri)**rj == (b**rj)**ri, both parties get the same key! awu030828 16
  • 17. abcdefg LS connection start LogonServer Client open Socket on LS port create DH halfkey, sign it „connection accepted“ with DH halfkey and signature if needed: Client may generate its own DH halfkey and so calculate the session key for Blowfish awu030828 17
  • 18. abcdefg LS connection start (both modes) ● As soon as a connection to LS is established – LS creates a Diffie-Hellman halfkey for generation of a session key – LS signs this halfkey, so that a user can verify, that he is connected to a legal LS – LS sends this information as a „connection accepted“ message to the client – this is done irrespective of the mode wished by the client awu030828 18
  • 19. abcdefg SC-RSA Overview LogonServer GemstoneServer Client Cleartext Request EPW SC-RSA(username, servername) Request RSA User Credentials get X.509-certificate for user signature Supply User Credentials generate EPW set EPW encrypt EPW by User public RSA-Key send RSA-encrypted EPW decrypt EPW using Smartcard Logon with EPW Logon wit EPW accepted awu030828 19
  • 20. abcdefg SC-RSA part1 ● User requests EWP in SC-RSA-mode – parameters: GS servername, GS username – sent in clear text to LS ● LS requests X.509-Certificate for the user from GS – LS generates EPW and sets it in GS – LS RSA-encrypts EPW using signaturekey from the X.509-Certificate awu030828 20
  • 21. abcdefg SC-RSA part2 ● LS sends encrypted EPW to client – if the user has the corresponding Smartcard, he can decrypt the EPW, if not, the information from LS is useless ● user decrypts EPW with his Smartcard – makes login in GS, using GS username and EPW awu030828 21
  • 22. abcdefg PW-DH Overview LogonServer GemstoneServer Client Blowfish Encrypted Request EPW PW-DH( username, servername, password) calculate DH session key Request DH User Credentials get DH-UC Supply User Credentials decrypt DH-UC by Blowfish using SHA-1 hashed password verify username in result generate and set EPW encrypt EPW with Blowfish with session key send encrypted EPW decrypt EPW using Blowfish with session key Logon with EPW Logon wit EPW accepted awu030828 22
  • 23. abcdefg PW-DH part1 ● client requests EWP in PW-DH-mode – parameters: GS servername, GS username, password – client generates halfkey for DH-Keyexchange – creates with the halfkey from LS the session key for blowfish encryption – sends EPW request encryted to LS together with his halfkey ● LS decrypts EPWrequest – by that gets servername, username and password awu030828 23
  • 24. abcdefg PW-DH part2 ● LS gets encrypted PW-DH-credentials for username from GS – GS stores PW-DH-credentials as blowfish-encrypted username plus randomdata – password is hashed with SHA-1 to get a blowfish key ● Watch out: hashing does not help if password is trivial – These data are generated by interaction of an administrator with the user ● when RSA-SC is used, PW-DH-credentials are ereased awu030828 24
  • 25. abcdefg PW-DH part3 ● LS decrypts PW-DH-credentials using the password, if ok: – LS generates EPW and sets it in GS – LS blowfish-encrypts EPW using the sessionkey ● client receives and decrypts EPW – makes login in GS, using GS username and EPW awu030828 25
  • 26. abcdefg Implementation issues Encryption, Formats of EPW etc. awu030828 26
  • 27. abcdefg RSA basics ● use two secret primes p and q: – get n = p*q, a large number (1024 bit) – select a number e with gcd(e,(p-1)*(q-1))=1 – e typically 65537 (or 17 or 3) ● n and e form the public key for encryption – calculate d so that ed == 1 mod(p-1)*(q-1) ● n and d form the secret decryption key awu030828 27
  • 28. abcdefg RSA implementation ● Security is based on factorization being a hard problem ● RSA is fully implemented in VW7.* – we have ported it to VW3.0 ● was very easy awu030828 28
  • 29. abcdefg Blowfish ● Block cipher defined by Bruce Schneier, 1994 – encrypts 64-bit-Blocks ● uses keylength between 128 and 448 bit – we use 256 bit keys ● we use CBC-Mode – each block is XORed with the preceeding encryptedBlock, first block with an InitialVector awu030828 29
  • 30. abcdefg Sizes ● RSA-keys on SC and signing key of LS: 1024bit ● Diffie-Hellman parameters – p: currently 256 bit – base = 65537 ● EPW – 20-byte random ByteArray converted to LargePositiveInteger ● giving a passwordstring of 48 to 49 digit characters awu030828 30
  • 31. abcdefg XML for all requests/responses ● XML as exchange format between Client and LS – To avoid escape sequences like &#x0027; etc., we are using integer formats throughout all exchanges which use encryption – The ByteArrays are converted using „asLargePositiveInteger“ ● this is compatible with PKCS#1-specification of conversion between bytes and integers awu030828 31
  • 32. abcdefg LS Answer on Socket accept: – <XmlResponse> <Validation>true</Validation> <DhCode>1588342583341664246536080884883637711967782785292526 5980146286745390962263576</DhCode> <ServerDHSignatur>1837090060268423857924167053495562451884751 288762027596014818947508697902699959279787764051953251210518 835088865241327868618698753687189866681129504242203066018314 921615856755804950286871069415444994298422094470968257289272 110594464664365849721683826653601332531687887166125489512675 5085488495158339417264534</ServerDHSignatur> </XmlResponse> ● User can verify the Signature of the LS awu030828 32
  • 33. abcdefg SC-RSA basic format ● SC-RSA-request from client to LS is unencrypted: – <RSAEPWRequest> <Server>lightning</Server><User>rog</User> </RSAEPWRequest> ● SC-RSA-response from LS to client: – <EinmalPasswort>254036481566762758850660080224084753875223586 838390721369209245892308754789435119113869732769585450706139 953046640274448442599416470993396942547126224650088959281761 150591890399102073665906605091766315849615345087595361055920 327412405609537797569746156102333670979136662194517047330045 30461339320939262107515</EinmalPasswort> awu030828 33
  • 34. abcdefg SC-RSA improved ● we could improve the protocol by requesting, that the client has to sign the LS halfkey – so, we avoid setting EPW for a user, who has no corresponding X.509-certificate on GS for the SC ● has more computing overhead – could avoid denial-of-service-attacks ● disable user, if repeatedly illegally requesting an EPW ● this is implemented for ticket requests (see later) awu030828 34
  • 35. abcdefg PW-DH request ● Internal PW-DH-Request: – <XmlEPWRequest> <Server>lightning</Server> <User>awu</User><Password>xxxxxx</Password></XmlEPWRequest> ● encrypted PW-DH-Request: – <XmlEPWRequest> <DhCode>2815747482711583432974205332271263279346890877810142 0710560243267932546510264</DhCode> <EinmalPasswortRequest>421701460956386515843309546275011481111 952142904853134983891656694841409986396784019003171859680754 920531201111390893851148664959465630186555935507756945874285 836772314488857119582594456372386721952350160342234743728624 71711709551746300760031120608509510132548629714428</EinmalPass wortRequest> </XmlEPWRequest> awu030828 35
  • 36. abcdefg PW-DH response ● Encrypted Response from LS: – <EinmalPasswort>391016871021610782724341211645684570668712594 970979368692619795917841928462118545730795848292112003218739 3806816930803570651576119091883739061802251407795 </EinmalPasswort> awu030828 36
  • 37. abcdefg Other Functions of LS Tickets awu030828 37
  • 38. abcdefg XML-Bulkserver ● OASE data can be requested from the so called XML-Bulkserver which is fully XML-based – Like LS a headless VW3.0-application ● The user must login into GS to access the data ● How can this be achieved when the user must supply an EPW? – by an XML-Ticket which allows access to GS awu030828 38
  • 39. abcdefg Server machine Logonserver Gemstone-DB XML-BulkServer ticket request XML-requests critical connection XML-Clientapplication awu030828 39
  • 40. abcdefg XML-Ticket Overview for PW-DH LogonServer GemstoneServer Client BulkServer Blowfish Encrypted XMLRequest PW-DH( username, servername, password)calculate DH session key Request DH User Credentials get DH-UC as for EPW Supply User Credentials decrypt DH-UC by Blowfish using SHA-1 hashed password verify username in result generate Ticket(timestamp, username, servername) with signature encrypt Ticket with Blowfish with session key send encrypted Ticket decrypt Ticket using Blowfish with session key send decrypted Ticket Ticket accepted awu030828 40
  • 41. abcdefg XML-Ticket Overview for SC-RSA LogonServer GemstoneServer Client BulkServer Blowfish Encr. XMLRequest ( username, servername, signed LS-DH-halfkey) calculate DH session key Request RSA User Credentials Encryption not necessary, get X.509 cert. Supply User Credentials but simplifies code verify LS-DH-halfkey signature with X.509-user public key generate Ticket(timestamp, username, servername) with LS signature encrypt Ticket with Blowfish with session key send encrypted Ticket decrypt Ticket using Blowfish with session key send decrypted Ticket Ticket accepted awu030828 41
  • 42. abcdefg XML-Ticket basics ● The user requests an XML-Ticket from the LS ● When the user is allowed to access the database, LS creates a ticket – contains servername, username and a timestamp for validity checking. – the ticket is signed by LS ● The ticket must be presented to the Bulkserver within a short period (currently < 10 seconds). awu030828 42
  • 43. abcdefg XML-Ticket checking ● The Bulkserver checks the ticket: – verifies the signature of LS – checks the timestamp ● also verifies, that this ticket has not already been used – uses the servername to access GS ● today, we do not restrict access for read for legal users, because of that there is no check necessary for the username awu030828 43
  • 44. abcdefg XML-Ticket modes ● PW-DH and SC-RSA use the same technique for sending the ticket to the client: – the ticket format has no difference for both modes – the ticket is encrypted using blowfish with the DH- sessionkey awu030828 44
  • 45. abcdefg XML-Ticket formats ● The TicketRequest differs for both modes – parameters: servername and username ● in SC-RSA the user signs the DH-halfkey from the LS with his signing key ● in PW-DH the credentials for servername, username are checked as for EPW using password ● these requests are both sent encrypted by blowfish awu030828 45
  • 46. abcdefg TicketResponse – <XMLTicket> <Server>dpssM700</Server><User>awu</User> <XMLTicketTime>3233767397000</XMLTicketTime> <XMLTicketSignature>15022795967277155422365835660918884813150 493043388515335841562848404653388507428348520470812988743204 684100581555360979769072404615410077936309726151332490571843 592914711119422903713287110926779070634207761829979664926899 476112082718024066167433468885019163386939230270203100939218 773849125730756896177136037</XMLTicketSignature> </XMLTicket> ● identical for both modes awu030828 46
  • 47. abcdefg Encrypted TicketRequest Format ● both modes send encrypted with Blowfish: – <XMLLogonRequest> <DhCode>4021923930769221418014505334054508087735352248076679 0930681240902947674828299</DhCode> <EncryptedXMLLogonRequest>1013770570829590745205458228324819 952813554860299057479356650031543473116011689133005574889073 439715230885236966998448272871724104085738820437166598534732 977536812429181457436359960820992836673414486482059363023010 62332051528870082493408610500435018279009052905430115234</Enc ryptedXMLLogonRequest> </XMLLogonRequest> awu030828 47
  • 48. abcdefg Internal SC-RSA TicketRequest – <XMLRSARequest> <Server>dpssM700</Server><User>awu</User> <Password>106942665803893961652237782571282335715752848048653 488271645277633172859414869405045021075475426683763871005096 512550742078122566663290545340367303214617163684950078288221 884273972865236822265399295831080513274720629788515005292693 213055680355212564287254503022928044905763429004378965569364 748530842326832384</Password> </XMLRSARequest> ● <Password> contains the signature of the DH halfkey of the LS awu030828 48
  • 49. abcdefg Internal PW-DH TicketRequest – <XmlEPWRequest> <Server>dpssM700</Server><User>awu</User> <Password>xxxxxxx</Password> </XmlEPWRequest> ● Same format as for EPW awu030828 49
  • 50. abcdefg Batch-Tickets ● We plan, to introduce also Tickets for Batch- Processing – the user requests a ticket for a batch job at some time at some date – the LS delivers the ticket ● the batch job is responsible for the secure deposit of the ticket until used – the batch job presents the decrypted ticket at the correct time/date and can be processed awu030828 50