- OpenPCC est un framework d’inférence IA avec confidentialité vérifiable inspiré du Private Cloud Compute d’Apple, proposé entièrement en open source
- Il garantit la protection des données personnelles grâce au streaming chiffré, à l’attestation matérielle et aux requêtes non corrélables, sans exposer les prompts, les sorties ni les logs
- Chacun peut exécuter des modèles d’IA ouverts ou personnalisés sur sa propre infrastructure, dans une architecture conçue pour être transparente et auditabile
- Confident Security développe CONFSEC, un service managé fondé sur le standard OpenPCC
- L’objectif est d’en faire un standard piloté par la communauté pour la confidentialité des données en IA
Présentation d’OpenPCC
- OpenPCC est un framework open source qui permet une inférence IA avec confidentialité garantie
- Il reprend le concept de Private Cloud Compute d’Apple, mais dans une implémentation entièrement publique, auditable et déployable en autonomie
- Les utilisateurs peuvent exécuter des modèles d’IA sans que les prompts, les sorties ni les logs ne soient exposés à des tiers
- La protection des données est renforcée grâce au streaming chiffré, à l’attestation matérielle (hardware attestation) et aux requêtes non corrélables (unlinkable requests)
- L’objectif est d’établir un standard transparent de confidentialité des données IA géré par la communauté
Service managé : CONFSEC
- Confident Security développe CONFSEC, un service entièrement managé fondé sur le standard OpenPCC
- Les informations associées et l’inscription sont disponibles sur le site confident.security
- CONFSEC facilite l’utilisation des technologies d’OpenPCC dans des environnements commerciaux
Composition du client OpenPCC
- Le dépôt inclut du code client Go ainsi qu’une bibliothèque C, qui servent de base aux clients Python et JavaScript
- Des services en mémoire (in-memory services) sont également fournis pour tester le client
- L’implémentation du Compute Node associée est disponible dans un dépôt séparé (
confidentsecurity/confidentcompute)
Exemple d’utilisation en Go
- Le fichier
cmd/test-client/main.go contient un exemple de développement local
- Lors d’une connexion à un service de production, le client est créé via
openpcc.NewFromConfig, puis exécute les requêtes API
- L’exemple utilise le modèle
"qwen3:1.7b" et le prompt "why is the sky blue?"
- L’en-tête de requête
"X-Confsec-Node-Tags" permet de router la requête vers un compute node exécutant un modèle spécifique
- L’exemple de code suit le format generate de l’API OpenAI
Développement et tests
- Les commandes de développement utilisent mage, un outil de build basé sur Go
- Exécution possible avec
go tool mage [cmd] ou go install github.com/magefile/mage@latest
- La commande
mage affiche la liste des commandes disponibles, définies dans le répertoire /magefiles/*
- Pour tester la bibliothèque pendant le développement, il faut lancer le service OpenPCC en mémoire avec
mage runMemServices, puis exécuter une requête de test avec mage runClient
Références
- Les détails techniques d’OpenPCC sont disponibles dans le whitepaper
1 commentaires
Avis Hacker News
À la lecture du livre blanc, il semble que l’inference provider ait toujours accès aux prompts et aux réponses en clair
Cela dit, avec cette approche, un tiers comme un routeur d’API ne peut pas voir le texte en clair, et l’identité du client est masquée de sorte qu’elle ne puisse pas être reliée à la requête
Ce serait bien que le README résume clairement cette portée des garanties de confidentialité
En tenant compte de cela, je me demande quel avantage cette architecture apporte par rapport à une approche où l’utilisateur
envoie directement la requête à l’inference provider sans routeur intermédiaire
paie en cryptomonnaie anonyme
masque son IP avec un VPN
Je suis engineering lead chez confident.security, et je suis ravi de voir ce projet rendu public
Je me demande ce que désigne exactement ici l’inference provider
En pratique, même après déchiffrement, la charge de travail n’est pas envoyée vers un service externe (OpenAI, etc.) ; elle est exécutée directement sur une machine de calcul où un modèle open source est chargé
Ces machines fournissent une preuve cryptographique (attestation) du logiciel qu’elles exécutent et garantissent qu’aucune information sensible ne peut fuiter vers l’extérieur
Le PCC d’Apple fonctionne sur le même principe, et le client n’envoie pas de requêtes à des nœuds qui ne fournissent pas ces garanties
Autrement dit, la garantie essentielle de confidentialité est que même l’opérateur du matériel ne peut pas voir les prompts
Le fait que le fournisseur puisse accéder aux prompts en clair est quelque chose que beaucoup de gens sous-estiment
Le BYOK règle en grande partie le problème, mais dès que l’on fournit la clé, un risque subsiste
Des systèmes comme Private Cloud Compute d’Apple ou Nitro Enclaves d’AWS tentent de résoudre cette dernière étape
Après vérification par NCC Group, AWS a confirmé qu’il n’existe pas d’API d’administration permettant à des employés de se connecter à l’hôte ou d’accéder aux données clients
Ce type d’architecture est très inhabituel en matière de transparence et de sécurité
Le blog de recherche sécurité sur PCC d’Apple vaut aussi le détour
Dans ce cas, il semblerait plus simple d’exécuter directement un modèle local, même avec une légère baisse de performances
Dans l’UE, il est probablement illégal pour une entreprise d’accepter des paiements anonymes en cryptomonnaie
Les règles de lutte contre le blanchiment imposent des paiements traçables
En revanche, le niveau précis de ce qui est interdit reste flou
Article lié : EU to ban trading of privacy coins from 2027
J’ai aussi fait partie d’une équipe qui travaille sur quelque chose de similaire
C’est un service payant, mais il fournit un code source public et une attestation significative
Service : privatemode.ai
Code : github.com/edgelesssys/privatemode-public
À l’inverse, edgeless utilise une BSL
L’USP est d’empêcher l’inference provider de voir les prompts,
et Privatemode y parvient via une chaîne code source → build reproductible → rapport d’attestation TEE
La sécurité est également renforcée par des technologies d’isolation comme Kata/CoCo et par des politiques d’exécution
C’est censé être « provably private », mais avec un accès physique et un peu de matériel, on peut aussi analyser le bus mémoire
Discussion liée : fil HN
Sur des dizaines de milliers de machines, sur laquelle brancheriez-vous votre analyseur ?
Très beau travail. Le fait que ce soit publié en open source est également impressionnant
Nous étudions un problème proche de celui du chiffrement homomorphe, et je me demande si OpenPCC pourrait nous aider
Par exemple, quand des appareils portables (lunettes AR, etc.) enregistrent des données visuelles, cela pose des problèmes de confidentialité
OpenPCC pourrait-il servir à anonymiser ces données à des fins de débogage pour les développeurs ?
Fondamentalement, OpenPCC est un serveur HTTP attesté dont on ne peut pas inspecter l’intérieur
Si l’appareil portable envoie les données à OpenPCC, un processus d’anonymisation peut s’y exécuter
Bien sûr, anonymiser directement sur l’appareil est plus simple
Et à noter que le chiffrement homomorphe n’en est pas encore à un stade pratique
Une sortie vraiment impressionnante
J’espère que davantage d’entreprises l’utiliseront pour renforcer la confidentialité des utilisateurs
Ravi de voir du Go
À mon avis, Go dépassera Python dans le domaine de l’IA
C’est similaire à Confidential AI Inference d’Azure
Lien de référence : Azure AI Confidential Inferencing Deep Dive
C’est pourtant un point important du point de vue de la transparence ; je me demande si quelqu’un l’a déjà vu
En théorie, c’est intéressant, mais en pratique je ne vois pas bien ce qu’on pourrait exécuter
À part des spammeurs, quels cas d’usage y aurait-il ?
Cela fait penser à des systèmes d’apprentissage distribué comme federated learning ou FlowerLLM, mais ce n’était pas pour de l’inférence
Je salue toute tentative de sortir des logiciels fermés, mais j’aimerais voir des exemples d’usage concrets
Par exemple, faire tourner OpenAI Whisper sur /e/OS comme service STT via un proxy anonyme semble possible
Mais même cela peut très bien se faire en local, donc j’ai encore du mal à identifier un usage clair
Je me demande où se trouve le code source du nœud de calcul