Lecture 5 Page 1 CS 136, Fall 2013 Cryptographic Keys CS 136 Computer Security Peter Reiher October 8, 2013.

Slides:



Advertisements
Similar presentations
Key Management. Shared Key Exchange Problem How do Alice and Bob exchange a shared secret? Offline – Doesnt scale Using public key cryptography (possible)
Advertisements

Lecture 19 Page 1 CS 111 Online Protecting Operating Systems Resources How do we use these various tools to protect actual OS resources? Memory? Files?
NSRC Workshop Some fundamental security concerns... Confidentiality - could someone else read my data? Integrity - has my data been changed? Authentication.
1 Introduction CSE 5351: Introduction to cryptography Reading assignment: Chapter 1 of Katz & Lindell.
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
 Key exchange o Kerberos o Digital certificates  Certificate authority structure o PGP, hierarchical model  Recovery from exposed keys o Revocation.
Introduction to PKI Seminar What is PKI? Robert Brentrup July 13, 2004.
CMSC 414 Computer and Network Security Lecture 7 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 19 Jonathan Katz.
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE CSci530: Computer Security Systems Authentication.
03 December 2003 Public Key Infrastructure and Authentication Mark Norman DCOCE Oxford University Computing Services.
Database Key Management CSCI 5857: Encoding and Encryption.
Lecture 7 Page 1 CS 236 Online Password Management Limit login attempts Encrypt your passwords Protecting the password file Forgotten passwords Generating.
Lecture 5 Page 1 CS 236 Online Certificates A ubiquitous form of authentication Generally used with public key cryptography A signed electronic document.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Lecture 19 Page 1 CS 111 Online Symmetric Cryptosystems C = E(K,P) P = D(K,C) E() and D() are not necessarily the same operations.
Lecture 18 Page 1 CS 111 Online Access Control Security could be easy – If we didn’t want anyone to get access to anything The trick is giving access to.
Lecture 19 Page 1 CS 111 Online Authentication for Operating Systems What is authentication? How does the problem apply to operating systems? Techniques.
Chapter 23 Internet Authentication Applications Kerberos Overview Initially developed at MIT Software utility available in both the public domain and.
Lecture 16 Page 1 Advanced Network Security Perimeter Defense in Networks: Virtual Private Networks Advanced Network Security Peter Reiher August, 2014.
Week 4 - Wednesday.  What did we talk about last time?  RSA algorithm.
Lecture 17 Page 1 CS 236 Online Privacy CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 13 Page 1 Advanced Network Security Authentication and Authorization in Local Networks Advanced Network Security Peter Reiher August, 2014.
Lecture 5 Page 1 CS 136, Fall 2014 Cryptographic Keys CS 136 Computer Security Peter Reiher October 16, 2014.
Security CS Introduction to Operating Systems.
Protocols for public-key management. Key management –two problems Distribution of public keys (for public- key cryptography) Distribution of secret keys.
Lecture 2: Introduction to Cryptography
Lecture 16 Page 1 CS 236 Online Web Security CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 5 Page 1 CS 136, Fall 2012 Cryptographic Keys CS 136 Computer Security Peter Reiher October 11, 2012.
Lecture 7 Page 1 CS 236 Online Authentication CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Security fundamentals Topic 5 Using a Public Key Infrastructure.
Lecture 6 Page 1 CS 236 Online Certificates An increasingly popular form of authentication Generally used with public key cryptography A signed electronic.
Lecture 5 Page 1 CS 236 Online Key Management Choosing long, random keys doesn’t do you any good if your clerk is selling them for $10 a pop at the back.
Private key
Lecture 11 Overview. Digital Signature Properties CS 450/650 Lecture 11: Digital Signatures 2 Unforgeable: Only the signer can produce his/her signature.
Lecture 5 Page 1 CS 236 Online Public Key Encryption Systems The encrypter and decrypter have different keys C = E(K E,P) P = D(K D,C) Often, works the.
Lecture 14 Page 1 CS 111 Summer 2013 Security in Operating Systems: Basics CS 111 Operating Systems Peter Reiher.
Lecture 5 Page 1 Advanced Network Security Review of Cryptography: Cryptographic Keys Advanced Network Security Peter Reiher August, 2014.
Lecture 15 Page 1 CS 236 Online Evaluating Running Systems Evaluating system security requires knowing what’s going on Many steps are necessary for a full.
Fall 2006CS 395: Computer Security1 Key Management.
Lecture 5 Page 1 CS 236 Online More on Cryptography CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 10 Page 1 CS 236 Online SSL and TLS SSL – Secure Socket Layer TLS – Transport Layer Security The common standards for securing network applications.
Department of Computer Science Chapter 5 Introduction to Cryptography Semester 1.
Lecture 2 Page 1 CS 236 Online Security Policies Security policies describe how a secure system should behave Policy says what should happen, not how you.
Lecture 5 Page 1 CS 136, Spring 2016 Cryptographic Keys CS 136 Computer Security Peter Reiher April 12, 2016.
Key management issues in PGP
Web Applications Security Cryptography 1
Outline The basic authentication problem
Outline Properties of keys Key management Key servers Certificates.
Cryptography Much of computer security is about keeping secrets
Password Management Limit login attempts Encrypt your passwords
Public Key Encryption Systems
Outline What does the OS protect? Authentication for operating systems
Certificates An increasingly popular form of authentication
Certificates A ubiquitous form of authentication
Outline What does the OS protect? Authentication for operating systems
Outline Properties of keys Certificates Key management.
Outline Properties of keys Key management Key servers Certificates.
Lecture 4 - Cryptography
Certificates An increasingly popular form of authentication
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Outline Properties of keys Key management Key servers Kerberos
Outline Properties of keys Key management Key servers Certificates.
Key Management CS 136 Computer Security Peter Reiher April 16, 2009
Outline Properties of keys Key management Key servers Certificates.
Certificates An increasingly popular form of authentication
Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Public Key Encryption Systems
Presentation transcript:

