5 Introduction 1 Introduction This Technial Guideline specifies the eid-client software for Online-Authentication based on Extended Access Control Version 2 (EAC2) between an eservice and an eid-card, e.g. the German eid-card or the German electronic Residence Permit. The eid-client implements the client side of this authentication. The server side is implemented by the eid-server, see [TR-03130], part 1. The same software can also support other functionalities and interfaces, like signature creation or support of other smart cards. This is out of scope of this document, as is the use of an eid-card for offline authentication. The eid-client is based on the ecard-api-framework ([TR-03112]) and implements at least the functions of this API necessary to support Online-Authentication, listed in section 3.3. Both the eid-client and the eid- Server contain at least a Service Access Layer (SAL) according to part 4 of [TR-03112], called Client-SAL and Server-SAL, respectively, in the following. The eid-client contains also the necessary functions to access a card reader according to section 3.5/[TR-03119]. 1.1 Modules The eid-client can be implemented as a single product, or split up into different modules. This Guideline uses the following conventions: The term eid-client denotes the complete client-software necessary to perform Online-Authentication, either implemented as a single product or as separate modules. The term Client-Application denotes the part/module(s) of the eid-client which implements the communication with the web-browser and the eservice according to section 2. The term Client-SAL denotes the part/module(s) of the eid-client which implements the necessary functions of the ecard-api-framework [TR-03112] according to section 3.3. The functions necessary to access a card reader can be implemented as a separate module IFD-Interface according to part 6 of [TR-03112] or as part of the Client-SAL. For the purpose of this Guideline, the IFD-Interface (if present) is treated as part of the Client-SAL. The eid-kernel comprises the Client-Application and the Client-SAL. The User Interface (UI) contains all elements necessary for user interaction, see section 3.6. Federal Office for Information Security 5

6 Introduction 1.2 Key Words The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL in this document are to be interpreted as described in [RFC2119]. The key word "CONDITIONAL" is to be interpreted as follows: CONDITIONAL: The usage of an item is dependent on the usage of other items. It is therefore further qualified under which conditions the item is REQUIRED or RECOMMENDED. 1.3 Robustness Principle Implementations according to this Technical Guideline SHALL follow the robustness principle, also known as Postel's Law: Implementations should follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others. 6 Bundesamt für Sicherheit in der Informationstechnik

7 Online-Authentication based on EAC2 2 Online-Authentication based on EAC2 This section specifies the establishment of a connection between eid-client and eid-server, including binding to a preexisting connection between browser and eservice, for performing Online-Authentication based on Extended Access Control Version 2. Note: This specification uses the word browser for the local application of the user. This can be any local application utilizing the Online-Authentication by calling an eid-client and is not restricted to web-browsers. 2.1 Communication Model The Online-Authentication starts from an existing TLS channel named TLS-1 between the browser of the user and the website of the eservice. The Online-Authentication is performed between the eid-client and the eid-server of the eservice using a second TLS channel TLS-2. Note: In the following channel is used to generically describe a communication relationship, while session is used to denote a TLS session in the meaning of [RFC5246]. Figure 1: Generic Communication Model In general, TLS-1 and TLS-2 terminate at different domains. An intermediary TLS channel TLS-1-2 between eid-client and eservice is necessary to allow the binding of TLS-1 and TLS-2. The eservice and the eid-server MUST communicate using an encrypted and integrity-protected mutually authenticated connection, see [TR-03130], part 1. In the special case of both channels TLS-1 and TLS-2 terminating at the same domain ( Attached eid- Server ), the intermediary channel TLS-1-2 is not necessary. Usage of the attached model is indicated by the eservice via the absence of a pre-shared key in the TC Token (see sections 2.4 and 2.5.2). Figure 2: Attached eid-server Federal Office for Information Security 7

