Sendant

Blog / Black-Box Auditing: How to Verify Messenger Security Without Source Code

Sendant blog

Black-Box Auditing: How to Verify Messenger Security Without Source Code

Discover how security teams, civil society analysts, and privacy advocates evaluate client-side encryption and server metadata leakage without relying on a public code repository.

By Sendant · Published September 8, 2026 · Updated September 8, 2026

Verifying messaging security does not require access to private software repositories. By intercepting client-server network traffic, auditing local SQLite database encryption, and validating wire payloads against documented cryptographic specifications, security analysts can definitively determine how to verify messenger security without source code through empirical black-box testing.

For investigative journalists, non-governmental organizations (NGOs), and high-risk civil-society teams, trusting an application based on verbal marketing guarantees or static text repositories introduces severe operational risks. Software deployed to production mobile app stores or web clients operates as an opaque execution artifact. Verifying runtime behavior from the outside—treating the client as an uninspected black box—is the most reliable method for proving whether an application protects message confidentiality, limits telemetry leaks, and handles cryptographic keys correctly.

The Reality of Black-Box Software: Beyond the Code Visibility Myth

Sendant is built on X3DH + Double Ratchet — the same primitives Signal uses — with publicly documented architecture. Sendant's source code is not public.

Reproducible builds—cryptographically verifiable compilation pipelines where independent auditors can compile source files and produce byte-identical binary packages—remain exceptionally rare across consumer mobile and web applications. Operating systems like iOS and Android sign application archives with vendor certificates via proprietary App Store and Google Play ingest pipelines, stripping deterministic artifact verification for everyday end-users. Furthermore, modern web-delivered client interfaces dynamically bundle transpiled JavaScript at runtime, meaning code delivered to a browser session on Tuesday may differ from the build published the previous week.

Consequently, high-assurance threat modeling treats every deployed binary or browser payload as black-box software. When evaluating risk for human rights defenders operating under hostile surveillance regimes, security engineers cannot rely on assumptions about what the software is supposed to do. Instead, evaluators must capture what the software actually transmits, measures, logs, and persists onto the physical disk under simulated threat conditions.

The Black-Box Dilemma: How to Verify Messenger Security Without Source Code

Black-box cryptographic auditing assesses software security by observing external inputs, network communications, memory allocation boundaries, and persistent hardware storage without inspecting raw application source code. When figuring out how to verify messenger security without source code, security professionals treat the communications app as a state machine: you supply known inputs (such as message strings, file attachments, and identity assertions), observe the state transitions, and measure the wire outputs.

This verification paradigm requires separating proprietary application code—the graphical user interface, state managers, and network adapters—from foundational cryptographic primitives. High-assurance communication systems rely on established mathematical primitives such as Curve25519 for key agreements, HMAC-SHA256 for integrity authentication, and AES-256-GCM or ChaCha20-Poly1305 for authenticated symmetric data encryption. While an application's internal wrapper logic may be proprietary, the cryptographic signatures, handshake behaviors, and payload characteristics produced by these primitives leave verifiable traces that external tools can measure with mathematical precision.

Source code reviews alone often fail to identify runtime vulnerabilities. A static code audit will not necessarily detect an insecure production server environment, an improperly configured transport layer, or a silent background telemetry agent injected during build-chain packaging. Conversely, empirical runtime behavioral testing answers the operational questions that matter in field environments:

  • Does the application communicate with undocumented third-party domain endpoints?
  • Are individual chat messages indistinguishable from high-entropy pseudorandom noise?
  • Does the client cache decrypted message plaintext or private identity keys in unencrypted temporary flash storage?
  • What happens to cached payloads when a network drops during transmission?

Evaluating Messenger Architecture and Cryptographic Specifications

Rigorous black-box analysis starts with evaluating messenger architecture through vendor-published whitepapers, formal protocol specifications, and security documentation. A vendor that conceals its protocol design behind vague claims of proprietary algorithms should be disqualified from high-assurance operational use. Mature communications platforms publish explicit cryptographic specifications that state their key establishment mechanisms, ratchet sequences, and forward secrecy guarantees.

When reviewing protocol specifications, evaluators must verify that the underlying protocol provides both forward secrecy (ensuring compromised long-term keys do not expose past messages) and post-compromise security (ensuring ratchets heal compromised sessions after future key exchanges). According to formal cryptanalysis published by the International Association for Cryptologic Research (IACR), modern ratchet-based messaging systems achieve mathematical session independence only when Diffie-Hellman ratchets continuously derive fresh asymmetric keys alongside symmetric hash-chains.

