CMSC 414 Computer and Network Security Lecture 10 Jonathan Katz.

Slides:



Advertisements
Similar presentations
CMSC 414 Computer (and Network) Security Lecture 22 Jonathan Katz.
Advertisements

Securing Critical Unattended Systems with Identity Based Cryptography A Case Study Johannes Blömer, Peter Günther University of Paderborn Volker Krummel.
ECE454/CS594 Computer and Network Security Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2011.
CS470, A.SelcukCryptographic Authentication1 Cryptographic Authentication Protocols CS 470 Introduction to Applied Cryptography Instructor: Ali Aydin Selcuk.
Cryptography and Network Security
CMSC 414 Computer and Network Security Lecture 10 Jonathan Katz.
Digital Signatures and Hash Functions. Digital Signatures.
1 Introduction CSE 5351: Introduction to cryptography Reading assignment: Chapter 1 of Katz & Lindell.
CMSC 414 Computer and Network Security Lecture 11 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 12 Jonathan Katz.
CS426Fall 2010/Lecture 81 Computer Security CS 426 Lecture 8 User Authentication.
1 MD5 Cracking One way hash. Used in online passwords and file verification.
Cryptography and Network Security Chapter 17
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
CMSC 414 Computer (and Network) Security Lecture 9 Jonathan Katz.
CMSC 414 Computer (and Network) Security Lecture 2 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 15 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 21 Jonathan Katz.
Apr 22, 2003Mårten Trolin1 Agenda Course high-lights – Symmetric and asymmetric cryptography – Digital signatures and MACs – Certificates – Protocols Interactive.
CMSC 414 Computer and Network Security Lecture 5 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 17 Jonathan Katz.
8-1 What is network security? Confidentiality: only sender, intended receiver should “understand” message contents m sender encrypts message m receiver.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 2 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 16 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 16 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 22 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 8 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 18 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 23 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 17 Jonathan Katz.
Apr 4, 2003Mårten Trolin1 Previous lecture TLS details –Phases Handshake Securing messages –What the messages contain –Authentication.
CMSC 414 Computer (and Network) Security Lecture 24 Jonathan Katz.
Fall 2010/Lecture 311 CS 426 (Fall 2010) Public Key Encryption and Digital Signatures.
CMSC 414 Computer and Network Security Lecture 2 Jonathan Katz.
Information Security. Information Security Requirements Confidentiality: Protection from disclosure to unauthorised persons Access control: Unauthorised.
CMSC 414 Computer and Network Security Lecture 11 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 13 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 3 Jonathan Katz.
Digital Signatures Slides by Kent Seamons and Tim van der Horst Last Updated: Oct 7, 2013.
1 Introduction to Security and Cryptology Enterprise Systems DT211 Denis Manley.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
Message Authentication  message authentication is concerned with: protecting the integrity of a message protecting the integrity of a message validating.
CMSC 414 Computer and Network Security Lecture 2 Jonathan Katz.
Códigos y Criptografía Francisco Rodríguez Henríquez Security Attacks: Active and Passive Active Masquerade (impersonation) Replay Modification of message.
Cryptography and Network Security (CS435) Part Fourteen (Web Security)
CS526: Information Security Prof. Sam Wagstaff September 16, 2003 Cryptography Basics.
Lecture 3.4: Public Key Cryptography IV CS 436/636/736 Spring 2013 Nitesh Saxena.
EE515/IS523 Think Like an Adversary Lecture 4 Crypto in a Nutshell Yongdae Kim.
CMSC 414 Computer and Network Security Lecture 5 Jonathan Katz.
R. Newman Anonymity - Background. Defining anonymity Defining anonymity Need for anonymity Need for anonymity Defining privacy Defining privacy Threats.
Middleware for Secure Environments Presented by Kemal Altıntaş Hümeyra Topcu-Altıntaş Osman Şen.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
Lecture 2: Introduction to Cryptography
Computer Science and Engineering Computer System Security CSE 5339/7339 Lecture 11 September 23, 2004.
Dos and Don’ts of Client Authentication on the Web Kevin Fu, Emil Sit, Kendra Smith, Nick Feamster Presented: Jesus F. Morales.
IT 221: Introduction to Information Security Principles Lecture 5: Message Authentications, Hash Functions and Hash/Mac Algorithms For Educational Purposes.
Vijay V Vijayakumar.  Implementations  Server Side Security  Transmission Security  Client Side Security  ATM’s.
Pertemuan #8 Key Management Kuliah Pengaman Jaringan.
@Yuan Xue CS 285 Network Security Secure Socket Layer Yuan Xue Fall 2013.
CMSC 414 Computer and Network Security Lecture 2 Jonathan Katz.
Cryptographic Hash Function. A hash function H accepts a variable-length block of data as input and produces a fixed-size hash value h = H(M). The principal.
Cryptography and Network Security
Cryptography and Network Security
Chapter -7 CRYPTOGRAPHIC HASH FUNCTIONS
Cryptography and Network Security
Presentation transcript:

