CS计算机代考程序代写 algorithm chain scheme compiler Figure 19.01

Figure 19.01

Security

*

Objectives
To discuss security threats and attacks
To explain the fundamentals of encryption, authentication, and hashing
To examine the uses of cryptography in computing
To describe the various countermeasures to security attacks

*

The Security Problem
Security must consider external environment of the system, and protect the system resources
Intruders (crackers) attempt to breach security
Threat is potential security violation
Attack is attempt to breach security
Attack can be accidental or malicious
Easier to protect against accidental than malicious misuse

*

Security Violations
Categories
Breach of confidentiality
Breach of integrity
Breach of availability
Theft of service
Denial of service
Methods
Masquerading (breach authentication)
Replay attack
Message modification
Man-in-the-middle attack
Session hijacking

*

Standard Security Attacks

*

Security Measure Levels
Security must occur at four levels to be effective:
Physical
Human
Avoid social engineering, phishing, dumpster diving
Operating System
Network
Security is as week as the weakest chain

*

Program Threats
Trojan Horse
Code segment that misuses its environment
Exploits mechanisms for allowing programs written by users to be executed by other users
Spyware, pop-up browser windows, covert channels
Trap Door
Specific user identifier or password that circumvents normal security procedures
Could be included in a compiler
Logic Bomb
Program that initiates a security incident under certain circumstances
Stack and Buffer Overflow
Exploits a bug in a program (overflow either the stack or memory buffers)

*

C Program with Buffer-overflow Condition
#include
#define BUFFER SIZE 256
int main(int argc, char *argv[])
{
char buffer[BUFFER SIZE];
if (argc < 2) return -1; else { strcpy(buffer,argv[1]); return 0; } } * Layout of Typical Stack Frame * Modified Shell Code #include
int main(int argc, char *argv[])
{
execvp(‘‘\bin\sh’’,‘‘\bin \sh’’, NULL);
return 0;
}

*

Hypothetical Stack Frame
Before attack
After attack

*

Program Threats (Cont.)
Viruses
Code fragment embedded in legitimate program
Very specific to CPU architecture, operating system, applications
Usually borne via email or as a macro
Visual Basic Macro to reformat hard drive

Sub AutoOpen()
Dim oFS
Set oFS = CreateObject(’’Scripting.FileSystemObject’’)
vs = Shell(’’c:command.com /k format c:’’,vbHide)
End Sub

*

Program Threats (Cont.)
Virus dropper inserts virus onto the system
Many categories of viruses, literally many thousands of viruses
File
Boot
Macro
Source code
Polymorphic
Encrypted
Stealth
Tunneling
Multipartite
Armored

*

A Boot-sector Computer Virus

*

System and Network Threats
Worms – use spawn mechanism; standalone program
Internet worm
Exploited UNIX networking features (remote access) and bugs in finger and sendmail programs
Grappling hook program uploaded main worm program
Port scanning
Automated attempt to connect to a range of ports on one or a range of IP addresses
Denial of Service
Overload the targeted computer preventing it from doing any useful work
Distributed denial-of-service (DDOS) come from multiple sites at once

*

The Morris Internet Worm

*

Cryptography as a Security Tool
Broadest security tool available
Source and destination of messages cannot be trusted without cryptography
Means to constrain potential senders (sources) and / or receivers (destinations) of messages
Based on secrets (keys)

*

Secure Communication over Insecure Medium

*

Symmetric Encryption
Same key used to encrypt and decrypt
E(k) can be derived from D(k), and vice versa
DES is most commonly used symmetric block-encryption algorithm (created by US Govt)
Encrypts a block of data at a time
Triple-DES considered more secure
Advanced Encryption Standard (AES), twofish are popular.
RC4 is most common symmetric stream cipher, but known to have vulnerabilities
Encrypts/decrypts a stream of bytes (i.e., wireless transmission)
Key is a input to psuedo-random-bit generator
Generates an infinite keystream

*

Asymmetric Encryption
Public-key encryption based on each user having two keys:
public key – published key used to encrypt data
private key – key known only to individual user used to decrypt data
Must be an encryption scheme that can be made public without making it easy to figure out the decryption scheme
Most common is RSA block cipher
Efficient algorithm for testing whether or not a number is prime
No efficient algorithm is know for finding the prime factors of a number

*

