Endpoint capture and decryption feature map
PacketSafari supports two related workflows:
- Analyze an existing capture. Upload a PCAP/PCAPNG and, when available, its TLS key log.
- Collect endpoint evidence. An optional, administrator-enabled PacketSafari sensor can inventory applications and connections, run an authorized capture, and try an eligible decryption strategy.
Endpoint support is intentionally provider-specific. Finding a process, recognizing its TLS library, observing secrets, embedding those secrets, and proving that packets decrypt are separate results. PacketSafari does not label a flow verified until captured application records authenticate.
For local administrator workflows, the sensor CLI can perform this chain in one command for one exact process: passive-provider preflight and attachment, native capture, bounded key-log sealing, PCAPNG Decryption Secrets Block embedding, capture reopen, packet authentication, and raw-key cleanup. The receipt reports each stage independently. This orchestration does not make an unsupported provider supported, and it never silently switches to a proxy.
The sensor receipt makes that rule machine-readable: keyAcquisition,
keyCustody, evidenceSemantics, decryptionVerified, and
evidencePackageReady stay separate.
decryptionVerified can be true only when actual acquired session keys
authenticate captured encrypted packets. Plaintext-boundary observation is
diagnostic evidence, never decryption.
evidencePackageReady additionally requires those keys in the PCAPNG or a
protected capture-bound companion artifact.
Sensor availability depends on deployment, entitlement, administrator policy, and the downloadable platform build. The qualified Linux rows below describe functional evidence gates; they do not claim production qualification at 1/10/25 GbE or on every NIC, disk, kernel, distribution, or CPU architecture.
How to read the tables
| Status | Meaning |
|---|---|
| Qualified | The complete stated path passed its platform or disposable-fixture gate. The scope in the same cell still applies. |
| Conditional | Implemented for specific builds, applications, privileges, or connection states; preflight decides whether the selected target qualifies. |
| Inventory only | PacketSafari can identify the process, connection, or provider, but cannot claim decryption. |
| Compile checked | Source and platform build wiring exist, but the path has not passed a physical-host runtime gate. |
| Pending | Not currently available as a qualified capability. |
Qualification is exact, not inferred from a marketing version string. A library update, distribution patch, CPU architecture, hardened build, or different application embedding can require a new proof.
Operating-system coverage
| Capability | Linux | macOS | Windows |
|---|---|---|---|
| Process ID, name, executable, and start identity | Qualified native inventory | Qualified native libproc inventory on the tested Mac | Qualified bounded Toolhelp inventory on the tested Windows 11 x64 build 26100 VM |
| Parent/child application tree | Conditional exact-parent implementation with unit coverage | Conditional; selected root tested on the tested Mac | Conditional; physically observed inventory and native capture-scoped descendant cleanup are qualified, while exact helper-packet attribution still needs WFP |
| TCP connection to process | Qualified | Qualified for accessible processes on the tested Mac | Qualified IP Helper owner tables on the tested Windows 11 VM |
| UDP connection to process | Qualified | Conditional implementation for accessible processes; physical UDP attribution gate pending | Compile checked local owner; remote endpoint attribution still requires WFP |
| Raw packet capture | Qualified native Linux capture | Conditional native in-process libpcap PCAPNG capture is proven on the tested Mac; privileged process-aware capture is pending | Conditional PktMon PCAPNG capture is live-qualified on a Windows 11 VM; production WFP capture and exact packet-to-process evidence remain pending |
| Exact packet-to-process evidence | Conditional selected-process native attribution with explicit unresolved/ambiguous counts; IPv4-mapped application sockets are matched to their wire IPv4 tuple | Pending signed and entitled Network Extension/pktap path | Pending signed WFP path |
| Current application-tree tuple capture | Conditional; selected-process projection passes in a Linux container, while a multi-helper application gate remains pending | Conditional current-connection tuple projection | Compile checked; runtime capture backend remains pending |
| Process-transparent managed routing | Qualified Linux namespace/nftables fixture | Pending signed Network Extension | Compile checked x64 WFP driver with WDK INF verification and lab test-signing; installation and live routing proof pending |
| Native encrypted-session key acquisition | Conditional exact TLS/QUIC/SSH/Kerberos providers plus native strongSwan IKEv2/ESP, userspace WireGuard/Tailscale, OpenVPN and C Tor hooks. Pinned strongSwan 6.0.3, wireguard-go, Tailscale 1.98.10, a stripped OpenVPN 2.6.14 client, and selected C Tor roles are live-qualified on Linux arm64 private networks with packet proof | Inventory only; signed Apple provider acquisition pending | Conditional one exact MsQuic 2.4.17 x64 build and the Windows 11 system OpenSSH 9.5p1 ssh.exe Curve25519/AES-GCM path have original-path authenticated packet proof. Current-logon LSA Kerberos acquisition is proven. Selected-process Schannel direct AES-GCM record acquisition, full captured-record authentication, protected companion retention, and replay are implemented but remain compile-checked pending a live Windows gate; this is per-record evidence, not a general NSS traffic secret |
| Secret-evidence readiness preflight | Conditional custody-key, exact-PID memory-access, and exact-build lifetime checks are integrated | Conditional custody-key and exact-PID Mach memory-access checks are implemented; protected targets fail closed | Conditional exact-PID provider detection plus Authenticode, exact hash, and exact-instruction checks are live-qualified on Windows 11 x64 build 26100 |
| Kernel or protected system applications | Conditional on privileges and provider access | Conditional; SIP, hardened runtime, and protected daemons can block access | Conditional; PPL, anti-tamper, and protected services can block access |
Application-tree tuple capture builds a bounded filter from connections owned by the selected process and its exact descendants. Its receipt says tuple projection: another process using the same endpoint cannot be distinguished without per-packet operating-system metadata.
Decryption techniques
| Technique | Preserves original path? | Existing connections | Current scope | Proof and important limits |
|---|---|---|---|---|
Uploaded NSS key log (SSLKEYLOGFILE) | Yes | Only if the matching secrets were recorded | Supported analysis workflow for compatible applications on any OS | PacketSafari merges the bounded key log into a PCAPNG copy; the capture still needs the required packets |
| Cooperative application key logging | Yes | Usually no; configure before the handshake | Qualified Linux fixtures and selected launched applications. Exact macOS Firefox/Chrome and Windows 11 Edge/Firefox/Chrome builds pass selected-target native capture, protected secrets, PCAPNG embedding, reopen, and packet authentication | Relaunch is required; application/provider support and exact-build qualification still apply. This is not passive recovery from an existing browser |
| Passive provider extraction | Yes | Sometimes, while secrets remain resident and required packets exist | Conditional exact Linux builds for OpenSSL/BoringSSL, NSS/Firefox, GnuTLS, Go TLS, rustls, OpenJDK JSSE, and Chromium | Exact binary/build/architecture/ABI qualification; observed secrets do not equal decrypted packets |
| Supported-provider API launch shim | Yes | No; the application must be explicitly relaunched before the connection | Compatible unprotected Linux or macOS applications using dynamically linked OpenSSL/BoringSSL or GnuTLS. The shim is embedded in the sensor, materialized owner-only for the capture, and removed with the process tree | Linux/arm64 OpenSSL 1.1.1w/3.0.12/3.2.3/3.3.2, pinned BoringSSL 3c31f33f61cdb22e, and GnuTLS 3.7.9 pass TLS 1.2/1.3 packet proof; an emulated Linux/amd64 gate passes distro OpenSSL 3.0.20 and GnuTLS 3.7.9. Physical macOS/arm64 OpenSSL 3.4.0 and GnuTLS 3.8.4 also pass. Static/internal calls, protected/setuid/hardened targets, Apple framework TLS, other runtimes, and untested builds remain unavailable |
| Native C Tor schedule and relay boundary | Yes | New Tor1 schedules and relay cells on new or established Tor1/CGO circuits after attachment | One exact, authorized Linux Tor process. Current C Tor 3bfb498, official stable source 0.4.9.8, and Debian 0.4.9.11-0+deb12u1 pass Linux arm64 private-network gates. Client, relay, v3 onion-service origin edge, exact-offset, circuit lifecycle, and outer TLS packet proof are covered | Native amd64 packet proof, protected processes, and traffic whose forward-secure state was erased before attachment remain pending. An exact amd64 distro profile and compile gates do not substitute for a native-kernel run |
| Adaptive exact-build profile | Yes | Sometimes | Linux exact-ELF metadata, bounded DWARF/accessor analysis, and exact-profile trials; amd64 stripped binaries can yield bounded instruction/ABI hypotheses. Bounded Capture now sessions try up to eight hypotheses sequentially with isolated secret files | Only one unique packet-authenticated candidate activates. Zero or multiple verified candidates remain inactive; long-running calibration, arbitrary heap layouts, JIT code, and optimized-away semantics are not claimed |
| Adaptive KDF/agreement and key-output recovery | Yes | New/updated connections; exact output hooks can work without readable process-memory pages | Optional exact-process path. Linux exact ABIs collect bounded C agreement, NSS SECItem, Nettle, Go ABIInternal, ring, stripped BoringSSL traffic-secret, capture-scoped JSSE SecretKey, OpenSSH, Tor, and OpenVPN exporter outputs. Accessible macOS processes now have a bounded Mach memory-delta fallback feeding the same protocol packet verifiers. Packet derivation covers TLS 1.2/1.3, QUIC v1/v2 plus bounded key updates, OpenSSH AES-GCM and split-key ChaCha20-Poly1305 through one rekey, initial IKEv2, default-PSK WireGuard, multi-hop Tor ntor/ntor-v3, and modern OpenVPN exporter direction keys | Exact PID/build/architecture/ABI and packet authentication are mandatory. The macOS adapter is compile-checked, caps snapshots at 64 MiB, zeroes rejected material, and does not bypass SIP, taskgated, sandboxing, hardened runtime, or protected processes. Eleven exact Linux/arm64 provider builds plus actual Firefox ESR, Chromium, and Electron 42.7.1 pass TLS 1.2/1.3 direct passive packet gates. Other builds/architectures/JDKs, protected processes, missing required transcripts, and erased state remain unavailable. PacketSafari does not collect generic RNG output or retain unverified material |
| Split-custody evidence | Follows the selected strategy | Not an acquisition method | Optional secret-free persisted PCAP and server analysis plus a separately sealed, capture-bound secret artifact | The service does not receive the sensor custody key. Packet proof uses a temporary local DSB copy that is deleted; later decryption requires both envelope and endpoint-held key |
| Custody and recovery readiness | Not an acquisition method | Before capture | Probe and backend preflight plus operator UI source are implemented | A failed custody/access check blocks capture. A ready result proves configuration and access—not secret recovery or decryption; visual browser qualification remains pending |
| Approval-bound evidence continuation | Yes | Retained sensor segments only | A bounded metadata inventory powers an investigation-local approval action. Exact recall is bound to the same investigation, capture generation, plan, device, session, target, time window, segment list and projected cost. Secret-free encrypted-payload sketches identify ordinary NAT-translated flow pairs; automatic clock alignment requires one-to-one pair consensus and at most 250 ms median deviation | The sensor checks actual local files before upload, the service checks the receipt again, and neither the Agent tool nor the action sends the full endpoint buffer implicitly. At least three low-fanout packet identities are required; conflicting clocks remain unshifted and unmatched data is not called loss or latency |
| Managed TLS proxy | No | No; the application must reconnect | Qualified Linux explicit and namespace-transparent fixtures; exact physical macOS Firefox/Chrome explicit paths; and exact Windows 11 Edge, Firefox and Chrome explicit paths. The three Windows browsers also pass together with one PktMon lifecycle, one merged DSB and six independently authenticated TLS legs | Requires explicit authorization; changes certificates, TLS/TCP timing, ALPN, and possibly application behavior. Proxy-socket sections are explicitly labelled encrypted observations, not wire-capture evidence |
| Temporary process-scoped trust | No, used with the proxy | No | Qualified Linux Firefox/Chromium/Java fixtures, exact physical macOS Chrome SPKI and Firefox temporary NSS-profile paths, and exact Windows Chromium SPKI and Firefox temporary NSS-profile paths | No silent persistent machine-wide CA; pinning, mTLS identities, ignored proxy settings, protected apps, and untested application builds remain blockers |
| Linux kTLS evidence | Yes | Conditional | Privileged fixture coverage | Kernel/build qualification is required; this is not general userspace TLS extraction |
| QUIC traffic secrets | Yes | Provider-dependent | Exact quic-go fixtures prove QUIC v1, QUIC v2, HTTP/3, and the first key update; exact X25519 agreement-output recovery implements v1/v2 transcript derivation; one exact Windows MsQuic build proves v1 1-RTT. Endpoint-local correlation discovers the ClientHello random and packet-proves passive candidates. Exact Chromium 151.0.7922.137/BoringSSL and Firefox ESR 140.14.0/NSS Linux/arm64 pass actual passive HTTP/3 gates with embedded-secret reopen | Other browser/implementation builds, live resumption, migration and established connections remain bounded provider gates; a TCP proxy does not decrypt QUIC/HTTP/3 |
| SSPI plaintext boundary | Yes, for an authorized reachable non-PPL process | Not an NSS key-log technique | Conditional Windows 11 x64 adapter with exact-process ciphertext-to-PCAP proof for WinRM, FTPS, RDP service CredSSP, and Excel HTTPS | Separate from Schannel traffic-secret extraction; PPL, other builds, and native WFP capture remain explicit gates |
| Protocol session-key provider | Yes | Protocol-dependent | Qualified narrow providers for OpenSSH, Kerberos, SMB3, IKEv2/ESP, userspace WireGuard/Tailscale, OpenVPN, and Tor. Packet-proven retained keys can use the protected capture-bound companion; Tor includes both outer TLS and circuit state | TLS methods do not decrypt these protocols. Broad input keytabs/aliases are not copied wholesale, and provider/build/cipher qualification still applies |
| Windows LSA/SSPI authentication-session adapters | Yes | Completed authorized contexts or one exact SPN in the current logon | Current-logon LSA Kerberos service-ticket acquisition passes on Windows 11. The selected-process SSPI DLL classifies completed Kerberos/NTLM/Negotiate contexts, excludes Schannel/data events, and the sensor admits a derived SMB key only after transform authentication; live production-signed context-owner proof is pending | No LSASS scraping. Opaque cross-process SSPI handles, the built-in redirector, PPL and protected credentials remain unavailable; packet proof is mandatory |
Why several techniques are necessary
The default strategy is passive original-path evidence because it does not change the application's network behavior. Cooperative key logging is more stable when an application exposes a supported API. Exact-build passive profiles can help when supported APIs are unavailable or a connection already exists. Managed proxying is an operator-authorized fallback for compatible applications, not a universal decryption mechanism.
For unknown Linux builds, PacketSafari can recognize exact-binary TLS KDF labels and a narrow set of key-agreement return boundaries. Proven exact ABIs capture the bounded agreement output directly; bounded memory comparison remains a fallback. Neither observation is evidence by itself. The sensor derives the supported TLS/QUIC schedule, reopens the capture, and retains material only when application packets authenticate. It does not collect general RNG output.
TLS provider and application coverage
| Provider or application | Passive key extraction | Cooperative key log | Managed TLS proxy | Packet verification | Current public status |
|---|---|---|---|---|---|
| OpenSSL | Exact Linux maintained-layout and direct agreement-output builds | Application callback plus PacketSafari's supported-API relaunch shim on qualified Linux/macOS builds | Compatible TCP/TLS applications | TLS 1.2/1.3 records | Conditional; physical macOS/arm64 OpenSSL 3.4.0 supported-API relaunch and named Linux builds pass packet proof |
| Standalone BoringSSL | One pinned Linux build through maintained-layout, direct traffic-secret, and agreement-output paths | Supported callback when the application exposes it | Compatible TCP/TLS applications | TLS 1.2/1.3 records | Conditional, one exact build |
| Chromium/Chrome | Exact Debian Chromium NetworkService passively qualified from its stripped BoringSSL boundary | Qualified Linux fixture plus exact macOS Chrome and Windows 11 Edge/Chrome cooperative builds | Qualified Linux temporary-trust path, exact physical macOS Chrome 151 ephemeral-SPKI path, and exact Windows Edge 151/Chrome 151 ephemeral-SPKI paths; proxy mode disables QUIC | Exact Chromium 151.0.7922.137 Linux/arm64 passes passive TLS 1.2/1.3 and HTTP/3 over QUIC v1 with native capture, embedded-secret reopen and application-packet proof. Exact macOS and Windows cooperative builds pass original-path TCP/TLS proof; managed-proxy builds pass both modified-path TLS legs | Conditional; other builds, QUIC resumption/migration, macOS/Windows passive extraction, WebView2, and uninstalled macOS Edge require separate gates |
| Firefox/NSS | Exact Debian Firefox ESR passively qualified through its loaded NSS/FreeBL provider | Qualified Linux fixture plus exact macOS and Windows 11 Firefox cooperative builds | Qualified Linux temporary NSS trust plus exact physical macOS and Windows Firefox 153 temporary NSS profiles | Exact Firefox ESR 140.14.0 Linux/arm64 passes passive TLS 1.2/1.3 and HTTP/3 over QUIC v1 using a bounded exact provider set from the selected process tree, embedded-secret reopen and application-packet proof. Exact macOS and Windows cooperative builds pass original-path TCP/TLS proof; managed-proxy builds pass both modified-path legs | Conditional; other Firefox/NSS builds, QUIC resumption/migration and macOS/Windows passive extraction require separate gates |
| Electron/WebView2 | Exact Electron 42.7.1 Linux/arm64 NetworkService passively qualified; WebView2 and arbitrary builds remain pending | Launch/provider adapter is build-specific | Compatible applications only | Electron TLS 1.2/1.3 native capture, embedded secrets, reopen, and packet authentication pass for digest 42d84abe…; every other build requires its own gate | Conditional, one exact Electron build; WebView2 remains inventory-only |
Go crypto/tls | Exact Go 1.23 Linux profiles, including a stripped build, through pclntab-resolved X25519 ABIInternal output; optimized-away semantics cannot be reconstructed | tls.Config.KeyLogWriter when the application enables it | Compatible applications | TLS 1.2/1.3 records | Conditional, exact build/ABI |
| GnuTLS | Exact Debian GnuTLS/Nettle direct X25519 output plus maintained-layout profiles | Qualified fixture plus PacketSafari's supported-API relaunch shim on qualified Linux/macOS builds | Compatible applications | TLS 1.2/1.3 records | Conditional; physical macOS/arm64 GnuTLS 3.8.4 and named Linux builds pass packet proof |
| rustls | Exact Debian rustls 0.20.8/ring 0.16.20 X25519 output | Qualified cooperative fixture | Application trust and routing dependent | TLS 1.2/1.3 records on one exact build | Conditional, exact build/ABI |
| Java JSSE | Capture-scoped HotSpot attach instruments only JSSE SecretKey derivation returns; it does not guess JIT layouts | No universal NSS-style application contract | Qualified Linux temporary JKS fixture | Exact OpenJDK 17.0.20 original-path TLS 1.2/1.3 plus both proxy legs verified | Conditional, exact Linux build |
| Unknown exact Linux TLS build | KDF/string fingerprints, narrow agreement-return fingerprints, exact output ABIs, and authorized bounded memory fallback are implemented; representative OpenSSL/BoringSSL symbol paths are qualified | Provider-specific | Compatible applications may use the managed fallback | TLS 1.2 ECDHE/DHE, TLS 1.3 X25519/HRR/PSK+DHE, and QUIC v1 derivations require exact PID/build/ABI binding and application-packet authentication | Conditional trial, never automatic qualification from a symbol or version string |
| Schannel | Direct AES-GCM record key/nonce/AAD/tag acquisition plus session-candidate recovery; only complete captured records that authenticate are admitted | No general SSLKEYLOGFILE contract; direct record material uses the protected capture-bound companion | Cooperative compatible apps only; not physically qualified | Companion replay re-authenticates the exact TLS record; earlier Windows HTTPS and LDAPS-fixture plaintext-boundary gates remain diagnostic | Conditional and compile-checked pending a live Windows direct-record gate; per-record proof is not a universal traffic secret |
| Windows SSPI Kerberos/NTLM context owner | Client/server completion hooks plus exported authentication-session key query implemented; not Schannel TLS extraction | Not an NSS key-log path | Not a proxy technique | SMB CCM/GCM packet-only promotion implemented | Pending production signing and live user-mode context-owner proof |
| MsQuic | Exact-instruction-qualified Windows x64 hook using public TLS-secret structures; MsQuic-only processes attach directly after an immediate exact-module digest check | Provider-specific | Not handled by the TCP/TLS proxy | Exact 2.4.17 Windows 11 build passes cross-host capture, DSB embedding, reopen, and authenticated QUIC 1-RTT proof | Conditional, one exact lab build; HTTP/3, key updates, existing connections, other builds, and production signing pending |
| CFNetwork / URLSession | Signed Apple-stack adapter pending | Not generally exposed to arbitrary apps | Compatible launched apps only; not physically qualified | Apple-stack packet gate pending | Inventory only |
| Network.framework / SecureTransport | Signed exact Apple adapters pending | Provider/application-specific | Compatible TCP/TLS apps only | Physical Apple provider gate pending | Inventory only |
Protocol coverage
| Traffic | Applicable evidence strategy | What must be captured and verified | Current boundary |
|---|---|---|---|
| HTTPS/TLS over TCP | Passive secret, cooperative key log, or managed proxy; authorized Windows SSPI plaintext is diagnostic only | Acquired keys plus handshake where required and authenticating application records | Strongest key-based coverage is on qualified Linux builds/apps; Windows WinHTTP has boundary correlation but no Schannel keys or DSB |
| Entra browser transport | Cooperative browser key log or a future passive browser provider | Exact application/build, Entra SNI, embedded secrets, and authenticating TLS records | Exact Windows 11 Edge/BoringSSL, Firefox/NSS, and Chrome/BoringSSL builds pass an original-path login.microsoftonline.com packet gate. This does not qualify sign-in tokens, native Office/WebView2 helpers, protected services, or passive already-running browser recovery |
| Office / Excel HTTPS | Schannel or WebView2 traffic keys; SSPI plaintext is diagnostic only | Selected process/destination, acquired keys, and authenticated captured application records | One installed EXCEL.EXE build has boundary correlation only. Office/Entra identity, WebView2 helpers, and Schannel key acquisition remain unqualified |
| LDAPS | Passive TLS/provider session keys; SSPI plaintext is diagnostic only | Successful LDAP bind/search whose captured TLS records authenticate with acquired keys | A real LDAPv3 journey has boundary correlation on Windows 11, not decryption. Schannel keys, the lab AD controller, and production WFP remain open |
| FTPS | Passive TLS/provider session keys; SSPI plaintext is diagnostic only | Acquired keys must authenticate control and every negotiated data connection | One Windows client has control/data boundary correlation, not Schannel key decryption; other clients/builds remain separate gates |
| RDP | Schannel traffic keys plus provider keys for any nested encrypted layer | Acquired keys must authenticate TLS/CredSSP, complete packets, and the selected security mode | A server-side TermService journey has CredSSP boundary correlation only. Schannel keys, client mstsc.exe, RDP-UDP, legacy security, protected owners and nested layers remain unqualified |
| QUIC/HTTP/3 | Provider traffic secrets or exact X25519 agreement-output derivation | Connection IDs, packet number spaces, version-specific salts/labels, 0-RTT and key updates | Exact quic-go QUIC v1/v2, HTTP/3 and first-update fixtures pass packet proof; agreement recovery implements v1/v2 packet types and labels; one MsQuic v1 build passes on Windows. Exact Chromium 151.0.7922.137/BoringSSL and Firefox ESR 140.14.0/NSS Linux/arm64 additionally pass actual passive HTTP/3 acquisition and embedded PCAPNG packet proof. Other implementations/builds, resumption, migration and established connections remain pending |
| SSH | Separate SSH session-key provider | Exact build/cipher and captured packets, including rekeys | Not TLS; the pinned Linux OpenSSH client passes AES-GCM and OpenSSH ChaCha20-Poly1305 initial/rekey packet proof, and one Windows 11 system OpenSSH 9.5p1 ssh.exe Curve25519/AES-GCM path passes. Exact Curve25519 agreement-output derivation implements both AEADs plus aes128-ctr/aes256-ctr with hmac-sha2-256 or hmac-sha2-256-etm@openssh.com through one rekey and protected-companion replay. Direct packet-qualified evidence verifies bounded multiple rekeys. CTR/MAC and the newer ChaCha branch pass focused fixtures, not new live-provider gates. Other builds/architectures, non-Curve25519 exchanges and broader server roles remain open |
| Kerberos | Keytab, authorized session-key provider, or exact-SPN current-logon Windows LSA provider | Matching exchanges and authenticating encrypted parts | Windows current-logon LSA acquisition and the AP-REQ embedded in a real SMB2 Session Setup are physically packet-proven without LSASS memory access. Packet-proven current-logon session/application keys can be sealed into the protected companion; the redirector's final SMB application key is still unavailable |
| SMB3 encryption | Endpoint-local final key, exact-SPN current-logon Kerberos candidate, or authorized Kerberos/NTLM exported authentication session key | Complete TCP transform messages authenticated against the selected session | AES-128/256 CCM/GCM, capture-derived trials, packed Windows events, and selected-process SSPI completion ingestion pass focused proof. Production-signed user-mode proof and the built-in redirector final key remain open; passwords and NT hashes are never accepted |
| IKEv2 / ESP IPsec | Exact-PID Linux strongSwan final-key hooks, or a recognized exact DH/ECDH output combined with the public IKE_SA_INIT transcript; bounded memory trial and owner-only alias are fallbacks | Every claimed IKE direction must authenticate an Encrypted payload; the strongSwan live gate additionally requires ESP proof | Pinned strongSwan 6.0.3 passes a real Linux arm64 tunnel with native capture, directional IKE keys and a CHILD_SA key. Generic initial AES-GCM agreement derivation is compile-checked, not live-qualified. IKE rekeys, agreement-derived CHILD_SA/ESP, other builds/architectures/daemons, CBC/HMAC, ESN, IPComp and rollover remain pending; VPN credentials are never collected |
| WireGuard / Tailscale | Authorized exact-process Linux native Go key-derivation hook for upstream wireguard-go and Tailscale's fork; ordered exact C X25519 output derivation and bounded memory trial are fallbacks | Captured transport packets must authenticate with the recovered key, receiver index, and counter | Pinned wireguard-go and Tailscale 1.98.10 builds pass real two-node Linux arm64 container gates with native capture and both directions. The default-PSK C-agreement fallback is compile-checked only. Non-zero PSKs, Go/Rust return ABIs, other architectures/builds, broader rotation overlap, and kernel WireGuard remain pending; kernel state needs a separate privileged adapter |
| OpenVPN | New 2.6 sessions prefer process-scoped OpenSSL exporter output; exact data-channel hook and bounded memory are fallbacks | UDP datagrams and bounded TCP frames must authenticate as AEAD P_DATA_V1/P_DATA_V2 with key ID, packet ID and V2 peer ID; TCP gaps remain inconclusive | A stripped OpenVPN 2.6.14 client passes native arm64 TPACKET UDP and TCP qualification through both the supported exporter API and exact private hook, in both directions and across rekey. Live traffic is V2; V1 has deterministic proof. Existing/pre-2.6 PRF sessions, another distro/architecture, live-V1/legacy/epoch formats, broader rekey overlap, and DCO/kernel state remain pending |
| Tor | Authorized native C Tor key-schedule and authenticated relay-boundary hooks on one exact Linux process; exact ordered curve25519_handshake outputs and bounded memory recovery are fallbacks, plus independently acquired outer TLS secrets | Outer TLS 1.2/1.3 records must authenticate. The native path requires link/running-digest or CGO-tag proof, or an exact captured-ciphertext/plaintext-boundary match. The agreement fallback authenticates ntor/ntor-v3, derives Tor1 or negotiated Proposal 359 CGO state, activates keys only after each CREATE2/EXTEND2 finishes, and may use a separately packet-matched native boundary to cross a missing earlier relay-cipher segment | Linux arm64 private-network gates pass for the native hook across current/stable clients, relay, and v3 onion-service origin edge. Current source 3bfb498 also passes a live three-hop ntor-v3 client agreement gate with eight concurrent transfers. That result is an exact-build composed-provider qualification, not universal Tor decryption. Ntor-v2, onion-service agreement contexts, stripped/other builds, native amd64, protected processes, and erased historical state remain unavailable; outer TLS alone never proves onion plaintext |
| End-to-end encrypted application content | Usually unavailable | Application-layer keys, if legitimately obtainable | Decrypting outer TLS does not defeat end-to-end encryption |
The evidence receipt
For an endpoint capture, PacketSafari keeps this chain visible:
process identified
→ connection attributed
→ packets captured
→ provider identified
→ secrets obtained
→ secrets embedded or separately sealed
→ capture reopened
→ each flow cryptographically authenticated
A receipt can therefore say that a provider was found but its adapter was unavailable, that secrets were embedded but required packets were missing, or that one flow verified while another remained inconclusive. It never promotes keys observed to decryption verified.
For split-custody captures, PacketSafari also reopens the protected companion on the endpoint and reconstructs the protocol analyzer from the sealed records. The companion is marked reusable only when those reopened records authenticate the exact capture again. Broad Kerberos/keytab, SMB, and IKE/IPsec imports are reduced to the exact packet-authenticating keys before the companion is written; unrelated candidate keys are not retained.
Important blockers
- A connection established before collection may be unrecoverable if its secrets no longer remain in accessible memory.
- Certificate pinning, mTLS identity handling, applications that ignore proxy settings, and QUIC can block managed proxy mode.
- SIP, hardened runtime, Secure Enclave identities, Windows PPL, anti-tamper, and protected services can prevent access even with administrator approval.
- Application-level or end-to-end encryption remains encrypted after outer TLS is decrypted.
- Missing handshake/application packets make packet verification inconclusive. Direct ephemeral agreement output cannot recover an established forward-secret connection when its required handshake transcript was not captured; if usable traffic-secret/provider state was also erased, the original keys cannot be reconstructed from later ciphertext.
- macOS still requires privileged PKTAP or a signed, installed Network Extension for exact packet-to-process capture and transparent routing. Windows has a lab-only exact-process WFP redirect proof on one Windows 11 x64 build, but production signing, installer lifecycle, embedded-proxy integration, native capture, TLS packet proof, and broader host qualification remain required.
For capture placement and external tools, see How to capture packets. For an existing PCAP plus key log, see Decryption.
