Electronic Identity Flashcards
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