Asymmetric Encryption (Cont.)
Formally, it is computationally infeasible to derive D(kd , N) from E(ke , N), and so E(ke , N) need not be kept secret and can be widely disseminated
E(ke , N) (or just ke) is the public key
D(kd , N) (or just kd) is the private key
N is the product of two large, randomly chosen prime numbers p and q (for example, p and q are 512 bits each)
Encryption algorithm is E(ke , N)(m) = mke mod N, where ke satisfies kekd mod (p−1)(q −1) = 1
The decryption algorithm is then D(kd , N)(c) = ckd mod N

*

Asymmetric Encryption Example
For example. make p = 7and q = 13
We then calculate N = 7∗13 = 91 and (p−1)(q−1) = 72
We next select ke relatively prime to 72 and< 72, yielding 5 Finally,we calculate kd such that kekd mod 72 = 1, yielding 29 We how have our keys Public key, ke, N = 5, 91 Private key, kd , N = 29, 91 Encrypting the message 69 with the public key results in the cyphertext 62 Cyphertext can be decoded with the private key Public key can be distributed in cleartext to anyone who wants to communicate with holder of public key * Why Public-Key Cryptography? public invention due to Whitfield Diffie & Martin Hellman at Stanford University in 1976 known earlier in classified community J. Tan Cryptography/Net Security CS491 * The idea of public key schemes, and the first practical scheme, which was for key distribution only, was published in 1977 by Diffie & Hellman. The concept had been previously described in a classified report in 1970 by James Ellis (UK CESG) - and subsequently declassified in 1987. See History of Non-secret Encryption (at CESG). Its interesting to note that they discovered RSA first, then Diffie-Hellman, opposite to the order of public discovery! Public-Key Encryption J. Tan Cryptography/Net Security CS491 * Stallings Fig 9-1. Authentication J. Tan Cryptography/Net Security CS491 * Stallings Fig 9-1. Conventional Encryption J. Tan Cryptography/Net Security CS491 * Stallings Fig 9-1. Public Key Encryption J. Tan Cryptography/Net Security CS491 * Stallings Fig 9-1. Public-Key Encryption Elements Source (A): Plaintext: x = [x1, x2, …. xm] xi Є [a-zA-Z0-9] Destination (B): Generates KUb (public), KRb (private) keys A: encrypts X with KUb producing y, s.t. y = EKUb(x) J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Public-Key Encryption Elements B: decrypts y  x = DKRb(y) Cryptanalyzer has access to: Ciphertext: y Kub Encryption/decryption algorithm But not X or KRb J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Public-Key Encryption Elements must have knowledge of X or KRb If interested in: Recovering X only  generate plaintext estimate X’ Reading future messages  recover KRb by generating estimate: KRb’ (Fig. 9.2) J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Encryption Scenarios Encrypt with KUb (Fig. 9.2) Encrypt with KRa (Fig. 9.3) Encrypt with both KRa & KUb (Fig. 9.4) J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Public Key Encryption J. Tan Cryptography/Net Security CS491 * Stallings Fig 9-1. Encrypting with KUb Earlier: message can be: encrypted/decrypted with either KUa or KRa e.g., y = E KUb (x) and x = D KRb (x) at sender A at receiver B What if: y = E KRa (x) and x = D KUa (x) ?  provides a digital signature (authentication). Only A must have sent it (with its unique KRa)  cannot alter contents w/o KRa (Data integrity) (Fig. 9.3) J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Encryption Scenarios Encrypt with KUb (Fig. 9.2) Encrypt with KRa (Fig. 9.3) Encrypt with both KRa & KUb (Fig. 9.4) J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Public Key Encryption Encrypting with Kb Encrypting with KRa J. Tan Cryptography/Net Security CS491 * Stallings Fig 9-1. Encryption Scenarios Encrypt with KUb (Fig. 9.2) Encrypt with KRa (Fig. 9.3) Encrypt with both KRa & KUb (Fig. 9.4) J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Encrypting with KRa Message can be decrypted with KUa  no confidentiality, .i.e., safe from alteration but not from eavesdropping. Solution for both confidentiality and data integrity? Make use of all keys: KRa ,KUa , KRb , & KUb ! J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Encrypting with KRa & KUb At sender A: z = E KUb [ E KRa (x)] At receiver B: x = D KUa [ D KRb (z)] authenticate secrecy (digital signature) J. Tan Cryptography/Net Security CS491 * Will now discuss the radically different public key systems, in which two keys are used. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Confidentiality & Authentication J. Tan Cryptography/Net Security CS491 * The idea of public key schemes, and the first practical scheme, which was for key distribution only, was published in 1977 by Diffie & Hellman. The concept had been previously described in a classified report in 1970 by James Ellis (UK CESG) - and subsequently declassified in 1987. See History of Non-secret Encryption (at CESG). Its interesting to note that they discovered RSA first, then Diffie-Hellman, opposite to the order of public discovery! Why Public-Key Cryptography? developed to address two key issues: key distribution – how to have secure communications in general without having to trust a KDC with your key digital signatures – how to verify a message comes intact from the claimed sender J. Tan Cryptography/Net Security CS491 * The idea of public key schemes, and the first practical scheme, which was for key distribution only, was published in 1977 by Diffie & Hellman. The concept had been previously described in a classified report in 1970 by James Ellis (UK CESG) - and subsequently declassified in 1987. See History of Non-secret Encryption (at CESG). Its interesting to note that they discovered RSA first, then Diffie-Hellman, opposite to the order of public discovery! Public-Key Characteristics Public-Key algorithms rely on two keys with the characteristics that it is: computationally infeasible to find decryption key knowing only algorithm & encryption key computationally easy to en/decrypt messages when the relevant (en/decrypt) key is known either of the two related keys can be used for encryption, with the other used for decryption (in some schemes) J. Tan Cryptography/Net Security CS491 * Public key schemes utilise problems that are easy (P type) one way but hard (NP type) the other way, eg exponentiation vs logs, multiplication vs factoring. Consider the following analogy using padlocked boxes: traditional schemes involve the sender putting a message in a box and locking it, sending that to the receiver, and somehow securely also sending them the key to unlock the box. The radical advance in public key schemes was to turn this around, the receiver sends an unlocked box to the sender, who puts the message in the box and locks it (easy - and having locked it cannot get at the message), and sends the locked box to the receiver who can unlock it (also easy), having the key. An attacker would have to pick the lock on the box (hard). Public-Key Applications can classify uses into 3 categories: encryption/decryption (provide secrecy) digital signatures (provide authentication) key exchange (of session keys) some algorithms are suitable for all uses, others are specific to one Why Public-Key Cryptography? J. Tan Cryptography/Net Security CS491 * The idea of public key schemes, and the first practical scheme, which was for key distribution only, was published in 1977 by Diffie & Hellman. The concept had been previously described in a classified report in 1970 by James Ellis (UK CESG) - and subsequently declassified in 1987. See History of Non-secret Encryption (at CESG). Its interesting to note that they discovered RSA first, then Diffie-Hellman, opposite to the order of public discovery! Security of Public Key Schemes like private key schemes brute force exhaustive search attack is always theoretically possible but keys used are large (>512bits)