8 Online-Authentication based on EAC2 The eservice MUST use the same TLS certificate for TLS-1 and TLS-1-2. If TLS-1-2 is not used, the same TLS certificate MUST be used by the eservice/eid-server for both channels TLS-1 and TLS-2. Note: If browser and eid-client are integrated into one single component, TLS-2 and TLS-1 MAY be the same channel, i.e. no separate channel TLS-2 is necessary. 2.2 Client-Interface The eid-client offers its services at the ClientURL defined as Client. This interface MUST NOT be available to external callers, i.e. must only be open locally. Note: In principle, could also be used as ClientURL. Currently, browser support seems to be better for the variant with explicit IP address, but this might change in the future. Therefore eid-clients SHOULD support both variants. eservices MAY use the User Agent of the browser to send different ClientURLs to enhance interoperability Actions The following actions are defined for the Client-Interface Connect to eid-server The following action SHALL be implemented by the eid-client to start an authentication procedure: [ClientURL]?tcTokenURL=URL This action instructs the eid-client to retrieve a TC Token, open the connection described by the retrieved TC Token and establish PAOS communication, thereby handing over control to the eid-server (see section 2.5). Here URL is a (properly encoded) https-url where the TC Token (see section 2.4) for this process can be retrieved Query Status Information For a web server based Client-Interface, the eid-client SHOULD implement the following action to return status information to the caller: [ClientURL]?Status Implementation for intent based Client-Interfaces is not necessary, since the corresponding information are available via the operating system Open User Interface The following action SHOULD be implemented by the eid-client to open the User Interface (see section 3.6): [ClientURL]?ShowUI=Module If Module is set, this value defines the module of the UI to be displayed. Currently, the following values are defined: PINManagement: the eid-client SHALL open the UI for PIN-Management. Settings: the eid-client SHALL open the settings dialogue, if present. If Module is not set or set to an unknown value, the eid-client SHALL open the default view of the UI. 8 Bundesamt für Sicherheit in der Informationstechnik

9 Online-Authentication based on EAC Invocation and Response The exact method implemented by the eid-client to offer the Client-Interface can be operating system specific. Depending on the available mechanisms the Client-Interface can encompass e.g. a (reduced) web server or registering an intent with the browser/operating system. On Unix-like systems using a daemon like inetd or similar methods to handle the call is also possible Web Server The eid-client offers its services by implementing a local web server and is invoked by the browser by sending a HTTP GET (see [RFC2616]) to the ClientURL. The response of the eid-client is transmitted as a HTTP Response according to [RFC2616]. The responses used in sections and are mapped to HTTP return codes as follows: If the response is a URL, the URL SHALL be transmitted as destination of a redirect 303 See Other. If the response is an error, it SHALL be returned as the corresponding HTTP Error Code (i.e. 400 Bad Request / 404 Not Found ). The eid-client SHOULD include a meaningful human-readable error message/description into the body of the response. If present, the Server response-header field SHALL include the name of the eid-client and its version (see [RFC2616]). The comment field SHALL indicate the version(s) of this Technical Guideline the eid-client is compliant to by including TR /TR-version for each version 1. Compliance with this version of the Technical Guideline is indicated by TR /1.2. The comment field MAY include further indications for compliance to other specifications; this is out of scope of this Technical Guideline. The Server response-header SHALL be present for the Status action (see section ), and SHOULD be present for all other actions. The response to the Status action (see section ) MAY contain a Access-Control-Allow-Origin response-header (see [CORS]). All other actions defined here MUST NOT return CORS-headers. Note: In general, URLs (including parameters) used in or intended for use in HTTP commands processed by the browser SHOULD NOT exceed a size of 2kB, since some browsers reject longer URLs Intent The eid-client registers the ClientURL as an intent with the operating system and is invoked by the browser/operating system by calling the intent. The response of the eid-client is transmitted in case of a URL as an intent to the calling application; in case of an error as a suitable error in the response to the intent invocation. The exact mechanism is operating system dependent. 2.3 Website Integration To embed a call to the eid-client into the website of an eservice, two mechanisms are available: Embedded Link 1 Example: Server: eidapp/2.0 (TR /1.1 TR /1.2) Federal Office for Information Security 9

