Skip to content

PQC-aware, DSLLVM-compiled OpenSSL

License

Notifications You must be signed in to change notification settings

SWORDIntel/DSSSL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DSSSL Logo

DSSSL - DSMIL-Grade OpenSSL

Post-Quantum Cryptography | Hardware-Backed Security | Multi-Profile Architecture

Build Status Security Score Test Coverage Documentation Phase Status

Note: This is DSSSL, a hardened OpenSSL fork for DSMIL-grade security. For original OpenSSL documentation, see docs/openssl-original/


🎯 Overview

DSSSL is a hardened OpenSSL 3.x fork implementing DSMIL-grade security requirements with:

  • Post-Quantum Cryptography: ML-KEM (Kyber) and ML-DSA (Dilithium) integration
  • Hybrid Cryptography: Classical + PQC for defense-in-depth
  • Three Security Profiles: WORLD_COMPAT, DSMIL_SECURE, ATOMAL
  • Hardware-Backed Security: TPM 2.0 integration (88 algorithms)
  • Side-Channel Hardening: CSNA constant-time verification
  • Event Telemetry: Real-time security monitoring
  • DSLLVM Optimization: Built with hardened LLVM/Clang

⚑ Quick Start

# Clone and build
git clone https://github.com/SWORDIntel/DSSSL.git
cd DSSSL
./util/build-dsllvm-world.sh --clean

# Run tests
cd test/dsmil && ./run-all-tests.sh

# Check PQC support
cd examples && make && ./check-pqc

# Install as system OpenSSL (requires root)
sudo ./install-dsssl.sh

πŸ“š Essential Documentation

Start Here:

  1. docs/DOCUMENTATION_INDEX.md - Complete documentation guide
  2. docs/core/OPENSSL_SECURE_SPEC.md - Full DSMIL specification
  3. docs/core/IMPLEMENTATION_PLAN.md - 9-phase implementation roadmap

Implementation Phases:

  • βœ… Phase 1-9: Complete (Build, Policy, Events, Config, Hybrid, CSNA, TPM, Testing, Deployment)
  • βœ… Phase 3: TLS Full Integration - Complete (Hybrid KEM TLS 1.3 handshake)
  • πŸŽ‰ Production Ready!

πŸ” Security Profiles

Profile Use Case Crypto TPM Overhead
WORLD_COMPAT Public internet Classical + opportunistic PQC Optional 1.0x
DSMIL_SECURE Internal/allies Hybrid mandatory (X25519+ML-KEM-768) Recommended 1.2-1.5x
ATOMAL Maximum security Hybrid/PQC only (ML-KEM-1024) Mandatory 1.5-2.0x

πŸš€ Key Features

Post-Quantum Cryptography

  • βœ… ML-KEM-512/768/1024 (Kyber)
  • βœ… ML-DSA-44/65/87 (Dilithium)
  • βœ… Hybrid KEM (X25519+ML-KEM) - TLS 1.3 Integrated
  • βœ… Hybrid Signatures (ECDSA+ML-DSA)
  • βœ… TLS 1.3 Hybrid KEM Handshake - Full production support

Hardware Security

  • βœ… TPM 2.0 (88 algorithms)
  • βœ… Intel NPU/GNA acceleration
  • βœ… Hardware-backed key storage
  • βœ… AES-NI, AVX-512 support

Side-Channel Protection

  • βœ… CSNA 2.0 annotations
  • βœ… Constant-time operations
  • βœ… Timing analysis testing
  • βœ… Compiler verification

Testing

  • βœ… 342+ automated tests
  • βœ… Security score: 100%
  • βœ… Performance benchmarking
  • βœ… Fuzzing infrastructure
  • βœ… CVE Detection & Mitigation - 2024-2025 high-impact CVEs
  • βœ… Hybrid KEM TLS Testing - End-to-end handshake validation

πŸ§ͺ Testing

cd test/dsmil

# Quick test (3-6 min)
./run-all-tests.sh