security relies on a large enough difference in difficulty between easy (en/decrypt) and hard (cryptanalyze) problems

J. Tan
Cryptography/Net Security
CS491
*
Public key schemes are no more or less secure than private key schemes – in both cases the size of the key determines the security. Note also that you can’t compare key sizes – a 64-bit private key scheme has very roughly similar security to a 512-bit RSA – both could be broken given sufficient resources. But with public key schemes at least there’s usually a firmer theoretical basis for determining the security since its based on well-known and well studied number theory problems.

Security of Public Key Schemes
more generally the hard problem is known, its just made too hard to do in practice

requires the use of very large numbers

hence is slow compared to private key schemes

J. Tan
Cryptography/Net Security
CS491
*
Public key schemes are no more or less secure than private key schemes – in both cases the size of the key determines the security. Note also that you can’t compare key sizes – a 64-bit private key scheme has very roughly similar security to a 512-bit RSA – both could be broken given sufficient resources. But with public key schemes at least there’s usually a firmer theoretical basis for determining the security since its based on well-known and well studied number theory problems.

Key Management
No Singhalese, whether man or woman, would venture out of the house without a bunch of keys in his hand, for without such a talisman he would fear that some devil might take advantage of his weak state to slip into his body.
—The Golden Bough, Sir James George Frazer

Key Management
Public-key encryption helps address key distribution

problems

Have two aspects of this:

distribution of public keys
use of public-key encryption to distribute secret keys

Distribution of Public Keys
Can be considered as using one of:

Public announcement
Publicly available directory
Public-key authority
Public-key certificates

Public Announcement
users distribute public keys to recipients or broadcast to community at large
e.g., append PGP keys to email messages or post to news groups or email list

major weakness is forgery
anyone can create a key claiming to be someone else and broadcast it
until forgery is discovered can masquerade as claimed user