10 Online-Authentication based on EAC2 MIME-Type The mechanisms only differ in the integration of the call to the eid-client into the website, the interface of the eid-client is the same for both. The mechanisms are described in the following Embedded Link The website contains an embedded link (or a FORM submit-button) pointing to the ClientURL as defined above. This method has the advantage that no components installed in the browser (e.g. plugins, extensions) are necessary. All platforms which allow to install software and to open or register port locally can be supported independently of the browser. Disadvantages are: Some browsers might warn the user if he activates the link that he is connecting to an insecure site (http instead of https used for TLS-1). If no eid-client is available, the error message to the user is website not found, which does not convey the actual problem MIME-Type Alternatively, the website can embed an <object> (see [HTML]) of MIME type application/vnd.eidclient. In this case, a handler for this MIME type must be available in the browser. The data-attribute of this object MUST contain the URL of the TC Token. The text in the body of the object (which is displayed in case no handler for this MIME type is available) SHOULD contain a meaningful text and an embedded link as described above, so that the MIME typemethod falls back gracefully to the embedded link-method in this case. The handler for this MIME type MUST perform the following: Call [ClientURL]?tcTokenURL=URL, where URL is the (properly encoded) content of the data attribute of the <object>. Unknown attributes MUST be ignored. If no eid-client is available, a meaningful error message SHOULD be displayed to the user. The HTTP Response to the above call is a redirect. The handler directs the browser to load this page. The main advantage of this method is the possibility of the handler to display a meaningful message to the user in case no eid-client is available. The main disadvantage is the dependency on a (browser specific) handler for this MIME type available in the browser. An example of an embedded object is given below: <object type="application/vnd.eid-client" data="https://service.example.de/tctoken?a CD"> <a href = "http:// :24727/eid-client?tctokenurl= https%3a%2f%2fservice.example.de%2ftctoken%3fa CD"> Start eid </a> </object> 10 Bundesamt für Sicherheit in der Informationstechnik

11 Online-Authentication based on EAC2 2.4 TC Token The TC Token is used to convey the necessary information for setting up a Trusted Channel (see [TR-03112], Part 7) between eid-client and eid-server from the eservice to the eid-client. Furthermore, the retrieval of the TC Token and the setting up of the Trusted Channel is part of the session binding mechanism to bind TLS-1 and TLS-2 (see section 2.7). The TC Token MUST be provided by the eservice at the Token URL given in the embedded link or the data attribute of the <object>. The Token is an XML Fragment (without prolog, e.g. document type or namespace declarations) of TCTokenType: <complextype name="tctokentype"> <sequence> <element name="serveraddress" type="anyuri" /> <element name="sessionidentifier" type="string" /> <element name="refreshaddress" type="anyuri" /> <element name="communicationerroraddress" type="anyuri" minoccurs="0" /> <element name="binding" type="anyuri" /> <element name="pathsecurity-protocol" type="anyuri" minoccurs="0" /> <element name="pathsecurity-parameters" minoccurs="0"> <complextype> <choice> <element name="psk" type="hexbinary" /> </choice> </complextype> </element> </sequence> </complextype> Note: The definition as <sequence> requires the eservice to include the elements in the given order. Nevertheless, for interoperability reasons, the eid-client SHOULD accept the elements in any order. The contents of the elements are defined as follows: ServerAddress [anyuri] (REQUIRED) MUST contain a https-url which will be used by the eid-client to connect to the eid-server (see section 2.5.2). SessionIdentifier [string] (REQUIRED) MUST contain a unique identifier of the current authentication session. Note that the Session- Identifier is used as psk_identity in the generic communication model and therefore transmitted in clear between Client SAL and Server SAL. RefreshAddress [anyuri] (REQUIRED) MUST be a https-url. The eid-client redirects the browser to this URL (or the URL retrieved by following redirects starting from this URL, see section 2.5.4) after conclusion of the Online-Authentication. The RefreshAddress (and, if applicable, all URLs encountered as redirect URLs in the procedure described in section 2.5.4) SHOULD be unpredictable, i.e. contain a randomly generated sessionid or similar, which SHOULD NOT be derivable from any information transmitted in TLS-1, including session cookies or similar. CommunicationErrorAddress [anyuri, 0..1] (OPTIONAL) If present, this URL SHOULD be a http- or https-url. The eid-client redirects the browser to this URL if a communication error occurred and no valid refreshurl could be determined, see section ). The URL MAY contain a session ID. Binding [anyuri] (REQUIRED) MUST be set to urn:liberty:paos: to indicate PAOS v2.0 binding. Federal Office for Information Security 11