CMSC 414 Computer and Network Security Lecture 10 Jonathan Katz

Crypto pitfalls? 1. Bad cryptography, bad implementations, bad design 2. Even good cryptography can be ‘circumvented’ by adversaries operating ‘outside the model’ 1.Systems are complex, and your model may not exactly match reality 2.Side channel attacks 3. Even the best cryptography only shifts the weakest point of failure elsewhere

Recommendations and warnings

Crypto libraries  Use existing, high-level crypto libraries –cryptlib –GPGME –Keyczar –These provide an appropriate interface to crypto algorithms  Avoid low-level libraries (like JCE) – too much possibility of mis-use  Avoid writing your own low-level crypto

Random number generation  Do not use “standard” PRNGs; use cryptographic PRNGs instead  E.g., srand/rand in C: –srand(seed) sets state=seed (where |seed| = 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!  Related issues led to exploit in Netscape v1.1

More on PRNGs  Crypto PRNGs have different requirements –Indistinguishable from random by any efficient algorithm –Constantly re-seeded with new entropy to ensure forward security –Should be impossible to guess or perturb internal state E.g., if entropy comes from file timestamps  “Cold boot” issues –Server just rebooted and needs randomness….is there enough entropy after being up just a few seconds?

Integrity protection  Encryption does not provide integrity!  Use authenticated encryption (e.g., encrypt-then- MAC) in the symmetric-key setting when confidentiality and integrity are required –…and even if you only want confidentiality…  Use public-key encryption secure against chosen- ciphertext attacks

Avoid weak algorithms  Be careful allowing too much flexibility in negotiation of crypto algorithms –Leads to a ‘parameter selection’ attack  Difficult to adjust if fatal flaw found in weak algorithm –E.g., Upgrading encryption to add integrity protection: Old: CBC-encrypted New: Add integrity protection using a MAC Bright idea: get old credential; decrypt; re-encrypt with new key + MAC Do you see the flaw?

Implementation flaws  (These are crypto-specific; and do not include general issues such as preventing buffer overflows, etc. that we will cover later)  Must implement crypto exactly as specified!  if (0 == strncmp(userHash, myHash, 20)) allow; –strncmp compares up to the first null character –What if my hash starts with a 0 byte??

Implementation flaws  Must implement crypto exactly as specified!  PKCS#1 pads data as follows: FF … FF 00 H(m)  Bad implementation of signature verification? –Exponentiate, strip off padding, and compare to H(m)  Makes forgery easier!  Every bit of padding must be checked

Delimiting tokens  E.g., Amazon Web Services v1 –Split query at & and = ; concatenate and apply MAC –The following are then equivalent: …?GoodKey1=GoodValue1BadKey2BadValue2 …?GoodKey1=GoodValue1&BadKey2=BadValue2  Wordpress cookie flaw –token: HMAC(username.expirytime) –Create account for username=‘admin0’ and go…  Using timestamps to prevent replay –Is MAC(withdraw $101.1/23/09) = MAC(withdraw $10.11/23/09)?

Case studies

“Why Cryptosystems Fail”  Limited disclosure of crypto failures…  Insider attacks –By bank clerks, maintenance engineers, … –Poor prevention/detection/auditing mechanisms –Poor key management –Insecure delivery of ATM cards/PINs  Reduced entropy of PINs  Use of “home-brewed” encryption schemes

System goals and assumptions  A user should need both their ATM card and their PIN in order to withdraw money –“Two-factor authentication”  Assumptions: –PIN must be short –ATM card cannot perform cryptographic operations

Threat model  Attacker can –Read discarded receipts… –Eavesdrop on channel from ATM to bank –Inject messages on channel from ATM to bank –Impersonate the ATM to a user

Desired security  If an attacker does not have a user’s ATM card, should be infeasible to withdraw money from that user’s account (even if the PIN is guessed)  If an attacker does not have a user’s PIN, the best an adversary can do is guess it repeatedly –1/10000 chance each time –Prevent unlimited guessing

One system ATM Account # PIN Bank #, PIN If F K (#) = PIN: return “ok” ok This is similar, but not identical, to how ATMs work today

Attacks  Eavesdrop on PIN and account # ; manufacture rogue ATM card  Replay “ok” message! –Solution: use authentication with replay protection  Impersonate an ATM to a customer –Can this be prevented without implementing crypto on the ATM card? (Hint: how could the bank authenticate directly to the user?)

Another system ATM Account # c=Enc K (PIN) PIN Bank #, c, PIN If D K (c) = PIN: debit account #, return “ok” ok No binding between account # and PIN!

Another system ATM Account # PIN Bank # If F K (#) = PIN: “authenticated” balance withdraw amt If amt ≤ balance, dispense cash Do you see an attack? encrypted