Cybersecurity-Projects/PROJECTS/advanced/encrypted-p2p-chat/README.md

3.4 KiB

██████╗ ██████╗ ██████╗      ██████╗██╗  ██╗ █████╗ ████████╗
██╔══██╗╚════██╗██╔══██╗    ██╔════╝██║  ██║██╔══██╗╚══██╔══╝
██████╔╝ █████╔╝██████╔╝    ██║     ███████║███████║   ██║
██╔═══╝ ██╔═══╝ ██╔═══╝     ██║     ██╔══██║██╔══██║   ██║
██║     ███████╗██║         ╚██████╗██║  ██║██║  ██║   ██║
╚═╝     ╚══════╝╚═╝          ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝   ╚═╝

Cybersecurity Projects Python SolidJS License: AGPLv3 Docker Signal Protocol

End-to-end encrypted peer-to-peer chat with Signal Protocol (Double Ratchet + X3DH) and WebAuthn/Passkey authentication.

This is a quick overview — security theory, architecture, and full walkthroughs are in the learn modules.

What It Does

  • Double Ratchet protocol (Signal) with X3DH key exchange for end-to-end encryption
  • WebAuthn/Passkey authentication with discoverable credentials and multi-device support
  • Forward secrecy and break-in recovery with out-of-order message handling
  • Real-time WebSocket messaging with SurrealDB live queries
  • Presence tracking, typing indicators, read receipts, and heartbeat keep-alive
  • Alembic database migrations with full test suite

Quick Start

docker compose up -d

Visit http://localhost:8080 to open the application.

[!TIP] This project uses just as a command runner. Type just to see all available commands.

Install: curl -sSf https://just.systems/install.sh | bash -s -- --to ~/.local/bin

Stack

Backend: FastAPI, PostgreSQL + SQLModel, SurrealDB, Redis, Alembic

Frontend: SolidJS 1.9, TypeScript, Vite 6, Tailwind CSS v4

Learn

This project includes step-by-step learning materials covering security theory, architecture, and implementation.

Module Topic
00 - Overview Prerequisites and quick start
01 - Concepts Security theory and real-world breaches
02 - Architecture System design and data flow
03 - Implementation Code walkthrough
04 - Challenges Extension ideas and exercises

License

AGPL 3.0