12 Online-Authentication based on EAC2 PathSecurity-Protocol [anyuri, 0..1] (CONDITIONAL) This element MUST be present if two channels TLS-1-2 and TLS-2 are used (see section 2.1). If present, the content of this element MUST be set to urn:ietf:rfc:4279 to indicate TLS with cipher suite using a pre-shared key. Note that also PSK cipher suites from subsequent RFCs to RFC 4279 MAY be negotiated during the TLS handshake. PathSecurity-Parameters [0..1] (CONDITIONAL) MUST be present if PathSecurity-Protocol is present. In this case, SHALL contain additional parameters for PathSecurity, depending on the protocol indicated in PathSecurity-Protocol. Since only TLS with pre-shared key is allowed currently, only one choice is available: PSK [hexbinary] (REQUIRED) MUST contain a pre-shared key which will be used for connection establishment between client SAL and server SAL. The PSK SHALL be unpredictable and cryptographically strong. The PSK MUST NOT be derivable from any information transmitted in TLS-1, including session cookies or similar. An example of a TC Token is given below: <TCTokenType> <ServerAddress> https://eid-server.example.de/entrypoint </ServerAddress> <SessionIdentifier> 1A2B... B129 </SessionIdentifier> <RefreshAddress> https://service.example.de/loggedin?7eb3...9f62 </RefreshAddress> <CommunicationErrorAddress> https://service.example.de/comerror?7eb3...9f62 </CommunicationErrorAddress> <Binding> urn:liberty:paos: </Binding> <PathSecurity-Protocol> urn:ietf:rfc:4279 </PathSecurity-Protocol> <PathSecurity-Parameters> <PSK> 4BC1 A0B5 </PSK> </PathSecurity-Parameters> </TCTokenType> Note: The retrieval of the TC Token via the channel TLS-1-2 ensures that the relevant data are retrieved from a source whose authenticity can be checked by the eid-client by comparing the server certificate of TLS-1-2 against the eservice CV certificate checked by the Terminal Authentication. 12 Bundesamt für Sicherheit in der Informationstechnik

13 Online-Authentication based on EAC2 2.5 Online-Authentication After invocation via the Client-Interface, Online-Authentication is performed by the following steps (see also Figure 3): Retrieval of TC Token Starting with the TC Token-URL submitted to the eid-client via the Client-Interface as described in section 2.2, the following SHALL be performed: 1. The eid-client connects to the URL and submits a HTTP GET. The server certificate retrieved during the TLS handshake SHALL be stored by the eid-client to be used for the certificate check as described in section An additional chain verification of the certificate SHOULD NOT be performed, the authenticity of the certificate is checked via the mechanism described in section If a redirect ( 302 Found, 303 See Other or 307 Temporary Redirect ) is returned, the procedure is repeated from step 1 with the URL given in the Location of the redirect. The HTTP response containing the TC Token SHALL have Content-Type: text/xml and charset=utf-8. The response SHALL NOT contain any further content besides the TC Token. Online Authentication Connection Establishment for PAOS-Binding Perform EAC2 + Read Data Figure 3: Online-Authentication (Simplified) Federal Office for Information Security 13

14 Online-Authentication based on EAC2 Note: To enhance interoperability, it is advisable that the eid-client does not check the correct format of the HTTP response and the received TC Token but accept malformed responses from the eservice as far as possible. If any of the URLs encountered during this procedure, including the RefreshAddress contained in the TC Token, is not a https-url, the eid-client MUST NOT connect to this URL, SHALL abort the procedure, and SHALL report a communication error as described in section If the TC Token cannot be retrieved by this procedure, the eid-client SHALL return an error Not Found to the caller (see section 2.2.2). If the eservice encounters an error during generation of the TC Token (e.g. the eid-server could not be reached), the eservice MAY return a TC Token with empty elements except the CommunicationErrorAddress. In this case, the eid-client SHALL return a communication error as described in section The eservice MAY use the request for a TC Token by the eid-client as a signal to activate the eid-server as specified in [TR-03130], part 1. Note: The redirect mechanism described above is used to facilitate indirect communication between eservice and eid-server, e.g. using SAML with redirect binding as described in section 2.6. Other communication protocols which can be mapped to redirect binding are also possible Connection Establishment The eid-server and the eid-client send a TC_API_Open to the Server-SAL and the Client-SAL, respectively, as specified in [TR-03112], part 7. The eid-client SHALL use ServerAddress, SessionIdentifier, Binding, PathSecurity-Protocol and PSK as extracted from the retrieved TC Token as parameters for connection establishment. Note: If eid-client and Client-SAL (or eid-server and Server-SAL) are an integrated component, no explicit call to TC_API_Open in the client (or in the server) is necessary. A TLS session between Client-SAL and Server-SAL is negotiated and a PAOS connection using StartPAOS established. If a PSK is given in the TC Token, a PSK Cipher Suite MUST be used. If no PSK is given in the TC Token, the same TLS session as established to retrieve the TC Token MUST be used for the PAOS connection, i.e. a new session MUST NOT be established. If the TCToken contains an empty ServerAddress or any error occurs during connection establishment, the eid-client SHALL return to the web session (see section 2.5.4) indicating the error Online-Authentication Online-Authentication is performed using the Extended Access Control protocol as specified [TR-03112], part 7, section 3.6. As part of the Online-Authentication the eid-client MUST perform the following checks to ensure the authenticity of the TLS certificates immediately after the eservice certificate is sent to the eid-client: The eid-client MUST check that the hash of the CertificateDescription matches the hash stored in the received eservice certificate. The eid-client MUST check that the hashes of all server certificates stored according to section and the hash of the server certificate of the eid-server are contained in the Certificate- Description extension of the eservice certificate. The eid-client MUST check that the TC Token-URL submitted to the eid-client and the subject- URL contained in the CertificateDescription extension of the eservice certificate conform to the Same-origin policy according to [RFC6454]. 14 Bundesamt für Sicherheit in der Informationstechnik

