CMSC 414 Computer (and Network) Security Lecture 2 Jonathan Katz

advertisement
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…
 …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)
1. Threat analysis
2. Policy
3. Specification
4. Design
5. Implementation
6. (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)
Confidentiality
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
Alice
K
shared info
K
Bob
Alice
C1
K
m
C = EK(m)
K
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!
Download