Icône de Kivuko

Kivuko

Un client NordVPN pour la barre des menus du Mac, écrit en Rust et basé sur WireGuard.

Kivuko (ki-VOU-ko) signifie « traversée » ou « bac » en swahili.

Kivuko est un projet indépendant. Il n’est ni conçu, ni approuvé, ni pris en charge par Nord Security. Vous devez disposer de votre propre abonnement NordVPN.

Le menu de Kivuko pendant une connexion : Disconnect, Location réglé sur United States, et Kill Switch, Auto-Connect et Block Ads and Trackers cochés

Kill switch, reconnexion automatique et blocage des publicités

Kivuko est un client NordVPN gratuit et open source pour macOS, qui se connecte via WireGuard (NordLynx).

Le kill switch de Kivuko est appliqué par macOS. Kivuko se reconnecte à la sortie de veille et après un changement de réseau, et peut bloquer les publicités et les traqueurs via le DNS de NordVPN. L’app de la barre des menus utilise environ 23 Mo de mémoire, et le tunnel environ 8 Mo.

Son tunnel exécute GotaTun, l’implémentation de WireGuard en Rust de Mullvad, dans une extension de tunnel de paquets macOS. C’est macOS qui démarre et redémarre cette extension, par exemple à la sortie de veille.

Quand un serveur ne répond plus

Kivuko vérifie le handshake WireGuard toutes les 15 secondes.

  1. 8 sEssayer le serveur suivantSi un serveur ne répond pas dans les 8 secondes, Kivuko essaie le serveur suivant, jusqu’à trois serveurs.
  2. 3 minForcer un handshakeSi aucun handshake WireGuard n’arrive pendant 3 minutes, Kivuko force un nouveau handshake.
  3. 6 minRedémarrer sur un nouveau serveurAu bout de 6 minutes, macOS redémarre le tunnel sur un nouveau serveur (si Auto-Connect est activé).

Fonctionnement

Kivuko.app                     app/       menu bar app: menu, token prompt, VPN configuration
└── Contents/PlugIns/
    └── KivukoTunnel.appex     provider/  packet-tunnel extension: server choice, GotaTun, watchdog
  • L’app de la barre des menus gère la configuration VPN que macOS conserve dans Réglages Système › VPN, y compris le kill switch, la règle de connexion à la demande et le choix du DNS.
  • Le tunnel est un fournisseur de tunnel de paquets NetworkExtension. macOS le démarre chaque fois que le VPN démarre, y compris lors des reconnexions automatiques quand l’app n’est pas ouverte.
  • À chaque démarrage, le tunnel demande à NordVPN les serveurs WireGuard recommandés, transmet à macOS les adresses, les routes et le DNS, puis exécute GotaTun sur l’interface de tunnel créée par macOS.
  • docs/architecture.md explique les choix de conception, la séquence de connexion et le mécanisme de surveillance (watchdog).

Confidentialité et sécurité

Kivuko ne communique qu’avec l’API de NordVPN et le serveur VPN auquel vous êtes connecté, et n’envoie aucune donnée analytique.

  • Votre jeton d’accès NordVPN est stocké dans votre trousseau « session ». Quand vous cliquez sur Connect, l’app le transmet au tunnel, qui s’en sert pour récupérer votre clé WireGuard auprès de NordVPN.
  • Le tunnel conserve la clé WireGuard dans son propre conteneur sandbox, lisible uniquement par votre compte utilisateur (mode 0600).
  • Tout utilisateur du Mac peut lire la configuration VPN de macOS : Kivuko n’y enregistre donc que votre pays et votre choix de DNS.
  • Les journaux consignent les événements, jamais le jeton ni la clé. docs/setup.md répertorie tous les fichiers que Kivuko écrit.

Consommation de ressources

Mesures effectuées sur un MacBook Pro sous macOS 26.

ProcessusMémoireCPU
App de la barre des menus23 Mo0 % au repos
Tunnel8 MoMoins de 1 % avec le trafic en arrière-plan ; environ 26 % d’un cœur pendant un téléchargement à 212 Mbit/s

Obtenir Kivuko

