PacketSafari

Endpoint capture and decryption feature map

Current PacketSafari sensor coverage for process attribution, packet capture, TLS secrets, managed proxying, and packet-verified decryption.

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

StatusMeaning
QualifiedThe complete stated path passed its platform or disposable-fixture gate. The scope in the same cell still applies.
ConditionalImplemented for specific builds, applications, privileges, or connection states; preflight decides whether the selected target qualifies.
Inventory onlyPacketSafari can identify the process, connection, or provider, but cannot claim decryption.
Compile checkedSource and platform build wiring exist, but the path has not passed a physical-host runtime gate.
PendingNot 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

CapabilityLinuxmacOSWindows
Process ID, name, executable, and start identityQualified native inventoryQualified native libproc inventory on the tested MacQualified bounded Toolhelp inventory on the tested Windows 11 x64 build 26100 VM
Parent/child application treeConditional exact-parent implementation with unit coverageConditional; selected root tested on the tested MacConditional; physically observed inventory and native capture-scoped descendant cleanup are qualified, while exact helper-packet attribution still needs WFP
TCP connection to processQualifiedQualified for accessible processes on the tested MacQualified IP Helper owner tables on the tested Windows 11 VM
UDP connection to processQualifiedConditional implementation for accessible processes; physical UDP attribution gate pendingCompile checked local owner; remote endpoint attribution still requires WFP
Raw packet captureQualified native Linux captureConditional native in-process libpcap PCAPNG capture is proven on the tested Mac; privileged process-aware capture is pendingConditional 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 evidenceConditional selected-process native attribution with explicit unresolved/ambiguous counts; IPv4-mapped application sockets are matched to their wire IPv4 tuplePending signed and entitled Network Extension/pktap pathPending signed WFP path
Current application-tree tuple captureConditional; selected-process projection passes in a Linux container, while a multi-helper application gate remains pendingConditional current-connection tuple projectionCompile checked; runtime capture backend remains pending
Process-transparent managed routingQualified Linux namespace/nftables fixturePending signed Network ExtensionCompile checked x64 WFP driver with WDK INF verification and lab test-signing; installation and live routing proof pending
Native encrypted-session key acquisitionConditional 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 proofInventory only; signed Apple provider acquisition pendingConditional 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 preflightConditional custody-key, exact-PID memory-access, and exact-build lifetime checks are integratedConditional custody-key and exact-PID Mach memory-access checks are implemented; protected targets fail closedConditional 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 applicationsConditional on privileges and provider accessConditional; SIP, hardened runtime, and protected daemons can block accessConditional; 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