Lecture 5 Page 1 CS 136, Fall 2013 Cryptographic Keys CS 136 Computer Security Peter Reiher October 8, 2013

Lecture 5 Page 2 CS 136, Fall 2013 Outline Properties of keys Key management Key servers Certificates

Lecture 5 Page 3 CS 136, Fall 2013 Introduction It doesn’t matter how strong your encryption algorithm is Or how secure your protocol is If the opponents can get hold of your keys, your security is gone Proper use of keys is crucial to security in computing systems

Lecture 5 Page 4 CS 136, Fall 2013 Properties of Keys Length Randomness Lifetime Secrecy

Lecture 5 Page 5 CS 136, Fall 2013 Key Length If your cryptographic algorithm is otherwise perfect, its strength depends on key length Since the only attack is a brute force attempt to discover the key The longer the key, the more brute force required

Lecture 5 Page 6 CS 136, Fall 2013 Are There Real Costs for Key Length? Generally, more bits is more secure Why not a whole lot of key bits, then? Some encryption done in hardware –More bits in hardware costs more Some software encryption slows down as you add more bits, too –Public key cryptography especially Some algorithms have defined key lengths only If the attack isn’t brute force, key length might not help

Lecture 5 Page 7 CS 136, Fall 2013 Key Randomness Brute force attacks assume you chose your key at random If attacker learns how you chose your key –He can reduce brute force costs How good is your random number generator?

Lecture 5 Page 8 CS 136, Fall 2013 Generating Random Keys Well, don’t use rand() The closer the method chosen approaches true randomness, the better But, generally, don’t want to rely on exotic hardware True randomness is not essential –Need same statistical properties –And non-reproducibility

Lecture 5 Page 9 CS 136, Fall 2013 Cryptographic Methods Start with a random number Use a cryptographic hash on it If the cryptographic hash is a good one, the new number looks pretty random Produce new keys by hashing old ones Depends on strength of hash algorithm Falls apart if any key is ever broken –Doesn’t have perfect forward secrecy

Lecture 5 Page 10 CS 136, Fall 2013 Perfect Forward Secrecy A highly desirable property in a cryptosystem It means that the compromise of any one session key will not compromise any other –E.g., don’t derive one key from another using a repeatable algorithm Keys do get divulged, so minimize the resulting damage

Lecture 5 Page 11 CS 136, Fall 2013 Random Noise Observe an event that is likely to be random –Physical processes (cosmic rays, etc.) –Real world processes (variations in disk drive delay, keystroke delays, etc.) Assign bit values to possible outcomes Record or generate them as needed More formally described as gathering entropy Keys derived with proper use of randomness have good perfect forward secrecy

Lecture 5 Page 12 CS 136, Fall 2013 On Users and Randomness Some crypto packages require users to provide entropy –To bootstrap key generation or other uses of randomness Users do this badly (often very badly) They usually try to do something simple –And not really random Better to have crypto package get its own entropy

Lecture 5 Page 13 CS 136, Fall 2013 Don’t Go Crazy on Randomness Make sure it’s non-reproducible –So attackers can’t play it back Make sure there aren’t obvious patterns Attacking truly unknown patterns in fairly random numbers is extremely challenging –They’ll probably mug you, instead

