Get a Pentest and security assessment of your IT network.

Cyber Security

Secure Login: CIA Triad

TL;DR

This guide shows how to make your login system more secure by focusing on Confidentiality, Integrity, and Availability (the CIA triad). We’ll cover strong passwords, safe data storage, and keeping the system running.

1. Confidentiality: Protecting Passwords

Confidentiality means only authorised people can see your password. Never store passwords in plain text!

  • Hashing: Use a strong hashing algorithm (like bcrypt, Argon2, or scrypt) to turn the password into an unreadable string.
  • python
    import bcrypt
    
    hashed_password = bcrypt.hashpw(b'mysecretpassword', bcrypt.gensalt()) 
    print(hashed_password)
    
  • Salting: Add a unique random value (the ‘salt’) to each password before hashing. This makes rainbow table attacks much harder. The salt should be stored with the hash.
  • Database Security: Protect your database! Limit access, encrypt data at rest and in transit, and regularly back it up.

2. Integrity: Ensuring Data Isn’t Tampered With

Integrity means making sure passwords haven’t been changed without permission.

  • Secure Connections (HTTPS): Use HTTPS to encrypt all communication between the user and your server. This prevents attackers from intercepting and modifying data during transmission.
  • Input Validation: Check all user input carefully. Prevent SQL injection, cross-site scripting (XSS), and other attacks that could alter data.
  • php
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    // Example of basic validation - more robust checks are needed!
    if (!preg_match('/^[a-zA-Z0-9]+$/', $username)) {
      die('Invalid username');
    }
    
  • Regular Audits: Check your logs for suspicious activity. Look for failed login attempts, unexpected changes to user accounts, or other anomalies.

3. Availability: Keeping the System Online

Availability means making sure users can log in when they need to.

  • Redundancy: Have multiple servers and databases so that if one fails, another takes over.
  • Load Balancing: Distribute traffic across multiple servers to prevent overload.
  • DDoS Protection: Protect against Distributed Denial of Service (DDoS) attacks that can overwhelm your system. Services like Cloudflare can help.
  • Regular Backups: Regularly back up your data so you can restore it quickly in case of a disaster.

4. Multi-Factor Authentication (MFA)

Add an extra layer of security beyond just a password.

  • Types: Common MFA methods include one-time codes sent by SMS, authenticator apps (like Google Authenticator), and biometric authentication.
  • Implementation: Integrate MFA into your login process. Require users to enter a code from their chosen method after entering their password.

5. Password Policies

Enforce strong password rules.

  • Minimum Length: Require passwords of at least 12 characters.
  • Complexity: Encourage a mix of uppercase and lowercase letters, numbers, and symbols.
  • Regular Changes: Consider requiring users to change their passwords periodically (though this is becoming less common in favour of MFA).
Related posts
Cyber Security

Zip Codes & PII: Are They Personal Data?

Cyber Security

Zero-Day Vulnerabilities: User Defence Guide

Cyber Security

Zero Knowledge Voting with Trusted Server

Cyber Security

ZeroNet: 51% Attack Risks & Mitigation