Skip to content

Threat Model

What Harbor protects against and known limitations.

Security Goals

Harbor aims to provide:

  1. Message confidentiality — Only sender and recipient can read messages
  2. Message authenticity — Recipients can verify message origin
  3. Forward secrecy — Past messages remain secure if keys are compromised
  4. Self-custody — No third party holds your keys

Adversary Model

Harbor considers the following adversaries:

Network Observer

An adversary who can observe network traffic between you and the blockchain.

Protection

Message contents are encrypted end-to-end. Network observers cannot read messages.

Blockchain Observer

An adversary who monitors blockchain transactions and events.

Protection

Message contents are encrypted. Recipient identity is protected by commitments.

Limitation

Sender address, timing, and transaction metadata are visible on-chain.

Malicious Contact

An adversary who is one of your contacts and tries to compromise your security.

Protection

Per-contact sessions isolate compromise. A malicious contact cannot read your messages with other contacts.

Compromised Device

An adversary who gains access to one of your devices.

Limitation

Device compromise exposes device keys and decrypted message history on that device. Forward secrecy protects past messages on other devices. Revoke compromised devices immediately.

What Harbor Protects

ThreatProtection
Message interceptionEnd-to-end encryption
Message tamperingAuthenticated encryption (Poly1305)
Key theft (server-side)Self-custody — no server holds keys
Account lockoutSelf-custody — your keys are your access
Future key compromiseForward secrecy via Double Ratchet
Message replayOn-chain nullifiers

What Harbor Does NOT Protect

ThreatReason
Sender identitySender address is visible on-chain
Message timingTransaction timestamps are public
Device countKey registry reveals registered devices
Communication patternsOn-chain activity is observable
Device compromiseLocal keys can be extracted
Browser compromiseXSS or malicious extensions can access keys

Trust Assumptions

Harbor's security relies on the following assumptions:

  1. Cryptographic assumptions — X25519, Ed25519, XChaCha20-Poly1305, and SHA-256 are secure
  2. Random number generation — Browser's crypto.getRandomValues() provides cryptographically secure randomness
  3. Client integrity — The Harbor client code you run is not modified
  4. Device security — Your device is not compromised by malware
  5. Blockchain liveness — Base L2 continues to operate and process transactions

Known Vulnerabilities

Browser Trust Model

As a web application, Harbor inherits browser security limitations:

  • XSS attacks could potentially access keys in memory
  • Malicious browser extensions could intercept keys
  • Users must trust the served JavaScript

Mitigations:

  • Strict Content Security Policy
  • No inline scripts
  • Keys stored in IndexedDB (not accessible to page scripts directly)

Metadata Leakage

On-chain storage means certain metadata is public:

  • Sender wallet address
  • Transaction timing
  • Number of registered devices

See Privacy Limitations for details.

Recommendations

  1. Create a backup — Export your identity and store it securely
  2. Use a secure device — Keep your device free of malware
  3. Monitor devices — Revoke devices you no longer control
  4. Verify identities — Confirm contact identities through out-of-band channels

Learn More