Security Services in Information Systems

Download Report

Transcript Security Services in Information Systems

Security Services in
Information Systems
Basic Concepts
Key exchange: Diffie-Hellman protocol
1. Picks a  GF(p) at random
2. Computes TA = ga mod p
3. Sends TA
4. Receives TB
5. Computes KA = TBa mod p
Machine A
1. Picks b  GF(p) at random
2. Computes TB = gb mod p
3. Receives TA
4. Sends TB
5. Computes KB = TAb mod p
Machine B
Where K = KA = KB, Because:
TBa = (gb)a = gba = gab = (ga)b = TAb mod p
Man-in-the-Middle Attack
• Consider the following scenario:
Anita
Middleperson
Betito
ga = 8389
gx = 5876
gb = 9267
8389
5876
5876
9267
Shared key KAX:
Shared key KBX
5876a = 8389x
9267x = 5876b
• After this exchange, the middle-person attacker simply decrypts any
messages sent out by A or B, and then reads any possibly modifies
them before re-encrypting with the appropriate key and transmitting
them to the correct party.
• Middle-person attack is possible due to the fact that DHC does not
authenticate the participants. Possible solutions are digital signatures
and other protocol variants.
Cifrado con clave pública de destino
[SItema16]
Mensaje en
El documento se comprime
claro
antes con el algoritmo ZIP
Necesitamos una
clave de sesión...
Se busca en el anillo de
claves públicas del emisor
Clave pública
del destinatario
Clave
de
sesión
Mensaje
cifrado
Clave de
sesión
cifrada
Descifrado con la clave privada de
destino [SItema16]
Mensaje
cifrado
Mensaje en
claro
Clave de
sesión
cifrada
Clave privada
destino cifrada
Clave
de
sesión
Clave privada
descifrada
Se busca en el anillo de
claves privadas del receptor
CONTRASEÑA
Key Distribution Problem
[proposed solutions]
Key Distribution/Management
and Authentication
• two closely related subjects
• why?
Key Distribution
• symmetric schemes require both parties to
share a common secret key
– issue is how to securely distribute this key without
revealing that key to an adversary
• many attacks are based on poor key
management and distribution
– rather than breaking the codes
• This is, actually, the most difficult problem in
developing secure systems
Key Distribution
various key distribution alternatives for parties A
and B :
1. A can select key and physically deliver to B
–
–
does not scale for a large and distributed group
how many keys do we need for N users?
2. third party can select & deliver key to A & B
–
–
similar comment as 1
sometimes finding a “trusted” third party is another
problem
3. if A & B have communicated previously can use
previous key to encrypt a new key
–
good option but initially several keys to be distributed
4. if A & B have secure communications with a third
party C, C can relay key between A & B
–
only N master keys are enough
Session Key / Master Key
• The idea is having a master encryption key
(master key) to generate random and
temporary session keys
• can be implemented in several ways
– Basic D-H is such an example
• public/private keys are master keys, exchanged key is a
session key
– Kerberos is another example
– SSL uses three layers
• D-H for master key, master key for the session key
Session Key / Master Key
• Session key lifetime is a trade-off
– if small,
• more secure since attacker can obtain less
ciphertext to analyze
• But this creates more delay
– If large
• less secure, but less delay
Key Distribution Facts
• Conservation of trust principle
– a secure communication cannot be based on
nothing; either there should be an initial direct
contact or an indirect one
• Either physical delivery or a trusted third party
– physical delivery is the only option to avoid a third
party
• most basic system is PIN entry
• the case in Bluetooth
– otherwise regardless of symmetric or asymmetric
encryption, you need a trusted third party
• even D-H does not work without a third party, why?
A Key Distribution Example
• Symmetric crypto based
• Each user shares a symmetric master key
with the KDC (Key Distribution Center)
– e.g. Ka, Kb, Kc, …
– possibly physically distributed
• Basic idea:
– whenever a user A wants to communicate with B,
it requests a session key (Ks) from KDC
• Protocol is in the next slide
Nonce Definition
• Nonce: The present or particular
occasion.
• Nonce word: A word occurring,
invented, or used just for a particular
occasion.
A Key Distribution Example
An Alternative
• In the previous figure, can KDC send
message 3 directly to B?
– If not, why?
– If so, what are pros and cons?
Hierarchies of KDCs
• we may have several KDCs connected to
each other in a tree topology
– each leaf KDC serves to a local community
• intra-domain communication passes thru only
the local KDC, however inter-domain
communication requires several KDC-KDC
interaction
• master key delivery is only in local domains
Decentralized Key Control
• We may avoid using KDC in a small
group by having a master key for each
pair
Key Management in PKC
• In other words
– distribution of public keys
– use of PKC to distribute secret keys
• public/private key as a master key
Distribution of the Public Keys
• the most important barrier against the
deployment of PKC in applications
• Basic question?
– how can I make sure about the legitimacy of a
public key?
– how can I make sure that Bob’s public key really
belongs to Bob, not to Charlie?
• Why this is so important?
– Name spoofing attacks become possible
• remember the man-in-the-middle attacks in anonymous
Diffie-Hellman
Distribution of the Public Keys
• Some methods
– Public Announcement
– Publicly available databases/directories
– Centralized distribution
– Certificates
Public Announcement
• Broadcast your public key to the public
– via newsgroups, mailing lists, from
personal website, etc.
– major weakness is anyone can easily
pretend as yourself
• so attacks are possible
Publicly available
directories/databases
• There exists a directory/database for
{name, public key} pairs
• write controlled
– a trusted administrator
• if administered thoroughly, good
– but a proper administration is difficult
• need secure mechanisms for registration,
update, delete.
Centralized Distribution - PublicKey Authority
• Similar to directory/database approach, but
access to the directory is automated via a
secure protocol
– users interact with directory to obtain any desired
public key securely
– requires real-time access to directory when keys
are needed
– users should know public key for the directory
• the directory/database contains {name, public
key} pairs
– write permit is restricted
Centralized Distribution - PublicKey Authority PROTOCOL
Centralized Distribution - PublicKey Authority
• Disadvantages
– authority is an active entity and may create
a performance bottleneck
– database should be kept secure to prevent
unauthorized modification
Public-Key Certificates
• certificates allow key exchange without realtime access to public-key authority
• a certificate binds identity to public key
– usually with other info such as period of validity,
rights of use, issuer’s info, etc
• all contents signed by a trusted Certification
Authority (CA)
• can be verified by anyone who knows the CA
public-key
• CA must make sure about the identity of the
cert owner
Public-Key Certificates
Public-Key Certificates
• Certificates are widely used in practice
– previous slides only show the idea
• need lots of polishing for practical use
– is a single CA sufficient?
– what happens if the CA’s public key is not known?
• how to distribute CA public keys?
– what happens if a certificate is revoked?
• We will discuss the use of certificates later
What can you do with securely
distributed public keys?
• Digital signatures
– talked about them
• confidentiality
– theoretically possible but slow
– instead session keys can be distributed
• those session keys are used for symmetric
encryption
Distribution of Secret Keys using
PKC
• Several methods exist
• Diffie-Hellman is one way
• we will see some alternatives
Simple Secret Key Distribution
• proposed by Merkle in 1979
– A generates a new temporary public key pair
– A sends B its public key and identity
– B generates a session key and sends it to A
encrypted using the supplied public key
– A decrypts the session key and both use it
Simple Secret Key Distribution
• problem is that an opponent can intercept
and impersonate both halves of protocol
– man-in-the-middle attack
– result: A, B think that they exchanged Ks securely
but C also knows Ks and use it to eavesdrop the
communication passively
KUc
C
EKUa[Ks]
EKUc[Ks]
Public-Key Distribution of Secret
Keys
• assumption: public-keys are securely exchanged a
priori
• First three steps are for authentication purposes
• Last step provides both the secrecy and authenticity
of the session key
In practice
• Most systems offer a three-level
approach
– use of PKC to exchange master-key
– use of master-key to exchange session
keys
• most important advantage is at
performance
A closer look to authentication
• making sure of peer entity’s identity
– mutual or one-way
– non-repudiation is not an aim here
• generally implemented as a protocol
– basic idea: making sure that other party knows a
common secret
– also used for session key distribution
• two types
– message authentication
• mostly one-way
– peer entity authentication
• connection oriented approach
Two key issues
• Protection of any secret information
• Timeliness
– to prevent replay attacks
• a valid message is copied and later resent
– Why replays are bad?
• at minimum, disrupt proper operation by
presenting messages that appear genuine but
actually are not
• may also cause impersonation and key
compromise
Countermeasures - 1
• Sequence numbers
– not a practical method
– parties should keep track of the sequence
numbers
– and should take care of message losses,
duplications in a secure manner
• complicates stuff
Countermeasures - 2
• Timestamps
– message contains a timestamp
– accepts only fresh messages based on this
timestamp
– sometimes used but some practical
problems
• clocks must be synchronized in a secure
manner (some attacks are merely based on
failure on clock synchronization)
• tolerance to network delays
Countermeasures - 3
• Challenge/response
– Initiator sends a nonce (one-time challenge
phrase or number) and expects that nonce
in the response
– easier to implement
– but may require extra message transfer
Authentication using Symmetric
Encryption
• We start with well-known NeedhamSchroeder protocol
– actually have seen it as a key distribution protocol
• There exists a Key Distribution Center (KDC)
– each party shares own master key with KDC
– KDC generates session keys used for connections
between parties
– master keys used to distribute these keys to them
Needham-Schroeder Protocol
• original three-party key distribution protocol
– for session between A and B mediated by a trusted
KDC
– KDC should be trusted since it knows the session
key
• protocol overview
1. A→KDC: IDA || IDB || N1
2. KDC→A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]
3. A→B: EKb[Ks||IDA]
4. B→A: EKs[N2]
5. A→B: EKs[f(N2)]
• 4 and 5 are to prevent a kind of a replay attack
– against replay of message 3 by an attacker
•
Needham-Schroeder (NS)
Protocol
but still vulnerable to a replay attack
– if an old session key has been compromised, then
message 3 can be resent to B by an attacker X
impersonating A
– after that X intercepts message 4 and send a
message 5 to B as if it is A
– now X can impersonate A for the future
communications with the session key
– unlikely but a vulnerability
• modifications to address this problem
– timestamps (Denning 81), B contacted at the
beginning (Needham Schroeder 87)
• see http://www.lsv.ens-cachan.fr/spore/index.html for a repository
of security protocols
NS Protocol with timestamps
• proposed by Dorothy Denning
• A and B can understand replays by checking
the timestamp in the message
– even if attacker knows Ks, he cannot generate
message 3 with a fresh timestamp since he does
not know Kb
– open question: why do we need messages 4 and
5?
Needham – Schroeder Protocol
Revisited
• Amended by the creators themselves in 1987
by putting B in the loop early in the protocol
1.
2.
3.
4.
5.
6.
7.
A -> B
:
B -> A
:
A -> KDC :
KDC -> A :
A -> B :
B -> A :
A -> B :
A
EKb[A, Nb]
A, B, Na, EKb[A, Nb]
EKa [Na, B, Ks, EKb [Ks, Nb, A]]
EKb [Ks, Nb, A]
Ks[Nb]
Ks[f(Nb)]
Synchronization problem
• Proper use of timestamps requires synchronized
clocks
• e.g. when sender’s clock is ahead of recipients
clock
– attacker can intercept the message and replay later
• Neuman proposed use of nonces with timely
session keys to constitute tickets in 93
– nonces are used to avoid replays
– timestamps are expiration dates of the session key
established
– attacker only has a limited time to break the session
key
• in original NS, attacker has unlimited time to break the
session key
Neuman Protocol
• EKb[IDA || Ks || Tb] is a ticket that can be
used later within the limit of Tb
Authentication using Public-Key
Encryption
• We have given an example method that
assumes public keys are known
• There exists protocols that also
distributes public keys
– using a central Authentication Server (AS)
or KDC
– using timestamps or nonces
One-Way Authentication
• required when sender & receiver are not
online at same time
– e-mail is a typical application
– protocol should not rely on the processing of B
• A symmetric encryption approach
1. A→KDC: IDA || IDB || N1
2. KDC→A: EKa[Ks || IDB || N1 || EKb[Ks||IDA] ]
3. A→B: EKb[Ks||IDA] || EKs[M]
• Provides authentication that the sender is A
• does not protect against replays (of msg. 3)
– could rely on timestamp in message, but delays in
email make this problematic
Public-Key Approaches
• have seen some public-key approaches
• if confidentiality is major concern, can use:
A→B: EKUb[Ks] || EKs[M]
– digital envelopes
• if authentication needed use a digital
signature with a digital certificate:
A→B: M || EKRa[H(M)] || EKRas[T||IDA||KUa]
– message, signature, certificate
Overview on IP Security
Internetwork Protocol (IP)
• Aim
– provide interconnection across different
networks
• implemented in every network and in
routers
• IP is an unreliable protocol
– IP datagrams may be lost
– IP datagrams may arrive out of order
– TCP takes care of those problems
Internetwork Protocol (IP)
Where to provide security?
• Application-layer?
– S/MIME, PGP – email security
– Kerberos – client server
– SSH – secure telnet
• Transport level?
– SSL / TLS
– between TCP and Application
• IP level
– IPSec
IPv4
• The IP version that most LANs are
currently using
Data (Payload) follows the header
IPv6
• Next generation IP
– driving force was the inadequateness of IPv4
address space
• IPv6 header
– modular approach
– base header + extension headers
– base header is longer than v4, but number of
fields is smaller
IPv6 header
Is IP Secure?
• Content (Payload) is not encrypted
– confidentiality is not provided
– IP sniffers are available on the net
• IP addresses may be spoofed
– authentication based on IP addresses can be
broken
• So IP is not secure
IPSec
• general IP Security mechanisms
• provides authentication and confidentiality at
IP level
– also has key management features
• Applications
– VPNs (Virtual Private Networks)
• Interconnected LANs over the insecure common carrier
network (mostly the Internet)
• router-to-router
– Secure remote access, e.g. to ISPs
• individual-to-router
• IPSec is mandatory for IPv6, optional for v4
– many manufacturers support IPSec in their v4
products
IPSec Application Scenarios
AH – Anti-replay Service
• Detection of duplicate packets
• Sequence numbers
– associated with SAs
– 32-bit value
– when an SA is created, initialized to 0
• when it reaches 232-1, SA must be terminated
• not to allow overflows
– sender increments the replay counter and puts
into each AH (sequence number field)
• Problem: IP is unreliable, so the receiver may
receive IP packets out of order
– Solution is using windows
AH – Antireplay
Service
•Fixed window
size W (default is
64)
–employed by
the receiver
• If a received packet falls in the window
– if authenticated and unmarked, mark it
– if marked, then replay!
• If a received packet is > N
– if authenticated, advance the window so that this packet is at
the rightmost edge and mark it
• If a received packet is <= N-W
– packet is discarded; this is an auditable event
Key Management in IPSec
• Ultimate aim
– generate and manage SAs for AH and ESP
– asymmetric
• receiver and initiator have different SAs
• can be manual or automated
– manual key management
• sysadmin manually configures every system
– automated key management
• on demand creation of keys for SA’s in large systems
Key Management in IPSec
• Complex system
– not a single protocol (theoretically)
– different protocols with different roles
• intersection is IPSec
• but may be used for other purposes as well
• Several protocols are offered by IPSec WG of IETF
– Oakley, SKEME, SKIP, Photuris
– ISAKMP, IKE
• IKE seems to be the IPSec key management protocol but it
is actually a combination of Oakley, SKEME and uses
ISAKMP structure
• See IPSec WG effort at
http://www.ietf.org/html.charters/ipsec-charter.html
Internet Key Exchange.
X.509 Authentication
X.509 Authentication Protocols
• X.509 is a ITU-T standard part of the
“directory services”
– mostly for certificates, but also propose
three generic authentication protocols
– one-way authentication
– two-way authentication
– three-way authentication
– use both nonces and timestamps
• nonces are unique only within the lifetime of
timestamp
X.509 one-way authentication
• Proves that the message generated by A and
intended for B
– also proves that message is not a replay
– proves the identity of the sender, but not the
recipient
– optionally includes a session key
tA: timestamp
rA: nonce
sgnData: Data signed
X.509 two-way Authentication
• both parties verify identity of each other
• reply message
– generated by B
– not a replay (guaranteed by tB and rB)
•
X.509 three-way
Authentication
Nonces are signed and echoed back
– each side can check the replay
– timestamps are not needed
• synchronized clocks are not needed either
• what is a potential risk in such a case?
X.509 Certificate Format