113
1 IETF Security Tutorial Charlie Kaufman November 2005 ([email protected])

1 IETF Security Tutorial Charlie Kaufman November 2005 ([email protected])

Embed Size (px)

Citation preview

Page 1: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

IETF Security Tutorial

Charlie KaufmanNovember 2005

([email protected])

Page 2: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

One for the LawyersOpinions expressed donot reflect those of anypast, present, or futureemployers.

All trademarks arethe properties of theirrespective owners

Page 3: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Why an IETF Security Tutorial?

• Security finds its way into most of what we do

• We haven’t figured out a way to do layering nicely

• People who naively implement security features in their protocols are likely to get it wrong

Page 4: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Know the tools…

• If your protocol runs over TCP, you (mostly) don’t need to worry about message retransmission and congestion control

• If your protocol runs over IP, you (mostly) don’t need to worry about routing

• Isn’t there something similar for security?

Page 5: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Sometimes

• If your protocol runs over SSL/TLS, and it’s reasonable to expect both ends will have appropriate credentials, you might not have to worry about security

• If your protocol runs over IPsec, and it’s reasonable to expect both ends will have appropriate credentials, you might not have to worry about security

• You’re unlikely to be this lucky

Page 6: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Why not?

• Security infrastructure rollout is late. You will probably need something lightweight as an optional alternative.

• Using the credentials from SSL and IPsec is not always easy or appropriate.

Page 7: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Purpose of this tutorial

• A quick intro into a somewhat scary field

• A description of what you need to know vs what you can trust others to do

• To make the field non-intimidating

• But a word from Russ Housley:Don’t try this at home….

Page 8: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Agenda

• Introduction to Security• Introduction to Cryptography• Authenticating People• Security mechanisms to reference rather than

invent– Public Key / Secret Key infrastructures– Formats

• Security Considerations Considerations• Security Working Groups

Page 9: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

The Problem

• Internet evolved in a world w/out predators. DOS was viewed as illogical and undamaging.

• The world today is hostile. Only takes a tiny percentage to do a lot of damage.

• Must connect mutually distrustful organizations and people with no central management.

• And society is getting to depend on it for reliability, not just “traditional” security concerns.

Page 10: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Security means different things to different people

• Limit data disclosure to intended set

• Monitor communications to catch terrorists

• Keep data from being corrupted

• Destroy computers with pirated content

• Track down bad guys

• Communicate anonymously

Page 11: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Insecurity

The Internet isn’t insecure. It may be unsecure.Insecurity is mental state. The users ofthe Internet may be insecure, and perhapsrightfully so……Simson Garfinkel

Page 12: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Intruders: What Can They Do?

• Eavesdrop--(compromise routers, links, routing algorithms, or DNS)

• Send arbitrary messages (including IP hdr)• Replay recorded messages• Modify messages in transit• Write malicious code and trick people into

running it• Exploit bugs in software to ‘take over’ machines

and use them as a base for future attacks

Page 13: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Some basic terms

• Authentication: “Who are you?”

• Authorization: “Should you be doing that?”

• DOS: denial of service

• Integrity protection: a checksum on the data that requires knowledge of a secret to generate (and maybe to verify)

Page 14: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Some Examples to Motivate the Problems

• Sharing files between users– File store must authenticate users

– File store must know who is authorized to read and/or update the files

– Information must be protected from disclosure and modification on the wire

– Users must know it’s the genuine file store (so as not to give away secrets or read bad data)

Page 15: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Examples cont’d

• Electronic Mail– Send private messages

– Know who sent a message (and that it hasn’t been modified)

– Non-repudiation - ability to forward in a way that the new recipient can know the original sender

– Anonymity

Page 16: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Examples cont’d

• Electronic Commerce– Pay for things without giving away my credit

card number• to an eavesdropper

• or phony merchant

– Buy anonymously

– Merchant wants to be able to prove I placed the order

Page 17: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Sometimes goals conflict

• privacy vs company (or govt) wants to be able to see what you’re doing

• losing data vs disclosure (copies of keys)

• denial of service vs preventing intrusion

Page 18: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Agenda

• Introduction to Security• Introduction to Cryptography• Authenticating People• Security mechanisms to reference rather than

invent– Public Key / Secret Key infrastructures– Formats

• Security Considerations Considerations• Security Working Groups

Page 19: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Cryptography

• It’s not as scary as people make it out to be

• You don’t need to know much about it to understand what it can and can’t do for you

