Web Security
- confidentiality / privacy
- data integrity - people shouldn't be messing/updating the wrong data
- service integrity = your website shouldn't be hi-jacked to do something it's not supposed to do. (availability - denial of service attack = your website is overloaded with bogus requests.)
- authenticity (you wanna know who you're dealing with)
- non-repudiation (saying something is different from giving me something signed in writing.)
EVIL TECHNIQUES
- eavesdropping
- masquerading - pretending to be someone else (address spoofing)
- man in the middle / janus: stand in between 2 communicating parties & modify the conversation (must be done in real time)
- replay: record communication, use data later
Defenses:
- authentication (establishing your identity to others and vice versa. in web, you need 2-way authentication. web doesn’t have social clues of knowing you’re in target)
- secrecy
- you need to know that the public key you have is of target and not of a thief pretending to be target
PUBLIC KEY INFRASTRUCTURE
- there’s a “certificate authority” that is supposed to introduce you to people
- this intro can become cumbersome
- so everyone has a certificate from someone they trust to present another person. i just have to pick someone you trust
- so client needs a certificate from server before using its public key
your browser has a file naming all of the trusted certificate authorities
session key established after CA is presented and deal is made.
- do bulk of communication using symmetric keys - because public key encryption is more expensive. SO both sides agree on DES keys (it's cheaper).
TLS / SSL - transport layer security / secure sockets layer
- https://
- encryption of all content that goes into TCP payload (even the HTTP headers! but that doesn't mean that the TCP headers are encrypted)
- TCP metadata is not encrypted. JUST HTTP STUFF (like an encrypted envelope inside TCP).
Efficiency for Signatures:
- secure session with unauthenticated, anonymous clients:
- easy to forge (fine for low-level security... not that effective)
MD5 Hash Algorithm (re-learn this) (cheap functions carefully designed to make it so it's difficult for an attacker)
- you can't reuse signatures
THIRD PARTY SIGN-ON
- url encoding
- can't use cookies