Security
Security
Security
Security model
– Types of threat
Basic techniques
– Cryptographic techniques
Secrecy
Authentication
Certificates and credentials
Access control
– Audit trails
Client
result Server
Principal
– User or process that has authority (rights) to perform actions
– Identity of principal is important
The enemy
Copy of m
The enemy
m’
Process p m Process q
Communication channel
Attacks
– On applications that handle financial transactions or other information
whose secrecy or integrity is crucial
Cryptography
PrincipalA The enemy Principal B
Properties
Ownership of secrets:
Cryptographic concealment is based on:
Each process is sure of the identity of the other
Conventional
Confusion andshared crypto keys
diffusion
Data is private and protected against tampering
Public/private keyrepetition
Protection against pair and reordering of data
Employs cryptography
Secrecy based on cryptographic concealment
Authentication based on proof of ownership of secrets
Threats and forms of attack
Eavesdropping
– obtaining private or secret information
Masquerading
– assuming the identity of another user/principal
Message tampering
– altering the content of messages in transit
man in the middle attack (tampers with the secure channel mechanism)
Replaying
– storing secure messages and sending them at a later date
Denial of service
– flooding a channel or other resource, denying access to others
Infiltration
Cryptography
– Process of encoding a message in such a way to hide contents
– Uses include:
Secrecy and Integrity – conceals private information
Authentication - uses the keys to proof the authenticity of sender/receiver
Digital signatures – to emulate conventional signatures
Digital Certificates
– A document containing a statement (usually short) signed by a principal.
Access Control
– Historically, the protection of resources in distributed system has been largely service-specific
– Request messages to the server <op, principal, resource> - server must authenticate the the request
message and principal’s credentials and the apply access control
Credentials
– Set of evidence provided by a principal when requesting to access to a resource
Firewalls
– Introduced to protect intranets, performing filtering actions on incoming and outgoing
communications
Authentication Mechanisms for Distributed Systems
Issues:
Key distribution: How can Alice send a shared key KAB to Bob securely?
Freshness of communication: How does Bob know that any {Mi} isn’t a copy of
an earlier encrypted message from Alice that was captured by Mallory and
replayed later?
*
Scenario 2:
Authenticated communication with a server
Bob is a file server; Sara is an authentication service. Sara shares secret key K A
with Alice and secret key KB with Bob.
1. Alice sends an (unencrypted) message to Sara stating her identity and
requesting a ticket for access to Bob.
A2.ticket
Sarais
sends a response toitem
an encrypted Alice. {{Ticket}KBthe
containing , KAB}KA. It isof
identity encrypted in KA to
the principal
and consists of a ticket (to be sent to Bob with each request for file access)
whom it is issued and a shared key for a communication session.
encrypted in KB and a new secret key KAB.
3. Alice uses KA to decrypt the response.
4. Alice sends Bob a request R to access a file: {Ticket}KB, Alice, R.
5. The ticket is actually {KAB, Alice}KB. Bob uses KB to decrypt it, checks
that Alice's name matches and then uses KAB to encrypt responses to Alice.
*
Scenario 3:
Authenticated communication with public keys
*
Scenario 4:
Digital signatures with a secure digest function
*
Certificates
Certificate: a statement
Figure 7.4 Alice’s signed
bank account by an appropriate authority.
certificate
Certificates require:
1. Certificate type: Account number
• An agreed standard format
2. Name: Alice
• Agreement
3. Account : on the construction
6262626 of chains of trust (see Section 7.4.4).
• Expiry authority
4. Certifying dates, so
: thatBob’s
certificates
Bank can be revoked.
5. Signature: {Digest(field 2 + field 3)} KBpriv
*
X509 Certificate format
Figure 7.13
Protection domain
– A set of <resource, rights> pairs
*
Cryptographic Algorithms
*
Symmetric encryption algorithms
These are all programs that perform confusion and diffusion operations on blocks of
binary data
TEA: a simple but effective algorithm developed at Cambridge U (1994) for teaching
and explanation. 128-bit key, 700 kbytes/sec
DES: The US Data Encryption Standard (1977). No longer strong in its original form.
56-bit key, 350 kbytes/sec.
Triple-DES: applies DES three times with two different keys. 112-bit key, 120
Kbytes/sec
IDEA: International Data Encryption Algorithm (1990). Resembles TEA. 128-bit key,
700 kbytes/sec
AES: A proposed US Advanced Encryption Standard (1997). 128/256-bit key.
There are many other effective algorithms. See Schneier [1996].
The above speeds are for a Pentium II processor at 330 MHZ. Today's PC's (January 2002)
should achieve a 5 x speedup.
*
TEA encryption function
Figure 7.8 key 4 x 32 bits
void encrypt(unsigned long k[], unsigned long text[]) { plaintext
unsigned long y = text[0], z = text[1]; and result 2 x 32
unsigned long delta = 0x9e3779b9, sum = 0; int n;
for (n= 0; n < 32; n++) {
sum += delta;
y += ((z << 4) + k[0]) ^ (z+sum) ^ ((z >> 5) + k[1]); 5
z += ((y << 4) + k[2]) ^ (y+sum) ^ ((y >> 5) + k[3]); 6
}
text[0] = y; text[1] = z;
}
Exclusive OR
logical shift
Lines 5 & 6 perform confusion (XOR of shifted text)
and diffusion (shifting and swapping)
*
TEA decryption function
Figure 7.9
void decrypt(unsigned long k[], unsigned long text[]) {
unsigned long y = text[0], z = text[1];
unsigned long delta = 0x9e3779b9, sum = delta << 5; int n;
for (n= 0; n < 32; n++) {
z -= ((y << 4) + k[2]) ^ (y + sum) ^ ((y >> 5) + k[3]);
y -= ((z << 4) + k[0]) ^ (z + sum) ^ ((z >> 5) + k[1]);
sum -= delta;
}
text[0] = y; text[1] = z;
}
TEA in use
Figure 7.10
void tea(char mode, FILE *infile, FILE *outfile, unsigned long k[]) {
/* mode is ’e’ for encrypt, ’d’ for decrypt, k[] is the key.*/
char ch, Text[8]; int i;
while(!feof(infile)) {
i = fread(Text, 1, 8, infile); /* read 8 bytes from infile into Text */
if (i <= 0) break;
while (i < 8) { Text[i++] = ' ';} /* pad last block with spaces */
switch (mode) {
case 'e':
encrypt(k, (unsigned long*) Text); break;
case 'd':
decrypt(k, (unsigned long*) Text); break;
}
fwrite(Text, 1, 8, outfile); /* write 8 bytes from Text to outfile */
}
}
*
Digital signatures
Requirement:
– To authenticate stored document files as well as messages
– To protect against forgery
– To prevent the signer from repudiating a signed document (denying their
responsibility)
*
Secure digest functions
*
Digital signatures with public keys
Figure 7.11
M signed doc
M
Verifying h = h'?authentic:forged
H(doc) h
MACs: Low-cost signatures with a shared secret key
Figure 7.12
M
MAC: Message Authentication Code
signed doc
H(M+K) h
Signing
M
K
M
h
H(M+K)
Verifying h = h'?authentic:forged
h'
K
*
Performance of encryption and secure digest algorithms
Figure 7.14 speeds are for a Pentium II processor at 330 MHZ
*
The Needham–Schroeder secret-key authentication protocol
Weakness:
Figure Message 3 might not be fresh - and KAB could have been
7.15
compromised in the store of A's computer. Kerberos (next case study)
addresses
Header this by adding a timestamp
Message Notes or a nonce to message 3.
1. A->S: A, B, NA A requests S to supply a key for communication
with B.
2. S->A: {NA , B, KAB, S returns a message encrypted in A’s secret key,
NA is a nonce. Nonces are containing
integersathatnewlyare addedkey
generated toKmessages
AB and a
to
{KAB, A}KB}KA ‘ticket’ encrypted in B’s secret key. The nonce N
demonstrate
Ticket the freshness of the transaction. They are generated A
demonstrates that the message was sent in response
by the sending process when to therequired, for Aexample
preceding one. byS sent the
believes that
incrementing a counter or message
by reading the
because only(microsecond resolution)
S knows A’s secret key.
system
3. A->B: clock.
{KAB, A}KB A sends the ‘ticket’ to B.
4. B->A: {NB}KAB B decrypts the ticket and uses the new key KAB to
encrypt another nonce NB.
5. 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.
Case study: Kerberos authentication and key distribution service
*
Case study: Kerberos authentication and key distribution service
*
Case study: Kerberos authentication and key distribution service
*
System architecture of Kerberos
Figure 7.16
Kerberos Key Distribution Centre
TGS: Ticket-
granting
service Authentication
database
Step A Authen- Ticket-
tication granting
1. Request for service A service T
TGS ticket
2. TGS
ticket
Step B
3. Request for
server ticket
Login Step C
session setup
4. Server ticket
5. Service
Server request
session setup Service
function
Request encrypted with session key
DoOperation
Reply encrypted with session key Step A once per login session
*
Case study: Obtaining a Ticket and a Session Key
Ticket format:
– {C,S,t1,t2,KCS}KS - with a fixed period from t1 to t2 for client C to access
server S: denoted by {ticket(C,S)}KS
Communication format:
1. C->A: C,T,n – Clients C requests the Kerberos authentication server A
to supply a ticket for communication with the ticket granting service
2. A->C: {KCT,n}KC {ticket(C,T)}KT A returns a message containing a ticket
encrypted in its secret Key and a session Key for C to use with T.
Kerberized NFS
*
Case study: The Secure Socket Layer (SSL)
Design requirements
– Secure communication without prior negotation or help from 3rd parties
– Free choice of crypto algorithms by client and server
– communication in each direction can be authenticated, encrypted or both
SSL protocol stack
Figure 7.17
changes the
secure channel
to a new spec
negotiates cipher
suite, exchanges SSL
Handshake SSL Change SSL Alert
certificates and key HTTP Telnet
masters Cipher Spec Protocol
protocol
implements the
secure channel SSL Record Protocol
*
SSL handshake protocol
Figure 7.18
Establish protocol version, session ID,
ClientHello
cipher suite, compression method,
ServerHello exchange random start values
Certificate
Cipher suite Optionally send server certificate and
Certificate Request
request client certificate
ServerHelloDone
Component Description Example
Key exchange
Client
the method to be usedServer
Certificate for RSA with public-key
Send client certificate response if
method A exchange ofVerify
Certificate a session key
B certificates
requested
Cipher for data the block or stream cipher to be IDEA
transfer used for Cipher
Change data Spec
Change cipher suite and finish
Finished
Message digest for creating message SHA
handshake
function authentication codes (MACs)Includes
Change Cipher Spec key master exchange.
Key master is used by both A and B
Finished to generate:
2 session keys 2 MAC keys
KAB MAB
KBA MBA
*
SSL handshake configuration options
Figure 7.19
*
SSL record protocol
Figure 7.20
abcdefghi
Application data
Fragment/combine
Compress
Compressed units
Hash
MAC
Encrypt
Encrypted
Transmit
TCP packet
*
Summary
*
Worst case assumptions and design guidelines
[p. 260]