Page 20: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Cryptography

• Three kinds of cryptographic algorithms– secret key

– public key

– cryptographic hashes

• Used for– authentication, integrity protection, encryption

Page 21: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Secret Key Crypto

• Two operations (“encrypt”, “decrypt”) which are inverses of each other. Like multiplication/division

• One parameter (“the key”)

• Even the person who designed the algorithm can’t break it without the key (unless they diabolically designed it with a trap door)

• Ideally, a different key for each pair of users

Page 22: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Secret key crypto, Alice and Bob share secret S

• encrypt=f(S, plaintext)=ciphertext

• decrypt=f(S, ciphertext)=plaintext

• authentication: send f(S, challenge)

• integrity check: f(S, msg)=X

• verify integrity check: f(S, X, msg)

Page 23: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

A Cute Observation

• Security depends on limited computation resources of the bad guys

• (Can brute-force search the keys)– assuming the computer can recognize plausible

plaintext• A good crypto algo is linear for “good guys” and

exponential for “bad guys”• Even 64 bits is daunting to search through• Faster computers work to the benefit of the good

guys!

Page 24: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Public Key Crypto

• Two keys per user, keys are inverses of each other (as if nobody ever invented division)– public key “e” you tell to the world

– private key “d” you keep private

• Yes it’s magic. Why can’t you derive “d” from “e”?

• and if it’s hard, where did (e,d) come from?

Page 25: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Digital Signatures

• One of the best features of public key

• An integrity check– calculated as f(priv key, data)

– verified as f(public key, data, signature)

• Verifiers don’t need to know secret

• vs. secret key, where integrity check is generated and verified with same key, so verifiers can forge data

Page 26: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Cryptographic Hashes

• Invented because public key is slow

• Slow to sign a huge msg using a private key

• Cryptographic hash– fixed size (e.g., 160 bits)

– But no collisions! (at least we’ll never find one)

• So sign the hash, not the actual msg

• If you sign a msg, you’re signing all msgs with that hash!

Page 27: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Popular Secret Key Algorithms

• DES (old standard, 56-bit key, slow, insecure)

• 3DES: fix key size but 3 times as slow• RC4: variable length key, “stream cipher”

(generate stream from key, XOR with data), hard to design protocols, but really fast

• AES: replacement for DES, will probably take over

Page 28: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Popular Public Key Algorithms

• RSA: nice feature: public key operations can be made very fast, but private key operations will be slow. Patent expired.

• DSS: Digital Signature Standard – pushed by U.S. government

• ECC (elliptic curve crypto): smaller keys, so faster than RSA (but not for public key ops). Some worried about patents

Page 29: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Popular Hashes

• Most popular hash today SHA-1 (secure hash algorithm)

• Starting to roll out: SHA-256• Older ones (MD2, MD4, MD5) still around• Popular secret-key integrity check: hash

together key and data• One popular standard for that within IETF:

HMAC

Page 30: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Hash function security controversy

• Security of a hash function defined in terms of collision resistance

• In most uses, a much lower standard of security is required

• For use in HMAC, lowest of all• MD2, MD4, MD5 “broken”. SHA-1 has

“weaknesses”.• Beware the New York Times attack!• Make your protocols “crypto-agile”.

Page 31: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Hybrid Encryption

Instead of:Message

Encrypted with Alice’s Public KeyUse:

RandomlyChosen K

Encrypted withAlice’s Public Key

Message

Encrypted withSecret Key K

+

Message

Page 32: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Hybrid Signatures

Instead of:Message

Signed with Bob’s Private Key

Use:

Message

Message

Signed with Bob’s Private Key

Digest (Message)Message +

Page 33: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Signed and Encrypted Message

RandomlyChosen K

Encrypted withAlice’s Public Key

Message

Encrypted withSecret Key K

+

Digest (Message)+ Signed with

Bob’s Private Key

Page 34: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Don’t try this at home

• No reason (except for the Cryptography Guild) to invent new cryptographic algorithms

• Even if you could invent a better (faster, more secure) one, nobody would believe it

• Use a well-known, well-reviewed standard

Page 35: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Challenge / Response Authentication

Alice (knows K) Bob (knows K)

I’m Alice Pick Random REncrypt R using K(getting C)

If you’re Alice, decrypt C

R

Page 36: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Non-Cryptographic Network Authentication (olden times)

• Password based– Transmit a shared secret to prove you know it

• Address based– If your address on a network is fixed and the

