The BSP team takes security seriously. If you discover a vulnerability in BSP protocol implementations, please report it responsibly.
Do NOT open a public GitHub issue for security vulnerabilities.
Email: security@biologicalsovereigntyprotocol.com PGP Key: [link to public key]
Include in your report:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- Acknowledgement: within 48 hours
- Initial assessment: within 7 days
- Fix timeline communicated: within 14 days
- Public disclosure: after fix is deployed (coordinated with reporter)
This repository contains documentation only. Security issues in this repo are limited to:
- Documentation that incorrectly describes security-sensitive flows (key handling, consent signing, recovery)
- Documentation that could mislead implementors into insecure patterns
- Exposed credentials or secrets accidentally committed to docs
- The documentation content itself does not execute code — implementation vulnerabilities should be reported against the relevant repository (bsp-sdk-typescript, bsp-mcp, bsp-id-web, bsp-registry-api)
- Third-party dependencies (report to their maintainers)
- Theoretical vulnerabilities without proof-of-concept
- Social engineering attacks
- Physical access attacks
BSP is built on these security guarantees:
- Keys never leave the device — private keys are generated and stored in IndexedDB, never transmitted
- Consent is cryptographic — ConsentTokens are Ed25519-signed and verified on-chain
- Relayer cannot forge — the relayer pays gas but cannot modify user-signed payloads
- Recovery requires threshold — Shamir 2-of-3 guardian threshold prevents single point of failure
- Arweave permanence — consent history is immutable and auditable forever
- Key algorithm: Ed25519 (tweetnacl)
- Key derivation: BIP39 + PBKDF2
- Key export encryption: AES-256-GCM, PBKDF2-SHA256 (600,000 iterations)
- On-chain storage: Arweave (data) + Aptos (smart contracts)
We do not currently have a formal bug bounty program. Responsible disclosure is recognized in our public CHANGELOG and, for critical findings, we offer protocol recognition as a Security Contributor.
- ConsentTokens are stored on Arweave (permanent). Revocation marks them revoked but does not erase them from the chain.
- The relayer wallet is a centralization point for transaction submission. Future protocol versions will support direct user submission.
- Guardian PII (contact info) stored on Arweave is permanent.