64 lines
2.7 KiB
Markdown
64 lines
2.7 KiB
Markdown
# CSE4303 Introduction to Computer Security (Lecture 15)
|
|
|
|
## Cryptography applications
|
|
|
|
### Authentication (...of users, not data)
|
|
|
|
- Traditional authentication: password-based, single-factor
|
|
- Disadvantage: convenience often chosen over security
|
|
- Weak passwords
|
|
- Password re-use: one password compromised ==> many accounts compromised
|
|
- Attack: "credential stuffing" (testing single stolen password against many accounts)
|
|
|
|
#### SSH keys
|
|
|
|
- Idea: relieve burden of secure passwords
|
|
- Use public/private-key auth instead (can be automated!)
|
|
- Use secure password once to exchange public key
|
|
- Protocol: challenge/response to verify possession of keys
|
|
|
|
#### Case Study: SSH
|
|
|
|
- SSH can use public-key based authentication to authenticate users
|
|
- Generate a pair of public and private keys: `ssh-keygen -t rsa`
|
|
- private key: `/home/seed/.ssh/id_rsa`
|
|
- public key: `/home/seed/.ssh/id_rsa.pub`
|
|
- Register public key with server:
|
|
- Send the public key file to the remote server using a secure channel
|
|
- Add public key to the authorization file `~/.ssh/authorized_keys`
|
|
- Server can use key to authenticate clients
|
|
|
|
#### Time-based One-Time Password (TOTP)
|
|
|
|
- Goal: provide secure 2nd factor for authentication
|
|
- Idea:
|
|
- Generate one-time (single-use) password for each login attempt
|
|
- Compute one-time password using secure HMAC with current time as a parameter
|
|
- Key used for HMAC: exchanged once at setup
|
|
- Protocol: open standard published by OATH, IETF
|
|
- HMAC-based One-Time Password (HOTP)
|
|
- e.g. $TOTP(k) = HOTP(k, C_t)$, where $C_t$ is absolute measure of current time interval
|
|
- Num digits taken from output: 6 to 10
|
|
|
|
### Ransomware
|
|
|
|
- Idea: attacker encrypts victim's data with symmetric cipher, requires ransom payment to decrypt (or provide key)
|
|
- System model: any data store (company database, municipal database, user's hard drive, etc.)
|
|
- Threat model: attacker who has already compromised victim's system
|
|
- Vuln: lack of backups (or prohibitive time to restore); whatever vuln allowed attacker into system
|
|
- Surface: exposed data, and surface of original compromise
|
|
- Vector: encrypt data store and erase or replace original data store
|
|
- Mitigation/defense: keep up-to-date backups (possibly "air-gapped") in separate location; practice restoring from backups
|
|
- Enabler: anonymity of Bitcoin payments
|
|
- Recent-ish examples:
|
|
- Baltimore 2019 (didn't pay, est. $18 million to fix)
|
|
- Atlanta 2018 (~$9 million to fix)
|
|
- Lake City & Riviera City, Florida 2019 (did pay, $500,000+ apiece)
|
|
- Many others since these
|
|
- One of the top projected trends in cybersecurity in 2021 (e.g. by CSO online)
|
|
|
|
### Post-Quantum (PQ) crypto
|
|
|
|
### Zero-Knowledge (ZK) proofs
|
|
|
|
### Homomorphic encryption |