Cryptographic Protocol Coverage

Complete reference of every protocol, cipher suite, and algorithm detected by TYCHON PQC Scanner

Customer-facing reference — detection methods, PQC readiness assessment, and NDJSON event mappings

Coverage at a Glance

40+
Protocol Families
100+
TLS Cipher Suites Probed
18
TLS/SSH Key Exchange Groups
35+
PQC/Hybrid Key Exchange Groups Detected
25+
NDJSON Event Datasets
30+
VPN Client Signatures
PQC Readiness terminology used throughout this document: safe Symmetric AES — resistant to Grover's algorithm at current key sizes  |  transitional Classical asymmetric — vulnerable to future Shor's algorithm, plan migration  |  vulnerable Broken or banned algorithm — migrate immediately  |  critical No encryption or SMBv1 — unacceptable posture

Table of Contents

TLS — Transport Layer Security (all versions)
All Platforms Active network probe STARTTLS tychon.cipher tychon.cipher_quick

The scanner performs a full TLS handshake against each target port, offering all known cipher suites and collecting the server's negotiated cipher, protocol version, certificate chain, and key exchange group. A fast-path probe (-cipherscanquick) collects the single negotiated suite without full enumeration.

TLS / SSL Versions Probed
VersionStatusPQC ReadinessNotes
TLS 1.3RecommendedtransitionalOnly AEAD cipher suites; forward secrecy mandatory; supports PQC/hybrid key exchange groups
TLS 1.2AcceptabletransitionalECDHE/DHE suites with AEAD are acceptable; RSA key exchange and CBC are flagged
TLS 1.1DeprecatedvulnerableRFC 8996 deprecated; no AEAD; SHA-1 MACs common
TLS 1.0DeprecatedvulnerableRFC 8996 deprecated; BEAST/POODLE applicable; disable immediately
SSLv3BrokenvulnerablePOODLE attack; RFC 7568 prohibited; any server supporting SSLv3 is flagged critical
DTLS 1.2AcceptabletransitionalUDP-based TLS for VoIP, gaming, IoT; same cipher suite coverage as TLS 1.2
TLS 1.3 Cipher Suites (5 suites)
Suite NameIANA IDEncryptionHMACPQC Readiness
TLS_AES_256_GCM_SHA3840x1302AES-256-GCMAEADsafe Recommended
TLS_CHACHA20_POLY1305_SHA2560x1303ChaCha20-Poly1305AEADsafe
TLS_AES_128_GCM_SHA2560x1301AES-128-GCMAEADsafe
TLS_AES_128_CCM_SHA2560x1304AES-128-CCMAEADsafe
TLS_AES_128_CCM_8_SHA2560x1305AES-128-CCM-8AEADsafe

Note: TLS 1.3 symmetric encryption is quantum-safe; however the key exchange (ECDH, DHE) is still classically-based and vulnerable to Shor's algorithm unless a PQC/hybrid group is used.

TLS 1.2 — Strong Suites (AEAD, forward secrecy)
Suite NameIANA IDKey ExchangeEncryptionMACPQC Readiness
ECDHE-RSA-AES256-GCM-SHA3840xC030ECDHEAES-256-GCMAEADtransitional
ECDHE-RSA-AES128-GCM-SHA2560xC02FECDHEAES-128-GCMAEADtransitional
ECDHE-ECDSA-AES256-GCM-SHA3840xC02CECDHEAES-256-GCMAEADtransitional
ECDHE-ECDSA-AES128-GCM-SHA2560xC02BECDHEAES-128-GCMAEADtransitional
ECDHE-RSA-CHACHA20-POLY13050xCCA8ECDHEChaCha20-Poly1305AEADtransitional
ECDHE-ECDSA-CHACHA20-POLY13050xCCA9ECDHEChaCha20-Poly1305AEADtransitional
DHE-RSA-AES256-GCM-SHA3840x009FDHEAES-256-GCMAEADtransitional
DHE-RSA-AES128-GCM-SHA2560x009EDHEAES-128-GCMAEADtransitional
DHE-RSA-CHACHA20-POLY13050xCCAADHEChaCha20-Poly1305AEADtransitional
AES256-GCM-SHA3840x009DRSAAES-256-GCMAEADvulnerable
AES128-GCM-SHA2560x009CRSAAES-128-GCMAEADvulnerable
TLS 1.2 / 1.1 / 1.0 — Legacy CBC Suites
Suite NameIANA IDKey ExchangeEncryptionMACPQC Readiness
ECDHE-RSA-AES256-SHA3840xC028ECDHEAES-256-CBCSHA-384transitional
ECDHE-RSA-AES128-SHA2560xC027ECDHEAES-128-CBCSHA-256transitional
ECDHE-RSA-AES256-SHA0xC014ECDHEAES-256-CBCSHA-1vulnerable
ECDHE-RSA-AES128-SHA0xC013ECDHEAES-128-CBCSHA-1vulnerable
DHE-RSA-AES256-SHA2560x006BDHEAES-256-CBCSHA-256transitional
DHE-RSA-AES128-SHA2560x0067DHEAES-128-CBCSHA-256transitional
AES256-SHA2560x003DRSAAES-256-CBCSHA-256vulnerable
AES128-SHA2560x003CRSAAES-128-CBCSHA-256vulnerable
AES256-SHA0x0035RSAAES-256-CBCSHA-1vulnerable
AES128-SHA0x002FRSAAES-128-CBCSHA-1vulnerable
Weak / Broken Cipher Suites (RC4, DES, 3DES, NULL, EXPORT)
Suite NameIANA IDKey ExchangeEncryptionRisk
ECDHE-RSA-DES-CBC3-SHA0xC012ECDHE3DES-CBCCritical
DHE-RSA-DES-CBC3-SHA0x0016DHE3DES-CBCCritical
DES-CBC3-SHA0x000ARSA3DES-CBCCritical
RC4-SHA0x0005RSARC4-128Critical
RC4-MD50x0004RSARC4-128Critical
ECDHE-RSA-RC4-SHA0xC011ECDHERC4-128Critical
DES-CBC-SHA0x0009RSADES-CBCCritical
NULL-MD5 / NULL-SHA0x0001/0x0002RSANoneCritical — No Encryption
Non-AES Symmetric Suites (Camellia, ARIA)
Suite NameKey ExchangeEncryptionOrigin StandardPQC Readiness
ECDHE-RSA-CAMELLIA256-SHA384ECDHECamellia-256-CBCISO/IEC 18033-3, RFC 6367transitional
ECDHE-RSA-CAMELLIA128-SHA256ECDHECamellia-128-CBCISO/IEC 18033-3transitional
ECDHE-RSA-ARIA256-GCM-SHA384ECDHEARIA-256-GCMKorean IETF RFC 6209transitional
ECDHE-RSA-ARIA128-GCM-SHA256ECDHEARIA-128-GCMKorean IETF RFC 6209transitional
TLS Key Exchange Groups — Full Handshake + Passive Detection
Group NameIDTypePQC?Detection MethodStandard
X25519MLKEM7680x11ECHybrid (X25519 + ML-KEM-768)YesFull handshakeNIST FIPS 203 + RFC 7748
SecP256r1MLKEM7680x11EBHybrid (P-256 + ML-KEM-768)YesFull handshakeNIST FIPS 203 + FIPS 186-5
SecP384r1MLKEM10240x11EDHybrid (P-384 + ML-KEM-1024)YesFull handshakeNIST FIPS 203 + FIPS 186-5
MLKEM5120x0200Pure ML-KEMYesFull handshakeNIST FIPS 203
MLKEM7680x0201Pure ML-KEMYesFull handshakeNIST FIPS 203
MLKEM10240x0202Pure ML-KEMYesFull handshakeNIST FIPS 203
BIKE-L1 / BIKE-L3 / BIKE-L5OQSCode-based KEMYesPassive HRROQS / IETF draft
FrodoKEM-640/976/1344 (AES & SHAKE)OQSLattice KEM (conservative)YesPassive HRROQS / IETF draft
x25519_mlkem512, p256_mlkem512, bp256_mlkem512OQSHybrid ML-KEM (non-IANA)YesPassive HRROQS draft
bp384_mlkem768, p384_mlkem768, x448_mlkem768OQSHybrid ML-KEM (non-IANA)YesPassive HRROQS draft
bp512_mlkem1024, p521_mlkem1024OQSHybrid ML-KEM (non-IANA)YesPassive HRROQS draft
X255190x001DClassical ECDHNoFull handshakeRFC 7748
X4480x001EClassical ECDHNoFull handshakeRFC 7748
secp256r1 (P-256)0x0017NIST ECCNoFull handshakeFIPS 186-5, RFC 8422
secp384r1 (P-384)0x0018NIST ECCNoFull handshakeFIPS 186-5, RFC 8422
secp521r1 (P-521)0x0019NIST ECCNoFull handshakeFIPS 186-5, RFC 8422
ffdhe2048 – ffdhe81920x0100–0x0104Finite-Field DHNoFull handshakeRFC 7919
secp256k10x0016ECC (Bitcoin curve)NoFull handshakeNon-NIST, legacy
Green rows: Scanner completes a full TLS 1.3 handshake as a PQC-capable client and records tychon.cipher_negotiation.kex.* fields including quantum_safe and cnsa_20_level.   Blue rows: Server's required group is identified via passive TLS HelloRetryRequest parsing — TLS presence, cipher suite, and KEX group name are all captured without completing the handshake. Validated against all 721 ports of the Open Quantum Safe interop server.
STARTTLS Protocol Ports (TLS-upgraded plaintext)
PortProtocolSTARTTLS Method
21FTPAUTH TLS
25SMTPSTARTTLS
110POP3STLS
143IMAPSTARTTLS
389LDAPSTARTTLS
587SMTP (submission)STARTTLS
3306MySQLMySQL SSL handshake
5432PostgreSQLSSLRequest
1433MSSQLPRELOGIN TLS upgrade
3389RDPCREDSSP / TLS negotiation
6379RedisSTARTTLS
SSH — Secure Shell
All Platforms Active network probe Port 22 (default) tychon.ssh

