65 lines
3.4 KiB
Markdown
65 lines
3.4 KiB
Markdown
```ruby
|
|
██████╗ ██████╗ ██████╗ ██████╗██╗ ██╗ █████╗ ████████╗
|
|
██╔══██╗╚════██╗██╔══██╗ ██╔════╝██║ ██║██╔══██╗╚══██╔══╝
|
|
██████╔╝ █████╔╝██████╔╝ ██║ ███████║███████║ ██║
|
|
██╔═══╝ ██╔═══╝ ██╔═══╝ ██║ ██╔══██║██╔══██║ ██║
|
|
██║ ███████╗██║ ╚██████╗██║ ██║██║ ██║ ██║
|
|
╚═╝ ╚══════╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
|
|
```
|
|
|
|
[](https://github.com/CarterPerez-dev/Cybersecurity-Projects/tree/main/PROJECTS/advanced/encrypted-p2p-chat)
|
|
[](https://www.python.org)
|
|
[](https://www.solidjs.com)
|
|
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
[](https://www.docker.com)
|
|
[](https://signal.org/docs/)
|
|
|
|
> 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](#learn).*
|
|
|
|
## 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
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
Visit `http://localhost:8080` to open the application.
|
|
|
|
> [!TIP]
|
|
> This project uses [`just`](https://github.com/casey/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](learn/00-OVERVIEW.md) | Prerequisites and quick start |
|
|
| [01 - Concepts](learn/01-CONCEPTS.md) | Security theory and real-world breaches |
|
|
| [02 - Architecture](learn/02-ARCHITECTURE.md) | System design and data flow |
|
|
| [03 - Implementation](learn/03-IMPLEMENTATION.md) | Code walkthrough |
|
|
| [04 - Challenges](learn/04-CHALLENGES.md) | Extension ideas and exercises |
|
|
|
|
|
|
## License
|
|
|
|
AGPL 3.0
|