secure communication
Summary
Security mechanisms
| Mechanism | Confidentiality | Integrity | Authenticity | Non-repudiation |
|---|---|---|---|---|
| Symmetric Encryption | ✅ | ❌ | ❌ | ❌ |
| PKC | ✅ | ❌ | ❌ | ❌ |
| Hashing | ❌ | ✅ (detects changes) | ❌ | ❌ |
| MAC | ❌ | ✅ | ✅ (shared key) | ❌ |
| Digital Signatures | ❌ | ✅ | ✅ | ✅ |
Attacks on encryption
| Attack | Attacker access |
|---|---|
| Ciphertext only attack | attacker only has the ciphertext |
| Known plaintext attack | attacker has a collection of plaintexts and their corresponding ciphertexts |
| Chosen plaintext attack | attacker has access to an encryption oracle can get ciphertext for any plaintext |
differs slightly from
cs2107
Concept
Security requirements
Confidentiality
- only the sender and receiver can understand the message contents
- any eavesdropper should not be able to decipher any useful information form the ciphertext
Integrity
- ensure that the message was not altered in transit, without detection
Authenticity
- confirm the identity of the other party
Non-repudiation
- prove to a 3rd party
- sender cannot deny that they created the message
Malicious actions
- eavesdrop - intercept messages
- injection - inserting messages into a connection
- spoofing/impersonation - fake source address
- hijacking - take over an ongoing connection, replace either party or become man-in-the-middle
- denial of service - prevent others from using a service
Symmetric key encryption
- encryption and decryption keys are the same
- eg.
- ceasar’s cipher - monoalphabetic substitution cipher
- polyalphabetic encryption w cycling pattern
- DES, AES - block ciphers
- weakness:
- sender and receiver need to know a shared key
- how to agree on the key securely
Public key cryptography
- encryption and decryption keys are not related
- anyone can encrypt with public key, only receiver can decrypt with private key
- eg.
- diffie-hellman
- RSA
Session keys
- use PKC to estabilish a symmetric key
- PKC is usually expensive, symmetric key is cheaper
Hashing
- one-way, no unhashing
- designed to prevent collisions
unlike CRC where it is possible to find collisions
- uses:
- software integrity - check downloaded binaries
- detect virus - without providing the virus itself
- password hashing - to avoid storing the actual password
- timestamp/proof of work - ensure nothing is changed
- data integrity - blockchain
Message authentication code(MAC)
- hasing with a shared key
Digital signature
- sender signs a message, establishing owenership
- sender encrypts using private key, anyone can verify using public key
- verifiable - ability to check that the signature and message was generated by the sender
- unforgeable - only the sender could have generated the signature and message
- MAC but with non-repudiation, only sender has the private key
requires the homomorphic property of RSA
Public key infrastructure(PKI)
- need to make sure the public key is public/distributed
Certification autority(CA)
- issues and signs digital certificates to websites/entities
- ensure that its own public key is securly distributed
- authenticate the website’s public key
Secure email
- combination of mechanisms to ensure secure communication