630 likes | 653 Views
8.5 AUTHENTICATION AND KEY DISTRIBUTION. Bassam Tork Dr. Yanqing Zha n g. Outline. Concepts Authentication Protocols Design of Authentication Protocols Needham-Schroeder Protocol Kerberos Protocol Version V Research
E N D
8.5AUTHENTICATION AND KEY DISTRIBUTION Bassam Tork Dr.Yanqing Zhang
Outline • Concepts • Authentication Protocols • Design of Authentication Protocols • Needham-Schroeder Protocol • Kerberos Protocol Version V • Research • Case Study: Key Distribution Framework for a Mobile Agent Platform • References
Overview [Randy Chow & et al,1997] • Authentication is the process of verifying the identity of an object entity. • one-way verification:Password verification. • Two way authentication: both communicating entities verify each other’s identity. This type of mutual authenticationis important for communication between autonomous principals in a client/server or peer-to-peer distributed environment.
Orvveiew [George Coulouris & et al,2001] • Cryptography is used for authenticating communication between pairs of principals. • If keys are held in private, a successful decryption authenticates the decrypted message as coming from a particular sender.
Authentication Protocols [Randy Chow & et al,1997] • Authentication protocols are all about distribution and management of secret keys. • Key distribution in a distributed environment is an implementation of distributed authentication protocols.
Design of Authentication Protocols [Randy Chow & et al,1997] Many authentication protocols have been proposed: • All protocols assume that some secret information is held initially by each principal. • Authentication is achieved by one principal demonstrating the other that it holds that secret information. • All protocols assume that system environment is very insecure and is open for attack. So any message received by a principal must have its origin authenticity, integrity and freshness verified.
Design of Authentication Protocols [Randy Chow & et al,1997 ] • To achieve these goals, most protocols need to rely on an authentication server. • Capable: Authentication server delivers good-quality session keys and distribute them to the requesting principals securely. • Trustworthy: Authentication server maintains a table containing a name and a secret key for each principal. The secret key is used only to authenticate client processes to the authentication server and to transmit messages securely between client processes and the authentication server.
Design of Authentication Protocols [Randy Chow & et al,1997] • Protocols are divided into two categories to verify the freshness of a message. • First category uses nonce and challenge/ response handshake to verify freshness. • Second category uses timestamps and assumes that all machines in distributed system are clock-synchronized.
The Evolution of Authentication Protocols[Randy Chow & et al,1997] • Needham-Schroeder Protocol. • Kerberos protocol.
Needham-Schroeder Protocol[George Coulouris & et al,2001] • This original work includes secret-key protocol and public key protocol • Public-key protocol does not depend on the existence of authentication server and is hence more suitable for use in networks with many independent management domains. • Secret-key protocol provides a solution to authentication and key distribution based on an authentication server.
Needham-Schroeder Secret-key Protocol [http://en.wikipedia.org/wiki/Needham-Schroeder_protocol, May 2008] • The protocol is based on the generation and transmission of ticket by the authentication server. • A ticket is an encrypted message containing a secret key for use in communication between A and B. • The protocol consists of 5 steps.
Needham-Schroeder Secret-key Protocol • A->S : A, B, NA A requests S to supply a key for communication with B • S->A: {NA, B, KAB, {A, KAB} KB } KA S returns a message encrypted in A’s secret key, containing a newly generated key KAB, and a ticket encrypted in B’s secret key • A->B: {A, KAB} KB A sends the ticket to B • B->A: {NB} KAB B decrypts the ticket and uses the new key KAB to encrypt another nonce NB • A->B: {NB - 1} KAB A demonstrates to B that it was the sender of the previous message by returning an agreed transformation of NB
Weakness • If session key between A and B is compromised, and the ticket to B is recorded, an intruder can impersonate A by carrying out last 3 steps. • The weakness can be remedied by adding a timestamp to message3, so that it becomes. A->B: {A, t, KAB} KB B decrypts this message and checks that t is recent. This is the solution adopted in Kerberos
Kerberos Protocol V [George Coulouris & et al,2001] • Based on Needham-Schroeder but uses timestamps • It is included in the Distributed Computing Environment (DCE) and in the windows 2000 as the default authentication service. • A Kerberos server is known as a Key Distribution Centre (KDC). • Each KDC has an authentication service (AS) and a Ticket Granting service (TGS).
Kerberos Protocol V[George Coulouris & et al,2001] • Kerberos deals with three kinds of security object: • Ticket: a token issued to a client by the Ticket-Granting Service for presentation to a particular server, verifying that the sender has recently been authenticated by Kerberos. Tickets include an expiry time and a newly generated session key for the use by the client and the server • Authenticator: a token constructed by a client and sent to a server to prove the identity of the user. It contains client’s name and a timestamp and is encrypted in the appropriate session key • Session key: a secret key generated by Kerberos and issued to a client for use when communicating with a particular server.
Kerberos Protocol V • A Kerberos ticket has a fixed period of validity starting at time t1 and ending at time t2. A ticket for a client C to access a serve S takes the form: {C,S, t1, t2, Kcs} Ks, which we denote as {ticket(C,S)} Ks The client’s name is included in the ticket to avoid possible use by impostors. • The protocol consists of 4 steps.
Kerberos Protocol V Step A: obtain Kerberos session key and TGS ticket, once per login session • C->A: C,T, n Client C requests the Kerberos authentication server A to supply a ticket for communication with the TGS T • A->C: {KcT, n, {ticket(C, T)} KT} Kc A returns a message containing a ticket encrypted in its secret key and a session key for C to use with T.
Kerberos Protocol V To obtain a ticket for any server S, C constructs an authenticator encrypted in KcT of the form: {C, t} KcT, which we denote as {auth(C)} KcT Step B: obtain ticket for a server S, once per client-server session • C->T: {auth(C)}KcT, {ticket(C, T)} KT, S, n C requests the ticket-granting server T to supply a ticket for communication with another server S • T->C: {Kcs, n, {ticket(C,S)} Ks} KcT T checks the ticket. If it is valid T generates a new session key Kcs and returns it with a ticket for S (encrypted in the server’s secret key Ks).
Kerberos Protocol V Step C: issue a server request with a ticket • C->S: {auth(C)} Kcs, {ticket(C, S)} Ks, request, n C sends the ticket to S with a generated authenticator for C and a request. Step D: Authenticate server (optional) • S->C: {n} Kcs
Drawbacks [http://en.wikipedia.org/wiki/Kerberos_(protocol), October 2009] • Single point of failure: It requires continuous availability of a central server. When the Kerberos server is down, no one can log in. • This can be mitigated by using multiple Kerberos servers and fallback authentication mechanisms. • Kerberos requires the clocks of the involved hosts to be synchronized. • The tickets have a time availability period and if the host clock is not synchronized with the Kerberos server clock, the authentication will fail. • The default configuration requires that clock times are no more than 10 minutes apart.
Case Study: Key Distribution Framework for a Mobile Agent Platform[Leila Ismail & et al, 2008]
Outline[Leila Ismail & et al, 2008] 1-Definition 2-Security threats in a mobile agent system. 3-The rationale beyond authentication for mobile agents. 4-Present the requirements for key distribution in a mobile agent system. 5- Describe key distribution mechanisms. 6-Describe the key distribution protocol for a mobile agent platform and for the mobile agents. 7- comparison with related works, conclusion. 8-Future Work
Definition • A Mobile Agent is a process with its own code and data that can migrate in the network from one host (called agent server) to another to perform a specific task on behalf of their users. • Mainly intended to address efficiency problems of Distributed applications. • They reduce communication costs by moving computation to or close • to the host on which the target data reside. • Can move closer to potential resources for access. • In addition agents communicate with each others either locally or remotely. • In these scenarios, protection becomes an urgent need.
Example The agent moves from one travel agency to another. At each travel agency, the agent compares the prices of the flights got from the current agency with those got from the previous agencies, selects the flight with the best price and moves to the next agency
Security Threats • Spying and intercepting the agent (Man in the Middle Attacks). • A competitor travel agency can modify to its interest the intermediate results of the cheapest price obtained by the mobile agent (agent’s integrity). • An attacker can also modify the agent’s data causing an error leading to a Denial of Service attack (DOS). This type of attack can be mounted through vulnerable communication channels of the system. An attack of this nature can happen during an agent’s migration.
Security Threats-cont. • Spying and intercepting the agent’s itinerary. • The itinerary of an agent is the list of agents servers to visit. Knowing the agent’s itinerary, a DOS attack can be mounted against the agent itself. • A competitor travel agency for instance can modify an agent’s itinerary so that the agent would not visit other competitors. • The agent’s itinerary can be also be maliciously modified so that to deviate the agent from its destination. Thus forcing the agent to move to an unknown agent server or to skip certain agents server.
Security Threats-cont. • Masquerading. This type of attack consists of bypassing the authentication mechanisms. • An agent pretends to be some other uthenticated agent to obtain access rights. Gaining access, the agent would then compromise the confidentiality and the integrity of accessed resources. • For example, an agent can pretend to be an administrative agent so that to gain access to flights prices and modify the prices to its interest.
Security Threats-cont. • DOS attack against an agent server by the mobile agent. • An agent executing on an agents server can clone itself to an unlimited number of agents. It can consume a huge number of CPU cycles, create a huge number of processors, etc.
Security Threats-cont. • Repudiation: The repudiation is the refusal to admit responsibility of an action. • For instance, an agent (representing a user) can refuse to admit a banking transaction which involves fund transfer. • In case of collaboration between 2 agents, the sender of the message can refuse to admit sending the message and the receiver of the message can refuse to admit of receiving a message.
Security Threats-cont. Based on the above threats, we need to achieve theses security issues : • Protecting an agent server from a mobile agent. This consists of protecting the receiving hosts resources, such as file system, memory, CPU cycles, and I/O channels. • In particular an agent must not be able to access files ,memory for which it does not have access rights. Also, an agent must not be able to run forever on a receiving host.
Security Threats-cont. • Protecting cooperating agents. Agents can communicate locally within an agents server or remotely. Agents must authenticate each others before communication takes place. • Protecting an agent from an agent server. This problem consists of protecting an agent from an malicious agents server that is executing it.
Mobile Agents Authentication • Authentication is the process of verifying the identity of a principal for an eventual access control. • In a mobile agent system, authentication is used for 2 main reasons: • Authenticating agent servers. This consists of authenticating both the sender and the receiver, so that to establish a mutual trust at the platform level.
Mobile Agents Authentication-cont. • Authenticating mobile agents. It is necessary to authenticate mobile agents so that to establish a trust at the application level.
Key Distribution Requirements. • In designing the key distribution protocol, the authors took into consideration the following requirements: • Security domain change: The Certifiction Authority (CA) of the receiving security domain must be able to authenticate the agent which comes from another security domain.
Key Distribution Requirements-cont. • Trust establishment: The key distribution process should start with a very high trust relationship with the Certifiction Authority (CA) . • Secure key distribution: The key distribution process should be conducted in a secure manner (e.g., trusted path). • Efficiency: The key distribution process should not consume a lot of resources, such as machines CPUs and network bandwidth.
Key Distribution Requirements-cont. • Scalability: The key distribution process must be scalable enough, so that the mobile agent can have the ability to roam widely. • Transparency: The mobile agents should not include a code which is proper to key distribution. • This will ease programming as agents programmers will concentrate on the programming logic rather than the key obtaining issues.
Key Distribution Requirements-cont. • Portability: The protocol should not be platform specific and should be ported to any mobile agent platform. • Ease of administration: The key distribution protocol should not be a burden on the administrator. The protocol is an automated infrastructure that should require minimum administrator’s intervention.
Key Distribution Mechanisms. • System Components: A key distribution system for mobile agents includes the following components: • Agent: An agent is a software component which executes on behalf of a particular user who is the user of the agent. An agent can be mobile and move from one host server to another under its own control to achieve tasks on these hosts servers.
Key Distribution Mechanisms. Architecture of Key Distribution System in a Mobile Agent Transform
Key Distribution Mechanisms - cont. -System Components- • Agent Server: Each host, as part of the mobile agent platform, runs an execution environment, the agent server. • Messaging System. A messaging system is part of an agent execution environment. It provides facilities for agents to communicate both locally and remotely
Key Distribution Mechanisms - cont. -System Components- • The CA. It is a trusted third party which provides digital certificates for mobile agents, users and agent servers. All digital certificates are signed by the CA for further verification of their authenticity and validity.
Key Distribution Mechanisms - cont. -System Components- • Keystore: Each agent server has a local database which is used to store and retrieve its own private/public key pair and the digital certificate. • It also stores the digital certificate of the trusted CA and other agent severs, mobile agents, and CAs with which the agent server has prior communication. • Similarly, each CA has a local keystore .
Key Distribution Mechanisms - cont. -System Components- • Security Domain: A security domain consists of a group of agent servers which are under one common CA. In the security domain, the agent servers have the digital certificate of their local CA stored in their local keystores. • When a mobile agent moves, it can move within the same security domain or changes a security domain.
Key Distribution Mechanisms - cont. - Key Authentication- • Examples of entity impersonation threat: • Ex1: when a user agent assumes the identity of another ”already authenticated” user agent to gain benefit from the communication. • Ex2: when an agent server assumes the identity of another ”very credible” agent server in order to gain advantage over it.
Key Distribution Mechanisms - cont. - Key Authentication- To protect against such threat, public keys of both user agents and agent servers must be authenticated. The most widely approaches, for solving the key authentication problem : 1-ones based on the certifying authority model (e.g. Secure Socket Layer/Transport layer Security(SSL/TLS)) . 2-The web-of-trust (e.g. pretty Good Privacy(PGP). • The researchers adopted the certifying authority model as a key authentication method for trust establishment. • They believe that this approach has an advantage over the web of trust because the web of trust relies on one to one trust establishment between entities, which cannot be achieved in a mobile agent environment where prior knowledge between communicating entities may not exist.
Key Distribution Mechanisms - cont. - Key Authentication- For key authentication, the authers made the following assumptions: • Trust must be established between different CAs. • Every mobile agent server must be pre-configured with the digital certificate of the local CA within the same security domain.
Key Distribution protocol Key Distribution Protocol for a Mobile Agent Platform
Key Distribution protocol The proposed key distribution protocol is composed of the following phases: • Pre-configuration Phase: A domain administrator reconfigures the local keystore of the agent server with the digital certificate of the local CA. • Initialization Phase: An administrator starts a mobile agent server which leads to the following actions: 1) An agent server generates a private/public key pair locally. 2) An agent server sends a request which include the public key to the local CA for certification. 3) The local CA sends a response to the agent server including the agent server digital certificate, signed by the local CA.
Key Distribution protocol – cont. • User Registration Phase: An agent user can register to an agent platform to be able to configure and use its agents. The following actions occur: 1) A private/public key pair is generated locally for the user. 2) The agent server on which the user is registered sends a request which includes the user public key to the local CA for certification. 3) The local CA sends a response to the agent server including the agent user digital certificate, signed by the local CA.