TechniquePreserves original path?Existing connectionsCurrent scopeProof and important limits
Uploaded NSS key log (SSLKEYLOGFILE)YesOnly if the matching secrets were recordedSupported analysis workflow for compatible applications on any OSPacketSafari merges the bounded key log into a PCAPNG copy; the capture still needs the required packets
Cooperative application key loggingYesUsually no; configure before the handshakeQualified 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 authenticationRelaunch is required; application/provider support and exact-build qualification still apply. This is not passive recovery from an existing browser
Passive provider extractionYesSometimes, while secrets remain resident and required packets existConditional exact Linux builds for OpenSSL/BoringSSL, NSS/Firefox, GnuTLS, Go TLS, rustls, OpenJDK JSSE, and ChromiumExact binary/build/architecture/ABI qualification; observed secrets do not equal decrypted packets
Supported-provider API launch shimYesNo; the application must be explicitly relaunched before the connectionCompatible 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 treeLinux/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 boundaryYesNew Tor1 schedules and relay cells on new or established Tor1/CGO circuits after attachmentOne 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 coveredNative 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 profileYesSometimesLinux 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 filesOnly 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 recoveryYesNew/updated connections; exact output hooks can work without readable process-memory pagesOptional 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 keysExact 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 evidenceFollows the selected strategyNot an acquisition methodOptional secret-free persisted PCAP and server analysis plus a separately sealed, capture-bound secret artifactThe 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 readinessNot an acquisition methodBefore captureProbe and backend preflight plus operator UI source are implementedA 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 continuationYesRetained sensor segments onlyA 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 deviationThe 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 proxyNoNo; the application must reconnectQualified 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 legsRequires 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 trustNo, used with the proxyNoQualified 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 pathsNo silent persistent machine-wide CA; pinning, mTLS identities, ignored proxy settings, protected apps, and untested application builds remain blockers
Linux kTLS evidenceYesConditionalPrivileged fixture coverageKernel/build qualification is required; this is not general userspace TLS extraction
QUIC traffic secretsYesProvider-dependentExact 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 reopenOther browser/implementation builds, live resumption, migration and established connections remain bounded provider gates; a TCP proxy does not decrypt QUIC/HTTP/3
SSPI plaintext boundaryYes, for an authorized reachable non-PPL processNot an NSS key-log techniqueConditional Windows 11 x64 adapter with exact-process ciphertext-to-PCAP proof for WinRM, FTPS, RDP service CredSSP, and Excel HTTPSSeparate from Schannel traffic-secret extraction; PPL, other builds, and native WFP capture remain explicit gates
Protocol session-key providerYesProtocol-dependentQualified 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 stateTLS 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 adaptersYesCompleted authorized contexts or one exact SPN in the current logonCurrent-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 pendingNo 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 applicationPassive key extractionCooperative key logManaged TLS proxyPacket verificationCurrent public status
OpenSSLExact Linux maintained-layout and direct agreement-output buildsApplication callback plus PacketSafari's supported-API relaunch shim on qualified Linux/macOS buildsCompatible TCP/TLS applicationsTLS 1.2/1.3 recordsConditional; physical macOS/arm64 OpenSSL 3.4.0 supported-API relaunch and named Linux builds pass packet proof
Standalone BoringSSLOne pinned Linux build through maintained-layout, direct traffic-secret, and agreement-output pathsSupported callback when the application exposes itCompatible TCP/TLS applicationsTLS 1.2/1.3 recordsConditional, one exact build
Chromium/ChromeExact Debian Chromium NetworkService passively qualified from its stripped BoringSSL boundaryQualified Linux fixture plus exact macOS Chrome and Windows 11 Edge/Chrome cooperative buildsQualified 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 QUICExact 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 legsConditional; other builds, QUIC resumption/migration, macOS/Windows passive extraction, WebView2, and uninstalled macOS Edge require separate gates
Firefox/NSSExact Debian Firefox ESR passively qualified through its loaded NSS/FreeBL providerQualified Linux fixture plus exact macOS and Windows 11 Firefox cooperative buildsQualified Linux temporary NSS trust plus exact physical macOS and Windows Firefox 153 temporary NSS profilesExact 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 legsConditional; other Firefox/NSS builds, QUIC resumption/migration and macOS/Windows passive extraction require separate gates
Electron/WebView2Exact Electron 42.7.1 Linux/arm64 NetworkService passively qualified; WebView2 and arbitrary builds remain pendingLaunch/provider adapter is build-specificCompatible applications onlyElectron TLS 1.2/1.3 native capture, embedded secrets, reopen, and packet authentication pass for digest 42d84abe…; every other build requires its own gateConditional, one exact Electron build; WebView2 remains inventory-only
Go crypto/tlsExact Go 1.23 Linux profiles, including a stripped build, through pclntab-resolved X25519 ABIInternal output; optimized-away semantics cannot be reconstructedtls.Config.KeyLogWriter when the application enables itCompatible applicationsTLS 1.2/1.3 recordsConditional, exact build/ABI
GnuTLSExact Debian GnuTLS/Nettle direct X25519 output plus maintained-layout profilesQualified fixture plus PacketSafari's supported-API relaunch shim on qualified Linux/macOS buildsCompatible applicationsTLS 1.2/1.3 recordsConditional; physical macOS/arm64 GnuTLS 3.8.4 and named Linux builds pass packet proof
rustlsExact Debian rustls 0.20.8/ring 0.16.20 X25519 outputQualified cooperative fixtureApplication trust and routing dependentTLS 1.2/1.3 records on one exact buildConditional, exact build/ABI
Java JSSECapture-scoped HotSpot attach instruments only JSSE SecretKey derivation returns; it does not guess JIT layoutsNo universal NSS-style application contractQualified Linux temporary JKS fixtureExact OpenJDK 17.0.20 original-path TLS 1.2/1.3 plus both proxy legs verifiedConditional, exact Linux build
Unknown exact Linux TLS buildKDF/string fingerprints, narrow agreement-return fingerprints, exact output ABIs, and authorized bounded memory fallback are implemented; representative OpenSSL/BoringSSL symbol paths are qualifiedProvider-specificCompatible applications may use the managed fallbackTLS 1.2 ECDHE/DHE, TLS 1.3 X25519/HRR/PSK+DHE, and QUIC v1 derivations require exact PID/build/ABI binding and application-packet authenticationConditional trial, never automatic qualification from a symbol or version string
SchannelDirect AES-GCM record key/nonce/AAD/tag acquisition plus session-candidate recovery; only complete captured records that authenticate are admittedNo general SSLKEYLOGFILE contract; direct record material uses the protected capture-bound companionCooperative compatible apps only; not physically qualifiedCompanion replay re-authenticates the exact TLS record; earlier Windows HTTPS and LDAPS-fixture plaintext-boundary gates remain diagnosticConditional and compile-checked pending a live Windows direct-record gate; per-record proof is not a universal traffic secret
Windows SSPI Kerberos/NTLM context ownerClient/server completion hooks plus exported authentication-session key query implemented; not Schannel TLS extractionNot an NSS key-log pathNot a proxy techniqueSMB CCM/GCM packet-only promotion implementedPending production signing and live user-mode context-owner proof
MsQuicExact-instruction-qualified Windows x64 hook using public TLS-secret structures; MsQuic-only processes attach directly after an immediate exact-module digest checkProvider-specificNot handled by the TCP/TLS proxyExact 2.4.17 Windows 11 build passes cross-host capture, DSB embedding, reopen, and authenticated QUIC 1-RTT proofConditional, one exact lab build; HTTP/3, key updates, existing connections, other builds, and production signing pending
CFNetwork / URLSessionSigned Apple-stack adapter pendingNot generally exposed to arbitrary appsCompatible launched apps only; not physically qualifiedApple-stack packet gate pendingInventory only
Network.framework / SecureTransportSigned exact Apple adapters pendingProvider/application-specificCompatible TCP/TLS apps onlyPhysical Apple provider gate pendingInventory only