Publicly Available Directory
Can obtain greater security by registering keys with a public directory
Directory must be trusted with properties:
contains {name, public-key} entries
participants register securely with directory
participants can replace key at any time
directory is periodically published
directory can be accessed electronically
Still vulnerable to tampering or forgery

Public-Key Authority
improve security by tightening control over distribution of

keys from directory
has properties of directory
requires users to know public key for the directory
then users interact with directory to obtain any desired public key securely
does require real-time access to directory when keys are needed

Public Key (KUi) Distribution

J. Tan
Cryptography/Net Security
CS491
*
Stallings Fig 10-3. See text for details of steps in protocol.

Public-Key Certificates
Public-key authority (PKA): bottleneck.
certificates allow key exchange w/o real-time access to PKA.
a certificate binds identity to public key
usually with other info such as period of validity, rights of use, etc.
with all contents signed by a trusted Public-Key or Certificate Authority (CA)
can be verified by anyone who knows the public-key authority’s public-key.

Public-Key Certificates
A applies for a certificate from CA; A sends CA KUA
Application:
In person
Some secure authenticated exchange
CA issues A a certificate CA , s.t.
CA = E KRcauth[T1, IDA, KUA]

Note: B does the same to get CB

Public-Key Certificates
Private Key
Decrypted by using CA’s public key

J. Tan
Cryptography/Net Security
CS491
*
Stallings Fig 10-4. See text for details of steps in protocol.

Public-Key Certificates
When B receives A’s CA , B decrypts it by:
D KUcauth [CA ]
= D KUcauth [ E KRcauth[T1, IDA, KUA]]
= (T1, IDA, KUA )
T1 : validates currency of certificate like
expiration date of a credit card.

Public-Key Distribution of Secret Keys
Public key algorithms:
usually used for distribution of secret keys and not for encryption
public-key algorithms are slow
Should use private-key (session key ) encryption to protect message contents
hence need a session key
have several alternatives for negotiating a suitable session key

Simple Secret Key Distribution
proposed by Merkle in 1979
A generates a new temporary public key pair
A sends B the public key and their identity
B generates a session key K sends it to A encrypted using the supplied public key
A decrypts the session key and both use it
problem is that an opponent can intercept and impersonate both halves of protocol

Simple Secret Key Distribution

Simple Secret Key Distribution

Drawback?

i) C intercepts (1), sends its own KUC to B
ii) C learns the Ks from B and sends it to A

Solution? Assume A and B has exchanged each others public key, employ
them to exchange Ks

Public-Key Distribution of Secret Session Keys
securely exchanged public-keys:

J. Tan
Cryptography/Net Security
CS491
*
Stallings Fig 10-6. See text for details of steps in protocol. Note that these steps correspond to final 3 of Fig 10.3, hence can get both secret key exchange and authentication in a single protocol.

Diffie-Hellman Key Exchange
first public-key type scheme proposed
by Diffie & Hellman in 1976 along with the exposition of public key concepts
note: now know that James Ellis (UK CESG) secretly proposed the concept in 1970
is a practical method for public exchange of a secret key
used in a number of commercial products

J. Tan
Cryptography/Net Security
CS491
*
The idea of public key schemes, and the first practical scheme, which was for key distribution only, was published in 1977 by Diffie & Hellman. The concept had been previously described in a classified report in 1970 by James Ellis (UK CESG) – and subsequently declassified in 1987. See History of Non-secret Encryption (at CESG).

Diffie-Hellman Key Exchange
a public-key distribution scheme
cannot be used to exchange an arbitrary message
rather it can establish a common key
known only to the two participants
value of key depends on the participants (and their private and public key information)
based on exponentiation in a finite (Galois) field (modulo a prime or a polynomial) – easy
security relies on the difficulty of computing discrete logarithms (similar to factoring) – hard