Sendant is built on X3DH + Double Ratchet — the same primitives Signal uses — with publicly documented architecture. Sendant's source code is not public.

Evaluating messenger architecture also requires scrutinizing the vendor's threat model. Legitimate protocol whitepapers state explicitly what the system does not defend against. If a company claims complete metadata invisibility across open telecommunications infrastructure without qualifying its threat model, the specification lacks credibility. Architectural transparency requires identifying message routing boundaries, authentication authorities, server state persistence timelines, and offline queue implementations.

Network Traffic Interception: Analyzing Server-Bound Telemetry and Metadata

The core of empirical black-box testing is active network traffic capture. By deploying an isolated laboratory proxy, evaluators can inspect every inbound and outbound packet generated by the messaging client across different interaction cycles.

Setting Up the Analysis Environment

To inspect transport encryption and detect potential data leaks, configure an auditing workstation running mitmproxy or Wireshark alongside an Android or iOS testing device. Because production secure messengers use TLS pinning to prevent man-in-the-middle decryption, auditors must configure a dynamic instrumentation framework, such as Frida or Objection, on a rooted or jailbroken test device. This framework hooks the operating system's transport verification libraries, permitting the proxy's custom root Certificate Authority (CA) to intercept TLS connections.

Following transport guidelines outlined in NIST SP 800-52 Rev. 2, transport tunnels must enforce TLS 1.3 or high-assurance TLS 1.2 configurations with modern cipher suites. Evaluating the transport handshake ensures the application mandates secure channel parameters as specified by IETF RFC 8446.

Validating Payload Entropy

Once TLS decryption is configured—or alternatively, by isolating and parsing raw TCP/UDP application payloads directly—auditors must analyze outbound message packets. In an end-to-end encrypted (E2EE) architecture, the payload sent to the messaging server must consist exclusively of high-entropy pseudorandom ciphertext.

To confirm that payload contents do not leak plaintext or structured metadata (such as unencrypted JSON envelopes containing message text, sender identifiers, or contact lists), calculate the Shannon entropy of the message data payload:

H(X) = - Σ (P(x_i) * log2(P(x_i)))

For an authenticated ciphertext string (such as an AES-GCM or ChaCha20-Poly1305 frame), the Shannon entropy should approach 8 bits per byte. If an evaluator notices repetitive strings, unpadded variable-length packets matching character counts of user inputs, or cleartext fields containing contact handles, the E2EE implementation is fundamentally flawed.

Examining Telemetry and Metadata Footprints

Black-box network analysis often reveals that while message payloads are encrypted, ancillary telemetry calls continuously leak operational context. Auditors should execute specific user actions (e.g., logging in, typing, uploading an image, changing settings) while cataloging every outbound HTTP request, WebSocket frame, and DNS lookup.

Evaluators must note that Sendant's servers see only ciphertext (message content). Sendant does not claim to hide network-level metadata such as IP addresses. Transparently documenting these protocol boundaries is critical for evaluating operational risk; users routing traffic through standard ISP connections expose transport metadata to underlying networks unless external network shields (such as trusted commercial VPNs or Tor) are layered over the client session.

Crucially, network interception exposes whether an application contacts third-party tracking services. Testers must flag any traffic directed to commercial analytics endpoints, ad trackers, or crash reporting hosts (e.g., Google Firebase, Crashlytics, Mixpanel, AppsFlyer). In secure communication contexts, third-party analytics engines can introduce identifier leaks, cross-app correlation risks, and external data storage outside the messaging vendor's primary security perimeter.

Practical Testing Methodology: How to Verify Messenger Security Without Source Code

To execute a comprehensive, repeatable assessment, security analysts should run through a standardized four-phase black-box testing methodology.

Step 1: Baseline Sandbox and Idle State Analysis

Begin by deploying the client application onto a sanitized testing endpoint with zero auxiliary user accounts, paired Bluetooth devices, or existing contacts. Configure proxy logging and monitor the device across a 24-hour idle period.

  • Document the frequency of background keep-alive heartbeats.
  • Record all outbound IP addresses and resolve their autonomous system numbers (ASNs).
  • Check for unauthorized background beaconing or automated contact harvesting attempts against local device phonebooks.