network makes address impersonation difficult, recipient can authenticate you based on source address

– UNIX .rhosts and /etc/hosts.equiv files

Page 37: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Agenda

• Introduction to Security• Introduction to Cryptography• Authenticating People• Security mechanisms to reference rather than

invent– Public Key / Secret Key infrastructures– Formats

• Security Considerations Considerations• Security Working Groups

Page 38: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Authenticating people

• What you know (passwords)

• What you have (smart cards, SecurID cards, challenge/response calculators)

• What you are (biometrics)

Page 39: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Passwords are hard to get right!

• People “can’t” remember passwords with enough cryptographic strength to provide meaningful security as keys

• People reuse passwords, so it is dangerous to have servers storing passwords for their users

• Turn user authentication into real keys as close to the user as possible

Page 40: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

People

• “Humans are incapable of securely storing high-quality cryptographic keys, and they have unacceptable speed and accuracy when performing cryptographic operations. They are also large, expensive to maintain, difficult to manage, and they pollute the environment. It is astonishing that these devices continue to be manufactured and deployed, but they are sufficiently pervasive that we must design our protocols around their limitations.”

– Network Security: Private Communication in a Public World

Page 41: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Passwords ‘in the clear’ considered harmful

• Assuming eavesdropping on the Internet is universal.

• Surest way to get your protocol bounced by IESG.

Page 42: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Agenda

• Introduction to Security• Introduction to Cryptography• Authenticating People• Security mechanisms to reference rather than

invent– Public Key / Secret Key infrastructures– Formats

• Security Considerations Considerations• Security Working Groups

Page 43: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

So what can you do?

• draft-iab-auth-mech-04.txt provides sound guidance

• Avoid inventing your own – reference some existing protocol (TLS, IPsec, CMS, EAP, SASL, …)

Page 44: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Security Infrastructures to Leverage

• Once your endpoints have keys, life is simpler.

• Public keys seem easier, but both are problematic.

• Kerberos uses secret keys; TLS, IPsec, and S/MIME use PKIX certificates

Page 45: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Key Distribution - Kerberos

• Could configure n2 keys

• Instead use Key Distribution Center (KDC)– Everyone has one key

– The KDC knows them all

– The KDC assigns a key to any pair who need to talk

Page 46: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

KDC

Alice/KaBob/KbCarol/KcTed/KtFred/Kf

Alice/Ka

Bob/Kb

Carol/Kc

Ted/Kt

Fred/Kf

Page 47: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Key Distribution - Secret Keys

Alice KDC Bob

A wants to talk to B

Randomly choose Kab

{“B”, Kab}Ka {“A”, Kab}Kb

{Message}Kab

Page 48: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

KDC Realms

• KDCs scale up to hundreds of clients, but not millions

• There’s no one who everyone in the world is willing to trust with their secrets

• KDCs can be arranged in a hierarchy so that trust is more local

Page 49: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

KDC Realms

Interorganizational KDC

Lotus KDC SUN KDC MIT KDC

A B C D E F G

Page 50: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Key Distribution - Public Keys

• Certification Authority (CA) signs “Certificates”

• Certificate = a signed message saying “I, the CA, vouch that 489024729 is Alice’s public key”

• If everyone has a certificate, a private key, and the CA’s public key, they can authenticate

Page 51: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Key Distribution - Public Keys

Alice Bob

[“Alice”, key=342872]CA

Auth, encryption, etc.

[“Bob”, key=8294781]CA

Page 52: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What formats can you leverage?

• Depends on your “layer in the stack”

• IPsec protects packets– Could be end to end or between firewalls

– Today, most uses are transparent to applications

• TLS & SSH protect sessions

• OpenPGP, S/MIME and CMS protect messages (needed for store and forward)

Page 53: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

IPsec vs. TLS

• IPsec idea: don’t change applications or API to applications, just OS

• TLS idea: don’t change OS, only change application (if they run over TCP)

• but… unless OS can set security context of application, server applications need to know identity of their clients

Page 54: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

IPsec vs. TLS

• IPsec technically superior– Rogue packet problem

• TCP doesn’t participate in crypto, so attacker can inject bogus packet, no way for TCP to recover

– easier to do outboard hardware processing (since each packet independently encrypted)

• TLS easier to deploy

• And unless API changes, IPsec can’t pass up authenticated identity

Page 55: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Agenda

• Introduction to Security• Introduction to Cryptography• Authenticating People• Security mechanisms to reference rather than

