Add X25519 box keypair (operator.boxkey/operator.boxpub) for end-to-end
encryption of all implant->operator message Data fields via
box.SealAnonymous. Prevents eavesdropping on GossipSub traffic.
- Encrypt env.Data before signing in sendEnvelopeDirect and SignAndSend
- Build local wire envelope in sendEnvelopeDirect (avoids mutating caller's
env on send failure, preventing double-encryption on PubSub fallback)
- Serialize beacon stream writes with beaconWriteMu mutex
- Decrypt in operator handleMessage before dispatching to handlers
- Embed box pubkey in implant during arachne generate
- Generate box keys on first operator run, persist to disk
- Add stub files for development compilation
- Single cmd/arachne entry point replaces server, implant, build-implant
- Implant source embedded in operator binary at build time (self-contained)
- generate command embeds unique keypair per implant build (persistent PeerID)
- cover traffic: random noise messages mask beacon timing
- regenerate command: rotate operator keys with warning
- auto-install Go when missing during generate
- liner-based CLI with command history and per-command --help
Decentralized C2 framework built on libp2p (IPFS networking stack).
No servers, no domains, no IPs to block - cryptographic peer identities
communicating over the global p2p network.
Includes:
- Architecture, protocol, implant, server, and security model docs
- Protobuf message definitions (commonpb, arachnepb, rpcpb)
- Cryptography package (Ed25519 keys, signing, PeerID)
- Transport package (libp2p host, GossipSub pubsub, relay)
- Config package with shared types