À la lumière des récentes révélations sur la surveillance gouvernementale généralisée des données stockées par les fournisseurs de services en ligne, les services à connaissance zéro font désormais fureur.
Un service à connaissance zéro est un service où toutes les données sont stockées cryptées avec une clé qui n'est pas stockée sur le serveur. Le chiffrement et le déchiffrement se produisent entièrement du côté client, et le serveur ne voit jamais ni les données en clair ni la clé. Par conséquent, le fournisseur de services n'est pas en mesure de déchiffrer et de fournir les données à un tiers, même s'il le voulait.
Pour donner un exemple: SpiderOak peut être considéré comme une version zéro connaissance de Dropbox.
En tant que programmeurs, nous comptons beaucoup sur nos données les plus sensibles - notre code - et les confions à une classe particulière de fournisseurs de services en ligne: les fournisseurs d'hébergement de code (comme Bitbucket, Assembla, etc.). Je parle bien sûr des référentiels privés ici - le concept de connaissance zéro n'a pas de sens pour les référentiels publics.
Mes questions sont:
Existe-t-il des obstacles technologiques à la création d'un service d'hébergement de code à connaissance zéro? Par exemple, y a-t-il quelque chose dans les protocoles réseau utilisés par les systèmes de contrôle de version populaires comme SVN, Mercurial ou Git qui rendrait difficile (ou impossible) la mise en œuvre d'un schéma où les données communiquées entre le client et le serveur sont cryptées avec une clé que le serveur ne connaît pas?
Existe-t-il aujourd'hui des services d'hébergement de code à connaissance zéro?