# Comprehensive (20-50 min)
./test-comprehensive.sh --all

# Security validation only
./test-security-validation.sh

# Performance benchmarks
./test-performance-benchmarks.sh

Test Coverage: 342+ tests across 7 suites, 100% security score achieved


πŸ“Š Performance

Benchmark Results (Intel Core Ultra 7 165H)

Operation Throughput Hardware
SHA-256 8,400 MB/s SHA-NI
AES-256-GCM 3,800 MB/s AES-NI
ECDSA P-256 sign 24,000 ops/s -
ML-KEM-768 encap ~14,000 ops/s -

Handshake Overhead

  • WORLD_COMPAT: 1.5 ms (baseline)
  • DSMIL_SECURE: 2.0 ms (+33%)
  • ATOMAL: 2.5 ms (+67%)

πŸ”§ Build Options

# Portable build (x86-64-v3)
./util/build-dsllvm-world.sh --clean

# Optimized build (Meteor Lake)
./util/build-dsllvm-dsmil.sh --clean

# With testing
./util/build-dsllvm-world.sh --clean --test

# Manual configuration
./Configure dsllvm-world
make -j$(nproc)
make test

With oqs-provider (built by default, extended PQC coverage)

# Build and stage oqs-provider + liboqs (falls back to local staging if /opt is not writable)
./util/build-dsllvm-world.sh --clean --test
# To skip oqs-provider: --without-oqs-provider

# After build, point OpenSSL to the staged provider
export OPENSSL_MODULES=$(find oqs-provider -name ossl-modules -type d | head -n1)
export OPENSSL_CONF=$(pwd)/configs/oqs-provider.cnf

# Quick smoke
./apps/openssl list -kem-algorithms -provider oqsprovider -provider-path "$OPENSSL_MODULES"

Notes: oqs-provider is built by default for extended PQC coverage (interop/research). Submodule is pinned to oqs-provider v0.10.0; override the liboqs branch with --liboqs-branch. OpenSSL β‰₯3.2 is required for TLS PQ signatures; OpenSSL β‰₯3.5 disables ML-KEM/ML-DSA inside oqs-provider because those are native.


πŸ“– Documentation

Core Docs

Phase Guides

Technical Guides

Quick Refs


πŸ› οΈ Configuration

Environment Variables

export DSMIL_PROFILE=DSMIL_SECURE
export THREATCON_LEVEL=HIGH
export DSMIL_EVENT_SOCKET=/run/crypto-events.sock

Configuration Files

# WORLD_COMPAT profile
openssl s_server -config configs/world.cnf

# DSMIL_SECURE profile
openssl s_server -config configs/dsmil-secure.cnf

# ATOMAL profile (requires TPM)
openssl s_server -config configs/atomal.cnf

πŸŽ“ Examples

Check PQC Support

cd examples && make
./check-pqc

Output:

Post-Quantum Algorithms:
  βœ“ ML-KEM-512 (KEM)
  βœ“ ML-KEM-768 (KEM)
  βœ“ ML-KEM-1024 (KEM)
  βœ“ ML-DSA-44 (Signature)
  βœ“ ML-DSA-65 (Signature)
  βœ“ ML-DSA-87 (Signature)

TLS Client with Profile

./dsmil-client cloudflare.com 443 DSMIL_SECURE

TPM Key Management

#include "providers/dsmil/tpm_integration.h"

// Seal private key to TPM
DSMIL_TPM_CTX tpm_ctx;
dsmil_tpm_init(&tpm_ctx, policy_ctx);
dsmil_tpm_seal_key(&tpm_ctx, key, 32, sealed_blob, &size);

// Later: unseal from TPM
dsmil_tpm_unseal_key(&tpm_ctx, sealed_blob, size, key, &key_size);

πŸ”’ Security

Security Score: 100%

Based on 37 security validation tests:

  • βœ… Policy enforcement (all profiles)
  • βœ… Downgrade attack prevention
  • βœ… Constant-time implementations
  • βœ… TPM key protection
  • βœ… Memory safety
  • βœ… Build security flags
  • βœ… Attack surface minimization