Protocol coverage

TrafficApplicable evidence strategyWhat must be captured and verifiedCurrent boundary
HTTPS/TLS over TCPPassive secret, cooperative key log, or managed proxy; authorized Windows SSPI plaintext is diagnostic onlyAcquired keys plus handshake where required and authenticating application recordsStrongest key-based coverage is on qualified Linux builds/apps; Windows WinHTTP has boundary correlation but no Schannel keys or DSB
Entra browser transportCooperative browser key log or a future passive browser providerExact application/build, Entra SNI, embedded secrets, and authenticating TLS recordsExact 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 HTTPSSchannel or WebView2 traffic keys; SSPI plaintext is diagnostic onlySelected process/destination, acquired keys, and authenticated captured application recordsOne installed EXCEL.EXE build has boundary correlation only. Office/Entra identity, WebView2 helpers, and Schannel key acquisition remain unqualified
LDAPSPassive TLS/provider session keys; SSPI plaintext is diagnostic onlySuccessful LDAP bind/search whose captured TLS records authenticate with acquired keysA real LDAPv3 journey has boundary correlation on Windows 11, not decryption. Schannel keys, the lab AD controller, and production WFP remain open
FTPSPassive TLS/provider session keys; SSPI plaintext is diagnostic onlyAcquired keys must authenticate control and every negotiated data connectionOne Windows client has control/data boundary correlation, not Schannel key decryption; other clients/builds remain separate gates
RDPSchannel traffic keys plus provider keys for any nested encrypted layerAcquired keys must authenticate TLS/CredSSP, complete packets, and the selected security modeA 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/3Provider traffic secrets or exact X25519 agreement-output derivationConnection IDs, packet number spaces, version-specific salts/labels, 0-RTT and key updatesExact 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
SSHSeparate SSH session-key providerExact build/cipher and captured packets, including rekeysNot 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
KerberosKeytab, authorized session-key provider, or exact-SPN current-logon Windows LSA providerMatching exchanges and authenticating encrypted partsWindows 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 encryptionEndpoint-local final key, exact-SPN current-logon Kerberos candidate, or authorized Kerberos/NTLM exported authentication session keyComplete TCP transform messages authenticated against the selected sessionAES-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 IPsecExact-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 fallbacksEvery claimed IKE direction must authenticate an Encrypted payload; the strongSwan live gate additionally requires ESP proofPinned 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 / TailscaleAuthorized 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 fallbacksCaptured transport packets must authenticate with the recovered key, receiver index, and counterPinned 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
OpenVPNNew 2.6 sessions prefer process-scoped OpenSSL exporter output; exact data-channel hook and bounded memory are fallbacksUDP 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 inconclusiveA 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
TorAuthorized 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 secretsOuter 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 segmentLinux 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 contentUsually unavailableApplication-layer keys, if legitimately obtainableDecrypting 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.