Diffie-Hellman Setup
all users agree on global parameters:
large prime integer or polynomial q
α a primitive root mod q
each user (e.g., A) generates their key
chooses a secret key (number): xA < q compute their public key: yA = αxA mod q each user makes public that key yA J. Tan Cryptography/Net Security CS491 * The prime q and primitive root α can be common to all using some instance of the D-H scheme. Note that the primitive root α is a number whose powers successively generate all the elements mod q. Alice and Bob choose random secrets x's, and then "protect" them using exponentiation to create the y's. For an attacker monitoring the exchange of the y's to recover either of the x's, they'd need to solve the discrete logarithm problem, which is hard. Primitive Root g A primitive root of a prime p is an integer α such that α mod p = ø(p) = p-1 remainders J. Tan Cryptography/Net Security CS491 * The prime q and primitive root α can be common to all using some instance of the D-H scheme. Note that the primitive root α is a number whose powers successively generate all the elements mod q. Alice and Bob choose random secrets x's, and then "protect" them using exponentiation to create the y's. For an attacker monitoring the exchange of the y's to recover either of the x's, they'd need to solve the discrete logarithm problem, which is hard. The number 3 is a primitive root modulo 7 because Here we see that the period of 3k modulo 7 is 6. The remainders in the period, which are 3, 2, 6, 4, 5, 1, form a rearrangement of all nonzero remainders modulo 7, implying that 3 is indeed a primitive root modulo 7. Primitive Root Example Primitive Roots Examples: If p=7, then 3 is a primitive root for p 3k mod p = 1, 3, 2, 6, 4, 5 for k = 0,1,…. every number < p occurs except 0. But 2 isn't a primitive root  2k mod p = 1, 2, 4, 1, 2, 4, 1, 2, 4... missing several values. Primitive Roots Example: If p=13, then 2 is a primitive root because 2k mod p = 1, 2, 4, 8, 3, 6, 12, 11, 9, 5, 10, 7 which is all of the residues of mod 13 except 0. There are other primitive roots for 13. Diffie-Hellman Key Exchange shared session key for users A & B is KAB: KAB = αxA.xB mod q = yAxB mod q (which B can compute) yA = αxA = KUA = yBxA mod q (which A can compute) yB = αxB = KUB KAB is used as session key in private-key encryption scheme between Alice and Bob if Alice and Bob subsequently communicate, they will have the same key as before, unless they choose new public-keys attacker needs an x, must solve discrete log J. Tan Cryptography/Net Security CS491 * The actual key exchange for either party consists of raising the others "public key' to power of their private key. The resulting number (or as much of as is necessary) is used as the key for a block cipher or other private key scheme. For an attacker to obtain the same value they need at least one of the secret numbers, which means solving a discrete log, which is computationally infeasible given large enough numbers Diffie-Hellman Key Exchange J. Tan Cryptography/Net Security CS491 * The actual key exchange for either party consists of raising the others "public key' to power of their private key. The resulting number (or as much of as is necessary) is used as the key for a block cipher or other private key scheme. For an attacker to obtain the same value they need at least one of the secret numbers, which means solving a discrete log, which is computationally infeasible given large enough numbers Diffie-Hellman Key Exchange J. Tan Cryptography/Net Security CS491 * The actual key exchange for either party consists of raising the others "public key' to power of their private key. The resulting number (or as much of as is necessary) is used as the key for a block cipher or other private key scheme. For an attacker to obtain the same value they need at least one of the secret numbers, which means solving a discrete log, which is computationally infeasible given large enough numbers Diffie-Hellman Key Exchange J. Tan Cryptography/Net Security CS491 * The actual key exchange for either party consists of raising the others "public key' to power of their private key. The resulting number (or as much of as is necessary) is used as the key for a block cipher or other private key scheme. For an attacker to obtain the same value they need at least one of the secret numbers, which means solving a discrete log, which is computationally infeasible given large enough numbers Diffie-Hellman Example users Alice & Bob who wish to swap keys: agree on prime q=353 and α=3 select random secret keys: A chooses xA=97, B chooses xB=233 compute public keys: yA=397 mod 353 = 40 (Alice) yB=3233 mod 353 = 248 (Bob) compute shared session key as: KAB= yBxA mod 353 = 24897 = 160 (Alice) KAB= yAxB mod 353 = 40233 = 160 (Bob) Blowfish * Authentication For a message m, a computer can generate an authenticator a  A such that V(k)(m, a) = true only if it possesses S(k) Thus, computer holding S(k) can generate authenticators on messages so that any other computer possessing V(k) can verify them Computer not holding S(k) cannot generate authenticators on messages that can be verified using V(k) Since authenticators are generally exposed (for example, they are sent on the network with the messages themselves), it must not be feasible to derive S(k) from the authenticators * Authentication – Hash Functions Basis of authentication Creates small, fixed-size block of data (message digest, hash value) from m Hash Function H must be collision resistant on m Must be infeasible to find an m’ ≠ m such that H(m) = H(m’) If H(m) = H(m’), then m = m’ The message has not been modified Common message-digest functions include MD5, which produces a 128-bit hash, and SHA-1, which outputs a 160-bit hash * Authentication - MAC Symmetric encryption used in message-authentication code (MAC) authentication algorithm Simple example: MAC defines S(k)(m) = f (k, H(m)) Where f is a function that is one-way on its first argument k cannot be derived from f (k, H(m)) Because of the collision resistance in the hash function, reasonably assured no other message could create the same MAC A suitable verification algorithm is V(k)(m, a) ≡ ( f (k,m) = a) Note that k is needed to compute both S(k) and V(k), so anyone able to compute one can compute the other * Authentication – Digital Signature Based on asymmetric keys and digital signature algorithm Authenticators produced are digital signatures In a digital-signature algorithm, computationally infeasible to derive S(ks ) from V(kv) V is a one-way function Thus, kv is the public key and ks is the private key Consider the RSA digital-signature algorithm Similar to the RSA encryption algorithm, but the key use is reversed Digital signature of message S(ks )(m) = H(m)ks mod N The key ks again is a pair d, N, where N is the product of two large, randomly chosen prime numbers p and q Verification algorithm is V(kv)(m, a) ≡ (akv mod N = H(m)) Where kv satisfies kvks mod (p − 1)(q − 1) = 1 * Authentication (Cont.) Why authentication if a subset of encryption? Fewer computations (except for RSA digital signatures) Authenticator usually shorter than message Sometimes want authentication but not confidentiality Signed patches et al Can be basis for non-repudiation * Key Distribution Delivery of symmetric key is huge challenge Sometimes done out-of-band Asymmetric keys can proliferate – stored on key ring Even asymmetric key distribution needs care – man-in-the-middle attack * Man-in-the-middle Attack on Asymmetric Cryptography * Digital Certificates Proof of who or what owns a public key Public key digitally signed a trusted party Trusted party receives proof of identification from entity and certifies that public key belongs to entity Certificate authority are trusted party – their public keys included with web browser distributions They vouch for other authorities via digitally signing their keys, and so on * Encryption Example - SSL Insertion of cryptography at one layer of the ISO network model (the transport layer) SSL – Secure Socket Layer (also called TLS) Cryptographic protocol that limits two computers to only exchange messages with each other Very complicated, with many variations Used between web servers and browsers for secure communication (credit card numbers) The server is verified with a certificate assuring client is talking to correct server Asymmetric cryptography used to establish a secure session key (symmetric encryption) for bulk of communication during session Communication between each computer theb uses symmetric key cryptography * User Authentication Crucial to identify user correctly, as protection systems depend on user ID User identity most often established through passwords, can be considered a special case of either keys or capabilities Also can include something user has and /or a user attribute Passwords must be kept secret Frequent change of passwords Use of “non-guessable” passwords Log all invalid access attempts Passwords may also either be encrypted or allowed to be used only once * Implementing Security Defenses Defense in depth is most common security theory – multiple layers of security Security policy describes what is being secured Vulnerability assessment compares real state of system / network compared to security policy Intrusion detection endeavors to detect attempted or successful intrusions Signature-based detection spots known bad patterns Anomaly detection spots differences from normal behavior Can detect zero-day attacks False-positives and false-negatives a problem Virus protection Auditing, accounting, and logging of all or specific system or network activities * Firewalling to Protect Systems and Networks A network firewall is placed between trusted and untrusted hosts The firewall limits network access between these two security domains Can be tunneled or spoofed Tunneling allows disallowed protocol to travel within allowed protocol (i.e. telnet inside of HTTP) Firewall rules typically based on host name or IP address which can be spoofed Personal firewall is software layer on given host Can monitor / limit traffic to and from the host Application proxy firewall understands application protocol and can control them (i.e. SMTP) System-call firewall monitors all important system calls and apply rules to them (i.e. this program can execute that system call) * Network Security Through Domain Separation Via Firewall * Computer Security Classifications U.S. Department of Defense outlines four divisions of computer security: A, B, C, and D. D – Minimal security. C – Provides discretionary protection through auditing. Divided into C1 and C2. C1 identifies cooperating users with the same level of protection. C2 allows user-level access control. B – All the properties of C, however each object may have unique sensitivity labels. Divided into B1, B2, and B3. A – Uses formal design and verification techniques to ensure security. * Example: Windows XP Security is based on user accounts Each user has unique security ID Login to ID creates security access token Includes security ID for user, for user’s groups, and special privileges Every process gets copy of token System checks token to determine if access allowed or denied Uses a subject model to ensure access security. A subject tracks and manages permissions for each program that a user runs Each object in Windows XP has a security attribute defined by a security descriptor For example, a file has a security descriptor that indicates the access permissions for all users *