When designing secure software, three key principles—Confidentiality, Integrity, and Availability—work together to ensure data is protected and reliable. These are often referred to as the CIA Triad and are essential for understanding and building secure systems.
Confidentiality ensures that sensitive data is kept private and is only accessible to people who are authorised to see it. This is critical in protecting personal, financial, or corporate data from being accessed or stolen by unauthorised users.
Encryption: Data is converted into a code so it can only be read by those with the right decryption key (e.g., encrypting online banking transactions).
Access Controls: Systems restrict access based on user roles, ensuring only specific individuals can view or edit data.
Secure Protocols: Using tools like HTTPS ensures safe communication over the internet.
When you log in to your email, your password and messages are encrypted to keep hackers from intercepting them.
Without confidentiality, hackers could access sensitive data like passwords, bank details, or private conversations.
What might happen if a company stores customer passwords in plain text instead of encrypting them?
Availability ensures that systems, data, and applications are always accessible to authorised users when they need them. A lack of availability can disrupt businesses, emergency services, or day-to-day online activities.
Redundancy: Backing up data and using secondary systems to take over if the main system fails.
Load Balancing: Distributing user traffic across multiple servers to prevent overloading.
Incident Response: Preparing for emergencies like cyberattacks, hardware failures, or natural disasters to restore services quickly.
An online store ensures availability by using backup servers during major sales events like Boxing Day, preventing website crashes due to high traffic.
Imagine if a government website used during emergencies, like bushfire alerts, went offline when people needed it most.
How can a company prepare its systems to handle sudden spikes in demand?
Integrity focuses on ensuring that data is accurate, reliable, and hasn’t been altered without permission. This protects against unauthorised changes, whether intentional (e.g., hacking) or accidental (e.g., data corruption).
Hashing: A mathematical process creates a unique “fingerprint” of data. Any change to the data alters the fingerprint, signalling tampering.
Digital Signatures: These verify that a file, message, or document hasn’t been altered since being signed.
Checksums: Verifies the correctness of data during transfers (e.g., detecting corrupted files).
When downloading software, websites often provide a checksum (a code you can compare with the downloaded file) to ensure the file hasn’t been tampered with.
Lack of data integrity could lead to serious problems. Imagine if a hospital’s patient records were altered—this could result in incorrect treatments.
How might a lack of integrity in online banking transactions affect customers?
Scenario 1: A hospital system must ensure confidentiality of patient records, integrity of medical diagnoses, and availability of emergency systems. Discuss why all three are important and what could go wrong if one is compromised.
Scenario 2: Think of an app or system you use daily (e.g., a school portal or online shopping site). How might issues in confidentiality, integrity, or availability affect your experience?