320 likes | 335 Views
CMSC 414 Computer (and Network) Security Lecture 2. Jonathan Katz. Two papers linked from webpage. “Reflections on trusting trust” “Managed security monitoring” Both leave a fairly negative impression of security…
E N D
CMSC 414Computer (and Network) SecurityLecture 2 Jonathan Katz
Two papers linked from webpage • “Reflections on trusting trust” • “Managed security monitoring” • Both leave a fairly negative impression of security… • …at the very least, they show that security is not easy, and cannot just be applied as a “magic bullet”
“Managed security monitoring” • (Summarize article) • Is the state of network security really this bad? (Arguably, yes) • Although network monitoring and risk management are important, security is too • Security is not an ends unto itself • If you really want to be secure, disconnect yourself from the Internet
An Overview of Computer Security
Basic components • Confidentiality • Integrity • Availability
Policy vs. mechanism • Security policy • Statement of what is and is not allowed • Security mechanism • Method for enforcing a security policy • One is meaningless without the other… • Problems when combining security policies of multiple organizations
Security goals • Prevention • Detection • Response/recovery
Assumptions and trust • Example: assume that all employees are trustworthy, and do not represent a threat • Assumptions underlie any security mechanism • Important to recognize and evaluate these assumptions
Example • Assumption: locks cannot be picked • What if a locksmith is around? • What if this locksmith is trustworthy? • Why do we assume that she is trustworthy?
More assumptions • Two assumptions are (almost) always made: • Policy defines the intended level of security • Mechanism correctly implements policy
System development • Determine threats; develop policy • Give specification of the system • Desired functionality of the system • If specification is ambiguous, vulnerabilities can result • An imprecise specification is useless… • Design the system • Design system satisfying the specification • Difficult (but not impossible) to verify
System development, cont’d… • Implementation • Create a system satisfying the design • Impossible to fully verify correctness • Software complexity • Unknown inputs • Unverified tools • “Testing” after the fact • Subject to limitations of the tests
System development (summary) • Threat analysis • Policy • Specification • Design • Implementation • (Operation/maintenance/monitoring?)
Cost-benefit analysis • Important to evaluate what level of security is necessary/appropriate • Cost of mounting a particular attack vs. value of attack to an adversary • Cost of damages from an attack vs. cost of defending against the attack • Likelihood of a particular attack
Human factors • E.g., passwords… • Outsider vs. insider attacks • Software misconfiguration • Not applying security patches • Social engineering
Everything you wanted to know about cryptography* *But perhaps were afraid to ask…
Caveat • Everything I present will be (relatively) informal • But I will try not to say anything that is an outright lie… • Cryptography is about precise definitions, formal models, and rigorous proofs of security (which we will not cover here) • If you want more details, take CMSC 456!
Attacks • Crypto deals primarily with three goals: • Confidentiality • Integrity (of data) • Authentication (of resources, people, systems) • Other goals also considered • E.g., non-repudiation • E-cash (e.g., double spending) • General secure multi-party computation
Private- vs. public-key • For many security goals, there are two types of cryptographic algorithms • Private-key / shared-key / symmetric-key / secret-key • Public-key
Private-key cryptography • The parties communicating share a completely random and secret key • Main point: key is not known to an attacker • This key must be shared (somehow) before they communicate • All “classical” cryptosystems are private-key based • Can also be used for secure storage
Private-key cryptography • For confidentiality: • Private-key (symmetric-key) encryption • For data integrity: • Message authentication codes • (sometimes called cryptographic checksums)
Public-key cryptography • One party (Alice) generates both a public key and a private key (or secret key) • The public key is published; the private key is kept secret • An attacker knows the public key! • The other communicating party (Bob) need not have any key of his own; knows Alice’s key • Techniques for this first developed in the 70’s
Public-key cryptography • For confidentiality: • Public-key encryption • For data integrity: • Digital signatures
To review… • Confidentiality: • Private-key encryption (schemes) • Public-key encryption (schemes) • Integrity: • Message authentication (codes) • Digital signature (schemes) • We will discuss authentication later
Private- vs. public-key I • Disadvantages of private-key • Need to securely share a key • If you can share a key securely, why not just share the message itself? • What if not possible? • Need to know who you want to communicate with in advance! • O(n2) blowup in storage
Private- vs. public-key II • Why study private-key at all? • Private-key is much more efficient (3 orders of magnitude) • Public-key crypto is “harder” to get right • Needs stronger assumptions, more math • Can combine private-key with public-key to get the best of both worlds (for encryption)
Private- vs. public-key III • More disadvantages of public-key crypto • Public-key crypto still requires secure distribution and binding of public keys (PKI) • May (sometimes) be just as hard as sharing a key • Not clear who you are communicating with (for public-key encryption)
Overview • Private-key encryption • Attack model • “Trivial” systems • Show why the problem is hard • Show methods of attack • Convince you not to use “home-brewed” techniques • What do we mean by security? • Block ciphers and modern-day techniques
Overview, continued… • Public-key cryptography • A word about security • Some basic number theory • RSA and El Gamal • Some attacks…and some fixes
Bob Bob Alice Alice C1 K K K K shared info m C = EK(m) m = DK(C)
In more detail… • Alice and Bob share a key K • Must be shared securely • Must be completely random • Must be kept completely secret from attacker • We don’t discuss (for now) how they do this • Plaintext - encryption - ciphertext - decryption • Decryption must recover the message!