4 pointsby Dev-Scar4 hours ago1 comment
  • Dev-Scar4 hours ago
    I built Iriszip (https://iriszip.com) because moving a config file, credential, or dump between two machines in a locked-down network (where cloud drives are blocked by DLP and email/chat logs payloads forever) is still annoying.

    It transfers files (up to 1 GB) and text snippets between two browsers without accounts or persistent storage.

    Under the hood:

    - Pairing & PAKE: Devices pair via a 9-digit one-time code (60s TTL) or QR. The signalling server only sees the first 6 digits to route the session. The last 3 digits never leave the browser. Both peers run SPAKE2 over the full 9-digit code, so the server can't MITM the handshake or brute-force the short code.

    - Hybrid PQ key exchange: Session keys combine X25519 + ML-KEM-768 via HKDF-SHA-256.

    - Encryption: File chunks, filenames, and text are encrypted client-side with ChaCha20-Poly1305.

    - Transport: WebRTC data channels for local/direct transfers, falling back to a stateless in-memory relay (zero disk writes) when NAT gets in the way. The UI explicitly shows whether you are direct or relayed - we treat UI honesty bugs as security bugs.

    - Verification: Client scripts are pinned with Subresource Integrity (hashes in BUILD.md), the server is easy to self-host (SELFHOST.md), and the protocol went through an independent cryptanalysis audit by SCSA (certificate.pdf in the repo).

    No analytics, cookies, or database. Everything wipes when the tab closes.

    Happy to answer questions about the protocol, threat model (SECURITY.md), or self-hosting setup.