Lecture 5 Page 14 CS 136, Fall 2013 Key Lifetime If a good key’s so hard to find, –Why every change it? How long should one keep using a given key?

Lecture 5 Page 15 CS 136, Fall 2013 Why Change Keys? Long-lived keys more likely to be compromised The longer a key lives, the more data is exposed if it’s compromised The longer a key lives, the more resources opponents can (and will) devote to breaking it The more a key is used, the easier the cryptanalysis on it A secret that cannot be readily changed should be regarded as a vulnerability

Lecture 5 Page 16 CS 136, Fall 2013 Practicalities of Key Lifetimes In some cases, changing keys is inconvenient –E.g., encryption of data files Keys used for specific communications sessions should be changed often –E.g., new key for each phone call Keys used for key distribution can’t be changed too often

Lecture 5 Page 17 CS 136, Fall 2013 Destroying Old Keys Never keep a key around longer than necessary –Gives opponents more opportunities Destroy keys securely –For computers, remember that information may be in multiple places Caches, virtual memory pages, freed file blocks, stack frames, etc.

Lecture 5 Page 18 CS 136, Fall 2013 Key Storage The flip side of destroying keys – –You’d better be sure you don’t lose a key while you still need it Without the key, you can’t read the encrypted data –Kind of a bummer, if you wanted to Key storage is one approach

Lecture 5 Page 19 CS 136, Fall 2013 What Is Key Storage? Saving a copy of a cryptographic key “somewhere else” Securely store a key in some safe place If you lose it accidentally, get it back from storage location Prevents encrypted data from becoming unreadable

Lecture 5 Page 20 CS 136, Fall 2013 Where Should You Store Keys? Must not be accessible to an attacker –Don’t want him to get hold of all your keys –Don’t want them readily available if your machine is hacked But relatively accessible when needed Usually on a separate machine

Lecture 5 Page 21 CS 136, Fall 2013 How Do You Get Keys There? And back Each new key must be transported to the key server Not much saved if transport mechanism is compromised Need carefully designed/implemented mechanism for moving keys

Lecture 5 Page 22 CS 136, Fall 2013 Key Secrecy Seems obvious Of course you keep your keys secret However, not always handled well in the real world Particularly with public key cryptography

Lecture 5 Page 23 CS 136, Fall 2013 Some Problems With Key Sharing Private keys are often shared –Same private key used on multiple machines –For multiple users –Stored in “convenient” places –Perhaps backed up on tapes in plaintext form

Lecture 5 Page 24 CS 136, Fall 2013 Why Do People Do This? For convenience To share expensive certificates Because they aren’t thinking clearly Because they don’t know any better A recent example: –RuggedCom’s Rugged Operating System for power plant control systems –Private key embedded in executable

Lecture 5 Page 25 CS 136, Fall 2013 To Make It Clear, PRIVATE KEYS ARE PRIVATE! They are for use by a single user They should never be shared or given away They must never be left lying around in insecure places –Widely distributed executables are insecure –Just because it’s tedious to decipher executables doesn’t mean can’t be done The entire security of PK systems depends on the secrecy of the private key!

Lecture 5 Page 26 CS 136, Fall 2013 Key Management Choosing long, random keys doesn’t do you any good if your clerk is selling them for $10 a pop at the back door Or if you keep a plaintext list of them on a computer on the net whose root password is “root” Proper key management is crucial

Lecture 5 Page 27 CS 136, Fall 2013 Desirable Properties in a Key Management System Secure Fast Low overhead for users Scaleable Adaptable –Encryption algorithms –Applications –Key lengths

Lecture 5 Page 28 CS 136, Fall 2013 Users and Keys Where are a user’s keys kept? Permanently on the user’s machine? –What happens if the machine is cracked? But people can’t remember random(ish) keys –Hash keys from passwords/passphrases? Keep keys on smart cards? Get them from key servers?

Lecture 5 Page 29 CS 136, Fall 2013 Key Servers Special machines whose task is to generate, store and manage keys Generally for many parties Possibly Internet-wide Obviously, key servers are highly trusted

Lecture 5 Page 30 CS 136, Fall 2013 Security of Key Servers The key server is the cracker’s holy grail –If they break the key server, everything else goes with it What can you do to protect it?

Lecture 5 Page 31 CS 136, Fall 2013 Security for Key Servers Don’t run anything else on the machine Use extraordinary care in setting it up and administering it Watch it carefully Use a key server that stores as few keys permanently as possible –At odds with need for key storage Use a key server that handles revocation and security problems well

