Un protocole réseau de zéro confiance, basé sur la cryptographie, au niveau 5 du modèle OSI, permettant de cacher votre serveur et vos données des attaquants.
L'avancement rapide des technologies d'IA, en particulier les grands modèles de langage (LLM), transforme de manière significative le paysage de la cybersécurité. L'émergence de l'exploitation autonome des vulnérabilités (AVE) représente un bond majeur dans l'ère de l'IA, automatisant l'exploitation des vulnérabilités, comme le montre cet article de recherche. Ce développement augmente de manière significative le risque pour tous les services réseau exposés, évoquant l'hypothèse de la forêt sombre sur Internet. Les outils pilotés par l'IA scannent continuellement l'environnement numérique, identifiant rapidement les faiblesses et les exploitant. Ainsi, Internet devient une "forêt sombre" où la visibilité équivaut à la vulnérabilité.
Selon les recherches de Gartner, les cyberattaques pilotées par l'IA vont augmenter rapidement. Ce paradigme en évolution impose une réévaluation des stratégies de cybersécurité traditionnelles, avec un accent sur les défenses proactives, des mécanismes de réponse rapide, et l'adoption de technologies de masquage réseau pour protéger les infrastructures critiques.
Avant de plonger dans les détails d'OpenNHP, commençons par une démonstration rapide de la façon dont OpenNHP protège un serveur contre les accès non autorisés. Vous pouvez le voir en action en accédant au serveur protégé à l'adresse suivante : https://acdemo.opennhp.org.
Par défaut, toute tentative de connexion au serveur protégé résultera en une erreur de TYPE OUT, car tous les ports sont fermés, rendant le serveur "invisible" et apparemment hors ligne.
Le scan des ports du serveur retournera également une erreur de TYPE OUT.
OpenNHP supporte une variété de méthodes d'authentification, telles que OAuth, SAML, QR codes, et plus encore. Pour cette démonstration, nous utilisons un service d'authentification basé sur un nom d'utilisateur/mot de passe simple à l'adresse https://demologin.opennhp.org.
Une fois que vous cliquez sur le bouton "Login", l'authentification est réussie, et vous êtes redirigé vers le serveur protégé. Le serveur devient alors "visible" et accessible sur votre appareil.
L'ouverture des protocoles TCP/IP a stimulé la croissance des applications Internet, mais a aussi exposé des vulnérabilités, permettant aux acteurs malveillants d'accéder de manière non autorisée à toute adresse IP exposée. Bien que le modèle réseau OSI définisse la couche 5 (couche session) pour la gestion des connexions, peu de solutions efficaces ont été mises en place à cet égard.
NHP, ou "Protocole de Masquage de l'Infrastructure Réseau", est un protocole réseau de zéro confiance, basé sur la cryptographie, conçu pour fonctionner au niveau de la couche session OSI, idéal pour gérer la visibilité réseau et les connexions. L'objectif principal de NHP est de dissimuler les ressources protégées des entités non autorisées, accordant l'accès uniquement aux utilisateurs vérifiés et autorisés par une vérification continue, contribuant ainsi à un Internet plus digne de confiance.
OpenNHP est l'implémentation open source du protocole NHP. Il est basé sur la cryptographie et conçu avec des principes de sécurité en priorité, implémentant une véritable architecture de zéro confiance au niveau de la couche session OSI.
OpenNHP s'appuie sur des recherches antérieures sur la technologie de masquage réseau, en utilisant des cadres et une architecture modernes de cryptographie pour garantir la sécurité et des performances élevées, surmontant ainsi les limitations des technologies précédentes.
Protocole de Masquage de l'Infrastructure | 1ère Génération | 2ème Génération | 3ème Génération |
---|---|---|---|
Technologie Clé | Port Knocking | Autorisation par Paquet Unique (SPA) | Protocole de Masquage de l'Infrastructure Réseau (NHP) |
Authentification | Séquences de ports | Secrets partagés | Cadre cryptographique moderne |
Architecture | Pas de plan de contrôle | Pas de plan de contrôle | Plan de contrôle scalable |
Capacité | Masquer les ports | Masquer les ports | Masquer les ports, IPs et domaines |
Contrôle d'Accès | Niveau IP | Niveau Port | Niveau Application |
Projets Open Source | knock (C) | fwknop (C++) | OpenNHP (Go) |
Il est crucial de choisir un langage sûr pour la mémoire comme Go pour le développement d'OpenNHP, comme le souligne le rapport technique du gouvernement des États-Unis. Pour une comparaison détaillée entre SPA et NHP, référez-vous à la section ci-dessous.
Puisqu'OpenNHP implémente les principes de zéro confiance au niveau de la couche session OSI, il offre des avantages significatifs :
- Réduit la surface d'attaque en cachant l'infrastructure
- Empêche la reconnaissance réseau non autorisée
- Atténue l'exploitation des vulnérabilités
- Empêche le phishing via DNS chiffré
- Protège contre les attaques DDoS
- Permet un contrôle d'accès granulaire
- Fournit un suivi des connexions basé sur l'identité
- Attribution des attaques
L'architecture d'OpenNHP s'inspire de la norme d'architecture Zero Trust du NIST. Elle suit une conception modulaire avec trois composants principaux : NHP-Server, NHP-AC et NHP-Agent, comme illustré dans le diagramme ci-dessous.
Veuillez consulter la documentation d'OpenNHP pour des informations détaillées sur l'architecture et le flux de travail.
La cryptographie est au cœur d'OpenNHP, fournissant une sécurité robuste, d'excellentes performances et une bonne évolutivité en utilisant des algorithmes cryptographiques de pointe. Voici les principaux algorithmes et cadres cryptographiques employés par OpenNHP :
- Cryptographie à Courbes Elliptiques (ECC) : Utilisée pour la cryptographie asymétrique efficace.
Comparée à RSA, l'ECC offre une efficacité supérieure avec un chiffrement plus fort à des longueurs de clé plus courtes, améliorant la transmission réseau et les performances de calcul. Le tableau ci-dessous montre les différences de force de sécurité, de longueurs de clé et du ratio entre RSA et ECC, ainsi que leurs périodes de validité respectives.
Force de Sécurité (bits) | Longueur de Clé DSA/RSA (bits) | Longueur de Clé ECC (bits) | Ratio : ECC vs DSA/RSA | Validité |
---|---|---|---|---|
80 | 1024 | 160-223 | 1:6 | Jusqu'en 2010 |
112 | 2048 | 224-255 | 1:9 | Jusqu'en 2030 |
128 | 3072 | 256-383 | 1:12 | Après 2031 |
192 | 7680 | 384-511 | 1:20 | |
256 | 15360 | 512+ | 1:30 |
- Cadre de Protocole Noise : Permet l'échange de clés sécurisé, le chiffrement/déchiffrement des messages, et l'authentification mutuelle.
Le protocole Noise est basé sur l'accord de clé Diffie-Hellman et offre des solutions cryptographiques modernes telles que l'authentification mutuelle et optionnelle, le masquage de l'identité, la sécurité persistante, et le chiffrement à tour de passezà-tour de zéro. Déjà prouvé pour sa sécurité et ses performances, il est utilisé par des applications populaires comme WhatsApp, Slack, et WireGuard.
- Cryptographie basée sur l'Identité (IBC) : Simplifie la distribution des clés à grande échelle.
Une distribution efficace des clés est essentielle pour implémenter le Zéro Confiance. OpenNHP prend en charge à la fois PKI et IBC. Alors que PKI est utilisée depuis des décennies, elle dépend de Certificats d'Autorité centralisés (CA) pour la vérification de l'identité et la gestion des clés, ce qui peut être long et coûteux. En revanche, l'IBC permet une approche décentralisée et autonome de la vérification de l'identité et de la gestion des clés, la rendant plus rentable pour l'environnement Zero Trust d'OpenNHP, où des milliards d'appareils ou de serveurs peuvent avoir besoin de protection et d'intégration en temps réel.
- Cryptographie à Clé Publique sans Certificat (CL-PKC) : Algorithme IBC recommandé
CL-PKC est un schéma qui améliore la sécurité en évitant la garde des clés et en répondant aux limites de la cryptographie basée sur l'identité (IBC). Dans la plupart des systèmes IBC, la clé privée d'un utilisateur est générée par un Centre de Génération de Clés (KGC), ce qui introduit des risques importants. Un KGC compromis peut entraîner l'exposition des clés privées de tous les utilisateurs, nécessitant une confiance totale dans le KGC. CL-PKC atténue ce problème en divisant le processus de génération de clés, de sorte que le KGC n'a connaissance que d'une clé privée partielle. En conséquence, CL-PKC combine les forces du PKI et de l'IBC, offrant une sécurité renforcée sans les inconvénients de la gestion centralisée des clés.
Pour en savoir plus :
Veuillez consulter la documentation OpenNHP pour une explication détaillée des algorithmes cryptographiques utilisés dans OpenNHP.
- Atténue l'exploitation des vulnérabilités en appliquant par défaut des règles "deny-all"
- Empêche les attaques de phishing via la résolution DNS chiffrée
- Protège contre les attaques DDoS en cachant l'infrastructure
- Permet l'attribution des attaques via des connexions basées sur l'identité
- Contrôle d'accès par défaut pour toutes les ressources protégées
- Authentification basée sur l'identité et les appareils avant l'accès au réseau
- Résolution DNS chiffrée pour empêcher le piratage DNS
- Infrastructure distribuée pour atténuer les attaques DDoS
- Architecture évolutive avec des composants découplés
- Intégration avec les systèmes existants de gestion des identités et des accès
- Prend en charge divers modèles de déploiement (client-à-passerelle, client-à-serveur, etc.)
- Sécurité cryptographique avec des algorithmes modernes (ECC, Noise Protocol, IBC)
Cliquez pour développer les détails des fonctionnalités
- Contrôle d'accès par défaut : Toutes les ressources sont cachées par défaut, ne devenant accessibles qu'après authentification et autorisation.
- Authentification basée sur l'identité et les appareils : Garantit que seuls les utilisateurs connus sur des appareils approuvés peuvent accéder.
- Résolution DNS chiffrée : Empêche le piratage DNS et les attaques de phishing associées.
- Atténuation des DDoS : Conception d'infrastructure distribuée aide à protéger contre les attaques par DDoS.
- Architecture évolutive : Les composants découplés permettent un déploiement et une évolution flexibles.
- Intégration IAM : Fonctionne avec vos systèmes de gestion des identités et des accès.
- Déploiement flexible : Prend en charge divers modèles, y compris client-à-passerelle, client-à-serveur, et plus encore.
- Cryptographie forte : Utilise des algorithmes modernes comme ECC, Noise Protocol, et IBC pour une sécurité robuste.
OpenNHP prend en charge plusieurs modèles de déploiement pour répondre à différents cas d'utilisation :
- Client-à-Passerelle : Sécurise l'accès à plusieurs serveurs derrière une passerelle
- Client-à-Serveur : Sécurise directement des serveurs/applications individuels
- Serveur-à-Serveur : Sécurise la communication entre les services backend
- Passerelle-à-Passerelle : Sécurise les connexions site-à-site
Veuillez consulter la documentation OpenNHP pour des instructions de déploiement détaillées.
Le protocole d'Autorisation par Paquet Unique (SPA) est inclus dans la spécification du Périmètre Défini par Logiciel (SDP) publiée par l'Alliance pour la Sécurité Cloud (CSA). NHP améliore la sécurité, la fiabilité, la scalabilité et l'extensibilité grâce à un cadre et une architecture de cryptographie modernes, comme démontré dans l'article de recherche AHAC.
- | SPA | NHP | Avantages de NHP |
---|---|---|---|
Architecture | Le déchiffrement du paquet SPA et le composant d'authentification de l'utilisateur/appareil sont couplés au composant de contrôle d'accès réseau dans le serveur SPA. | NHP-Server (le composant de déchiffrement de paquet et d'authentification utilisateur/appareil) et NHP-AC (le composant de contrôle d'accès) sont découplés. NHP-Server peut être déployé sur des hôtes distincts et prend en charge la mise à l'échelle horizontale. |
|
Communication | Simple direction | Bidirectionnelle | Meilleure fiabilité avec la notification d'état du contrôle d'accès |
Cadre cryptographique | Secrets partagés | PKI ou IBC, Cadre Noise |
|
Capacité de Masquage de l'Infrastructure Réseau | Uniquement les ports de serveur | Domaines, IP et ports | Plus puissant contre diverses attaques (e.g., vulnérabilités, piratage DNS, et attaques DDoS) |
Extensibilité | Aucune, uniquement pour SDP | Tout usage | Prise en charge de tout scénario nécessitant un obscurcissement de service |
Interopérabilité | Non disponible | Personnalisable | NHP peut s'intégrer de manière transparente avec les protocoles existants (e.g., DNS, FIDO, etc.) |
Nous accueillons avec plaisir les contributions à OpenNHP ! Veuillez consulter nos lignes directrices de contribution pour plus d'informations sur la manière de participer.
OpenNHP est publié sous la licence Apache 2.0.
- Site Web du Projet : https://github.com/OpenNHP/opennhp
- E-mail : [email protected]
- Canal Slack : Rejoignez notre Slack
Pour plus de documentation détaillée, veuillez visiter notre Documentation Officielle.
- Spécification du Périmètre Défini par Logiciel (SDP) v2.0. Jason Garbis, Juanita Koilpillai, Junaid lslam, Bob Flores, Daniel Bailey, Benfeng Chen, Eitan Bremler, Michael Roza, Ahmed Refaey Hussein. Cloud Security Alliance (CSA). Mar 2022.
- AHAC : Cadre Avancé de Contrôle d'Accès Caché au Réseau. Mudi Xu, Benfeng Chen, Zhizhong Tan, Shan Chen, Lei Wang, Yan Liu, Tai Io San, Sou Wang Fong, Wenyong Wang, et Jing Feng. Journal des Sciences Appliquées. Juin 2024.
- Noise Protocol Framework. https://noiseprotocol.org/
- Projet de Cadre de Gestion des Vulnérabilités. https://phoenix.security/web-vuln-management/
🌟 Merci pour votre intérêt dans OpenNHP ! Nous attendons vos contributions et vos commentaires avec impatience.