cmsc 414 computer and network security lecture 7 jonathan katz

21
CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Post on 19-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

CMSC 414Computer and Network Security

Lecture 7

Jonathan Katz

Page 2: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Malleability/chosen-ciphertext security All the public-key encryption schemes we have

seen so far are malleable– Given a ciphertext c that encrypts an (unknown)

message m, it is possible to generate a ciphertext c’ that encrypts a related message m’

In many scenarios, this is problematic– E.g., auction example; password example

Note: the problem is not integrity (there is no integrity in public-key encryption, anyway), but malleability

Page 3: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Malleability/chosen-ciphertext security In the public-key setting, security against chosen-

ciphertext attacks is equivalent to non-malleability

In general, always use a public-key encryption scheme secure against chosen-ciphertext attacks!– E.g., RSA PKCS #1 v2.1

When using hybrid encryption, if both components are secure against chosen-ciphertext attacks then the combination it also secure against chosen-ciphertext attacks

Page 4: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Signature schemes

Page 5: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Basic idea A signer publishes a public key pk

– As usual (for now), we assume everyone has a correct copy of pk

To sign a message m, the signer uses its private key to generate a signature

Anyone can verify that is a valid signature on m with respect to the signer’s public key pk– Since only the signer knows the corresponding private key, we

take this to mean the signer has “certified” m

Security (informally): no one should be able to generate a valid signature other than the legitimate signer

Page 6: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Prototypical application Software company wants to periodically release

patches of its software– Doesn’t want a malicious adversary to be able to

change even a single bit of the legitimate path

Solution: – Bundle a copy of the company’s public key along with

initial copy of the software– Software patches signed (perhaps with a version

number)– Do not accept patch unless it comes with a valid

signature (and increasing version number)

Page 7: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Signatures vs. MACs

Could MACs work in the previous example?– Computing one signature vs. multiple MACs

– Public verifiability

– Transferability

– Non-repudiation

Not obtainedby MACs!

Page 8: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Functional definition Key generation algorithm: randomized algorithm

that outputs (pk, sk)

Signing algorithm:– Takes a private key and a message, and outputs a

signature; Signsk(m)

Verification algorithm:– Takes a public key, a message, and a signature and

outputs a decision bit; b = Vrfypk(m, )

Correctness: for all (pk, sk), Vrfypk(m, Signsk(m)) = 1

Page 9: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Security?

Analogous to MACs– Except that adversary is given the signer’s public key

(pk, sk) generated at random; adversary given pk

Adversary given 1 = Signsk(m1), …, n = Signsk(mn) for m1, …, mn of its choice

Attacker “breaks” the scheme if it outputs a forgery; i.e., (m, ) with:

• m ≠ mi for all i

• Vrfypk(m, ) = 1

Page 10: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

“Textbook RSA” signatures

Public key (N, e); private key (N, d)

To sign message m ZN*, compute = md mod N

To verify signature on message m, check whether e = m mod N

Correctness holds…

…what about security?

Page 11: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Security of textbook RSA sigs?

Textbook RSA signatures are not secure– Easy to forge a signature on a random message

– Easy to forge a signature on a chosen message, given two signatures of the adversary’s choice

Page 12: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Hashed RSA

Public key (N, e); private key (N, d)

To sign message m, compute = H(m)d mod N

To verify signature on a message m, check whether e = H(m) mod N

Why does this prevent previous attacks?

Page 13: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Security of hashed RSA

Can we prove that hashed RSA is secure?– Take CMSC456!

Hashed RSA signatures can be proven secure based on the hardness of the RSA problem, if the hash is modeled as a random function

Variants of hashed RSA are used in practice

Page 14: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

DSA/DSS signatures

Another popular signature scheme, based on the hardness of the discrete logarithm problem– Introduced by NIST in 1992

– US government standard

I will not cover the details, but you need to know that it exists

Page 15: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Hash-and-sign

Say we have a secure signature scheme for “short” messages (e.g., hashed RSA, DSS, …)– How to extend it for longer messages?

Hash and sign– Hash message to short “digest”; sign the digest

Used extensively in practice

H SignM H(M)

sk

Page 16: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Crypto pitfalls

Page 17: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Cryptography is not a “magic bullet”

Crypto can be difficult to get right– Must be implemented correctly

– Need expertise; “a little knowledge can be a dangerous thing…”

– Must be integrated from the beginning

– Use only standardized algorithms and protocols

– No security through obscurity!

Page 18: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Cryptography is not a “magic bullet”

Crypto alone cannot solve all security problems– Key management; social engineering; insider attacks

– Develop (appropriate) threat/trust models

– Need to analyze weak links in the chain…

– Adversary may not be able to eavesdrop, but can it: • Access your hard drive?

• See CRT emissions?

• Go through your trash?

– “Side channel attacks” on cryptosystems

Page 19: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Cryptography is not a “magic bullet”

Human factors– Crypto needs to be easy to use both for end-users and

administrators

– Important to educate users about appropriate security practices

Need for review, detection, and recovery

Security as a process, not a product

Page 20: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

Random number generation

Do not use “standard” RNGs; use cryptographic RNGs instead

E.g., srand/rand in C:– srand(seed) sets state=seed (|state| = 32 bits)

– rand():• state = f(state), where f is some linear function

• return state

Generating a 128-bit key using 4 calls to rand() results in a key with only 32 bits of entropy!

Page 21: CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz

More on random number generation

Netscape v1.1:– rv = SHA1(pid, ppid, time)

– return rv

Problem: the input to SHA1 has low entropy