invent– Public Key / Secret Key infrastructures– Formats

• Security Considerations Considerations• Security Working Groups

Page 56: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Every RFC needs a “security considerations” section

• What do you have to think about?

• Not enough to say “just use IPsec”

• Sometimes (as with VRRP) protecting one protocol in a vacuum is wasted effort– putting expensive locks on one window, while

the front door is wide open

• We don’t need to protect a protocol. We need to protect the user

Page 57: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Examples

• Putting integrity checks on routing msgs– Defends against outsiders injecting routing

msgs. That’s good, but

– Doesn’t prevent outsiders from answering ARPs, or corrupting DNS info

– Doesn’t protect against “Byzantine failures” (where a trusted thing goes bad)

Page 58: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Examples

• SNMP

• Should be straightforward end-to-end security

• But it has to work when the network is flaky– DNS not available

– LDAP database for retrieving certificates might be down, as might revocation infrastructure

Page 59: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Examples

• Non-crypto things– Use up resources

• DHCP, could request all possible addresses

• Use all bandwidth on a link

– Active Content• Too many examples of hidden places for active

content!

• Encryption does not imply integrity!

Page 60: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Things to put in a security considerations section

• What security issues it does solve

• What security issues it does not solve

• Implementation or deployment issues that might impact security

Page 61: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

An example of a good security considerations section

• Kerberos Network Auth Service i-d• Some excerpts

– solves authentication– does not address authorization or DOS or PFS– requires on-line database of keys, so NAS must be

physically secured– subject to dictionary attack (pick good pwds)– requires reasonably synchronized clocks– tickets might contain private information– NAS must remember used authenticators to avoid

replay

Page 62: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Agenda

• Introduction to Security• Introduction to Cryptography• Authenticating People• Security mechanisms to reference rather than

invent– Public Key / Secret Key infrastructures– Formats

• Security Considerations Considerations• Security Working Groups

Page 63: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Working Groups in the Security Area:Descendents of IPsec

• btns Better-Than-Nothing Security

• kink Kerberized Internet Negotiation of Keys

• mobike IKEv2 Mobility and Multihoming

• pki4ipsec Profiling Use of PKI in IPSEC

Page 64: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Working Groups in the Security Area:Descendents of PEM

• smime S/MIME Mail Security

• pkix Public-Key Infrastructure (X.509)

• openpgp Open PGP (Pretty Good Privacy)

• ltans Long-Term Archive and Notary Services

Page 65: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Working Groups in the Security Area:Descendents of CAT and SSL

• kitten GSS-API Next Generation

• krb-wg Kerberos

• secsh Secure Shell

• tls Transport Layer Security

Page 66: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Working Groups in the Security Area:Incident Reporting Formats

• idwg Intrusion Detection Exchange Format

• inch Extended Incident Handling

Page 67: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Working Groups in the Security Area:Miscellaneous

• sasl Simple Authentication and Security Layer

• sacred Securely Available Credentials• enroll Credential and Provisioning• isms Integrated Security Model for SNMP• msec Multicast Security• syslog Security Issues in Network Event

Logging

Page 68: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Noteworthy Completed WGs

• dnssec Securing DNS and storing keys in DNS

• otp One-time password protocol

Page 69: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Security Working Groups outside the Security Area

• eap Extensible Authentication Protocol• pana Protocol for carrying

Authentication for Network Access• aaa Authentication, Authorization, and

Accounting• radext Radius Extensions• rpsec Routing Protocol Security

Requirements

Page 70: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

A Soapbox if there is time

Public Key Infrastructure:

Where did we go wrong?

Page 71: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Secret Key Cryptography

SecretKeyxyzzy

SecretKeyxyzzy

SecretKeyxyzzy

SecretKeyxyzzy

k33lKI84jdxj**dj37fg#

You need a different SecretKey for each person you talk to

Page 72: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Public Key Cryptography

• Each person has a public key and a private key

• I tell everyone my public key, and keep my private key to myself

• Anyone can encrypt messages to me using my public key

• I can sign messages and anyone with my public key can verify they came from me

Page 73: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Public Key CryptographyPrivateKeyarrggh

PrivateKeyarrggh

PrivateKeyplover

PrivateKeyplover

83duzk3US&9su3s%

PrivateKeyplugh

PrivateKeyplugh

PrivateKeyxyzzy

PrivateKeyxyzzy

k33lKI84jdxj**dj37fg#

$YUsjwiesj78hsj2m

Each user only needs to remember one secret and everyone can talk

