Electronic Identity Flashcards
(41 cards)
Delegated authentication generalities
Good solution in a closed environment in which there is a single trusted Authentication Server (AS). It is the entity performing authN pn behalf of the RP and it is trusted by one or more Relying Parties (RPs). It is the only one interacting with the authN client with one among a set of authN protocols. The authN result is provided in the form of a ticket.
In general, when a client that wants to access a service provided by a Service Provider (RP) has to be authenticated, the RP redirects it to the trusted AS which will then provide the result about the performed authentication process in the form of a ticket.
Delegated authentication result transmission options, their issues and the needed security
The result, called ticket, can be given to the RP in three different ways:
* push ticket: the ticket is sent to the RP from the AS. This means that the RP has to offer a public andpoint and has to configure its inncoming traffic firewall policies such that the traffic coming from the AS will be accepted. The ticket can be sent through a secure channel and has to be signed by the AS and possibly encrypted for the RP.
- indirect push ticket: the ticket is sent to the client which will forward it to the RP. This way the RP won’t have to offer a public endpoint for the AS cause the ticket will be part of the connection client-RP. The problem here is the possible modification of the ticket due to client actions (modifications and copies), so it has to be encrypted.
- ticket reference with pull ticket: it is the slowest solution cause the client just receives the ticket reference and forward it to the RP; the RP will have to start a connection with the AS (that has to provide a public endpoint) requesting the ticket. If the client modifies the reference then the ticket won’t be retrieved and the client won’t be authenticated.
They differ in term of speed, security and trust and implications on the system, but there is no correct o best solution. It has to be chosen based on the scenario.
Problem with tickets in delegated authentication
- the client or a MITM could modify the ticket if not properly protected
- tickets in traffic could be sniffed
- the ticket must be related to just one client without the possibility of being reused (if reusage not taken into account) or being used by some other clients -> ticket replay or ticket reuse
- the ticket has to be authenticated in order to know if it is coming from a trusted AS
- listening service and incoming firewall at RP
Federated authentication generalities
It is a good authentication system solution in a context where different AS belong to different security domains and where a RP belonging to a security domain will accept the authN performed by an AS of a different domain. A trust relationship is needed.
The main actors in such a system, apart from the client, are the Identity Provider (Authentication System) and the Service Provider (Relying Party).
What is XCAML and why is it used
The Extensible Control Access Markup Language is a markup language which defines a data format to express authorization policies, authZ requests and authZ responses to perform policy-based access control.
Entities in a policy based access control (definition and general schema)
- PEP - Policy Enforcement Point: it is the entity that takes care of permitting or denying requests of access to a resource is protected by some access policies. To make such decision it uses the PDP.
- PDP - Policy Decision Point: it is the entity that, based on the informations received by the PEP (request details, subject who made the request, target that it wants to access) and the informations gained through the PIP and the PAP, gives a result about the possibility of access. The PDP uses XCAML: that’s why there is also a context handler to manage requests and responses to and form the PDP, cause the other entities do not use XCAML
- PAP - Policy Access Point: it has access to the policy repository and it is used by the PDP to retrieve the policy needed to evaluate the request
- PIP - Policy Information Point: it is the entity used by the PDP to gain additional informations such as the time and location of the request
- policy repository: it contains the policies related to the system
- subject: entity that wants to access a resource
- resource: target protected by some access policies
Where is XCAML used?
policy based access control -> context handler
XCAML policy format
-
PolicySet
: contains one or more Policies -
Policy
: made of one or more Rule fields and of one Target field -
Rule
: made ofCondition
(conditions to be applied, for example if a rule has to be applied only the first day of the year) andEffect
(permit/deny) -
Target
: made ofResource
(one or more references to the resources to be protected, URI),Subject
(list of the attributes of the subject to which this policy applies; it can also be a list of users),Action
(action allowed by the policy)
XCAML request format
A <Request> is made of:
* Resource
* Subject
* Action</Request>
Each one of these fields can have one or more <Attribute> made of AttributeID and AttributeValue</Attribute>
XCAML response format
A Response has a Result which is made of:
* Decision: Permit/DEny/Indeterminate/NotApplicable
* Status: of the result
Generics about SAML, its goals
The Security Access Markup Language is a data format that wants to standardize the way of defining assertions, of requesting an assertition and of responding with an essertion in order to simplify and standardize the interactions in a multidomain distributed system about permissions.
SAML use cases
- web browser SSO: the user wnats to access the service of a SP but the authentication is performed by an IdP and the result is passed along using SAML -> good for delegated authentication
- authorization service: good to implement policy-base access control -> PEP and PDP use SAML to exchange infos
- back office transaction: a user has to perform a transaction of behalf of someone else -> authN to IdP + authZ with PEP and PDP
What is a SAML assertion and which types do exist; info common to all assertions
An assertion is a declaration of a fact about a subject and made by an issuer.
There are three types of assertion and custom ones can be defined (with the risk of being understandable only in the definition domain). The standard ones are authentication assertion, attribute assertion and authorization assertion.
An assertion can be digitally signed.
All types of assertions have some informations in common:
* assertion ID
* Issuer
* IssuanceTimestamp
* subject: name + security domain in which the name is meaningful
* conditions for which the assertion is valid. SAML client MUST reject assertions of which they do not understand the conditions
SAML authentication assertion
An authentication assertion declares that a Subject was authenticated at the time T using the authentication method M.
SAML DOES NOT PERFORM THE AUTHN, IT JUST STATES THE RESULT.
An assertion of this type contains the AuthenticationStatement which is made of
* authenticationTimestamp
* authenticationMethod
* Subject: made of a Name that is meaningful in the SecurityDomain declared
SAML attribute assertion
This type of assertion declares that some attributes having some values are related to an authenticated subject.
They are typically obtained from an LDAP query.
The AttributeStatement contains:
* Subject: made of a Name that is meaningful in the SecurityDomain delcared
* List of Attributes in which each Attribute has AttributeName, Attribute namespace and AttributeValue
SAML authorization decision assertion
This assertions states that a subject S is authorized to perform the action A on a target T and that the decision was taken based on the evidence E.
The AuthorizationStatement contains:
* Decision (permit/deny)
* Resource (URI)
* Subject
SAML producer-consumer model
In a system that uses SAML there are entities that produce assertions and entities that consume them.
Let’s present a generic consumer-producer model:
1. a client wants to access a service but it is stopped by the PEP and redirect to the Authentication Authority which makes the Authentication Assertion
2. This is consumed by the Attribute Authority which, based on the authentication informations produces an Attribute Assertion stating some facts about the authenticated client
3. The Authentication Assertion and the Attribute Assertion can be also consumed by the PDP which, based on the gained infos, produces an Authorization Assertion
4. The PEP actions will depend on it
There could be multiple authorities with the same role, more clients and more consumers of the assertions, assertions can be pulled or pushed.
SAML authentication assertion request
The tag that defines a SAML request is samlp
with value Request
and also a RequestID
.
The Request contains an AuthenticationQuery
with the Subject
tag.
What is a SAML binding
SAML Binding refers to the methods used to transfer SAML messages between entities.
Possible SAML binding
In the early versions of SAML, SOAP (Simple Object Access Protocol) was used as the transport protocol over HTTP by having a SOAP messages containing (in the SOAP message body) the SAML request or response.
Today the main used methods are:
- HTTP redirect (GET) binding: This method uses HTTP GET requests to pass SAML messages as URL parameters
- HTTP POST binding: This binding sends SAML messages through HTTP POST requests. The SAML message is typically wrapped inside a hidden form field in an HTML form
- HTTP artifact binding: Instead of directly sending a full SAML message, a small artifact (a reference or token) is sent in a redirect. This artifact can then be used to fetch the full SAML message from a back-channel request.
What is a SAML profile + examples
A SAML profile is a concrete use case or implementation pattern of SAML. It defines how to combine various SAML assertions, protocols, and bindings to fulfill a specific purpose or use case. A profile is a way of saying “this is how we’ll use SAML to achieve this particular goal.”
For example:
* Web Browser Profile: This profile is specifically designed for Single Sign-On (SSO) in web applications. In this case, the user authenticates with an Identity Provider (IdP) and is then granted access to the Service Provider (SP) without having to re-authenticate, using SAML assertions.
* SOAP Profile: This profile would be used in situations where SAML assertions need to be transmitted within SOAP messages. While it isn’t widely used today, it could be relevant in scenarios that use web services for authentication.
SAML: SOAP-over-HTTP binding
The basic idea of this binding is that:
SOAP is used to encapsulate SAML messages and it is a protocol used for sending messages in a structured way.
- HTTP is used as the transport protocol to carry the SOAP messages over the network.
- SAML messages are encapsulated within the SOAP message body.
SAML: SOAP profile
simple object access protocol
This profile would be used in situations where SAML assertions need to be transmitted within SOAP messages. While it isn’t widely used today, it could be relevant in scenarios that use web services for authentication.
SAML: web browser profiles characteristics
This profile is specifically designed for Single Sign-On (SSO) in web applications. In this case, the user authenticates with an Identity Provider (IdP) and is then granted access to the Service Provider (SP) without having to re-authenticate, using SAML assertions.