Lecture 5 Page 32 CS 136, Fall 2013 Single Machine Key Servers Typically integrated into the web browser –Often called key chains or password vaults Stores single user’s keys or passwords for various web sites Usually protected with an overall access key Obvious, encrypted versions stored on local disk

Lecture 5 Page 33 CS 136, Fall 2013 Security Issues for Single Machine Key Servers Don’t consider one that doesn’t store keys encrypted Issues of single sign-on –If computer left unattended –In case of remote hacking Anything done by your web browser is “you”

Lecture 5 Page 34 CS 136, Fall 2013 Local Key Servers Can run your own key server machine –Stores copies of all keys you use Possibly creates keys when needed Uses careful methods to communicate with machines using it E.g., Sun StorageTek Crypto Key Management System

Lecture 5 Page 35 CS 136, Fall 2013 Key Storage Services Third party stores your keys for you –In encrypted form they can’t read ANSI standard (X9.24) describes how third party services should work Not generally popular HyperSafe Remote Key System is one example Variants may become important for cloud computing

Lecture 5 Page 36 CS 136, Fall 2013 Certificates A ubiquitous form of authentication Generally used with public key cryptography A signed electronic document proving you are who you claim to be Often used to help distribute other keys

Lecture 5 Page 37 CS 136, Fall 2013 Public Key Certificates The most common kind of certificate Addresses the biggest challenge in widespread use of public keys –How do I know whose key it is? Essentially, a copy of your public key signed by a trusted authority Presentation of the certificate alone serves as authentication of your public key

Lecture 5 Page 38 CS 136, Fall 2013 Implementation of Public Key Certificates Set up a universally trusted authority Every user presents his public key to the authority The authority returns a certificate –Containing the user’s public key signed by the authority’s private key In essence, a special type of key server

Lecture 5 Page 39 CS 136, Fall 2013 Checking a Certificate Every user keeps a copy of the authority’s public key When a new user wants to talk to you, he gives you his certificate Decrypt the certificate using the authority’s public key You now have an authenticated public key for the new user Authority need not be checked on-line

Lecture 5 Page 40 CS 136, Fall 2013 Scaling Issues of Certificates If there are 1-2 billion Internet users needing certificates, can one authority serve them all? Probably not So you need multiple authorities Does that mean everyone needs to store the public keys of all authorities?

Lecture 5 Page 41 CS 136, Fall 2013 Certification Hierarchies Arrange certification authorities hierarchically Single authority at the top produces certificates for the next layer down And so on, recursively

Lecture 5 Page 42 CS 136, Fall 2013 Using Certificates From Hierarchies I get a new certificate I don’t know the signing authority But the certificate also contains that authority’s certificate Perhaps I know the authority who signed this authority’s certificate

Lecture 5 Page 43 CS 136, Fall 2013 Extracting the Authentication Using the public key of the higher level authority, –Extract the public key of the signing authority from the certificate Now I know his public key, and it’s authenticated I can now extract the user’s key and authenticate it

Lecture 5 Page 44 CS 136, Fall 2013 A Example Give me a certificate saying that I’m Should Alice believe that he’s really ? Alice has never heard of But she has heard of So she uses to check How can prove who he is? Alice gets a message with a certificate Then she uses to check

Lecture 5 Page 45 CS 136, Fall 2013 Certification Hierarchies Reality Not really what’s used –For the most part Instead, we rely on large numbers of independent certifying authorities –Exception is that each of them may have internal hierarchy Essentially, a big list Is this really better?

Lecture 5 Page 46 CS 136, Fall 2013 Certificates and Trust Ultimately, the point of a certificate is to determine if something is trusted –Do I trust the request enough to perform some financial transaction? So, Trustysign.com signed this certificate How much confidence should I have in the certificate?

Lecture 5 Page 47 CS 136, Fall 2013 Potential Problems in the Certification Process What measures did Trustysign.com use before issuing the certificate? Is the certificate itself still valid? Is Trustysign.com’s signature/certificate still valid? Who is trustworthy enough to be at the top of the hierarchy?

Lecture 5 Page 48 CS 136, Fall 2013 Trustworthiness of Certificate Authority How did Trustysign.com issue the certificate? Did it get an in-person sworn affidavit from the certificate’s owner? Did it phone up the owner to verify it was him? Did it just accept the word of the requestor that he was who he claimed to be? Has authority been compromised?

Lecture 5 Page 49 CS 136, Fall 2013 What Does a Certificate Really Tell Me? That the certificate authority (CA) tied a public/private key pair to identification information Generally doesn’t tell me why the CA thought the binding was proper I may have different standards than that CA