Step 2: Local Client Storage and Persistence Auditing

End-to-end encryption protects data across untrusted networks, but client-side device compromise can render transit protections irrelevant. Connect the mobile device to a development workstation using Android Debug Bridge (adb) or iOS profiling tools to inspect the application sandbox directory:

  • Inspect internal storage directories (such as /data/data/<package-name>/ on Android or application containers on iOS).
  • Verify that local SQLite databases (e.g., chat histories, media caches) are fully encrypted via SQLCipher or equivalent hardware-backed key material rather than stored in cleartext.
  • Inspect application shared preferences, configuration XML files, and temporary directories. Confirm that private asymmetric identity keys, signed prekeys, and session state ratchets are rarely exposed in temporary log outputs, unencrypted flat files, or crash dumps.

Step 3: Cryptographic Action Logging

Perform targeted actions inside the application while correlating active network and storage captures:

  1. Initial Identity Key Exchange: Monitor the generation and upload of identity prekey bundles. Verify that public prekeys change predictably without exposing identity secrets.
  2. Message Dispatch: Send a sequence of messages containing distinctive byte patterns (e.g., 1000 'A' characters). Validate that payload sizes are padded into standardized block tiers to prevent traffic analysis attacks based on message length.
  3. Attachment Processing: Transmit an image or document. Confirm the client encrypts the file locally with an ephemeral symmetric key before transmission, sending the encrypted blob to object storage while routing the decryption key solely inside the end-to-end encrypted chat envelope.
  4. Key Rotation and Ratchet Advance: Simulate an extended chat session. Confirm that each sequential message transmission produces a distinct payload signature, verifying that the symmetric ratchet advances continuously without key reuse.

Step 4: Degraded Network and Queueing Verification

To assess client stability under field conditions, simulate intermittent connectivity, artificial latency, and sudden packet drops. Sendant keeps working over throttled, restricted, or intermittent networks and can deliver later via an offline mailbox; it is not a radio-mesh app and does not work with no network at all. Understanding how an application responds to dropped connections helps verify resilience under hostile telecommunications interference; review our operational guide on what happens when the network fails to learn more about offline queue mechanics.

Ensure that failed or re-queued transmissions do not trigger unencrypted fallback behaviors, expose plaintext payloads in unhandled retry loops, or reuse expired ratchet keys upon network restoration.

Threat Modeling and Institutional Trust: How to Trust Closed Source Apps Responsibly

Understanding how to trust closed source apps responsibly requires looking past marketing rhetoric to examine underlying vendor incentives, architectural boundaries, and institutional accountability. Zero-trust principles dictate that no software should be trusted blindly; instead, trust must be scoped to specific, verified operational parameters.

Commercial Incentives and Data Minimization

Examine the vendor's primary business model. Applications funded through targeted advertising, user profiling, or opaque data broker partnerships inherently conflict with user privacy. Conversely, platforms supported by direct commercial subscriptions, enterprise software licensing, or clearly structured operational pricing align incentives toward data protection. When an organization does not monetize attention or contact graphs, it has little incentive to harvest user metadata.

Inspect the provider's legal jurisdiction and terms of service. Providers operating in jurisdictions with robust statutory protections and clear legal processes for data requests present fewer coercion risks than entities hosted in jurisdictions known for extrajudicial surveillance. Furthermore, examine published retention schedules and transparent data deletion policies to verify whether user identity records can be purged upon request.

Independent Third-Party Audits

While source code might not be public, reputable software vendors engage independent, accredited cybersecurity firms to review their underlying architectures, cryptographic implementations, and compiled binaries. When evaluating an application, verify its current assessment status: an independent audit is planned; Sendant has not yet been audited. Prior to the formal publication of independent audit results, teams must rely on empirical black-box testing, protocol whitepaper verification, and observable network telemetry checks.

Client Form Factors: Mobile Binaries vs. Browser Environments

Security evaluators must also weigh the operational differences between persistent mobile clients and ephemeral web interfaces. Mobile applications benefit from secure hardware enclaves (such as Apple's Secure Enclave or Android's StrongBox) for local key derivation and hardware-backed storage. However, installing a native mobile binary leaves persistent digital footprints on physical hardware that border agents, hostile actors, or local forensic tools can physically extract.

