Skip to main content
🔒 CCY3302 / CS425 — Spring 2026

Secure Distributed
File System

A production-grade distributed file system with 3-way replication, mutual TLS encryption, Totally Ordered Multicast, Raft leader election, and deliberate attack demonstrations — all built in pure Java RMI.

5
Attack Vectors
3
Replica Nodes
4+1
Security Fixes
7
File Operations

What's Inside

Every layer of a real distributed system, hardened for security

📦

3-Way Replication

Every file write is replicated to all three nodes. Lose one, lose two — the system keeps serving data with no single point of failure.

Totally Ordered Multicast

Lamport logical clocks + ACK protocol guarantee every replica applies writes in the exact same order — no divergence, ever.

🗳

Raft Leader Election

Automatic leader election with randomized timeouts. Heartbeats keep the cluster stable. If the leader crashes, a new one takes over in milliseconds.

🔐

Mutual TLS Everywhere

No plaintext TCP. Every connection — client↔auth, client↔node, node↔node — is encrypted with mutual TLS. Both sides present certificates.

🛡

Deserialization Firewall

Custom ObjectInputStream subclass with a strict class whitelist. Any class not explicitly allowed is rejected before instantiation — gadget chains can't fire.

Replay Attack Prevention

Every write carries a UUID nonce and timestamp. Server rejects any operation older than 5 minutes or with a nonce already seen — replays are dead on arrival.

🔑

PBKDF2 Password Hashing

260,000 iterations of SHA-256 with per-user random salt. Constant-time comparison prevents timing side-channel attacks.

🐛

Vulnerable & Secure Versions

Two complete codebases side by side. The vulnerable version has all 5 flaws intentionally exposed. The secured version patches every one — learn by comparing.

System Architecture

Five logical components communicating over mutual TLS RMI

Loading diagram...
JA
Jana Ashraf Ali
Reg #221010291 · CCY3302 / CS425 · Prof. Dr. Ayman Adel Abdel-Hamid