15 Online-Authentication based on EAC2 If any of these checks fails, the eid-client SHALL abort the Online-Authentication and return to the web session (see 2.5.4) indicating the error. Note: Depending on the operating system and the browser, it can be advisable that the eid-client employs suitable mechanisms to avoid the browser to time out during Online-Authentication. Examples of possible mechanisms if using the web server based invocation method are Sending a HTTP Response Header after invocation Sending a HTTP 303 See Other pointing back to the eid-client in regular intervals Sending a HTTP 102 Processing after invocation Return to the web-session Returning to the web-session comprises the following steps: If a TC Token including a non-empty RefreshAddress was successfully retrieved, the eid-client SHALL determine the refreshurl as specified in section ; If a valid refreshurl was determined, the eid-client SHALL direct the browser to the eservice (section ); If no valid refreshurl could be determined, the eid-client SHALL report a communication error (section ). Note: The mechanism described in this section ensures that the user/browser is redirected to a website which is confirmed to belong to the holder of the eservice certificate, i.e. the channel TLS-1 is bound to the (successful) Online-Authentication. The channel TLS-1 before and after the Online-Authentication might not be the same session if the TLS-1 session is dropped by either the browser or the web server during Online-Authentication. The session binding mechanism connects the Online-Authentication only to TLS-1 after the authentication. The eservice is responsible to provide continuity (if necessary) of the channel TLS-1 before and after the authentication and therefore SHOULD employ suitable mechanisms, e.g. cryptographically strong session cookies Determination of the refreshurl The following procedure SHALL be performed to determine the refresh URL (see section ): If the RefreshAddress given in the TC Token and the subjecturl contained in the CertificateDescription extension of the eservice certificate conform to the Same-origin policy according to [RFC6454], the RefreshAddress is used as refresh URL. Otherwise, the eid-client SHALL use the following algorithm to determine the refresh URL: 2 Example: The eid-client sends the following as response after GET: HTTP/ Content-Length: 0 Connection: close Server: eid-client After finishing the Online-Authentication the client sends the following as Content of the first answer: HTTP/ See Other Content-Length: 0 Connection: close Location: https://service.example.de/loggedin?7eb3...9f62 Federal Office for Information Security 15

