Sign inSign up

xerostyle/covcom

By xerostyle

•Updated 4 months ago

Covert communications for private group conversations. https://github.com/xero/covcom

Image
Security
0

1.7K

xerostyle/covcom repository overview

⁠COVCOM

  ▄██▀ ▀█  ▄██▀ █▄  ▀██  ██▀  ▄██▀ ▀█  ▄██▀ █▄   █▄   ▄█
 ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒  ▒▒  ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒▒▄▒▒▒
 ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒▌ ▒▒  ▐▒▒▒     ▐▒▒▒  ▒▒▌  ▒▒ ▀ ▒▒
  ▀██▄ ▄█  ▀██▄ █▀    ▀█▄▀    ▀██▄ ▄█  ▀██▄ █▀  ▄██▄ ▄██▄

  Covert communications for private group conversations.
  Invite, talk, close the client, and the chat vanishes.
  Every message is encrypted with XChaCha20 and signed
  with Ed25519. A BLAKE3 fingerprint on each key allows
  peers to verify one another. SPQR's manual and epoch
  ratchets add forward secrecy, while post-quantum
  ML-KEM-768 encapsulation keeps recorded communications
  unreadable and secure against future cryptanalysis.

GitHub Release Container Image Size GitHub Wiki Publish MIT Licensed

CLI & Web Client Previews

cli and web client previews

⁠https://xero.github.io/covcom/⁠

Crypto stack: XChaCha20-Poly1305 AEAD, ML-KEM-768 post-quantum KEM ratchet, HKDF-SHA-256 chain derivation, Ed25519 message + identity-claim signatures, and a BLAKE3-chained identity fingerprint for out-of-band verification.


⁠Version Support

COVCOM follows a rolling support policy. When a security fix ships, the previous version is deprecated immediately. Only the current release is supported. Deprecated versions receive no patches, so upgrade promptly.

COVCOM releases in tandem with its cryptographic library leviathan-crypto⁠. A vulnerability in either project triggers a coordinated release of both.

Beyond Docker, the same versions ship as GitHub release binaries and as npm packages (covcom⁠ and covcom-server⁠), all cut from the same release and deprecated in lockstep.

TagStatusReason
3.1.0⁠✓ supportedLatest version
3.0.0⁠✗ deprecatedinsufficient rendering sanitization
1.0.0⁠✗ deprecatedXChaCha20 seal wasn't key-committing, thus vulnerable to salamander style partitioning-oracle attacks
0.0.1✗ deprecatedpublic beta

⁠Quick Start

Point chat.example.com at the host you'll run on, then:

docker pull xerostyle/covcom:latest
docker run -d \
  -p 80:80 -p 443:443 \
  -e DOMAIN=chat.example.com \
  -v covcom_caddy_data:/data \
  -v covcom_caddy_config:/config \
  xerostyle/covcom:latest

Caddy auto-provisions a TLS certificate for $DOMAIN on first start and stores it on the covcom_caddy_data volume, so it survives restarts and avoids Let's Encrypt rate limits.

Open https://chat.example.com⁠ in a browser. Create a room, share the invite, & chat.

⁠Environment Variables

VariableDefaultDescription
DOMAINrequiredDomain name for Caddy TLS
PORT1337Internal port the Bun server listens on
ADMIN_TOKENunsetOptional token gating room creation
ROOM_TTL24Hours before empty rooms expire (0 disables)
MAX_ROOM_SIZE20Max participants per room (0 is unlimited)

⁠Documentation

DocumentPurpose
USAGE⁠Client and server applications development and runtime help
PROTOCOL⁠Cipher, chains, ratchet, group model, session lifecycle, server role
CRYPTOGRAPHY⁠Primitives, KDF chains, wire format, invite encoding
THREAT-MODEL⁠Principals, adversary tiers, guarantees, non-goals
CLI-SPEC⁠CLI architecture, rendering, input, widgets, views, & color system
SECURITY-POLICY⁠Supported versions, disclosure policy, cryptographic foundation
DIAGRAM⁠Animated visualization of a session: establishment, epochs, and reconnect ceremonies

⁠License

▄─┐ ▄─┐ ▄ ╷ ▄─┐ ▄─┐ ▄─┌┐
█   █ │ █ │ █   █ │ █ ╵│
▀─┘ ▀─┘  ▀┘ ▀─┘ ▀─┘ ▀  ╵

COVCOM is released under the MIT license⁠

Tag summary

Content type

Image

Digest

sha256:4b511748a…

Size

325.5 MB

Last updated

4 months ago

docker pull xerostyle/covcom