Page 74: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Replacing Passwords with Public Keys

• Instead of giving a server a password, I tell it my public key

• I can prove knowledge of my private key without revealing it

• I get “Single Signon” to the world without letting servers impersonate me to one another!

Page 75: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Public Key Cryptography

How do I tell everyone my public key?

Hi, I’m Bob!My public key is73287492836437

Page 76: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Some of us tried…

Page 77: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Reliably Learning Someone’s Public Key

• We could have set up a large public directory

• You could send someone your public key in an email message

• If you mislead someone about Bob’s public key…– You can read messages they encrypted for Bob– You can forge Bob’s signature to them

Page 78: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

How Realistic is the Threat?

• For exchanging secure email, not very– More interesting question is how to look up

someone’s public key

• For public key signatures to replace credit cards, need a secure mechanism

• To protect communications to unfamiliar web sites (e.g. amazon.com), something to worry about.

Page 79: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Every problem in computer science can be solved with one more level of indirection.

--David Wheeler

Page 80: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Enter the Certification Authority

Charlie Kaufman’sPublic key is:29 6F 4B E2 56…

Signed with theKey of the CA

Certificates can be posted publicly or exchangedVia email without trusting the sender

Page 81: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Who should be a CA?

• How careful should the CA be in making sure the person named in the certificate is requesting it?– Different standards used for casual email than

for nuclear missile launch codes

• How does a CA reliably publish its public key?

• Which CAs should you trust?• Which CAs should you get certs from?

Page 82: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

The “Obvious” Answer

• A certificate ties a key to a name. Whoever assigns the name should sign the certificate.– For [email protected], it’s Microsoft

– For my Visa Card #, it’s Visa

– If I’m logging into my bank, I don’t need a certificate. The bank can keep my public key on file.

Page 83: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Enter the Public Key Infrastructure(PKI)

• With one more level of indirection, CAs can certify one another

• There are technical, business, legal, and logistical reasons for preferring one structure over another

Page 84: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Strategies for CA Hierarchies

• Monopoly

• Oligarchy

• Anarchy

• Bottom-up

Page 85: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Monopoly

• Choose one universally trusted organization

• Embed their public key in everything

• Give them universal monopoly to issue certificates

• Make everyone get certificates from them

• Simple to understand and implement

Page 86: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What’s wrong with this model?

• Monopoly pricing

• Getting certificate from remote organization will be insecure or expensive (or both)

• That key can never be changed

• Security of the world depends on honesty and competence of that one organization, forever

Page 87: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

One CA Plus RAs

• RA (registration authority), is someone trusted by the CA, but unknown to the rest of the world (verifiers).

• You can request a certificate from the RA

• It asks the CA to issue you a certificate

• The CA will issue a certificate if an RA it trusts requests it

• Advantage: RA can be conveniently located

Page 88: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What’s wrong with one CA plus RAs?

• Still monopoly pricing

• Still can’t ever change CA key

• Still world’s security depends on that one CA key never being compromised (or dishonest employee at that organization granting bogus certificates)

Page 89: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Oligarchy of CAs

• Come configured with 80 or so trusted CA public keys (in form of “self-signed” certificates!)

• Usually, can add or delete from that set

• Eliminates monopoly pricing

Page 90: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Default Trusted Roots in IE

Page 91: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What’s wrong with oligarchy?

• Less secure!– security depends on ALL configured keys

– naïve users can be tricked into using platform with bogus keys, or adding bogus ones (easier to do this than install malicious software)

– impractical for anyone to check trust anchors

• Although not monopoly, still favor certain organizations. Why should these be trusted?

Page 92: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

CA Chains

• Allow configured CAs to issue certs for other public keys to be trusted CAs

• Similar to CAs plus RAs, but– Less efficient than RAs for verifier (multiple

certs to verify)

– Less delay than RA for getting usable cert

Page 93: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Anarchy (The PGP Model)

• Anyone signs certificate for anyone else

• Like configured+delegated, but user consciously configures starting keys

• Problems

– won’t scale (computationally too difficult to find path)

– no practical way to tell if path should be trusted

– too many decisions for user

Page 94: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Top Down with Name Subordination

• Assumes hierarchical names

• Each CA only trusted for the part of the namespace rooted at its name

• Can apply to delegated CAs or RAs

• Easier to find appropriate chain

• More secure in practice (this is a sensible policy that users don’t have to think about)

Page 95: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Bottom-Up Model