16 Online-Authentication based on EAC2 1. Set the variable workingurl to the URL given as RefreshAddress in the TC Token. 2. Establish a connection to the workingurl and perform a HTTP GET to the workingurl. If the response is not a redirect ( 302 Found, 303 See Other or 307 Temporary Redirect ), the procedure is aborted and the eid-client SHALL report a communication error as described in section If the workingurl and the subjecturl contained in the CertificateDescription extension of the eservice certificate conform to the Same-origin policy according to [RFC6454], the procedure is finished with the URL given in the Location header of the redirect as refresh URL, otherwise repeat from step 2 with the URL given in the Location header of the redirect as new workingurl. The eid-client SHALL establish a TLS session (i.e. perform a TLS handshake without HTTP interaction) to the server of the refresh URL to retrieve the server certificate of this server. This step MAY be skipped if a session to the server of the refresh URL was already established as part of the procedure described above. If any of the URLs (including the refresh URL) encountered during this procedure is not a https-url, or the hash of the retrieved server certificate is not contained in the CertificateDescription extension of the eservice certificate, the eid-client SHALL abort the procedure, and SHALL report a communication error as described in section An additional chain verification of the certificates SHOULD NOT be performed (see also section 4.4). If the subjecturl is not known, e.g. because the Online-Authentication was aborted before the eservice certificate is known to the eid-client, the TCToken-URL as delivered to the eid-client by the calling application SHALL be used in the procedure above instead of the subjecturl for the checks according to the Same-origin policy, and the check against the CertificateDescription extension of the eservice certificate SHALL be skipped. Note: The redirect mechanism described above is used to facilitate indirect communication between eservice and eid-server, e.g. using SAML with redirect binding as described in section 2.6. Other communication protocols which can be mapped to a redirect binding are also possible Redirecting the Browser to the eservice If a refresh URL was successfully determined, the eid-client SHALL direct the caller (see section 2.2.2) to the URL composed of the refresh URL determined by the above procedure, with added URL-parameter ResultMajor=ok, if no error has occurred, or ResultMajor=error&ResultMinor=res_min, if an error occurred; the following error codes for res_min are defined: trustedchannelestablishmentfailed The eid-client failed to set up a trusted channel to the eid-server. cancellationbyuser The user aborted the authentication. This includes abortion due to entering a wrong PIN or no card present. servererror The eid-server encountered an error. The exact error is communicated to the eservice directly by the eid-server. 16 Bundesamt für Sicherheit in der Informationstechnik

17 Online-Authentication based on EAC2 clienterror Any error not covered by the other error codes occurred. It is RECOMMENDED to include an additional parameter ResultMessage=tls_alert_description parameter using a value defined in [TLS-Alerts], if the error is due to a TLS-related problem Communication error without refreshurl If no refresh URL could be determined, the eid-client SHALL report a communication error: if a CommunicationErrorAddress from the TC Token is available, the eid-client SHALL direct the browser to the CommunicationErrorAddress with added URL-Parameter ResultMajor=error&ResultMinor=communicationError; if no CommunicationErrorAddress is available, the eid-client SHALL return an error Bad Request to the caller (see section 2.2.2).. In both cases, the failure to determine a valid refreshurl MUST be signaled clearly and unambiguously to the user by the eid-client. 2.6 SAML This section describes the embedding of the Online-Authentication into a SAML (see [SAML-Core]) based authentication framework as an example of the redirect-mechanism described in sections and The process flow is as follows: Figure 4: Communication Model for SAML based Authentication The Online-Authentication is invoked as described in section 2.2. The eid-client tries to retrieve the TC Token from the eservice. The eservice responds with a redirect to the SAML-Processor containing a SAML Authentication Request in HTTP Redirect Binding (see [SAML-Binding]). The eid-client connects to the SAML-Processor with the URL provided by the eservice and retrieves the TC Token. See section Online-Authentication is performed as described in sections and Example: An unknown psk_identity will yield the following error: ResultMajor=error&ResultMinor=trustedChannelEstablishmentFailed&ResultMessage=unknown_psk_identity. Federal Office for Information Security 17

18 Online-Authentication based on EAC2 Online Authentication with SAML Connection Establishment for PAOS-Binding Perform EAC2 + Read Data Figure 5: Online-Authentication with SAML (Simplified) The RefreshAddress in the TCToken points to the SAML-Processor. Since this URL and the subjecturl from the eservice certificate do not share the same origin, the eid-client connects to the RefreshAddress. The SAML-Processor returns a redirect to the eservice, containing the SAML Authentication Response in HTTP Redirect Binding (see [SAML-Binding]). The eid-client connects to the eservice using this URL and thereby transmitting the result of the authentication to the eservice. The eservice returns a redirect, which is sent by the eid-client to the browser. See section The communication between eservice and SAML-Processor (i.e. the SAML-Request and the SAML-Response) MUST be end-to-end encrypted and authenticated. It is RECOMMENDED to carefully consider the well known security aspects of SAML-based systems (see [SAML-Sec]). The eservice is responsible to ensure that the SAML-Response is received through the same TLS channel (i.e. the same communication endpoint) as the SAML-Request was sent. Depending on the details of the eservice implementation, this can in particular involve appropriate configuration of the TLS session cache parameters. For further details on using SAML, including Request and Response format, see [TR-03130], part Session Binding This section discusses the security of the binding of TLS-1 to the EAC2-based Online-Authentication. 18 Bundesamt für Sicherheit in der Informationstechnik

