
ziti v2.0.1
Plateforme de réseau zero-trust qui rend les services invisibles grâce à l'identité cryptographique, un accès basé sur les politiques et un chiffrement de bout en bout. Remplace les VPN, sécurise l'IoT et connecte des environnements multi-cloud sans ports ouverts.
OpenZiti
OpenZiti est une plateforme de réseautage zero-trust open-source qui rend les services réseau invisibles aux utilisateurs non autorisés. Chaque connexion, qu'elle provienne d'un utilisateur, d'un service, d'un appareil ou d'une charge de travail, est authentifiée par une identité cryptographique, autorisée par une politique et chiffrée de bout en bout.
OpenZiti fonctionne aussi bien avec les applications existantes (en utilisant des tunnelers légers sans modification de code) qu'avec les nouvelles applications (en utilisant des SDK embarqués pour le modèle zero-trust le plus fort). Cela le rend pratique à la fois pour les environnements brownfield et le développement greenfield.
Créé et sponsorisé par NetFoundry. Sous licence Apache 2.0.
Table des matières
- Cas d'utilisation
- Capacités clés
- Trois modèles de déploiement
- Pour commencer
- Architecture
- Zero Trust, services sombres et chiffrement de bout en bout
- SDK
- Communauté et soutien
- Contribuer
- Adoptants
- Solution gérée
Cas d'utilisation
OpenZiti vous permet d'étendre le zero-trust partout pour n'importe quel cas d'utilisation, y compris les charges de travail et workflows non humains, à travers plusieurs réseaux et tiers. Voici quelques cas d'utilisation courants.
Remplacer les VPN
Fournir un accès sécurisé aux services internes sans clients VPN, problèmes de split tunneling ou goulots d'étranglement de concentrateur. Chaque service est autorisé individuellement. Plus de problème de « une fois que vous êtes dedans, vous pouvez tout atteindre ».
API et services sombres
Rendre les API et services invisibles sur Internet. Zéro port d'écoute signifie zéro surface d'attaque. Les clients autorisés se connectent via OpenZiti ; tous les autres ne voient rien.
IoT et identité non humaine
Donner à chaque appareil, capteur et machine une identité cryptographique unique. Le modèle d'identité d'OpenZiti fonctionne aussi bien pour les charges de travail non humaines que pour les utilisateurs humains, fournissant une authentification forte pour les connexions machine à machine qui constituent la majorité du trafic réseau moderne.
Charges de travail Zero Trust
Sécuriser la communication entre charges de travail à travers les clouds et les environnements. Les services s'authentifient mutuellement avec une identité cryptographique, pas par emplacement réseau. Pas de secrets partagés, pas de listes d'autorisation IP, pas d'autorité ambiante.
IA agentique
Sécuriser la communication agent-service et agent-agent avec une identité cryptographique pour chaque participant IA. Les serveurs MCP, les points de terminaison d'outils et les LLM privés restent sombres, sans ports d'écoute ni URL publiques. Les agents s'authentifient avec des identités fortes et uniques et n'atteignent que les ressources autorisées par la politique, de sorte que les workflows autonomes obtiennent l'accès nécessaire sans autorité ambiante sur tout le reste.
Connectivité multi-cloud et hybride
Un seul réseau overlay sur AWS, Azure, GCP, les centres de données sur site et les sites périphériques. Pas d'outils réseau spécifiques au cloud, pas de tunnels VPN entre environnements, pas d'arrangements de peering complexes.
Accès aux services auto-hébergés
Accéder aux services de laboratoire domestique ou auto-hébergés comme Nextcloud, Home Assistant, les serveurs multimédias et les environnements de développement depuis n'importe où. Pas de ports de routeur ouverts, pas de DNS dynamique, pas de dépendance à des services de tunnel tiers. Vous contrôlez l'ensemble du chemin.
Services Kubernetes et inter-clusters
Connecter des services entre clusters Kubernetes sans règles d'ingress complexes, sidecars de maillage de services ou tunnels VPN entre clusters. Fonctionne au-delà de Kubernetes, prenant en charge la connexion des services k8s aux VM, au bare metal, aux appareils IoT ou à tout autre élément sur l'overlay.
Capacités clés
| Capacité | Description |
|---|---|
| Services sombres | Les services n'ont aucun port d'écoute. Invisibles aux scanners et aux utilisateurs non autorisés. |
| Identité pour tout | Identité cryptographique pour les utilisateurs, services, appareils et charges de travail non humaines (NHI). Pas basée sur l'IP. |
| Opérations basées sur l'identité | Gérer les réseaux via des identités et des politiques plutôt que des adresses IP et des règles de pare-feu. Simplifie les opérations et élimine la configuration manuelle du réseau. |
| Chiffrement de bout en bout | Données chiffrées de la source à la destination en utilisant libsodium. mTLS pour l'authentification. Zero trust dans le chemin réseau. |
| Pas de VPN ni de ports ouverts | Les connexions sont routées via l'overlay d'OpenZiti. Pas de clients VPN, pas de règles de pare-feu entrantes, pas de ports exposés. |
| Routage intelligent | Maillage avec sélection intelligente du chemin pour la performance et la fiabilité. |
| Déploiement flexible | Embarquer des SDK, utiliser des tunnelers, ou déployer au niveau réseau. Mélanger et assortir par service. |
| Accès piloté par politique | Politiques fines basées sur l'identité. L'accès peut être révoqué en temps réel, fermant les connexions actives. |
| API REST programmables | API de gestion complète pour l'automatisation et l'intégration. Console d'administration web incluse. |
| Entièrement auto-hébergeable | Exécutez toute la plateforme sur votre infrastructure. Pas de dépendances fournisseur. Open source, Apache 2.0. |
Trois modèles de déploiement
OpenZiti prend en charge trois modèles zero-trust. Mélangez-les dans un seul réseau et migrez entre eux au fil du temps.
Accès réseau
Déployez un routeur de périphérie OpenZiti dans une zone réseau de confiance. Le trafic entre dans l'overlay depuis des clients authentifiés et sort dans le réseau privé où les services s'exécutent.
- Modifications de code : Aucune
- Agent sur l'hôte du service : Aucun
- Modèle de sécurité : Accès basé sur l'identité à la limite du réseau. Similaire à une passerelle, mais avec identité cryptographique et transport chiffré.
Accès hôte
Exécutez un tunneler OpenZiti sur le même hôte que votre service. Le tunneler gère l'identité, l'authentification et le chiffrement. Le service n'a qu'à accepter les connexions depuis localhost.
- Modifications de code : Aucune
- Configuration : Installer le tunneler, inscrire l'identité
- Modèle de sécurité : Limite de confiance au niveau du système d'exploitation hôte. Le service est sombre pour le réseau et accessible uniquement via le tunneler.
Accès applicatif (le plus fort)
Embarquer un SDK OpenZiti directement dans les applications client et/ou serveur. L'application elle-même détient l'identité cryptographique et chiffre le trafic dans le processus. Aucun port d'écoute n'existe, même pas sur localhost.
- Modifications de code : Oui
- Modèle de sécurité : Le plus fort. Chiffrement de bout en bout dans le processus. Complètement sombre. Identité au niveau applicatif, pas au niveau réseau, pas au niveau hôte.
Par où commencer : De nombreuses équipes commencent par l'Accès hôte (tunnelers) pour les services existants. Il se déploie en quelques minutes sans modification de code. Pour les nouveaux développements ou les charges de travail hautement sécurisées, l'Accès applicatif (SDK) offre la posture zero-trust la plus forte.
Pour commencer
Les Démarrages rapides suivants montrent comment configurer un réseau OpenZiti local pour le développement, les tests et l'apprentissage. Pour les déploiements de production, consultez la documentation produit sur https://netfoundry.io/docs/openziti/category/deployments/.
Démarrage rapide avec Docker
Le moyen le plus rapide d'obtenir un réseau OpenZiti local :
wget https://get.openziti.io/dock/all-in-one/compose.yml
docker compose up
Cela démarre un contrôleur, un routeur de périphérie et la console Ziti dans une seule pile compose. La console est accessible à https://localhost:1280/zac/. À partir de là, vous pouvez créer des identités, définir des services et configurer des politiques d'accès.
Voir le démarrage rapide Docker tout-en-un pour tous les détails, y compris les options de stockage, les variables d'environnement et l'utilisation en ligne de commande.
Démarrage rapide avec la CLI
Téléchargez le dernier binaire ziti depuis GitHub Releases, puis :
ziti edge quickstart
Cela met en place un réseau de développement local : contrôleur, routeur et une identité administrateur par défaut. Idéal pour les tests et l'apprentissage.
Pour ajouter la console d'administration Ziti (ZAC) à un contrôleur en cours d'exécution :
ziti ops console download --location /opt/openziti/console
ziti ops console configure /path/to/controller.yml --all --location /opt/openziti/console
# redémarrez le contrôleur, puis ouvrez https://<adresse-du-contrôleur>/zac/
Ou servez ZAC localement sans toucher à la configuration du contrôleur :
ziti run console --version latest
# ouvre https://127.0.0.1:8443. pointez-le vers n'importe quel contrôleur depuis le navigateur
En savoir plus
| Ressource | Description |
|---|---|
| Introduction | Concepts de base et fonctionnement d'OpenZiti |
| Guides de démarrage rapide | Configuration pas à pas pour les environnements locaux, Docker et hébergés |
| Modèles Zero Trust | Plongée dans les trois modèles de déploiement |
| Référence du tunneler | Commencez sans aucune modification de code |
Architecture
Le réseau overlay d'OpenZiti fonctionne au-dessus de l'infrastructure existante : n'importe quel réseau IP, n'importe quel cloud, n'importe quelle combinaison. Les composants principaux :
Contrôleur
Le contrôleur est le plan de gestion. Il gère :
- Gestion des identités : émet et vérifie les identités cryptographiques (certificats x509) pour chaque participant du réseau
- Application des politiques : définit quelles identités peuvent accéder à quels services, via quels routeurs de périphérie
- État du réseau : suit les routeurs, les services et la topologie ; fournit une API REST et une console d'administration web pour la gestion
Routeurs de périphérie
Les routeurs de périphérie forment le plan de données, un maillage qui transporte le trafic chiffré entre les points de terminaison.
- Routeurs publics sont accessibles depuis Internet, servant de points d'entrée au réseau
- Routeurs privés (« sombres ») sont déployés à l'intérieur de réseaux privés avec uniquement des connexions sortantes
Les routeurs se découvrent automatiquement, forment des connexions maillées et utilisent le routage intelligent pour sélectionner le meilleur chemin en fonction de la latence, du débit et du coût.
Points de terminaison : SDK et tunnelers
Les points de terminaison sont la manière dont les applications et les utilisateurs se connectent au réseau OpenZiti :
-
SDK (Go, C, Python, Node.js, Java, Swift, C#) : embarquez le zero-trust directement dans votre application. L'application elle-même détient l'identité et gère le chiffrement. Pas de sidecar, pas d'agent, pas de ports d'écoute.
-
Tunnelers (Linux, Windows, macOS, iOS, Android) : applications légères qui fournissent la connectivité OpenZiti aux logiciels non modifiés. Le trafic est intercepté et routé via l'overlay de manière transparente. Aucune modification de code requise.
Zero Trust, services sombres et chiffrement de bout en bout
Zero Trust et segmentation applicative
Chaque participant (par exemple, utilisateur, service, appareil, charge de travail) dans un réseau OpenZiti porte une identité cryptographique unique basée sur des certificats x509. Lorsqu'une connexion est tentée, OpenZiti vérifie :
- L'identité est valide et inscrite
- Une politique existe accordant à cette identité l'accès au service demandé
- La connexion passe par un routeur de périphérie autorisé
Si l'une des vérifications échoue, la connexion est refusée. Si l'accès est révoqué ultérieurement, les connexions actives sont immédiatement interrompues. Il n'y a pas de confiance implicite basée sur l'emplacement réseau. Être sur le même LAN n'accorde pas plus d'accès qu'être à travers Internet, sauf si la politique l'autorise explicitement.
Ce modèle offre une segmentation applicative zero-trust : chaque service est autorisé indépendamment. Obtenir l'accès à un service n'accorde pas l'accès à un autre.
Services sombres
Un service « sombre » n'a pas de ports ouverts. Il n'écoute sur aucune interface réseau pour les connexions entrantes. Au lieu de cela, le service (ou un tunneler à côté) établit une connexion sortante vers un routeur de périphérie OpenZiti et s'enregistre. Les clients l'atteignent uniquement via le tissu OpenZiti, après authentification et autorisation.
Ce que cela signifie en pratique :
- Les scans de ports ne trouvent rien : il n'y a pas de ports d'écoute à découvrir
- Aucune surface d'attaque : vous ne pouvez pas exploiter ce que vous ne pouvez pas atteindre
- Résistance aux DDoS : il n'y a pas de point de terminaison public à inonder
- Invisible aux utilisateurs non autorisés : seules les identités avec une politique correspondante savent même que le service existe
- Amical pour le NAT et les pare-feux : toutes les connexions sont sortantes, donc le CG-NAT, le double-NAT et les pare-feux restrictifs ne sont pas un problème
Les routeurs de périphérie peuvent également être sombres. Les routeurs privés n'établissent que des connexions sortantes, donc aucune règle de pare-feu entrante n'est nécessaire dans votre réseau privé.
Chiffrement de bout en bout
Avec les SDK OpenZiti, le trafic est chiffré de l'application émettrice à l'application réceptrice en utilisant libsodium pour le chemin de données et mTLS pour l'authentification d'identité. Même si les routeurs ou les réseaux intermédiaires sont compromis, le trafic ne peut pas être déchiffré ou falsifié.
Avec les tunnelers, le chiffrement couvre le chemin du tunneler au tunneler (ou du tunneler au SDK), fournissant un chiffrement machine à machine sans modifications applicatives.
SDK
Embarquez le réseautage zero-trust directement dans vos applications :
| Langage | Dépôt | Notes |
|---|---|---|
| Go | sdk-golang | Utilisé par le projet OpenZiti lui-même |
| C | ziti-sdk-c | Idéal pour les systèmes embarqués, l'IoT et les cas d'utilisation haute performance |
| Java / Kotlin | ziti-sdk-jvm | Inclut le support Android |
| Swift | ziti-sdk-swift | iOS et macOS |
| Node.js | ziti-sdk-nodejs | |
| C# / .NET | ziti-sdk-csharp | |
| Python | ziti-sdk-py |
Tous les SDK sont listés sous l'organisation GitHub OpenZiti.
Sécurité
OpenZiti est un projet axé sur la sécurité. La divulgation responsable des vulnérabilités nous aide à maintenir la plateforme et ses utilisateurs en sécurité.
Signaler une vulnérabilité : Si vous découvrez un problème de sécurité, veuillez consulter notre Politique de divulgation des vulnérabilités pour tous les détails. Les problèmes sensibles doivent être signalés à [email protected]. Les problèmes non sensibles peuvent être soumis sous forme de problèmes GitHub dans le dépôt approprié. Vous devriez recevoir une réponse sous 7 jours.
Comment nous traitons les vulnérabilités : Notre Processus de réponse aux incidents de sécurité du produit décrit comment les vulnérabilités signalées sont triées, documentées et résolues – y compris comment les publications CVE sont coordonnées avec les correctifs.
Sphère de sécurité : OpenZiti et NetFoundry n'engageront pas de poursuites judiciaires contre quiconque recherche et signale des vulnérabilités de bonne foi. Nous encourageons la recherche en sécurité et attribuons les résultats signalés à leurs rapporteurs dans les avis et les notes de version.
Communauté et soutien
OpenZiti a une communauté active et en croissance :
- Forum Discourse : Posez des questions, partagez des projets, obtenez de l'aide de la communauté et des mainteneurs
- YouTube : Tutoriels, démos et plongées approfondies
- Blog : Mises à jour du projet et articles techniques
- Twitter/X : Nouvelles et annonces
Contribuer
Le projet OpenZiti accueille les contributions, y compris le code, la documentation, les rapports de bugs et les retours.
Dépôts clés
| Dépôt | Description |
|---|---|
| openziti/ziti | Plateforme centrale : contrôleur, routeurs, CLI |
| sdk-golang | SDK Go |
| ziti-sdk-c | SDK C |
| ziti-sdk-jvm | SDK Java / Kotlin / Android |
| ziti-sdk-swift | SDK Swift / iOS |
| ziti-sdk-nodejs | SDK Node.js |
| ziti-sdk-csharp | SDK C# |
| ziti-sdk-py | SDK Python |
| ziti-tunnel-sdk-c | Tunneler Linux et SDK de tunneler central |
| ziti-tunnel-apple | Clients périphériques macOS et iOS |
| desktop-edge-win | Client périphérique de bureau Windows |
| ziti-doc | Site de documentation |
Construction à partir des sources
Consultez le tutoriel de développement local pour les instructions de construction.
Documentation pour les développeurs
- Aperçu pour les développeurs
- Développement local
- Déploiement local
- PKI du contrôleur
- Notes de version
Adoptants
OpenZiti est utilisé en production par des organisations telles que DeltaSecure (SOC géré), Resulticks (automatisation marketing), Chirp Wireless (IoT/télécom), GIGO Dev (environnements de développement cloud), OSMIT (informatique gérée/conformité RGPD), et des projets open-source comme zrok et BlueBubbles.
Voir la liste complète : ADOPTERS.md. Vous utilisez OpenZiti ? Nous aimerions vous ajouter — ouvrez un problème ou soumettez une PR.
Solution gérée
Pour un réseautage zero-trust sans gérer votre propre infrastructure, NetFoundry fournit un réseau OpenZiti entièrement géré et distribué mondialement en tant que service, avec des SLA, un support entreprise et un tissu mondial de routeurs de périphérie.
OpenZiti est développé et open-sourcé par NetFoundry, Inc.