• Each arc in name tree has parent certificate (up) and child certificate (down)

• Name space has CA for each node

• “Name Subordination” means CA trusted only for a portion of the namespace

• Cross Links to connect Intranets, or to increase security

• Start with your public key, navigate up, cross, and down

Page 96: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Intranet

abc.com

nj.abc.com ma.abc.com

[email protected] [email protected] [email protected]

Page 97: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Extranets: Crosslinks

abc.com xyz.com

Page 98: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Extranets: Adding Roots

abc.com xyz.com

root

Page 99: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Advantages of Bottom-Up

• For intranet, no need for outside organization

• Security within your organization is controlled by your organization

• No single compromised key requires massive reconfiguration

• Easy configuration: public key you start with is your own

Page 100: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What did the world do?

• For browsers and email, oligopoly + anarchy (prompt for whether to trust this certificate)

• For special purpose applications like WindowsUpdate, wired in public key

• For password replacement, not done yet (and email is very sparsely deployed)

Page 101: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What went wrong?

• The RSA patent– Open source implementations were impossible

– Everyone who paid for a license thought they could make money from it

– People thought PKI was a product unto itself

– VeriSign, Entrust, Baltimore, Thawte tried to sell PKI without applications

Page 102: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What Went Wrong?

• Export Controls– U.S. tried to suppress deployment of

cryptography through export controls

– Strong-armed allies into similar controls, creating isolated markets

– Controls are mostly gone, but confusion remains

Page 103: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What Went Wrong?

• Lawyers!– “Digital Signatures! Don’t sign anything

without talking to us!”

– Well meaning laws tried to clarify what a digital signature legally meant, further muddying the water

– Should a CA be liable for your actions if it issues you a certificate?

Page 104: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What should the legal status be?

• Whatever people agree to it meaning!

• A digital signature on email is evidence that I sent it– So is email without a digital signature

– It could have been sent by a virus or system administrator with access to my machine

– So the evidence is a little stronger

• If a credit card company contracts to guarantee transactions with a credit card’s signature, that’s up to them.

Page 105: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What Went Wrong?

• Syntax– It is hard to design a syntax bad enough to

make a system unusable

– But we have managed it

– Crypto is easy compared to canonicalization

Page 106: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What’s in a Certificate?

• A Name

• A public key

• Perhaps other stuff like issuer name, expiration date, place to check whether it’s still good, etc.

• A signature on the combination signed by a trusted authority

Page 107: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Problems with X.509

• The name is an X.500 name (C=US/O=Microsoft/CN=Charlie Kaufman)– Different kludges evolved for encoding the

name forms people wanted to use

• The encoding is ASN.1 (requires a complex parser/encoder)

• Signatures were defined on a canonicalized form, not the bits on the wire

Page 108: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Problems with XML Signatures

• XML signatures are much worse

• Specification requires signing canonicalized form, but XML has no canonical form

• Requires very complex software, and it’s error-prone

Page 109: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What Went Wrong?• Algorithm Debates

– RSA is the cryptosystem everyone uses

– The patent on Diffie-Hellman expired in 1997, three years before RSA. IETF standards tried to convert the world to it

– The U.S. Government is pushing DSS• Perhaps they know of flaws in RSA

• Perhaps they know of flaws in DSS

• Perhaps they are just trying to generate confusion

• Perhaps they are well meaning but incompetent

Page 110: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

What Went Wrong?

• Global directories for finding certificates were always close but not here– X.500 directories

– LDAP

– Novell Netware directories

– Microsoft Active Directory

– DNS and DNSsec

Page 111: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Is PKI dead?

• No, for all the hype, it was never alive

• We will probably get PKIs someday

• They will provide incrementally better security and convenience than what we have today

Page 112: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Next Steps

• Replace passwords with raw public keys and/or PKI– Required functionality is (mostly) in browsers,

but its awkward to use and no one does

– It’s too hard to carry my credentials around (on a USB dongle or downloadable over the web)

• Make PKI cheap and easy… worry about military grade security later

Page 113: 1 IETF Security Tutorial Charlie Kaufman November 2005 (charliek@microsoft.com)

1

Conclusions

• Until a few years ago, you could connect to the Internet and be in contact with hundreds of millions of other nodes, without giving even a thought to security. The Internet in the ’90’s was like sex in the ’60’s. It was great while it lasted, but it was inherently unhealthy and was destined to end badly. I’m just really glad I didn’t miss out again this time. —Charlie Kaufman