19 Online-Authentication based on EAC2 In the generic communication model, a pre-shared key (PSK) is transmitted in TLS-1-2 which is used to establish the session TLS-2. Provided TLS-1-2 is not attacked by a man-in-the-middle (which would be detected later on by the check of the server-certificate of TLS-1-2 against the CV certificate of the eservice), the PSK is only known to the eid-client, the eservice and the eid-server (the latter two communicate trustworthy). Therefore TLS-1-2 and TLS-2 are strongly bound and it suffices to consider the Attached eid-server model, where TLS-1 and TLS-2 are terminating at the same domain. In the Attached eid-server model, the following ingredients bind TLS-1 and TLS-2: The eid-client checks the URL of TLS-2 and the refresh URL determined according to section against the subjecturl from the eservice CV certificate The eid-client checks the TLS certificate of TLS-2 against the eservice CV certificate The eid-client redirects the browser to the refresh URL after Online-Authentication. Since the refresh URL is specific for a single authentication session, this not only binds the endpoints of TLS-1 and TLS-2, but also the specific sessions. In principle, the following attack remains possible: An attacker could try to intercept the redirect to the refresh URL either locally (as a man-in-the-browser) or remotely (by DNS-Spoofing combined with a faked certificate for the refresh URL). The local attack can only be thwarted by using a non-compromised browser. The remote attack requires a very high attack potential and access to the DNS resolver of the user 4 as well as a rogue TLS-CA, which is accepted by the used browser. This potential attack is subverted if DNSSEC is used. 3 Functional Requirements for an eid-client An eid-client compliant to this Technical Guideline MUST support Online-Authentication using an eid-card based on EAC2 PIN-Management of eid-cards based on EAC2, i.e. setting a PIN using the transport PIN delivered to the citizen by letter, setting a new PIN using the current PIN (this includes setting an operational PIN using the transport PIN), resuming a suspended PIN using the CAN, and unblocking a blocked PIN using the PUK. In order to implement these functionalities, the requirements detailed in the following subsections MUST be fulfilled. 3.1 Supported eid-cards The eid-client MUST support all eid-cards containing an eid-application compliant to [TR-03127]. Cards compliant to that specification are identified by the presence of the Application Identifier 0xE F in the file EF.DIR (see [TR-03110]). 4 The attacker needs to answer the query of the eid-client for the IP address of the refresh URL with the correct answer, while providing the spoofed answer to the same query from the browser. Due to the caching of queries, e.g. in the network stack of the computer, access to a random DNS server is not sufficient. Federal Office for Information Security 19

20 Functional Requirements for an eid-client 3.2 Connection Establishment for Online-Authentication The eid-client SHALL support the method for Connection Establishment for Online-Authentication as specified in section ecard-api-profile The eid-client SHALL implement at least the following commands of the ecard-api [TR-03112] to support Online-Authentication: As caller: StartPAOS ([TR-03112], Part 7) (REQUIRED) As callee: InitializeFramework ([TR-03112], Part 3) 5 (REQUIRED) Since the ecard-api-framework is already initialized at the time a connection between the eid- Server and the eid-client is established, the eid-server SHOULD NOT send this command. DIDAuthenticate ([TR-03112], Part 4) with support for AuthenticationProtocolData of type EAC1InputType, EAC2InputType and EACAdditionalInputType ([TR-03112], Part 7) (REQUIRED) Transmit ([TR-03112], Part 6) (REQUIRED) If Client-Application and Client-SAL are implemented as separate modules, the following commands SHALL be implemented by the Client-Application as caller and the Client-SAL as callee: Initialize/Terminate ([TR-03112], Part 4) (CONDITIONAL) CardApplicationPath/CardApplicationConnect/CardApplicationDisconnect ([TR-03112], Part 4) (CONDITIONAL) TC_API_Open/TC_API_Close ([TR-03112], Part 7) (CONDITIONAL) DIDUpdate ([TR-03112], Part 4) with support for DIDMarker of type PACEMarkerType ([TR-03112], Part 7) (CONDITIONAL) 3.4 HTTP Communication All HTTP communication (interfaces to browser, eservice and eid-server) SHALL follow [RFC2616] and [RFC2818], where applicable. This includes the ability to communicate via a CONNECT-proxy to the eservice and the eid-server. Appropriate configuration options SHOULD be available to configure the proxy settings. 3.5 Card Reader Interface The eid-client SHALL support at least all card readers compliant to [TR-03119] intended for use with the host platforms the eid-client supports. The Technical Guideline [TR-03119] specifies communication with the card reader via PC/SC and via CCID for External and Integrated Smart Card Readers (see section A.1 of [TR-03119] for definitions). On platforms 5 The version information returned by InitializeFramework is also contained in StartPaos. The usage of the information from StartPaos is RECOMMENDED over the use of information from Initialize- Framework. Required support for this command will be removed in the next version of this specification. 20 Bundesamt für Sicherheit in der Informationstechnik