Lecture 5 Page 50 CS 136, Fall 2013 Showing a Problem Using the Example Alice likes how verifies identity But is she equally happy with how verifies identity? Does she even know how verifies identity? What if uses ‘s lax policies to pretend to be ?

Lecture 5 Page 51 CS 136, Fall 2013 Another Big Problem Things change –E.g., recent compromise of Adobe private keys One result of change is that what used to be safe or trusted isn’t any more If there is trust-related information out in the network, what will happen when things change?

Lecture 5 Page 52 CS 136, Fall 2013 Revocation A general problem for keys, certificates, access control lists, etc. How does the system revoke something related to trust? In a network environment Safely, efficiently, etc. Related to revocation problem for capabilities

Lecture 5 Page 53 CS 136, Fall 2013 Revisiting Our Example Someone discovers that has obtained a false certificate for How does Alice make sure that she’s not accepting ‘s false certificate?

Lecture 5 Page 54 CS 136, Fall 2013 Realities of Certificates Most OSes come with set of “pre-trusted” certificate authorities System automatically processes (i.e., trusts) certificates they sign Usually no hierarchy If not signed by one of these, present it to the user –Who always accepts it...

Lecture 5 Page 55 CS 136, Fall 2013 An Example Firefox web browser Makes extensive use of certificates to validate entities –As do all web browsers Comes preconfigured with several certificate authorities –Over 200 of them

Lecture 5 Page 56 CS 136, Fall 2013 Firefox Preconfigured Certificate Authorities Some you’d expect: –Microsoft, RSA Security, Verisign, etc. Some you’ve probably never heard of: Unizeto Sp. z.o.o., Netlock Halozatbiztonsagi Kft.,Chungwa Telecom Co. Ltd.

Lecture 5 Page 57 CS 136, Fall 2013 The Upshot If Netlock Halozatbiztonsagi Kft. says someone’s OK, I trust them –I’ve never heard of Netlock Halozatbiztonsagi Kft. –I have no reason to trust Netlock Halozatbiztonsagi Kft. –But my system’s security depends on them

Lecture 5 Page 58 CS 136, Fall 2013 The Problem in the Real World In 2011, a Dutch authority (DigiNotar) was compromised Attackers generated lots of bogus certificates signed by DigiNotar –“Properly” signed by that authority –For popular web sites Until compromise discovered, everyone trusted them

Lecture 5 Page 59 CS 136, Fall 2013 Effects of DigiNotar Compromise Attackers could transparently redirect users to fake sites –What looked like Twitter was actually their copycat site Allowed attackers to eavesdrop without any hint to users Apparently used by authorities in Iran to eavesdrop on dissidents

Lecture 5 Page 60 CS 136, Fall 2013 How Did the Compromise Occur? DigiNotar had crappy security –Out-of date antivirus software –Poor software patching –Weak passwords –No auditing of logs –Poorly designed local network A company providing security services paid little attention to security

Lecture 5 Page 61 CS 136, Fall 2013 Another Practicality Certificates have expiration dates –Important for security –Otherwise, long-gone entities would still be trusted But perfectly good certificates also expire –Then what?

Lecture 5 Page 62 CS 136, Fall 2013 The Reality of Expired Certificates When I hear my server’s certificate has expired, what do I do? –I trust it anyway –After all, it’s my server But pretty much everyone does that –For pretty much every certificate Not so secure

Lecture 5 Page 63 CS 136, Fall 2013 The Core Problem With Certificates Anyone can create some certificate Typical users have no good basis for determining whose certificates to trust –They don’t even really understand what they mean Therefore, they trust almost any certificate

Lecture 5 Page 64 CS 136, Fall 2013 Should We Worry About Certificate Validity? Starting to be a problem –Stuxnet is one example –Compromise of DigiNotar and Adobe also –Increasing incidence of improper issuance, like Verisign handing out Microsoft certificates Not the way most attackers break in today With all their problems, still not the weakest link –But now being exploited, mostly by most sophisticated adversaries

Lecture 5 Page 65 CS 136, Fall 2013 Should I Trust Crypto At All? Recent revelations suggest that the NSA can read many encrypted messages Experts think they mostly have compromised key selection/handling –Rather than the crypto itself But also possible that particular implementations have been “bugged”

Lecture 5 Page 66 CS 136, Fall 2013 Some Practical Advice on Crypto From Bruce Schneier, who should know Use crypto to protect your data Trust the math, not the program Be suspicious of commercial crypto –Especially from big companies Use public-domain crypto whenever possible –Especially standards requiring interoperability