Skip to content

Security: Johnsonajibi/PostQuantum-DualUSB-Token-Library

SECURITY.md

Security Policy

We take the security of this project seriously. If you discover a security vulnerability, please follow these guidelines to report it responsibly.

Supported Versions

The following table shows which versions of the library are currently supported with security updates.

Version Supported
0.1.x

Reporting a Vulnerability

Please do not report security vulnerabilities through public GitHub issues.

Instead, please send an email to the maintainer at Johnsonajibi@gmail.com.

Please include the following information in your report:

  • A descriptive title, e.g., [SECURITY] Remote Code Execution in...
  • The version of the library you are using.
  • A detailed description of the vulnerability.
  • Step-by-step instructions on how to reproduce the issue.
  • Any proof-of-concept code or scripts.
  • The potential impact of the vulnerability.

Response Timeline

You can expect the following response timeline:

  • Initial Acknowledgment: Within 48 hours.
  • Initial Assessment: Within 1 week.
  • Progress Updates: We will strive to provide updates every 7-14 days until a fix is released.
  • Public Disclosure: We will coordinate with you to disclose the vulnerability publicly after a fix has been released.

Security Measures in This Library

This library is designed with a "secure-by-default" philosophy and incorporates several layers of defense.

Cryptographic Security

  • Hybrid Encryption: Combines classical AES-256-GCM with post-quantum Kyber1024 to protect against both current and future threats.
  • Post-Quantum Signatures: Uses NIST-standardized Dilithium3 for verifying the authenticity of audit logs and other critical data.
  • Strong Key Derivation: Employs Argon2id, a memory-hard function, to stretch user passphrases and resist brute-force attacks.
  • Timing Attack Mitigation: Uses constant-time comparison functions for cryptographic secrets.

System and Memory Security

  • Secure Memory Wiping: Automatically zeroes out memory that held sensitive data (keys, plaintexts) to prevent data leakage from memory dumps or cold boot attacks.
  • Atomic File Operations: Uses atomic writes to prevent data corruption or partial writes in case of an unexpected shutdown.
  • Input Validation: All inputs, especially file paths and passphrases, are strictly validated to prevent vulnerabilities like path traversal.
  • Device Validation: The library includes functions to ensure that backups are being written to distinct, removable physical devices, preventing accidental overwrites.

Audit and Tamper-Evidence

  • Secure Logging: All critical security events are logged to a local, append-only file.
  • HMAC Chaining: Each log entry is chained to the previous one with an HMAC, making it computationally infeasible to tamper with the log without detection.

Security Testing

  • Unit and Integration Tests: The test suite includes specific tests for cryptographic correctness, exception handling on invalid inputs, and proper memory cleanup.
  • Static Analysis: The codebase is regularly scanned with tools like flake8 and mypy to catch potential issues early.
  • Code Review: All contributions, especially those touching security-sensitive code, undergo a manual security review.

Thank you for helping to keep the PQC Dual USB Library secure.

There aren’t any published security advisories