{"adoption": {"forks": 2480, "observed_at": "2026-08-28T04:11:05.055753+00:00", "stars": 13918}, "canonical_url": "https://ross.abutalabs.com/products/opennhp", "card": {"archived": false, "artifact_type": "framework", "description": "A lightweight, cryptography-powered, open-source toolkit built to enforce Zero Trust security for infrastructure, applications, and data in the AI-driven world.", "domain": ["security", "networking", "cloud-computing", "backend", "self-hosted"], "enriched": true, "function": ["security", "cryptography", "networking", "auth", "authorization"], "health_score": 99, "homepage": "http://opennhp.org/", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["OpenNHP/opennhp"], "name": "OpenNHP/opennhp", "platform": ["go", "windows", "cross-platform", "self-hosted", "cloud"], "pushed_at": "2026-08-24T22:58:02+00:00", "repo": "OpenNHP/opennhp", "stars": 13918, "tags": ["zero-trust", "zero-trust-network-access", "network-hiding-protocol", "single-packet-authorization", "port-knocking", "software-defined-perimeter", "noise-protocol", "default-deny", "infrastructure-hiding", "confidential-computing", "dark-forest", "linux", "macos", "docker"], "topics": ["cybersecurity", "zero-trust", "zero-trust-network-access", "zero-trust-security"], "urls": [], "use_cases": ["hide server ports, IPs, and domains from attackers and scanners", "implement zero trust network access for infrastructure and applications", "protect APIs and app servers from unauthorized discovery and port scanning", "replace legacy port knocking or SPA tools with a modern memory-safe Go implementation", "make services invisible until users authenticate with time-limited access", "encrypt sensitive data so it is usable but not visible", "secure infrastructure against AI-driven automated vulnerability exploitation"], "what_it_is": "OpenNHP is a lightweight, cryptography-powered open-source toolkit written in Go that implements the Cloud Security Alliance's Network-infrastructure Hiding Protocol (NHP) for Zero Trust security. It hides server ports, IP addresses, and domains behind default-deny access control with encrypted UDP knocks (Noise Protocol, ECC), and ships agent, server, and access-control components plus a Data-content Hiding Protocol (DHP) for making data 'usable but not visible'.", "when_to_avoid": ["You need a general-purpose VPN or full network-layer tunnel rather than per-service access hiding", "You require a turnkey commercial ZTNA product with enterprise support and broad IAM integrations out of the box", "You depend on interoperability with existing SPA/port-knocking ecosystems rather than the NHP protocol", "Your team cannot operate additional agent, server, and access-control components"], "when_to_choose": ["You need default-deny, hide-until-authenticated access for servers, APIs, or cloud infrastructure", "You want a CSA-spec-aligned, memory-safe Go implementation of NHP/SPA instead of C/C++ tools like fwknop", "You need mutual authentication, encrypted UDP knocks, and automatically expiring access paths", "You want to reduce attack surface against automated LLM-driven scanning and exploitation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/opennhp", "repo": "OpenNHP/opennhp", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:05.055753+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:12:56.975791+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "378a2ab93c4715d45f16892a6c2ee381d1cb0bdf6eabf34057b9e3c9edc2130e", "fetched_at": "2026-08-28T04:11:05.055753+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenNHP/opennhp"}, {"content_hash": "1aff284bb39536da329a8491985798051b7053bcebb7d6eb35099828a0ffd009", "fetched_at": "2026-08-29T08:07:00.463124+00:00", "kind": "homepage", "missing": false, "url": "http://opennhp.org/"}, {"content_hash": "8597ccda6460431a9cc064547814b7ec44e7bf1c2cf438b91d09d919778d6730", "fetched_at": "2026-08-29T08:07:00.465787+00:00", "kind": "site_page", "missing": false, "url": "https://docs.opennhp.org"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4412, "days_push": 9, "days_rel": 109, "gap_med": 0, "n_releases_24m": 4}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}