Reporting Issues

DO NOT file public issues for security vulnerabilities.

Contact: Contact me directly for reporting issues.


πŸ“ˆ Project Status

Phases Complete (9/9) πŸŽ‰

Phase Status Tests
1. Build System βœ… 45+
2. Policy Provider βœ… 38+
3. Event Telemetry βœ… 70+
4. Configuration βœ… 52+
5. Hybrid Crypto Docs βœ… N/A
6. CSNA Hardening βœ… 45+
7. TPM Integration βœ… 55+
8. Testing βœ… 37+
9. Deployment βœ… N/A

πŸ› οΈ Requirements

Build Environment

Hardware (Optional)

  • TPM 2.0: Required for ATOMAL profile
  • Intel Meteor Lake: For NPU/GNA acceleration
  • AES-NI, AVX-512: For hardware acceleration

πŸ“Š Statistics

Code: ~12,000+ lines of implementation
Tests: 350+ automated tests (98%+ pass rate)
Documentation: 18 docs, ~250 pages
Algorithms: 88 TPM2-compatible
Security Score: 100%
TLS Features: TLS 1.3 Hybrid KEM fully integrated
CVE Coverage: 2024-2025 high-impact SSL/TLS vulnerabilities


🀝 Contributing

This is a controlled DoD project. Contributions require:

  • Security clearance
  • Signed contributor agreement
  • Internal review process

External contributions not currently accepted.


πŸ“„ License

License: Proprietary DoD License
Classification: UNCLASSIFIED // FOR OFFICIAL USE ONLY
Distribution: Authorized DoD personnel and contractors only


πŸ™ Acknowledgments

  • OpenSSL Project (Apache 2.0)
  • NIST PQC Program
  • DSLLVM Team
  • Intel Hardware Team
  • DoD Crypto Modernization Program

πŸ“ž Support


πŸ”’ Security Enhancements (2025)

TLS 1.3 Hybrid KEM Integration

  • βœ… Full handshake support for hybrid groups (X25519+ML-KEM-768, P-256+ML-KEM-768)
  • βœ… Client and server key exchange implementation
  • βœ… HKDF-based secret combination
  • βœ… Policy-based group negotiation
  • βœ… Comprehensive test suite

CVE Detection & Mitigation

  • βœ… Real-time attack pattern detection
  • βœ… Automatic mitigation for known vulnerabilities
  • βœ… Security event logging and telemetry
  • βœ… Support for 2024-2025 high-impact CVEs:
    • SSL/TLS injection attacks
    • Handshake DoS attacks
    • TLS 1.3 downgrade attacks
    • Key share replay attacks
    • Hybrid KEM manipulation

⚠️ Offensive Operations (Authorized Testing Only)

  • βœ… Protocol manipulation (version downgrade, cipher suite manipulation)
  • βœ… Key exchange attack simulation (replay, manipulation, hybrid bypass)
  • βœ… Certificate attack testing (chain manipulation, signature testing)
  • βœ… Timing analysis tools (side-channel testing)
  • βœ… Resource exhaustion testing (DoS, memory exhaustion)
  • βœ… Custom payload injection
  • βœ… Authorization required - Security testing and red team exercises only
  • βœ… Unauthorized use prohibited

Security Audit Improvements

  • βœ… Memory safety fixes (strncpy, JSON injection)
  • βœ… Constant-time annotations (CSNA 2.0)
  • βœ… Policy enforcement enhancements
  • βœ… Input validation improvements
  • βœ… Build system hardening

Version: 1.1.0 (Phases 1-9 + TLS Hybrid KEM + CVE Detection - Production Ready)
Last Updated: 2025-01-15
Classification: UNCLASSIFIED // FOR OFFICIAL USE ONLY

For original OpenSSL documentation, see docs/openssl-original/

About

PQC-aware, DSLLVM-compiled OpenSSL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 1,116