secure communication

Complete

Summary

Security mechanisms

MechanismConfidentialityIntegrityAuthenticityNon-repudiation
Symmetric Encryption
PKC
Hashing(detects changes)
MAC(shared key)
Digital Signatures

Attacks on encryption

AttackAttacker access
Ciphertext only attackattacker only has the ciphertext
Known plaintext attackattacker has a collection of plaintexts and their corresponding ciphertexts
Chosen plaintext attackattacker 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

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