For sensitive, temporary deployments where endpoint isolation is paramount, an ephemeral browser client may be preferred. Evaluators can explore using an encrypted messenger without installing an app to minimize residual storage artifacts on shared or temporary devices. While in-browser execution introduces risks related to browser extension interference and memory persistence, it prevents persistent mobile operating system storage of client databases, delivering a near-zero physical footprint once the browser cache and session storage are cleared.

Messenger Security Transparency Benchmarks: What Vendors Must Disclose

To establish baseline security transparency without requiring public repository hosting, communications providers must satisfy rigorous verification benchmarks. Evaluators assessing enterprise or civil-society messaging platforms should use the following criteria to determine institutional credibility:

Verification Dimension Minimum Acceptable Disclosure Black-Box Verification Method
Cryptographic Primitives Documented use of standard algorithms (e.g., X3DH, Double Ratchet, Curve25519, AES-256-GCM). Entropy analysis of message payloads, validation of ephemeral handshake key exchanges via proxy monitoring.
Transport Security Mandatory TLS 1.3 or TLS 1.2 with forward-secret cipher suites; TLS certificate pinning enforced across all endpoints. Interception testing with custom root CAs; validating that connections terminate if pinning is not explicitly bypassed via test hooks.
Metadata Exposure Explicit documentation of server-visible headers, IP logging practices, and message routing identifiers. Inspecting intercepted wire headers, verifying that server requests omit persistent hardware UUIDs or contact identifiers.
Local Storage Hygiene Documentation specifying that local caches, identity keys, and message logs are encrypted at rest. Direct extraction of the application data directory; querying local SQLite tables to verify ciphertext storage.
Telemetry & Tracking Zero third-party marketing SDKs, ad-trackers, or external analytics endpoints integrated into client binaries. DNS and egress packet filtering; verifying that outbound connections resolve solely to documented infrastructure hosts.

Transparency is demonstrated through observable engineering boundaries, explicit protocol documentation, and verifiable runtime telemetry. When teams understand how to verify messenger security without source code, they can evaluate secure communications tools based on empirical evidence rather than marketing claims.

Frequently Asked Questions

Can an app truly be private if its source code is not public?

Yes. Mathematical privacy depends on the strength of the underlying cryptographic primitives, key management protocols, and operational data minimization practices rather than code visibility alone. An application that enforces properly configured end-to-end encryption (such as the Double Ratchet protocol) ensures that intermediate servers route only unreadable ciphertext. While open repositories offer visibility into intended application logic, runtime black-box analysis of network traffic and local storage confirms whether private encryption guarantees are maintained during live execution.

How can I confirm my chat messages are actually end-to-end encrypted without reading the code?

You can confirm end-to-end encryption by proxying your device's network traffic through an auditing tool like mitmproxy or Wireshark, bypassing client TLS pinning in a testing sandbox, and inspecting the outbound message payloads sent to the server. If the application is genuinely end-to-end encrypted, the message payload will appear as high-entropy, pseudorandom ciphertext without readable text strings, structured JSON content containing your message, or predictable byte patterns. Shannon entropy calculations on the message body should approach 8 bits per byte.

What tools are needed to capture and analyze encrypted messenger traffic?

Comprehensive black-box auditing requires a network proxy tool (such as mitmproxy, Burp Suite, or Wireshark) running on an isolated workstation, combined with a rooted Android or jailbroken iOS device. Dynamic instrumentation frameworks like Frida or Objection are required to hook transport security functions and bypass TLS certificate pinning in memory. For inspecting local storage at rest, security analysts use standard platform bridge utilities such as Android Debug Bridge (adb) alongside SQLite command-line inspectors.

Does passing network inspection mean the messenger is immune to server-side compromise?

Passing network inspection confirms that the client correctly encrypts message content before transmission and does not transmit cleartext payloads or extraneous metadata over the wire. However, it does not guarantee that the server infrastructure is immune to compromise. In a properly designed end-to-end encrypted system, a compromised server can disrupt service availability or manipulate network metadata, but it cannot decrypt message contents without access to private endpoint keys stored securely on user devices.


Explore Sendant's technical architecture documentation at sendant.io/security to examine our protocol design, or launch our identifier-free web client at app.sendant.io to evaluate its network footprint firsthand.

Try Sendant now

Encrypted messaging with no phone number, no email, no install — open it in any browser.

Open the web appGet the Android app