The scanner performs a full SSH handshake, collecting all negotiated algorithms for key exchange, host key type, symmetric encryption, and MAC. No authentication is attempted.

Algorithm CategoryAlgorithm NamePQC ReadinessNotes
Key Exchange
Key Exchangecurve25519-sha256transitionalMost deployed modern KEX; no PQC protection
Key Exchangeecdh-sha2-nistp256/384/521transitionalNIST ECC; forward secrecy; no PQC
Key Exchangediffie-hellman-group-exchange-sha256transitionalRFC 4419; group size determines classical security
Key Exchangediffie-hellman-group14-sha1vulnerableSHA-1 MAC; 2048-bit DH; deprecated
Key Exchangediffie-hellman-group1-sha1broken768-bit DH; LOGJAM applicable; disabled by default in modern OpenSSH
Host Key Type
Host Keyssh-ed25519transitionalEdDSA on Curve25519; modern default
Host Keyecdsa-sha2-nistp256/384/521transitionalECDSA; forward-secrecy for host auth
Host Keyrsa-sha2-256 / rsa-sha2-512transitionalRSA host key with SHA-2; acceptable key sizes ≥3072
Host Keyssh-rsavulnerableRSA with SHA-1; deprecated RFC 8332
Symmetric Encryption
Encryptionaes256-gcm@openssh.comsafe RecommendedAES-256-GCM AEAD; preferred
Encryptionaes128-gcm@openssh.comsafeAES-128-GCM AEAD
Encryptionchacha20-poly1305@openssh.comsafeChaCha20-Poly1305 AEAD; preferred on CPUs without AES-NI
Encryptionaes256-ctr / aes192-ctr / aes128-ctrsafeAES-CTR; requires separate MAC; acceptable
Encryptionaes256-cbc / aes128-cbctransitionalAES-CBC; Lucky13 risk if no EtM MAC
MAC
MAChmac-sha2-256-etm@openssh.comsafeEncrypt-then-MAC; preferred
MAChmac-sha2-512-etm@openssh.comsafe RecommendedEncrypt-then-MAC; preferred
MAChmac-sha1vulnerableSHA-1 collision risk; deprecate
MAChmac-md5brokenMD5 broken; disable immediately
SMB3 — Server Message Block Encryption
All Platforms Windows (registry augment) TCP network probe — port 445 tychon.non_tls_cipher

An SMB2 NEGOTIATE Request is sent to 127.0.0.1:445 offering all dialects 2.0.2 through 3.1.1. The server's NEGOTIATE Response is parsed for the negotiated dialect and, for SMB 3.1.1, the NegotiateContextList encryption cipher IDs. On Windows the LanmanServer EncryptData registry DWORD is also checked.

Detected StateCipher / ConditionPQC ReadinessQuantum RiskMigration Priority
SMBv1 responseNo encryption — SMBv1vulnerableCriticalCritical
SMB 2.0.2 / 2.1 negotiatedNo encryption (SMB2 lacks native encryption)vulnerableHighHigh
SMB 3.0 / 3.0.2 negotiatedAES-128-CCM (only option)safeLowLow
SMB 3.1.1 — AES-128-GCMAES-128-GCMsafeLowLow
SMB 3.1.1 — AES-256-GCMAES-256-GCM (preferred)safe RecommendedLowLow
SMB 3.1.1 — AES-128-CCMAES-128-CCMsafeLowLow
SMB 3.1.1 — AES-256-CCMAES-256-CCMsafeLowLow

Note: SMB symmetric encryption (AES-GCM/CCM) is quantum-safe. The primary risk is unencrypted SMBv1/v2 traffic which can be captured and replayed. Upgrade path: enable SMB 3.1.1 with EncryptData=1 (Windows) and prefer AES-256-GCM.

SNMPv3 — User-based Security Model (USM)
Linux macOS Windows (registry) Config parse: /etc/snmp/snmpd.conf Windows SNMP service registry Port 161 UDP tychon.non_tls_cipher

No active network probe is sent (USM responses require valid credentials). On Linux/macOS /etc/snmp/snmpd.conf is parsed for createUser directives, collecting auth and priv protocol names. On Windows the SNMP service registry key is checked — Windows SNMP supports only v1/v2c (community strings, no encryption).

CategoryProtocolUSM RolePQC ReadinessQuantum Risk
Authentication
Insecure authMD5AuthvulnerableMedium
Weak authSHA / SHA-1AuthvulnerableMedium
Acceptable authSHA-256AuthtransitionalLow
Acceptable authSHA-384AuthtransitionalLow
Acceptable authSHA-512AuthtransitionalLow
Privacy (Encryption)
Broken privDES / CBC-DESPrivvulnerableCritical
Broken priv3DES / 3DES-EDEPrivvulnerableCritical
Acceptable privAES-128 / CFB-AES-128PrivsafeLow
Preferred privAES-256 / CFB-AES-256Privsafe RecommendedLow
Windows SNMP Service
SNMPv1/v2c onlyCommunity string auth — no encryptionBothvulnerableCritical
Kerberos — Encryption Type Configuration
Windows (registry) Linux (/etc/krb5.conf) macOS (/etc/krb5.conf) Registry: SupportedEncryptionTypes bitmask Config parse: /etc/krb5.conf [libdefaults] Port 88 tychon.non_tls_cipher tychon.quantum_readiness

Windows reads SupportedEncryptionTypes from the Group Policy or LSA registry key (or infers the OS-version default). Linux/macOS parses /etc/krb5.conf [libdefaults] for permitted_enctypes, default_tkt_enctypes, and allow_weak_crypto. RC4-HMAC is exploitable via Kerberoasting (RFC 8429 deprecates it); DES is banned by CNSA 2.0.