Il n’existe pas de version prête à télécharger. macOS ne charge les extensions VPN que si elles sont signées via une adhésion payante à l’Apple Developer Program : vous compilez et signez donc Kivuko vous-même. Le guide complet se trouve dans docs/setup.md.

Configuration requise

Mac
Puce Apple
macOS
14 ou version ultérieure (testé uniquement sous macOS 26 pour l’instant)
Service VPN
Votre propre abonnement NordVPN
Signature
Une adhésion payante à l’Apple Developer Program

Pour le compiler

Xcode
Connecté à ce compte
Rust
1.95 ou version ultérieure
  1. Clonez le dépôt et choisissez votre propre préfixe d’identifiant de bundle, par exemple com.yourname :

    git clone https://github.com/piedol/kivuko.git
    cd kivuko && cp signing/local.env.example signing/local.env

    Définissez KIVUKO_BUNDLE_PREFIX dans signing/local.env, ainsi que KIVUKO_TEAM si votre identifiant Apple fait partie de plusieurs équipes de développement. scripts/bundle.sh --check indique ce qui sera signé.

  2. Compilez, signez et installez. Lors de la première exécution, Xcode enregistre votre Mac et les deux identifiants de bundle, puis télécharge les profils de développement :

    scripts/bundle.sh --install
  3. Obtenez un jeton d’accès NordVPN dans Nord Account › NordVPN › Advanced settings › Access token.

  4. Cliquez sur le bouclier dans la barre des menus et choisissez Set Up and Connect. Collez le jeton, cliquez sur Save and Connect, puis sur Autoriser quand macOS demande l’autorisation d’ajouter une configuration VPN.

Les profils de développement sont valables un an. À leur expiration, macOS ne charge plus Kivuko ; relancer scripts/bundle.sh --install les renouvelle. Ne gardez pas de seconde copie de Kivuko sur votre Mac. Lorsque deux copies de l’extension de tunnel sont enregistrées, ouvrir l’une des copies de l’app amène macOS à arrêter le tunnel de l’autre, ce qui coupe le VPN.

Pour désinstaller Kivuko, suivez dans l’ordre les étapes de Désinstallation. Si vous supprimez l’app en premier, le kill switch peut bloquer votre connexion jusqu’à ce que vous supprimiez la configuration VPN.

Questions fréquentes

Kivuko est-il gratuit et open source ?

Oui. Le téléchargement et l’utilisation de Kivuko sont gratuits, et son code source est publié sur GitHub sous licence GNU General Public License v3.0 ou ultérieure.

Faut-il un abonnement NordVPN ?

Oui. Kivuko se connecte à NordVPN avec votre propre abonnement, à l’aide d’un jeton d’accès obtenu dans Nord Account › NordVPN › Advanced settings.

Kivuko est-il affilié à Nord Security ?

Non. Kivuko est un projet indépendant. Il n’est ni conçu, ni approuvé, ni pris en charge par Nord Security.

Comment installer Kivuko ?

Compilez-le depuis les sources sur un Mac avec puce Apple sous macOS 14 ou version ultérieure. macOS ne charge les extensions VPN que si elles sont signées via une adhésion payante à l’Apple Developer Program : il n’existe donc pas de version prête à télécharger. Les étapes sont décrites dans docs/setup.md.

Qu’est-ce que Kivuko envoie sur le réseau ?

Il ne communique qu’avec l’API de NordVPN et le serveur VPN auquel vous êtes connecté, et n’envoie aucune donnée analytique. Votre jeton d’accès reste dans votre trousseau « session ».

Comment désinstaller Kivuko ?

Quittez d’abord Kivuko, puis supprimez sa configuration dans Réglages Système › VPN, placez Kivuko.app dans la corbeille et supprimez son jeton du trousseau « session ». Si vous supprimez l’app en premier, le kill switch peut continuer à bloquer votre connexion.

Licence

Kivuko est un logiciel libre distribué sous licence GNU General Public License v3.0 ou ultérieure. Les signalements de bugs et les pull requests sont les bienvenus sur GitHub.

Utilisez-le partout, y compris au travail, et lisez, modifiez et partagez son code source. Si vous distribuez une version modifiée, publiez son code source sous la même licence.

Remerciements : GotaTun de Mullvad, wireguard-apple et objc2.