Bitchat
StandardOSINT Assessment▼
Bitchat OPSEC & Vulnerability Assessment
Project: Bitchat Assessment Date: 2026-01-22 Methodology: Constitutional Research Framework v3 Confidence Score: 0.90
Executive Summary
Bitchat is a novel P2P messaging app using BLE mesh networking with Nostr fallback. While the architecture minimizes server-side attack surface, critical application-layer vulnerabilities were publicly disclosed in July 2025. The creator (Jack Dorsey) acknowledged these issues and added security disclaimers, but fixes remain in progress.
Overall Risk Rating: HIGH (for users requiring security guarantees)
Critical Findings
| Finding | Severity | Status | Impact | |---------|----------|--------|--------| | Identity Authentication Bypass | CRITICAL | In Progress | Attacker can impersonate any contact | | Insufficient Forward Secrecy | HIGH | Acknowledged | Session key compromise exposes all session messages | | Master Key Single Point of Failure | HIGH | Design Limitation | Total permanent compromise if key leaked | | Buffer Overflow | MEDIUM | PATCHED | Memory corruption (fixed in 4 hours) |
Detailed Vulnerability Analysis
1. Identity Authentication Bypass (CRITICAL)
Discovered by: Alex Radocea (July 2025)
Technical Description:
The ephemeral keys aren't properly verified. In fact, they aren't
verified by a user's identity key at all!
The attack: send a private message to another user, present the
public key of whoever you're trying to impersonate, and include
new ephemeral encryption keys.
Even if your target has this remote user marked as a favorite,
the new encryption keys are trusted.
Attack Scenario:
- Attacker intercepts communication path
- Attacker presents victim's public key to target
- Attacker provides own ephemeral keys
- Target believes they're talking to victim
- Attacker reads/modifies all messages
Remediation Status:
- Dorsey committed to migrating to Noise Protocol Framework
- QR code / fingerprint verification being added
- No timeline for completion
2. Insufficient Forward Secrecy (HIGH)
Technical Description: Forward secrecy is implemented at session level only, with static encryption keys per session. Industry standard (Signal Protocol / Double Ratchet) provides per-message forward secrecy.
Impact:
- Compromise of one session key exposes ALL messages in that session
- Unlike Signal, there's no continuous key rotation
- Historical messages vulnerable if keys are later compromised
Comparison: | App | Forward Secrecy Level | |-----|----------------------| | Signal | Per-message (Double Ratchet) | | WhatsApp | Per-message (Double Ratchet) | | Bitchat | Per-session (static keys) |
3. Master Key Single Point of Failure (HIGH)
Technical Description: User identity is tied to a single master private key stored on device.
Impact:
- Malware stealing master key = total, permanent compromise
- No key rotation mechanism
- No recovery mechanism
- "A single piece of malware could harvest master private keys from thousands of users"
4. Buffer Overflow (PATCHED)
Status: Fixed within 4 hours of disclosure Note: Rapid response is a positive indicator of security posture
Infrastructure Analysis
Attack Surface Assessment
Bitchat has minimal server infrastructure by design:
┌─────────────────────────────────────────────────────────┐
│ BITCHAT ARCHITECTURE │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ BLE Mesh ┌─────────┐ │
│ │ Device A│◄──────────────────►│ Device B│ │
│ └────┬────┘ (30m range) └────┬────┘ │
│ │ │ │
│ │ ┌─────────┐ │ │
│ └────────►│ Device C│◄────────┘ │
│ │ (Bridge) │ │
│ └────┬────┘ │
│ │ │
│ │ Nostr (Internet) │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 290+ Nostr Relays │ │
│ │ (3rd party, public)│ │
│ └─────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
What Bitchat DOESN'T operate:
- Authentication servers
- Message relay servers
- User databases
- API endpoints
What they DO operate:
- GitHub repository
- App Store listing
- (Possibly) bitchat.io domain (unverified if official)
Domain Scan Results
| Domain | IP | Hosting | Notes | |--------|-----|---------|-------| | bitchat.free | 185.199.x.x | GitHub Pages | Official site | | bitchat.io | 185.53.179.128 | Unknown | Not official | | bitchat.app | 0.0.0.0 | N/A | Parked/unused |
Assessment: Infrastructure attack surface is minimal. Official site is on GitHub Pages (no custom server). Primary risks are in the application layer, not server infrastructure.
Privacy Features Analysis
Traffic Analysis Protections
| Feature | Implementation | Effectiveness | |---------|---------------|---------------| | Dummy messages | 30-120 second intervals | Good | | Timing jitter | 50-500ms random delays | Good | | Message padding | PKCS#7-style | Good | | Metadata minimization | No sender/recipient in headers | Good |
What Nodes Can See
- TTL (time-to-live) counter
- Message ID
- Encrypted payload
What Nodes CANNOT See
- Sender identity
- Recipient identity
- Message content
- Timestamp of origin
Threat Model Assessment
Threats Bitchat Addresses Well
- ✅ Network surveillance (no central server to monitor)
- ✅ Internet shutdowns (BLE mesh works offline)
- ✅ Account seizure (no accounts to seize)
- ✅ Traffic analysis (dummy messages, timing jitter)
- ✅ Metadata collection (minimal headers)
Threats Bitchat Does NOT Address Well
- ❌ Targeted MITM attacks (identity auth bypass)
- ❌ Device compromise (master key exposure)
- ❌ Sophisticated adversaries (forward secrecy gaps)
- ❌ Long-term key security (no rotation)
Comparison to Alternatives
| Feature | Bitchat | Signal | Briar | Meshtastic | |---------|---------|--------|-------|------------| | No internet required | ✅ (BLE) | ❌ | ✅ (Tor/WiFi) | ✅ (LoRa) | | No account required | ✅ | ❌ (phone #) | ✅ | ✅ | | E2E encryption | ✅* | ✅ | ✅ | ✅ | | Per-message forward secrecy | ❌ | ✅ | ✅ | ❌ | | External security audit | ❌ | ✅ | ✅ | Partial | | Open source | ✅ | ✅ | ✅ | ✅ |
*With known authentication vulnerabilities
Potential Improvements
For Users
DO NOT USE if:
- You are a journalist protecting sources
- You are an activist in a hostile state
- You need verified identity of contacts
- Message confidentiality is critical
ACCEPTABLE for:
- Casual communication
- Experimentation with mesh networking
- Situations where availability > confidentiality
- Backup communication during network outages
For the Bitchat Team
- Priority 1: Complete Noise Protocol migration with proper identity verification
- Priority 2: Implement Double Ratchet or similar for per-message forward secrecy
- Priority 3: Commission external security audit (Trail of Bits, NCC Group, etc.)
- Priority 4: Add key rotation mechanism
Sources
- Security Research: https://blog.trailofbits.com/2025/07/18/building-secure-messaging-is-hard-a-nuanced-take-on-the-bitchat-security-debate/
- Disclosure Coverage: https://techcrunch.com/2025/07/09/jack-dorsey-says-his-secure-new-bitchat-app-has-not-been-tested-for-security/
- Official Repo: https://github.com/permissionlesstech/bitchat
- Whitepaper: https://github.com/permissionlesstech/bitchat/blob/main/WHITEPAPER.md
Assessment conducted using passive OSINT methods only. No active exploitation or penetration testing performed.
Repository Analysis▼
Code Review: Bitchat
Last Updated: 2026-01-22
Repository Overview
| Repository | URL | Primary Language | |------------|-----|------------------| | iOS/macOS | https://github.com/permissionlesstech/bitchat | Swift | | Android | https://github.com/permissionlesstech/bitchat-android | Kotlin |
GitHub Metrics
iOS Repository
| Metric | Value | |--------|-------| | Stars | 24,644 | | Forks | 2,302 | | Open Issues | 232 | | Created | 2025-07-04 | | Last Update | 2026-01-22 | | License | The Unlicense (Public Domain) |
Android Repository
| Metric | Value | |--------|-------| | Stars | 4,560 | | Forks | 636 | | Created | 2025-07-08 | | Last Update | 2026-01-22 | | License | The Unlicense (Public Domain) |
Contributor Analysis
iOS Top Contributors
| Rank | GitHub | Contributions | Identity | |------|--------|---------------|----------| | 1 | jackjackbits | 485 | Jack Dorsey (verified) | | 2 | nothankyou1 | 128 | Unknown | | 3 | qalandarov | 87 | Islam (Facebook/Meta) | | 4 | callebtc | 23 | Calle (Cashu creator) | | 5 | nadimkobeissi | 9 | Nadim Kobeissi (Cure53) |
Total Contributors: 30+
Android Top Contributors
| Rank | GitHub | Contributions | |------|--------|---------------| | 1 | callebtc | 286 | | 2 | moehamade | 9 | | 3 | yet300 | 8 | | 4 | hector6872 | 8 |
Total Contributors: 20+
Code Quality Assessment
Positive Indicators
- ✅ Clear separation of concerns (Noise protocol files isolated)
- ✅ Security-specific modules (Validator, RateLimiter)
- ✅ Whitepaper documenting cryptographic decisions
- ✅ Active development (daily commits)
- ✅ Multi-platform support
Concerns
- ⚠️ No formal security audit
- ⚠️ Custom Noise Protocol implementation (not battle-tested library)
- ⚠️ Security disclaimer in README
- ⚠️ Rapid development pace may outpace review
Code Structure Review
iOS Security-Critical Files
bitchat/
├── Noise/
│ ├── NoiseProtocol.swift ⚠️ Core crypto
│ ├── NoiseSession.swift ⚠️ Session management
│ ├── NoiseSessionManager.swift ⚠️ Multi-session
│ ├── NoiseEncryptionService.swift ⚠️ Encrypt/decrypt
│ ├── NoiseSecurityValidator.swift ✅ Input validation
│ ├── NoiseSecurityConstants.swift ✅ Constants
│ └── NoiseRateLimiter.swift ✅ DoS protection
├── Services/
│ ├── KeychainManager.swift ⚠️ Key storage
│ ├── MessageDeduplicationService.swift ✅ Replay protection
│ └── VerificationService.swift ⚠️ Identity
└── Transport/
└── NostrTransport.swift ⚠️ Network
Legend: ⚠️ Security-critical, ✅ Security-supportive
Dependency Analysis
iOS Dependencies
| Package | Version | Purpose | Risk | |---------|---------|---------|------| | swift-secp256k1 | 0.21.1 | ECC | Low - established | | Arti | Local | Tor | Medium - beta | | BitLogger | Local | Logging | Low |
Supply Chain Assessment
- Direct dependencies: 3 significant
- Transitive dependencies: Unknown (needs audit)
- Known vulnerabilities: None detected
Development Activity
Commit Frequency
| Period | Commits | Notes | |--------|---------|-------| | July 2025 | High | Initial development | | Aug-Dec 2025 | Moderate | Feature development | | Jan 2026 | Active | Ongoing maintenance |
Release History
| Version | Date | Notes | |---------|------|-------| | v1.0 | 2025-07-29 | Initial App Store release | | v1.5.0 | 2026-01-14 | Latest |
Documentation Quality
| Document | Status | Quality | |----------|--------|---------| | README | ✅ Present | Good | | WHITEPAPER.md | ✅ Present | Detailed | | BRING_THE_NOISE.md | ✅ Present | Technical | | CODE_OF_CONDUCT | ❓ Unknown | - | | CONTRIBUTING | ❓ Unknown | - | | SECURITY.md | ❓ Unknown | - |
Testing Assessment
Test Coverage
- Unit Tests: Unknown (not visible in quick analysis)
- Integration Tests: Unknown
- Security Tests: Unknown
Recommended Testing
- Noise Protocol handshake fuzzing
- Message parsing edge cases
- BLE mesh flooding scenarios
- Nostr relay failure handling
License Analysis
License: The Unlicense (Public Domain)
Implications:
- Maximum permissiveness
- No warranty or liability
- Anyone can use, modify, distribute
- No copyleft requirements
Assessment: Unusual choice for security software (most use GPL, MIT, or Apache). Public domain maximizes adoption but provides no protection.
Security Code Patterns
Positive Patterns Observed
// Rate limiting present
NoiseRateLimiter.swift
// Input validation
NoiseSecurityValidator.swift
// Key storage via platform keychain
KeychainManager.swift
// Replay attack mitigation
MessageDeduplicationService.swift
Concerning Patterns
// Custom Noise implementation rather than established library
// Forward secrecy at session level only
// No visible Double Ratchet implementation
Recommendations
For Users
- Review open issues before production use
- Monitor security-labeled issues
- Track contributor activity for signs of abandonment
For Auditors
- Focus on Noise protocol implementation
- Test BLE message handling edge cases
- Verify key derivation correctness
- Assess Nostr relay trust model
For Contributors
- Add comprehensive test suite
- Document security model thoroughly
- Consider using established Noise library
- Implement Double Ratchet
Risk Summary
| Category | Risk Level | Notes | |----------|------------|-------| | Maintainer Risk | Low | Dorsey has resources | | Abandonment Risk | Medium | Personal project status | | Security Risk | High | No audit, known vulns | | Dependency Risk | Low | Few dependencies | | License Risk | Low | Public domain |
Sources
| Source | Type | |--------|------| | GitHub - iOS | Primary | | GitHub - Android | Primary | | GitHub API | Metrics |
Constitutional Research Note: The codebase shows signs of experienced development but lacks the formal security review process expected for a messenger handling sensitive communications. The presence of security-experienced contributors (Kobeissi) is positive, but no substitute for a formal audit.
Team Research▼
Team Analysis: Bitchat
Last Updated: 2026-01-22
Leadership & Founder
Jack Dorsey
Role: Creator, Primary Developer GitHub: @jackjackbits (485 contributions)
Background:
- Co-founder of Twitter/X (2006)
- Co-founder and CEO of Block, Inc. (formerly Square)
- Prominent Bitcoin advocate
- Creator of Cash App
Verification Level: High - extensively documented public figure
Core Contributors (iOS)
| GitHub | Name | Contributions | Background | Verified | |--------|------|---------------|------------|----------| | jackjackbits | Jack Dorsey | 485 | Twitter/X founder, Block CEO | ✅ Yes | | nothankyou1 | Unknown | 128 | Pseudonymous | ❌ No | | qalandarov | Islam | 87 | Facebook/Meta engineer, London | ✅ Yes | | callebtc | Calle | 23 | Cashu creator, Bitcoin developer | ✅ Yes | | nadimkobeissi | Nadim Kobeissi | 9 | Cure53 auditor, Cryptocat creator | ✅ Yes | | michaelneale | - | 6 | Unknown | ❌ No |
Total Contributors: 30+ (iOS repo)
Core Contributors (Android)
| GitHub | Contributions | Role | |--------|---------------|------| | callebtc | 286 | Lead maintainer | | moehamade | 9 | Contributor | | yet300 | 8 | Contributor | | hector6872 | 8 | Contributor |
Total Contributors: 20+ (Android repo)
Notable Team Members
Nadim Kobeissi
Role: Security Contributor Contributions: 9
Background:
- PhD in cryptography formal verification
- Security researcher at Cure53 (250+ security audits)
- Creator of Cryptocat (early E2E encrypted messenger)
- Published academic papers on protocol verification
- Location: Paris, France
Website: https://nadim.computer/
Verification Level: High - academic credentials, public security work
Calle (callebtc)
Role: iOS Contributor, Android Lead Contributions: 23 (iOS), 286 (Android)
Background:
- Creator of Cashu (Chaumian ecash for Bitcoin Lightning)
- Active Bitcoin/Nostr developer
- Member of andOtherStuff collective
Projects: Cashu, nutshell, cashu.me
Verification Level: High - public project history
Islam (qalandarov)
Role: Core Contributor Contributions: 87
Background:
- Engineer at Facebook/Meta
- Location: London, UK
- Active open source contributor
Verification Level: Medium - public GitHub profile, Meta association
Funding & Organization
andOtherStuff Collective
Investment: $10,000,000 (July 2025) Purpose: Open source social media projects including Nostr
Members: | Name | Role | Background | |------|------|------------| | Jack Dorsey | Funder/Member | Twitter co-founder, Block CEO | | Evan Henshaw-Plath | Member | Twitter's first employee | | Calle | Member | Cashu creator | | Alex Gleason | Member | Former Truth Social engineering head | | Jeff Gardner | Member | 4th employee at Intercom |
Source: TechCrunch
Corporate Status
- Direct Corporate Backing: None (personal project)
- Legal Entity: Unknown (open source project)
- Headquarters: N/A (decentralized development)
Development Style
- Leadership: Benevolent dictator (Dorsey)
- Communication: GitHub issues, X/Twitter
- Decision Making: Core team consensus
- Code Review: GitHub PR process
Security Team
External Security Contributors
| Name | Affiliation | Role | |------|-------------|------| | Nadim Kobeissi | Cure53 | Code contributor | | Alex Radocea | - | Vulnerability researcher (disclosed issues) | | Trail of Bits | - | Third-party security analysis |
Note: No dedicated security team. Security comes from community review and individual contributors with security backgrounds.
Research Gaps
| Area | Status | Priority | |------|--------|----------| | Company structure | ❌ Unknown | Medium | | Full contributor identities | ⚠️ Partial | Low | | Employment relationships | ❌ Unknown | Low | | Formal security team | ❌ None | Medium |
Timeline
| Date | Event | |------|-------| | 2025-05-20 | jackjackbits GitHub account created | | 2025-07-04 | Bitchat iOS repo created | | 2025-07-06 | Jack Dorsey announces on X | | 2025-07-16 | $10M investment in andOtherStuff | | 2026-01 | 30+ iOS contributors, 20+ Android |
Sources
| Source | Type | |--------|------| | GitHub - bitchat | Primary | | GitHub - bitchat-android | Primary | | Wikipedia - Bitchat | Reference | | TechCrunch | News | | Nadim Kobeissi | Personal |
Constitutional Research Note: The team is a mix of well-known figures (Dorsey, Kobeissi, Calle) and pseudonymous contributors. The project benefits from Dorsey's personal investment and network but lacks formal corporate structure or dedicated security resources.
Security Analysis▼
Security Analysis: Bitchat
Last Updated: 2026-01-22
Critical Security Notice
Bitchat has NOT received a formal external security audit. The project's own disclaimer states:
"This software has not received external security review and may contain vulnerabilities and does not necessarily meet its stated security goals. Do not use it for production use, and do not rely on its security whatsoever until it has been reviewed."
Known Vulnerabilities
BITCHAT-2025-001: Identity Authentication Bypass
Severity: CRITICAL Disclosed: 2025-07-09 Researcher: Alex Radocea
Description: Ephemeral keys were not verified against identity keys, enabling man-in-the-middle impersonation attacks.
Status: In progress - migrating to Noise Protocol Framework Response Time: Acknowledged
BITCHAT-2025-002: Insufficient Forward Secrecy
Severity: HIGH Disclosed: 2025-07-09
Description: Session-level forward secrecy only, not per-message. No Double Ratchet algorithm implemented.
Impact: If session key is compromised, all messages in that session can be decrypted (unlike Signal which uses per-message ratcheting).
Status: Acknowledged - design limitation
BITCHAT-2025-003: Master Key Single Point of Failure
Severity: HIGH Disclosed: 2025-07-09
Description: Single master key compromise = total permanent access. No key rotation mechanism.
Status: Design limitation
BITCHAT-2025-004: Buffer Overflow
Severity: MEDIUM Disclosed: 2025-07-09
Description: Memory corruption vulnerability in message handling.
Status: PATCHED Response Time: 4 hours
Third-Party Security Analysis
Trail of Bits (2025-07-18)
Assessment: "Vulnerabilities are legitimate and concerning, fundamental design flaws, but early signs promising for fixes"
Source: Trail of Bits Blog
Cryptographic Architecture
Noise Protocol Framework (Current)
| Component | Implementation | |-----------|----------------| | Handshake Pattern | XX (mutual authentication) | | Cipher | ChaCha20-Poly1305 (AEAD) | | Key Exchange | X25519 (Curve25519) | | Hash | SHA-256 | | Key Derivation | HKDF-SHA256 | | Rekey Trigger | 1 hour or 10,000 messages |
Nostr Integration (NIP-17)
- Gift-wrapped messages for metadata privacy
- 290+ relay support
- Public/private key pairs (secp256k1)
Privacy Features
| Feature | Implementation | |---------|----------------| | Dummy Messages | 30-120 second intervals | | Timing Jitter | 50-500ms random delays | | Message Padding | PKCS#7-style | | Metadata | TTL and message ID only |
Security vs. Signal Protocol Comparison
| Feature | Bitchat | Signal | |---------|---------|--------| | Forward Secrecy | Session-level | Per-message (Double Ratchet) | | Post-Compromise Security | ❌ No | ✅ Yes | | Key Rotation | Manual only | Automatic | | Formal Verification | ❌ No | ✅ Yes | | External Audit | ❌ No | ✅ Multiple | | Open Source | ✅ Yes | ✅ Yes |
Security Infrastructure
Code-Level Security
| Component | File | |-----------|------| | Rate Limiting | NoiseRateLimiter.swift | | Replay Protection | MessageDeduplicationService.swift | | Key Storage | KeychainManager.swift (iOS Keychain) | | Validation | NoiseSecurityValidator.swift |
Dependencies
| Package | Version | Security Status | |---------|---------|-----------------| | swift-secp256k1 | 0.21.1 | ✅ Active maintenance | | Arti (Tor) | Local | ⚠️ Beta status |
Audit Status
| Type | Status | |------|--------| | External Security Audit | ❌ Not completed | | Formal Verification | ❌ Not completed | | Bug Bounty Program | ❌ Not available | | Internal Code Review | ✅ GitHub PR process |
Security-Experienced Contributors
- Nadim Kobeissi (Cure53 background, 250+ audits)
- Community security researchers
Vulnerability Response
Disclosed Issues Response Time
| Vulnerability | Response Time | Resolution | |--------------|---------------|------------| | Buffer Overflow | 4 hours | Patched | | Identity Bypass | Days | In progress | | Forward Secrecy | Acknowledged | Design limitation |
Recommendations
For Users
- Do NOT use for high-risk communications until external audit
- Use for low-stakes messaging only
- Understand limitations vs. Signal
- Keep app updated
For Bitchat Team
- Commission external security audit
- Implement Double Ratchet for per-message forward secrecy
- Add key rotation mechanism
- Establish bug bounty program
- Complete Noise Protocol migration
Risk Assessment
| Finding | Severity | Notes | |---------|----------|-------| | No external audit | HIGH | Fundamental concern | | Identity bypass vuln | CRITICAL | Being addressed | | No Double Ratchet | HIGH | Design limitation | | Master key SPOF | HIGH | No rotation | | 4-hour patch response | ✅ Good | Quick response | | Open source | ✅ Good | Community review possible |
Sources
| Source | Type | |--------|------| | Trail of Bits Analysis | Security Research | | TechCrunch - Security Issues | News | | GitHub - BRING_THE_NOISE.md | Official | | Whitepaper | Official |
Constitutional Research Note: Despite security concerns, Bitchat represents an interesting experiment in offline-capable encrypted messaging. The team's quick response to the buffer overflow (4 hours) shows commitment, but the fundamental design limitations (no Double Ratchet, no key rotation) require users to accept different security trade-offs than Signal.
Explore Related Projects
Click nodes to explore connections. Drag to reposition.