EnctypeBitmask Bit (Windows)CategoryPQC ReadinessQuantum Risk
DES-CBC-CRC0x01Broken / bannedvulnerableCritical
DES-CBC-MD50x02Broken / bannedvulnerableCritical
RC4-HMAC0x04Deprecated — KerberoastablevulnerableCritical
AES128-CTS-HMAC-SHA1-960x08AcceptabletransitionalMedium
AES256-CTS-HMAC-SHA1-960x10PreferredtransitionalMedium
AES256-CTS-HMAC-SHA384-192krb5.conf onlyPreferred (SHA-384)transitionalMedium
arcfour-hmac / arcfour-hmac-md5krb5.conf onlyDeprecated — RC4 aliasvulnerableCritical
Note: No PQC-native Kerberos standard exists as of 2026. AES-only configurations are classified transitional (symmetric AES resists Grover's algorithm) but remain vulnerable to Harvest Now, Decrypt Later for long-lived session tickets. Migration guidance will update as IETF/NIST publish PQC Kerberos extensions.
VPN Clients — Detection and Protocol Identification
All Platforms Process scan Registry (Windows) Config file parse tychon.vpn_client

VPN clients are detected by process name, registry presence, and configuration file paths. Tunnel protocol, cipher suite, and key exchange algorithm are extracted from config files when available.

VPN ClientPlatformsPrimary ProtocolDetection Method
Cloudflare WARPWin / Mac / LinuxWireGuard / MASQUEProcess, Registry, Config
Palo Alto GlobalProtectWin / Mac / LinuxIPSec/IKEv2, SSL/TLSProcess, Registry, Config
Cisco AnyConnect / Secure ClientWin / Mac / LinuxDTLS, TLS, IPSecProcess, Registry, Config
Fortinet FortiClientWin / Mac / LinuxSSL-VPN, IPSec/IKEv2Process, Registry, Config
Zscaler Client ConnectorWin / Mac / LinuxTLS, DTLSProcess, Registry
Check Point Endpoint SecurityWin / Mac / LinuxIPSec, SSL-VPNProcess, Registry
WireGuardWin / Mac / LinuxWireGuard (ChaCha20-Poly1305)Process, Config (wg0.conf)
OpenVPNWin / Mac / LinuxSSL/TLS over UDP/TCPProcess, Config (.ovpn)
TailscaleWin / Mac / LinuxWireGuardProcess, Config
Ivanti Pulse SecureWin / MacSSL-VPNProcess, Registry
NordVPN / NordLayerWin / Mac / LinuxNordLynx (WireGuard), OpenVPNProcess, Config
Perimeter81 / Check Point HarmonyWin / Mac / LinuxWireGuard, IPSecProcess, Config
ProtonVPNWin / Mac / LinuxWireGuard, OpenVPN, IKEv2Process, Config
ExpressVPNWin / Mac / LinuxLightway (wolfSSL), OpenVPNProcess, Config
SurfsharkWin / Mac / LinuxWireGuard, OpenVPN, IKEv2Process, Config
Windows Built-in VPNWinIKEv2, L2TP/IPSec, PPTP, SSTPRegistry, WMI
SoftEther VPNWin / LinuxSSL-VPN, L2TP, OpenVPNProcess, Config
TwingateWin / Mac / LinuxWireGuardProcess
CyberGhostWin / MacWireGuard, OpenVPN, IKEv2Process, Registry
IPSec — Internet Protocol Security
All Platforms Config file parse Process scan Service status tychon.ipsec_tunnel
ImplementationPlatformsConfig FileIKE Versions
Windows Built-in IPSecWindowsRegistry / PowerShellIKEv1, IKEv2
strongSwanWin / Mac / Linuxipsec.conf, swanctl.confIKEv1, IKEv2
libreswanLinuxipsec.confIKEv1, IKEv2
openswanLinux (legacy)ipsec.confIKEv1
Linux Kernel IPSec (xfrm)Linuxiproute2 / netstatIKEv1, IKEv2

Fields captured: protocol (IKEv1/IKEv2), mode (tunnel/transport), authentication method (PSK/certificate/EAP), encryption algorithm, integrity algorithm, DH group, tunnel endpoint addresses.

MACsec — IEEE 802.1AE Layer-2 Encryption
Linux Windows macOS sysfs / ip link Registry (Windows) tychon.macsec
Cipher SuiteKey LengthCNSA 2.0PQC ReadinessScore
GCM-AES-256256-bitYessafe80 / 100
GCM-AES-256-XPN256-bitYessafe80 / 100
GCM-AES-128128-bitNo (CNSA 2.0 requires 256)transitional50 / 100
GCM-AES-128-XPN128-bitNotransitional50 / 100
Unknown / noneNovulnerable20 / 100

Additional flags assessed: encrypt (authentication-only vs. confidentiality), replay_protect (replay window size), MKA (802.1X key agreement) enabled, validate: strict/check/disabled.

IBM MQ — Message Queue Channel Encryption
All Platforms Active network probe (port 1414) Direct TLS probe (port 1415) STARTTLS probe (localhost) tychon.non_tls_cipher

IBM MQ uses TLS at the TCP layer — the TLS handshake completes before any MQ protocol bytes are exchanged. On port 1414 (standard listener), a 28-byte MQTSH probe is sent after TLS fails; a TSH  signature in the response confirms MQ presence without TLS. Port 1415 (dedicated SSL listener) and port 9443 (MQ REST API) receive a direct TLS ClientHello. TLS-protected MQ channels are also detected by the standard TLS probe and labeled ibmmq+tls.

ConfigurationPortDetection MethodPQC ReadinessQuantum RiskAction
MQ channel with TLS 1.3 + PQC hybrid KEX1414 / 1415TLS probe → ibmmq+tlstransitionalMediumUpgrade KEX to X25519MLKEM768 when IBM MQ supports it
MQ channel with TLS 1.2 (ECDHE-AES-GCM)1414 / 1415TLS probe → ibmmq+tlstransitionalHighUpgrade to TLS 1.3; add PQC hybrid KEX
MQ channel with TLS 1.0 / 1.1 or weak cipher1414 / 1415TLS probe → ibmmq+tlsvulnerableCriticalDisable TLS 1.0/1.1; enforce TLS 1.2+ with AEAD ciphers
MQ channel — no TLS (SSLCIPH not set)1414MQTSH binary probevulnerableCriticalSet SSLCIPH on all channels; enforce SSLPEER; require TLS 1.2+

MQTSH probe: 28-byte Transmission Segment Header (StrucId="TSH ", SegmentType=INITIAL). IBM MQ responds with a recognizable error frame when TLS is absent, exposing the channel without authentication or encryption. Common IBM MQ process names monitored: amqrmppa, runmqlsr, amqzmgr0.

NFS — Network File System
Linux macOS Active network probe (port 2049) /proc/mounts + /proc/fs/nfsd/exports (Linux) /sbin/mount (macOS) tychon.non_tls_cipher

Local NFS mounts and server exports are parsed from the OS mount table — no network probing required for local detection. For remote scans, port 2049 receives a direct TLS ClientHello (RFC 9289 NFS-over-TLS) first; if TLS fails, a 40-byte ONC RPC NULL call (XID 0x12345678, Program 100003 / NFS, Procedure 0) confirms NFS presence. Security flavor is classified from mount options or export configuration.

Security Flavor (sec=)EncryptedAuthPQC ReadinessQuantum RiskAction
tls — NFS-over-TLS (RFC 9289)YesTLS certificatetransitionalMediumUpgrade TLS cipher to 1.3 with PQC hybrid KEX
krb5p — Kerberos privacyYes (AES256-CTS)KerberostransitionalMediumSymmetric AES is quantum-safe; Kerberos session KEX is not — await PQC Kerberos RFC
krb5i — Kerberos integrityNo (data plaintext)Kerberos + HMACvulnerableHighUpgrade to krb5p for data encryption or migrate to NFS-over-TLS
krb5 — Kerberos auth onlyNoKerberosvulnerableHighUpgrade to krb5p for data encryption or migrate to NFS-over-TLS
sys — AUTH_SYS (UID/GID)NoNone (spoofable)vulnerableCriticalReplace with krb5p or NFS-over-TLS immediately; AUTH_SYS provides no real authentication
No security (NFSv2 / v3, no sec option)NoNonevulnerableCriticalUpgrade to NFSv4.1+ with Kerberos or NFS-over-TLS

NFS version detected from mount options (vers= or nfsvers=). Linux server exports are read from /proc/fs/nfsd/exports; client mounts from /proc/mounts. macOS mount table parsed via /sbin/mount. Windows NFS stub returns no results (Windows NFS client usage is rare in enterprise environments). Remote detection: port 2049 labeled nfs+tls when TLS succeeds.

DTLS — Datagram Transport Layer Security
All Platforms Active UDP probe Passive sniffer (SPAN/TAP) tychon.cipher tychon.non_tls_cipher

DTLS is TLS over UDP. The active scanner probes DTLS 1.2 (RFC 6347) on well-known VoIP, gaming, IoT, and VPN ports. The passive sniffer parses DTLS record-layer headers from SPAN/TAP traffic without decryption, extracting version, cipher suite, and epoch. Common ports: 443 (QUIC), 4433 (test), 5349 (STUN/TURN over TLS), 5061 (SIP-TLS), 10000 (Jitsi/WebRTC).

VersionStatusPQC ReadinessNotes
DTLS 1.3RecommendedtransitionalRFC 9147; AEAD only; supports PQC hybrid KEX groups (same as TLS 1.3)
DTLS 1.2AcceptabletransitionalRFC 6347; AEAD suites acceptable; CBC suites flagged; replay protection via epoch+sequence
DTLS 1.0DeprecatedvulnerableBased on TLS 1.1; SHA-1 MACs; disable

Cisco AnyConnect, Zscaler, and WebRTC all rely on DTLS for low-latency encrypted transport. The scanner probes DTLS by sending a DTLS 1.2 ClientHello fragment over UDP and parsing any valid DTLS ServerHello or Alert response.

QUIC + HTTP/3 — Passive Sniffer Detection
All Platforms (passive sniffer) SPAN/TAP — passive only UDP port 443 (primary) Passive cipher extraction tychon.non_tls_cipher

QUIC (RFC 9000) is a UDP-based multiplexed transport that carries TLS 1.3 handshake packets in Long Header Initial packets. The passive sniffer parses QUIC Initial packets to extract the ClientHello embedded inside CRYPTO frames, revealing the offered cipher suites and PQC key exchange groups — without decryption. HTTP/3 (RFC 9114) runs exclusively over QUIC. Active probing of QUIC is not performed by the scanner (QUIC requires a full implementation stack).

QUIC VersionTLS EmbeddedPQC ReadinessNotes
QUIC v1 (RFC 9000)TLS 1.3 onlytransitionalInitial packets are plaintext (salted); handshake bytes extractable passively
QUIC v2 (RFC 9369)TLS 1.3 onlytransitionalDifferent version salt; sniffer handles both v1 and v2
QUIC draft-29TLS 1.3 onlytransitionalPre-RFC draft used by older Chromium; sniffer distinguishes from RFC version
gQUIC (Google legacy)Custom QUIC cryptovulnerableNot RFC-compliant; proprietary handshake; detected by version tag pattern
PQC note: Chrome 124+ and Firefox 128+ offer X25519MLKEM768 (IANA 0x11EC) in QUIC Initial ClientHellos. The sniffer captures this group name passively, allowing inventory of endpoints already negotiating PQC QUIC — without any active probing.
RADIUS — Remote Authentication Dial-In User Service (Passive)
All Platforms (passive sniffer) SPAN/TAP — passive only UDP port 1812 (auth), 1813 (acct) tychon.non_tls_cipher

RADIUS (RFC 2865) uses a shared-secret MD5-based authenticator — classically weak, quantum-catastrophic. RADIUS over TLS (RadSec, RFC 6614) and RADIUS over DTLS (RFC 7360) provide transport encryption. The passive sniffer distinguishes cleartext RADIUS from RadSec by protocol and port, and parses EAP-TLS / EAP-TTLS handshakes from Access-Request attributes to extract the inner TLS cipher suite.

Transport ModePort(s)EncryptionPQC ReadinessQuantum Risk
Cleartext RADIUS (UDP)1812, 1813MD5 authenticator onlyvulnerableCritical
RadSec — RADIUS/TLS (TCP)2083TLS 1.2 / 1.3transitionalHigh
RADIUS/DTLS (UDP)2083DTLS 1.2 / 1.3transitionalHigh
EAP-TLS inner tunnel1812 (attribute)TLS inside RADIUS AVPtransitionalHigh
EAP-MD5 / CHAP1812 (attribute)MD5 challenge onlyvulnerableCritical
TACACS+ — Terminal Access Controller Access-Control System Plus (Passive)
All Platforms (passive sniffer) SPAN/TAP — passive only TCP port 49 tychon.non_tls_cipher

TACACS+ (Cisco proprietary, RFC 8907) obfuscates its payload using MD5 XOR with a shared secret — this provides confidentiality against passive capture but is not encryption and is trivially reversible with the shared secret. TACACS+ over TLS (RFC 9105) wraps the protocol in TLS 1.3. The passive sniffer identifies cleartext TACACS+ frames by the 12-byte header magic and detects TLS-wrapped TACACS+ by the TLS record on port 49.

TransportEncryptionPQC ReadinessQuantum RiskAction
Cleartext TACACS+ (MD5 obfuscation)MD5 XOR only — not encryptionvulnerableCriticalMigrate to TACACS+ over TLS (RFC 9105)
TACACS+ over TLS (RFC 9105)TLS 1.3 requiredtransitionalHighAdd PQC hybrid KEX when supported by Cisco/TACACS+ server
NTP / NTS — Network Time Protocol & Network Time Security
All Platforms (passive sniffer) SPAN/TAP — passive UDP port 123 (NTP) TCP/UDP port 4460 (NTS-KE) tychon.non_tls_cipher

NTPv4 (RFC 5905) has no built-in encryption. NTS (RFC 8915) adds authenticated time synchronization using a TLS 1.3 Key Exchange (NTS-KE on TCP port 4460) followed by AEAD-authenticated NTP packets over UDP 123. The passive sniffer identifies NTP packets by version and mode fields and detects NTS-KE TLS sessions by port and ALPN extension (ntske/1).

ProtocolAuthenticationConfidentialityPQC ReadinessQuantum Risk
NTPv4 — no authNoneNonevulnerableCritical
NTPv4 — symmetric key (MD5/SHA-1)MD5 or SHA-1 HMACNonevulnerableHigh
NTPv4 — symmetric key (SHA-256)SHA-256 HMACNonetransitionalMedium
NTS — NTS-KE (TLS 1.3) + AEAD NTPTLS certificate + AEADAEAD-authenticated (not encrypted)transitionalHigh

Time tampering enables HNDL (Harvest Now Decrypt Later) by shifting timestamps on certificate revocation or key rotation events. NTS is the recommended migration path; NTS-KE cipher suite is captured by the passive sniffer from the TLS ClientHello ALPN extension.

WireGuard Wire Protocol — Passive Sniffer Detection
All Platforms (passive sniffer) SPAN/TAP — passive only UDP port 51820 (default) tychon.non_tls_cipher

WireGuard (RFC-like, in-kernel since Linux 5.6) uses a fixed, opinionated crypto stack: Noise_IKpsk2 handshake, ChaCha20-Poly1305 for data, Curve25519 for key agreement, BLAKE2s for hashing, and SipHash for cookie MAC. The passive sniffer identifies WireGuard handshake initiation packets by the 4-byte type field (0x00000001) and 32-byte ephemeral public key prefix at a fixed offset in the UDP payload.

ComponentAlgorithmPQC ReadinessQuantum Risk
Key Agreement (handshake)Curve25519 (X25519)transitionalHigh
Symmetric EncryptionChaCha20-Poly1305safeLow
Hash / KDFBLAKE2ssafeLow
Cookie MACSipHash-2-4safeLow
Pre-shared key (optional)PSK XOR with Curve25519 outputsafeLow
PQC gap: WireGuard's Curve25519 key agreement is vulnerable to a CRQC. The protocol does not currently support PQC hybrid KEX natively. Mitigations include pre-shared keys (PSK mode) which provide post-quantum security if the PSK is provisioned out-of-band and kept secret. The scanner detects WireGuard client presence and config via the VPN client detection module; the sniffer detects wire-level handshakes.
Network Encapsulation — VXLAN / GENEVE / GRE / ERSPAN (Passive)
All Platforms (passive sniffer) SPAN/TAP — passive only UDP 4789 (VXLAN), 6081 (GENEVE), IP proto 47 (GRE) tychon.non_tls_cipher

Modern data-center and cloud networks use overlay encapsulation for east-west traffic. The passive sniffer decapsulates VXLAN (RFC 7348), GENEVE (RFC 8926), GRE (RFC 2784), and ERSPAN (Cisco) frames and analyzes the inner payload for TLS, SSH, QUIC, and other protocol patterns. This enables visibility into VM-to-VM encrypted and unencrypted traffic without agent deployment on each guest.

EncapsulationPort / ProtocolInner Payload AnalysisEncryption (outer)Notes
VXLAN (RFC 7348)UDP 4789Full inner Ethernet frame parsedNone (cleartext UDP)Widely used in AWS VPC, Azure VNet, OpenStack Neutron
GENEVE (RFC 8926)UDP 6081Full inner Ethernet frame + TLV optionsNone (cleartext UDP) or IPSecUsed by OVN, Hyper-V, NSX-T
GRE (RFC 2784)IP protocol 47Inner IP packet parsedNone (cleartext)Used in MPLS, site-to-site tunnels; no native encryption
ERSPAN (Cisco)GRE type 0x88BE / 0x22EBMirrored inner frameNone (mirror traffic)Used for network taps; sniffer accepts ERSPAN input directly

Outer encapsulation itself provides no encryption — inner traffic analysis reveals cleartext protocols (HTTP, Telnet, FTP) as well as TLS/SSH. The sniffer recursively parses up to 3 levels of encapsulation to find the innermost protocol.

mTLS — Mutual TLS (Client Certificate Authentication)
All Platforms Active network probe TLS CertificateRequest detection tychon.cipher

Mutual TLS requires the client to present a certificate in addition to the server. The scanner detects mTLS by observing whether the server sends a TLS CertificateRequest message during the handshake. If detected, the requires_client_cert field is set in the event. This is common for Elastic Agent (port 6789), internal service meshes (Istio, Linkerd), and zero-trust API gateways.

FieldTypeDescription
requires_client_certbooleantrue if server sent TLS CertificateRequest during handshake
tls_versionstringTLS version negotiated (1.2 or 1.3)
cipher_suitestringNegotiated cipher suite name
key_exchange_groupstringKey exchange group (e.g. X25519MLKEM768)
Plaintext Protocol Detector — 44+ Service Probes
All Platforms Active TCP probe (post-TLS/SSH fallback) tychon.plaintext

When TLS and SSH probes fail on a port, the scanner falls back to a library of 44+ protocol-specific probes to determine if the service is running in cleartext. Each probe sends a minimal protocol-appropriate request and matches the response against known signatures. A positive match produces a tychon.plaintext event flagging the protocol, encryption state, and compliance references.

Probed Protocols (44+)
ProtocolDefault PortProbe MethodRisk
HTTP80, 8080, 8000, 8008GET / HTTP/1.0Critical
FTP21TCP banner / FEATCritical
SMTP25, 587EHLO probeCritical
POP3110+OK bannerCritical
IMAP143* OK IMAP bannerCritical
Telnet23IAC DO TERMINALCritical
Finger79CRLF probeCritical
NNTP119200/201 bannerCritical
IRC6667NICK / USER probeCritical
LDAP389BER bind requestCritical
RDP3389COTP / X.224 probeHigh
VNC5900, 5901RFB handshakeCritical
MySQL3306Protocol v10 greetingCritical
PostgreSQL5432Startup messageCritical
Redis6379PING commandCritical
MongoDB27017isMaster wire probeCritical
Memcached11211stats commandCritical
Elasticsearch9200HTTP /_cluster/healthCritical
Cassandra9042CQL OPTIONS frameCritical
ZooKeeper2181Four-letter ruokCritical
Kafka9092API Versions request v0Critical
RabbitMQ / AMQP5672AMQP 0-9-1 header probeCritical
etcd2379HTTP /versionCritical
Consul8500HTTP /v1/status/leaderCritical
CouchDB5984HTTP / (JSON)Critical
InfluxDB8086HTTP /pingCritical
Docker daemon2375HTTP /versionCritical
Kubernetes API (unauth)8080HTTP /healthzCritical
SNMP (generic)161 UDPGetRequest v1/v2cCritical
Syslog514 UDP/TCPRFC 3164 PRI probeHigh
rsync873@RSYNCD headerCritical
TFTP69 UDPRRQ probeCritical
NFS ONC RPC2049NULL call RPCCritical
MSSQL1433PRELOGIN packetHigh
Oracle TNS1521TNS CONNECT packetCritical
X11 Display6000Client greetingCritical
Printer (JetDirect)9100PJL INFO probeHigh
SIP (VoIP signaling)5060OPTIONS messageHigh
RTSP (streaming)554OPTIONS * RTSP/1.0High
HTTP generic (any port)VariousGET / fallback on any open portCritical

Output fields: service_name, protocol, encryption_state (plaintext/encrypted/unknown), encryption_detail, is_vulnerable, compliance_refs, recommendations. Events are emitted only when a cleartext service is positively identified — TLS/SSH services are not re-emitted here.

NTLM — Windows NT LAN Manager Authentication
Windows only Registry: HKLM\...\Lsa\LmCompatibilityLevel tychon.non_tls_cipher

The NTLM authentication level is read from the Windows Local Security Authority registry key. LmCompatibilityLevel controls whether the system sends LM, NTLMv1, or NTLMv2 responses. NTLMv1 uses DES encryption and MD4 hashing — classically broken and exploitable via pass-the-hash and relay attacks. NTLMv2 is the minimum acceptable standard.

LmCompatibilityLevelProtocol SentPQC ReadinessQuantum Risk
0 — LM & NTLMLM + NTLMv1vulnerableCritical
1 — NTLMv1 with session securityNTLMv1vulnerableCritical
2 — NTLMv2 (send only)NTLMv2 send; accepts LM/NTLMv1 responsesvulnerableHigh
3 — NTLMv2 onlyNTLMv2 onlytransitionalMedium
4 — NTLMv2, refuse LMNTLMv2; DC refuses LMtransitionalMedium
5 — NTLMv2, refuse LM + NTLMv1NTLMv2 only (strictest)transitionalMedium

NTLM is inherently vulnerable to relay attacks regardless of version. Migration to Kerberos with AES is strongly recommended. NTLM is detected via registry-only (no network probe). Events emitted as part of tychon.non_tls_cipher with protocol: ntlm.

FIPS Mode Detection — FIPS 140-2/3 Enforcement
All Platforms OS security mode APIs Registry (Windows) Kernel sysctl (Linux) FIPS API (macOS) tychon.quantum_readiness

FIPS 140-2/3 mode restricts the OS and cryptographic modules to NIST-approved algorithms. The scanner detects FIPS enforcement state via platform-native APIs: Windows registry HKLM\System\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy\Enabled, Linux /proc/sys/crypto/fips_enabled, and macOS security framework APIs. FIPS mode is reported in tychon.quantum_readiness as a positive compliance indicator.

PlatformDetection MethodKey Checked
WindowsRegistry DWORDHKLM\System\...\FipsAlgorithmPolicy\Enabled = 1
LinuxKernel sysctl/proc/sys/crypto/fips_enabled = 1
macOSSecurity framework APICCCryptorGetFIPSStatus() or System Policy plist

FIPS mode does not itself provide PQC protection — it restricts algorithms to approved NIST primitives. FIPS 140-3 (which includes modules certified for ML-KEM/ML-DSA) is the path to PQC-compliant cryptographic enforcement.

AirPlay / AirPlay 2 — Apple Streaming Protocol
macOS Windows (receiver) TCP port 7000 probe Process + mDNS service detection tychon.non_tls_cipher

AirPlay 2 uses a proprietary authentication layer (SRP-based pairing) over TCP and encrypts media via AES-128-CTR derived from the pairing session. The scanner probes port 7000 (RTSP-based AirPlay control channel) and identifies AirPlay services by process name, mDNS _airplay._tcp advertisement, and HTTP response header patterns. Encryption quality depends on pairing PIN enforcement and network isolation.

ComponentMechanismPQC ReadinessQuantum Risk
Pairing AuthenticationSRP-6a (password-authenticated)transitionalHigh
Media EncryptionAES-128-CTRsafeLow
Session Key ExchangeSRP-derived (no perfect forward secrecy)transitionalMedium
Unauthenticated AirPlay (no PIN)No authenticationvulnerableCritical
WiFi / WPA — Wireless Encryption Detection
All Platforms WLAN profile XML (Windows) wpa_supplicant.conf / NetworkManager (Linux) CoreWLAN / interface detection (macOS) tychon.non_tls_cipher

The scanner reads the active wireless profile from the OS to determine the 802.11 authentication and encryption settings. On Windows it reads WLAN profile XML via the WlanGetProfileList API. On Linux it parses wpa_supplicant.conf or NetworkManager config files. On macOS it uses CoreWLAN framework APIs to query the active SSID and security type.

ProtocolAuthenticationEncryptionPQC ReadinessQuantum Risk
WEPOpen / Shared KeyRC4 (40/104-bit)vulnerableCritical
WPA (TKIP)PSK / 802.1XRC4-TKIPvulnerableCritical
WPA2-Personal (CCMP)PSK (4-way handshake)AES-128-CCMPtransitionalMedium
WPA2-Enterprise (EAP)802.1X + EAP-TLS / PEAPAES-128-CCMPtransitionalHigh
WPA3-Personal (SAE)SAE (Dragonfly handshake)AES-128/256-CCMPtransitionalMedium
WPA3-Enterprise (GCMP-256)802.1X + EAP-TLSAES-256-GCMPtransitionalMedium
Open / No encryptionNoneNonevulnerableCritical
OPC-UA — OPC Unified Architecture (Industrial Automation)
All Platforms Active TCP probe (port 4840, 4843) Config file parse tychon.non_tls_cipher

OPC-UA (IEC 62541) is the dominant industrial automation protocol for factory-floor communication. The scanner probes port 4840 (unencrypted) and 4843 (TLS) for OPC-UA Binary protocol HEL messages. It also detects OPC-UA over WebSockets (port 443/8443 via HTTP Upgrade). The binary protocol includes a built-in Security Mode: None, Sign, or SignAndEncrypt.

Security ModeEncryptionPQC ReadinessQuantum Risk
NoneNo encryption, no signingvulnerableCritical
SignRSA-SHA256 signature; no encryptionvulnerableHigh
SignAndEncrypt (Basic256)AES-128-CBC + RSA-1024vulnerableHigh
SignAndEncrypt (Basic256Sha256)AES-128-CBC + RSA-2048transitionalHigh
SignAndEncrypt (Aes128-Sha256-RsaOaep)AES-128-CTR + RSA-2048 OAEPtransitionalHigh
SignAndEncrypt (Aes256-Sha256-RsaPss)AES-256-CTR + RSA-2048 PSStransitionalMedium
OPC-UA over TLS (port 4843)TLS 1.2 / 1.3transitionalHigh
OT Security Protocols — DNP3 Secure Authentication & IEC 62351
All Platforms Active TCP/UDP probe Config file parse tychon.non_tls_cipher

Operational Technology (OT) protocols used in utilities, SCADA, and substation automation have security extensions that TQC detects and assesses.

DNP3 Secure Authentication v5 (IEEE 1815-2012)
SA VersionAuthenticationPQC ReadinessQuantum Risk
DNP3 (no SA)None — plaintext protocolvulnerableCritical
DNP3-SA v2HMAC-SHA-1 challenge-responsevulnerableHigh
DNP3-SA v5HMAC-SHA-256 + AES-GMAC; ECDSA/RSA update keystransitionalHigh
IEC 62351 — Power System Communication Security
IEC 62351 PartProtocolSecurity MethodPQC Readiness
Part 3 (TCP/IP)MMS / IEC 60870-5-104 over TCPTLS 1.2+transitional
Part 4 (MMS)Manufacturing Message SpecTLS + X.509 certificatestransitional
Part 5 (IEC 60870-5)SCADA serial/networkHMAC-SHA-256transitional
Part 6 (IEC 61850 GOOSE/SV)Multicast substation msgsHMAC-SHA-256 / GMACtransitional
Noise Protocol Framework / Lightning Network
All Platforms Process detection Config file parse TCP port 9735 (Lightning) tychon.non_tls_cipher

The Noise Protocol Framework (Noise Spec v34) is a cryptographic framework for building secure handshake protocols. It underlies WireGuard, Lightning Network (BOLT #8), and various P2P messaging apps. The scanner detects Noise-based services via process name, config file patterns, and TCP port 9735 (Lightning Network). Lightning Network uses Noise_XK with secp256k1 for authentication.

ComponentDefault AlgorithmPQC ReadinessQuantum Risk
DH FunctionCurve25519 (WireGuard) / secp256k1 (Lightning)transitionalHigh
Symmetric CipherChaCha20-Poly1305 or AES-256-GCMsafeLow
Hash FunctionSHA-256 or BLAKE2ssafeLow
Signal Protocol / MLS — Messaging Layer Security
All Platforms Process detection Installed app scan tychon.installed_app

The Signal Protocol (used by Signal, WhatsApp, Facebook Messenger) and the IETF MLS (Messaging Layer Security, RFC 9420) protocol are end-to-end encrypted messaging protocols. The scanner detects these via installed application inventory and process detection. These are noted for their end-to-end encryption posture — neither currently has PQC-capable deployments in production, though Signal has a PQXDH experimental mode (X25519 + Kyber768).

ProtocolKey AgreementEncryptionPQC Readiness
Signal Protocol (X3DH + Double Ratchet)X25519 + Ed25519AES-256-CBC + HMAC-SHA256transitional
Signal PQXDH (experimental)X25519 + Kyber-768AES-256-GCMsafe
MLS (RFC 9420)X25519 / P-256 (TreeKEM)AES-128/256-GCMtransitional
Tor Anonymization Network
All Platforms Process detection TCP port 9050 / 9150 (SOCKS) Config file detection tychon.installed_app

Tor (The Onion Router) is detected by process name (tor, tor.exe), SOCKS proxy port 9050/9150, installed application fingerprinting, and Tor Browser bundle directory patterns. Tor uses a custom onion routing protocol with AES-128-CTR for relay encryption and Curve25519/ed25519 for circuit construction — not PQC-capable. In enterprise environments, Tor presence is typically a policy violation flag.

ComponentAlgorithmPQC ReadinessNotes
Circuit construction (ntor)Curve25519transitionalntor v2 with ML-KEM proposed but not widely deployed
Relay cell encryptionAES-128-CTRsafeSymmetric — quantum-safe
Hidden service (v3 .onion)Ed25519 + X25519transitionalv3 uses SHA3/BLAKE2; still classically-based ECC
ZRTP — Z Real-Time Transport Protocol (VoIP Encryption)
All Platforms Process detection UDP media stream probe tychon.non_tls_cipher

ZRTP (RFC 6189) is a key agreement protocol for securing RTP media streams without a PKI. It uses DH (Curve25519, DH3k, EC25519) to derive SRTP keys for AES encryption. The scanner detects ZRTP via SIP/VoIP client process names and UDP media stream signatures. ZRTP is commonly used by Linphone, Jitsi, Signal Desktop, and government secure voice systems.

ZRTP Key AgreementAlgorithmPQC ReadinessQuantum Risk
Curve25519X25519 ECDHtransitionalHigh
DH3k (3072-bit)FFDH-3072transitionalHigh
SRTP cipher (AES-128-CM)AES-128-CTRsafeLow
SRTP cipher (AES-256-CM)AES-256-CTRsafeLow
DTLS-SRTP / WebRTC — Real-Time Browser Communication
All Platforms Process detection (browser) UDP media port probe DTLS ClientHello on ephemeral UDP port tychon.non_tls_cipher

WebRTC mandates DTLS-SRTP (RFC 5764) for all media encryption. The DTLS handshake occurs on ephemeral UDP ports negotiated via SDP; the scanner probes these on common WebRTC port ranges (49152–65535) after detecting browser/conferencing app processes. DTLS establishes the master secret, then SRTP (RFC 3711) encrypts the media stream using AES-128-CM or AES-256-CM.

ComponentProtocolPQC ReadinessQuantum Risk
Key ExchangeDTLS 1.2 with ECDHE (P-256 / X25519)transitionalHigh
Media EncryptionSRTP AES-128-CM-HMAC-SHA1-80safeLow
Fingerprint AuthSHA-256 certificate fingerprint (SDP)transitionalMedium
ICE (transport)STUN/TURN over TLStransitionalHigh
S/MIME — Secure/Multipurpose Internet Mail Extensions
All Platforms Filesystem certificate scan Email client config detection Process detection tychon.filesystem_certificate

S/MIME (RFC 8551) provides email encryption and digital signatures using X.509 certificates and CMS (Cryptographic Message Syntax). The scanner detects S/MIME usage via filesystem certificate scan (looking for S/MIME-specific EKU: id-kp-emailProtection), mail client profile files (Outlook profile registry, Thunderbird profile), and process detection. S/MIME certificates found on disk are included in the standard certificate inventory.

CMS AlgorithmPurposePQC ReadinessQuantum Risk
RSA-OAEP / RSA-PKCS1v15 (key wrap)Message encryptiontransitionalHigh
AES-128/256-CBC (content encryption)Message contentsafeLow
ECDH key agreement (RFC 5753)Message encryptiontransitionalHigh
RSA-SHA256 / ECDSA / Ed25519 (signature)Digital signaturetransitionalHigh
3DES-CBC (legacy)Legacy content encryptionvulnerableCritical
PGP / OpenPGP — Pretty Good Privacy
All Platforms Filesystem key ring scan Process detection (gpg) ~/.gnupg / %APPDATA%\gnupg tychon.filesystem_certificate

OpenPGP (RFC 4880, RFC 9580) keys are detected by scanning for GnuPG keyring files in standard locations. Public and secret key packets are parsed for key algorithm, size, and creation date. OpenPGP v6 (RFC 9580) adds support for ML-KEM and ML-DSA as per NIST FIPS 203/204, but v4 keys (the overwhelming majority) use RSA or Curve25519.

Key AlgorithmOpenPGP VersionPQC ReadinessQuantum Risk
RSA (encrypt + sign)v4 (RFC 4880)transitionalHigh
DSA + Elgamal (legacy)v4 (RFC 4880)vulnerableCritical
ECDSA / EdDSA (Curve25519)v4 (RFC 4880)transitionalHigh
ML-KEM-768 + X25519 (hybrid)v6 (RFC 9580)safeLow
ML-DSA-65 (Dilithium3)v6 (RFC 9580)safeLow
OpenVPN Protocol — TLS over UDP/TCP VPN
All Platforms Active probe (UDP/TCP port 1194) Config file parse (.ovpn) tychon.non_tls_cipher

OpenVPN wraps TLS in its own framing over UDP (default) or TCP on port 1194. The scanner probes port 1194 for the OpenVPN control channel signature (HMAC-authenticated TLS record) and parses .ovpn config files for cipher, auth, tls-cipher, tls-auth, and tls-crypt directives. TLS-auth and tls-crypt provide HMAC authentication of the control channel before the TLS handshake begins.

DirectiveAlgorithmPQC ReadinessQuantum Risk
cipher AES-256-GCMAES-256-GCM data channelsafeLow
cipher AES-128-CBCAES-128-CBC data channeltransitionalMedium
cipher BF-CBCBlowfish-CBC (64-bit)vulnerableCritical
tls-cipher ECDHE+AES256+SHA256TLS control channeltransitionalHigh
tls-crypt (pre-TLS HMAC)HMAC-SHA256 pre-authenticationtransitionalMedium
IPSec ESP / AH — Encapsulating Security Payload & Authentication Header
All Platforms Config file parse Kernel SA table (Linux xfrm) Windows Security Association DB tychon.ipsec_tunnel

Beyond IKE negotiation, the scanner reads the specific ESP and AH transform sets in active Security Associations (SA). This captures the actual encryption and integrity algorithms used for packet-level protection, which may differ from what IKE advertised.

TransformAlgorithmPQC ReadinessQuantum Risk
ESP — AES-256-GCM (AEAD)AES-256-GCMsafeLow
ESP — AES-128-GCM (AEAD)AES-128-GCMsafeLow
ESP — AES-256-CBC + HMAC-SHA256AES-256-CBCtransitionalMedium
ESP — AES-128-CBC + HMAC-SHA1AES-128-CBCtransitionalMedium
ESP — 3DES-CBC + HMAC-SHA13DES-CBCvulnerableCritical
AH — HMAC-SHA256SHA-256 authentication only, no encryptiontransitionalMedium
AH — HMAC-SHA1 / MD5SHA-1 or MD5 authenticationvulnerableHigh
NULL encryption (ESP-null)Authentication only — no encryptionvulnerableCritical
IBM BigFix / HCL BigFix — Endpoint Management Protocol
All Platforms Process detection (BESClient) Active probe (TCP port 52311) Config file parse tychon.non_tls_cipher

IBM BigFix (now HCL BigFix) uses a proprietary protocol over TCP port 52311 for agent-to-server communication. Relay and root server connections can be TLS-encrypted, but older deployments use the unencrypted BES protocol with SHA-1 signed content. The scanner detects BigFix by process name (BESClient, BESRootServer), probes port 52311 for the BES protocol handshake signature, and parses the client configuration file.

Connection ModeEncryptionPQC ReadinessQuantum Risk
BES plaintext (legacy)SHA-1 signed content, no transport encryptionvulnerableCritical
BES over TLS 1.2TLS 1.2 (ECDHE-AES)transitionalHigh
BES over TLS 1.3TLS 1.3 (AEAD suites)transitionalHigh
X.509 Certificates — Filesystem Scanning
All Platforms Filesystem walk PEM / DER / PKCS12 / JKS tychon.filesystem_certificate tychon.keystore_certificate
Key AlgorithmKey Size / CurvePQC ReadinessQuantum RiskMigration Priority
RSA< 2048 bitsvulnerableCriticalCritical
RSA2048 bitstransitionalHighHigh
RSA3072 / 4096+ bitstransitionalHighMedium
ECDSAP-256 / P-384 / P-521transitionalHighHigh
ED25519255 bits (Curve25519)transitionalMediumMedium
DSA1024 / 2048 bitsvulnerableCriticalCritical

Cert metadata captured: subject, issuer, serial, not-before, not-after, SHA-1 and SHA-256 fingerprints, key usage / EKU, SANs, chain depth, CRL/OCSP endpoints, FIPS 140 certification flag, signature algorithm.

Keystores — JKS, PKCS12, and System Stores
All Platforms Filesystem walk OS store APIs tychon.keystore tychon.keystore_certificate
Keystore FormatExtension(s)PlatformEncryption Assessed
JKS — Java KeyStore.jksAll (Java)PBEWithSHA1AndDESede (weak), AES-256 (strong)
PKCS#12.p12, .pfxAllPBKDF2, PKCS12KDF; AES-256-CBC; MAC SHA-256
PEM.pem, .crt, .cer, .keyAllAES-128/256-CBC passphrase encryption detected
DER.der, .cerAllBinary format; no container encryption
Windows Certificate StoreRegistryWindowsCNG encryption for private keys
macOS KeychainSecurity frameworkmacOSSecure Enclave or system keychain encryption
Linux NSS databasecert8.db, cert9.dbLinuxSQLite3 / Berkeley DB; PBKDF2
Linux system CA store/etc/ssl/certs/, /var/lib/ca-certificates/LinuxPublic roots only; no private key material
macOS Keychain Identities (certificate + private key pairs)
macOS only Security framework — SecItemCopyMatching SecKeyCopyAttributes (no key export) tychon.application tychon.keystore_certificate

The Security framework SecItemCopyMatching(kSecClassIdentity) enumerates all certificate+private key pairs in the process's keychain search list (login + System keychains). Private key bytes never leave securityd or the Secure Enclave — only metadata is accessed via SecKeyCopyAttributes. Common identities include Microsoft AAD, GlobalProtect VPN, and MDM enrollment certificates.

Key TypeBits / CurvePQC ReadinessQuantum RiskMigration Priority
RSA< 2048vulnerableCriticalCritical
RSA2048transitionalHighHigh
RSA3072 / 4096+transitionalHighMedium
EC (ECDSA)P-256 / P-384 / P-521transitionalHighHigh
ED25519255-bit Curve25519transitionalMediumMedium
Cryptographic Libraries — Memory and Process Scanning
All Platforms Process memory maps /proc/{pid}/maps (Linux) Mach VM APIs (macOS) VirtualQueryEx (Windows) tychon.crypto_library tychon.java_crypto_library
LibraryMin PQC-Capable VersionPQC StatusPQC AlgorithmsNotes
OpenSSL3.5.0+ (Apr 2025)PQC CapableML-KEM, ML-DSA, SLH-DSA (FIPS 140-3)Via built-in FIPS provider
OpenSSL3.0 – 3.4PartialML-KEM (oqs-provider only)OQS provider required
OpenSSL< 3.0Not CapableNoneEOL; upgrade required
LibreSSLNot CapableNoneOpenSSL 1.x API compatibility fork
BoringSSL (Google)2023+PartialX25519Kyber768 hybrid (TLS only)No standalone PQC API
NSS (Mozilla)3.94+ (Oct 2024)PartialML-KEM-768 hybrid (TLS 1.3)IETF draft spec; Firefox 132+
Mbed TLS3.6.0+PartialML-KEM (experimental)Requires compile-time flag; not production-ready
wolfSSL5.7.0+PartialML-KEM, ML-DSA, SLH-DSACompile-time flags required; FIPS module is paid
Botan3.4.0+PQC CapableML-KEM, ML-DSA, SLH-DSA (finalized)Full NIST FIPS 203/204/205 implementation
Botan3.0 – 3.3PartialDraft Kyber / DilithiumPre-standardization drafts
GnuTLSNot CapableNoneNo mainline PQC as of 2026
Apple Security (CommonCrypto, CoreTLS, CryptoKit)Not CapableNoneNo public PQC APIs as of 2026
Windows SChannel / CNG / CAPINot CapableNoneNo native PQC as of 2026; Preview available in Insider
Java Cryptographic Providers (detected via JVM memory scan)
BouncyCastle (Java)1.77+ (beta)PartialML-KEM, ML-DSA, SLH-DSA (beta)Most widely deployed Java PQC library
Bouncy Castle FIPS Java2.0.0+PQC CapableML-KEM, ML-DSA, SLH-DSA (FIPS 140-3)FIPS 140-3 validated PQC; separate artifact from BC core
SunJCE (Oracle JDK built-in)JDK 21+ (preview)Not CapableNone (JEP 452 KEM API only)KEM API skeleton added; no PQC implementation bundled
Amazon Corretto Crypto Provider (ACCP)2.3.0+Not CapableNoneAWS-native JCE provider; relies on AWS-LC for non-PQC ops
IBM IBMJCE / IBMJCEFIPSIBM JDK 11+Not CapableNoneIBM JDK bundled provider; no PQC support announced
Conscrypt (Google / Android)2.5.0+Not CapableNone (BoringSSL subset)Used in Android apps on desktops via Conscrypt JCE provider
Tink (Google)1.14+PartialML-KEM-768 (experimental)High-level crypto library; PQC added in 1.14 experimental APIs
Jasypt / PKCS11 BridgeNot CapableNoneWrapper libraries; PQC depends on underlying JCE provider

Private key bytes are never read from memory. Library detection uses shared-object paths, version strings, and module signatures found in process memory maps. Java crypto libraries are detected via class loading patterns in the JVM heap.

Quantum Readiness Assessment — Scoring Model
All Platforms tychon.quantum_readiness tychon.pqc_inventory

The quantum readiness score is a composite of four independently scored dimensions. Scores influence the letter-grade (AF) and readiness status reported in tychon.quantum_readiness.

DimensionMax ScoreKey Factors
Hardware40 ptsCPU architecture (x86_64/ARM64), AES-NI, AVX2/NEON instructions, RAM capacity, TPM version, HSM presence, Secure Boot
OS & Crypto API30 ptsOS version / patch level, TLS 1.3 native support, FIPS mode enabled, modern cipher API availability, IPv6 support
Crypto Libraries20 ptsOpenSSL version, PQC-capable libraries detected, no legacy library presence
Network10 ptsEstimated bandwidth, TLS 1.3 negotiation success rate, IPv6 availability
Kerberos Score Impact (Windows only): DES enabled: −15 pts  |  RC4 explicit: −10 pts  |  RC4 OS default: −5 pts  |  AES-only explicit: 0 penalty. Score is floored at 0.
All NDJSON event.dataset Values
event.datasetevent.actionProtocol / SourceOne event per
tychon.ciphercipher_negotiationTLS (all versions)Negotiated cipher suite per port
tychon.cipher_quickquick_cipher_scanTLS (fast path)Single negotiated suite per port
tychon.sshssh_crypto_detectedSSHSSH algorithm set per port
tychon.non_tls_ciphernon_tls_cipher_detectedSMB3, SNMPv3, Kerberos, SMTP, IMAP, LDAP, PostgreSQL, IBM MQ, NFSOne cipher profile per detected protocol instance
tychon.vpn_clientvpn_client_detectedVPN clientsDetected VPN client installation
tychon.ipsec_tunnelipsec_tunnel_detectedIPSecIPSec tunnel or policy
tychon.macsecmacsec_interface_detectedMACsecMACsec interface
tychon.filesystem_certificatecertificate_discoveredFilesystemX.509 certificate file
tychon.keystore_certificatekeystore_discoveredJKS / PKCS12 / etc.Certificate within a keystore
tychon.keystorekeystore_discoveredJKS / PKCS12 / etc.Keystore file (summary)
tychon.crypto_librarycrypto_library_detectedMemory scanCrypto library per process
tychon.java_crypto_librarycrypto_library_detectedJVM memory scanJava crypto library per process
tychon.quantum_readinessquantum_readiness_assessedComposite assessmentOne per scan
tychon.pqc_inventorypqc_inventoryApp + port pairsApplication + port with cipher data
tychon.applicationapplication_detectedApp-centric modeApplication (process executable)
tychon.connected_quickconnected_quick_scanActive connectionsOutbound connection probe
tychon.installed_appinstalled_app_detectedOS app registryInstalled application
tychon.browser_extensionbrowser_extension_detectedBrowser profilesBrowser extension
tychon.plaintextplaintext_detected44+ protocol probesCleartext service identified on a port (post-TLS/SSH fallback)
tychon.kexkex_negotiatedTLS 1.3 PQC probeKey exchange group per port (CNSA 2.0 level, quantum_safe flag)
tychon.connectionconnection_profiled3D cipher intel (TLS+KEX+protocol)Composite connection security profile per port
tychon.non_tls_cipher (NTLM)ntlm_detectedRegistry (Windows)NTLM LmCompatibilityLevel per host
tychon.non_tls_cipher (WiFi)wifi_detectedOS wireless profileActive wireless connection encryption type
PQC Assessment Quick-Reference Matrix
Algorithm / ConfigurationProtocol Contextpqc_readinessquantum_riskmigration_priorityReason
ML-KEM hybrid KEX (X25519+ML-KEM-768)TLS 1.3safeLowLowNIST FIPS 203; CNSA 2.0 compliant
AES-256-GCM (symmetric)TLS, SMB3, MACsec, IPSecsafeLowLow256-bit key resists Grover's algorithm
AES-128-GCM (symmetric)TLS, SMB3, MACsecsafeLowLow128-bit effectively 64-bit post-Grover; acceptable
ChaCha20-Poly1305 (symmetric)TLS, WireGuard VPNsafeLowLow256-bit key symmetric; quantum-safe
ECDHE key exchangeTLS 1.2 / 1.3transitionalHighHighShor's algorithm breaks ECDH on a CRQC
DHE key exchangeTLS 1.2transitionalHighHighShor's algorithm breaks discrete logarithm
RSA key exchange / signatureTLS, certificatestransitionalHighHighShor's algorithm factors RSA modulus
ECDSA / ED25519 signaturesCertificates, SSHtransitionalHighHighShor's algorithm breaks ECC
AES128-CTS-HMAC-SHA1-96 (Kerberos)KerberostransitionalMediumMediumSymmetric AES session; no PQC Kerberos standard yet
AES-256 SNMPv3 priv + SHA-256 authSNMPv3transitionalLowLowBest available; no PQC SNMPv3 standard yet
SHA-1 / MD5 MACsTLS, SSH, SNMPv3vulnerableHighHighClassical collision attacks (Grover accelerates)
3DES / Triple-DESTLS, IPSec, SNMPv3, KerberosvulnerableCriticalCriticalSWEET32 (classical); 112-bit key = 56-bit post-Grover
RC4TLS, KerberosvulnerableCriticalCriticalClassically broken; RFC 7465 prohibits in TLS
DESKerberos, SNMPv3, SMBvulnerableCriticalCritical56-bit key; broken classically since 1998
NULL encryptionTLSvulnerableCriticalCriticalNo encryption — authentication only
RSA < 2048 bitsCertificates, TLS key exchangevulnerableCriticalCriticalBelow minimum classical security; quantum makes it worse
SMBv1SMBvulnerableCriticalCriticalNo encryption; WannaCry; EternalBlue
SNMPv1 / v2c (community strings)SNMPvulnerableCriticalCriticalCleartext; no authentication integrity
IBM MQ — no TLS (SSLCIPH not set)IBM MQvulnerableCriticalCriticalPlaintext message queues; no authentication or encryption
IBM MQ — TLS 1.2+ channelIBM MQtransitionalHighHighClassical asymmetric KEX; upgrade to TLS 1.3 + PQC hybrid
NFS sec=sys / no secNFSvulnerableCriticalCriticalNo encryption, no real authentication (UID/GID spoofable)
NFS sec=krb5 / krb5iNFSvulnerableHighHighAuth only or integrity only; data in plaintext
NFS sec=krb5pNFStransitionalMediumMediumAES256-CTS data encryption; KEX is quantum-vulnerable
NFS-over-TLS (RFC 9289)NFStransitionalMediumMediumTLS 1.3 with classical KEX; add PQC hybrid group
Platform Coverage Matrix
Detection CategoryWindowsmacOSLinuxDetection Method
TLS / SSL cipher scanningActive TCP probe
SSH algorithm scanningActive TCP probe
SMB3 encryption (network probe)TCP NEGOTIATE packet
SMB encryption enforcementRegistry: LanmanServer\EncryptData
SNMPv3 (config file)Parse /etc/snmp/snmpd.conf
SNMP service (Windows v1/v2c)Registry: services\SNMP
Kerberos enctypes (registry)Registry: SupportedEncryptionTypes bitmask
Kerberos enctypes (krb5.conf)Parse /etc/krb5.conf [libdefaults]
VPN client detectionProcess, Registry, Config files
IPSec tunnel detectionConfig files, service status, process
MACsec interface detectionsysfs, ip link, Registry
Filesystem certificate scanWalk configured paths
Windows Certificate StoreCryptoAPI / Windows registry
macOS Keychain identitiesSecurity framework (CGO)
Linux NSS databaseSQLite / BDB cert9.db
JKS / PKCS12 keystoresFilesystem walk + OpenSSL
Crypto library memory scanProcess memory maps + version detection
Java crypto library scanJVM heap / class path analysis
Quantum readiness scoringComposite of all above
NTLM LmCompatibilityLevelRegistry — HKLM\...\Lsa\LmCompatibilityLevel
UEFI / Secure Boot firmware typeRegistry (Win) / EFI sysfs (Linux) / hardware assumption (macOS)
WiFi encryption (active connection)WLAN profile XML (Win) / wpa_supplicant + NM conf (Linux) / interface detection (macOS)
STARTTLS cipher probingProtocol-native handshake: SMTP, IMAP, LDAP, PostgreSQL on localhost
IBM MQ channel detection (port 1414)MQTSH binary probe (no TLS) + standard TLS probe (TLS channels)
IBM MQ SSL listener (port 1415)Direct TLS ClientHello
NFS client mount detectionmacOS: /sbin/mount  |  Linux: /proc/mounts
NFS server export detectionLinux: /proc/fs/nfsd/exports
NFS remote probe (port 2049)TLS ClientHello (RFC 9289) + ONC RPC NULL call fallback
DTLS probe (UDP)DTLS 1.2 ClientHello fragment over UDP
QUIC/HTTP3 (passive sniffer)SPAN/TAP: QUIC Initial packet + CRYPTO frame CHLO extraction
RADIUS (passive sniffer)SPAN/TAP: UDP 1812/1813; RadSec TCP 2083; EAP-TLS inner cipher
TACACS+ (passive sniffer)SPAN/TAP: TCP 49 header magic; TLS-wrapped variant
NTP / NTS (passive sniffer)SPAN/TAP: UDP 123 NTPv4; TCP 4460 NTS-KE ALPN
WireGuard wire protocol (passive)SPAN/TAP: UDP 51820 handshake initiation type field
VXLAN / GENEVE / GRE / ERSPAN (passive)SPAN/TAP: decapsulate + analyze inner payload
mTLS (CertificateRequest detection)Active TLS probe: detect TLS CertificateRequest in handshake
Plaintext protocol detection (44+ probes)Active TCP probe fallback after TLS/SSH fail
FIPS mode detectionWin: registry DWORD  |  Linux: /proc/sys/crypto/fips_enabled  |  macOS: Security framework API
AirPlay detectionTCP port 7000 probe + mDNS _airplay._tcp; process detection
WiFi / WPA encryptionWLAN profile XML (Win) / wpa_supplicant + NM conf (Linux) / CoreWLAN (macOS)
OPC-UA detectionTCP 4840 (binary) + 4843 (TLS) HEL probe; config file parse
DNP3 Secure AuthenticationTCP/UDP 20000 probe + config file parse
IEC 62351 detectionConfig file parse + TLS probe on IEC 61850 / MMS ports
Noise Protocol / Lightning NetworkProcess detection + TCP 9735 probe + config file detection
Signal / MLS detectionInstalled app inventory + process detection
Tor detectionProcess detection (tor / tor.exe) + SOCKS port 9050/9150 + app bundle paths
ZRTP detectionSIP/VoIP client process detection + UDP media port probe
DTLS-SRTP / WebRTC detectionBrowser / conferencing app process detection
S/MIME detectionFilesystem cert scan (EKU: emailProtection) + mail client profile
PGP / OpenPGP key detection~/.gnupg / %APPDATA%\gnupg key ring file scan
OpenVPN protocol detectionUDP/TCP 1194 probe + .ovpn config parse
IPSec ESP/AH transform auditLinux xfrm SA table / Windows IKEEXT / strongSwan config
IBM BigFix / HCL BigFix detectionProcess (BESClient) + TCP 52311 BES handshake probe