Chapter 17 Transport-Level Security Web Security Considerations The World Wide Web is fundamentally a client/server application running over the Internet and TCP/IP intranets The following characteristics

SSL/TLS 1 Transport Layer Security Protocols Secure Socket Layer (SSL) Originally designed to by Netscape to secure HTTP Version 2 is being replaced by version 3 Subsequently became Internet Standard known

Enabling SSL and Client Certificates on the SAP J2EE Engine Angel Dichev RIG, SAP Labs SAP AG 1 Learning Objectives As a result of this session, you will be able to: Understand the different SAP J2EE Engine

Lab Exercise SSL/TLS Objective To observe SSL/TLS (Secure Sockets Layer / Transport Layer Security) in action. SSL/TLS is used to secure TCP connections, and it is widely used as part of the secure web:

Security Guide BlackBerry Enterprise Service 12 for ios, Android, and Windows Phone Version 12.0 Published: 2015-02-06 SWD-20150206130210406 Contents About this guide... 6 What is BES12?... 7 Key features

Elements of Email Email Components There are a number of software components used to produce, send and transfer email. These components can be broken down as clients or servers, although some components

Lab Exercise SSL/TLS Objective To observe SSL/TLS (Secure Sockets Layer / Transport Layer Security) in action. SSL/TLS is used to secure TCP connections, and it is widely used as part of the secure web:

INTEGRATE SALESFORCE.COM SINGLE SIGN-ON WITH THIRD-PARTY SINGLE SIGN-ON USING SENTRY A GUIDE TO SUCCESSFUL USE CASE Legal Marks No portion of this document may be reproduced or copied in any form, or by

Due to the fact that nearly all businesses have websites (as well as government agencies and individuals) a large enthusiasm exists for setting up facilities on the Web for electronic commerce. Of course

Setup Guide Access Manager 3.2 SP3 August 2014 www.netiq.com/documentation Legal Notice THIS DOCUMENT AND THE SOFTWARE DESCRIBED IN THIS DOCUMENT ARE FURNISHED UNDER AND ARE SUBJECT TO THE TERMS OF A LICENSE

Message Containers and API Framework Notices Copyright 2009-2010 Motion Picture Laboratories, Inc. This work is licensed under the Creative Commons Attribution-No Derivative Works 3.0 United States License.

Network Working Group S. Farrell Request for Comments: 5697 Trinity College Dublin Category: Experimental November 2009 Abstract Other Certificates Extension Some applications that associate state information

Using SAML for Single Sign-On in the SOA Software Platform SOA Software Community Manager: Using SAML on the Platform 1 Policy Manager / Community Manager Using SAML for Single Sign-On in the SOA Software

CHAPTER 4 This chapter describes the steps required to configure a CSS as a virtual SSL server for SSL termination. It contains the following major sections: Overview of SSL Termination Creating an SSL

Differences Between SSLv2, SSLv3, and TLS Loren Weith: 0600978 July 3, 2006 SSLv2, SSLv3, and TLS (1.0) all provide for a secure channel between clients and servers: if looked at in terms of the OSI reference

OPENID AUTHENTICATION SECURITY Erik Lagercrantz and Patrik Sternudd Uppsala, May 17 2009 1 ABSTRACT This documents gives an introduction to OpenID, which is a system for centralised online authentication.

Configuring Security Features of Session Recording Summary This article provides information about the security features of Citrix Session Recording and outlines the process of configuring Session Recording

Encryption of E-Mail Traffic White Paper Version 1.1 Date: 2009-06-08 Foreword On the initiative of some German automotive manufacturers work has started on a series of white papers on the subject of e-mail

Security+ Guide to Network Security Fundamentals, Third Edition Chapter 12 Applying Cryptography Objectives Define digital certificates List the various types of digital certificates and how they are used