web-dev-qa-db-fra.com

Un fournisseur VPS pourrait-il avoir accès au contenu de ses utilisateurs?

Un fournisseur de VPS comme DigitalOcean pourrait-il avoir accès au contenu de ses utilisateurs? Dans leurs conditions de service , ils ne mentionnent rien lié à cette question, mais pourraient-ils théoriquement y avoir accès (par exemple, via une porte dérobée)?

Hormis un éventuel piratage, comment puis-je garantir à mes clients que leur contenu n'est connu que de moi, même si leurs données ne sont pas sur mon serveur?

29
cgcmake

Lorsque vous hébergez vos données sur les serveurs d'autres personnes, ces personnes y ont pleinement accès.

Avec un serveur virtualisé, les données sont écrites sur le disque dur du système hôte. Les administrateurs du serveur peuvent consulter cette image du disque dur à tout moment et ainsi accéder aux données de vos utilisateurs. Ils peuvent également surveiller le trafic réseau.

Vous pouvez empêcher l'accès à l'image du disque dur en utilisant le chiffrement complet du disque. Lorsque la machine virtuelle crypte toutes les données qu'elle écrit sur son disque dur virtuel, ces données sont également cryptées lorsqu'elles sont écrites sur le disque dur physique de l'hôte.

Pour empêcher la surveillance du trafic réseau, vous pouvez vous assurer que tout le trafic - administratif et utilisateur - est fortement crypté.

Mais avec une certaine énergie criminelle, ils peuvent toujours surveiller vos données.

  • Lorsque vous redémarrez votre ordinateur, vous devrez entrer le mot de passe de chiffrement du disque via la console d'administration à distance. Cette console est sous leur contrôle, ils pourraient donc l'utiliser pour enregistrer le mot de passe de votre disque.
  • Ils peuvent créer un instantané de votre VM à tout moment, ce qui vide l'ensemble du contenu RAM sur le disque. Cela leur donne accès à toutes les données actuellement en mémoire, y compris la clé de déchiffrement du disque virtuel.
  • Quand ils contrôlent l'hyperviseur VM, ils contrôlent également tous les calculs effectués par les machines virtuelles. Ce n'est pas facile à faire, mais il est théoriquement possible de l'utiliser pour casser toute cryptographie qui s'y produit.

Solution: hébergez vos serveurs chez vous où vous avez un accès complet.

Mais Digital Ocean fera-t-il cela? Voici ce que leur politique de confidentialité dit:

Données du serveur

DigitalOcean n'a pas accès aux données du serveur de ses utilisateurs. Le backend est verrouillé à l'écart du personnel d'assistance des utilisateurs et seul le personnel d'ingénierie a accès aux serveurs physiques sur lesquels résident les machines virtuelles des utilisateurs. DigitalOcean ne stocke pas les mots de passe des utilisateurs ni les clés SSH privées. DigitalOcean ne demande pas non plus d'informations de connexion utilisateur à leurs serveurs. DigitalOcean ne vérifie ni ne vérifie aucune donnée utilisateur.

C'est ce qu'ils disent. Pouvez-vous faire confiance à leurs paroles? Votre décision à prendre. À propos, leur Law Enforcement Guide pourrait également être lu à cet égard. Il décrit les informations auxquelles ils ont soudainement accès lorsqu'ils sont pressés par des représentants du gouvernement.

55
Philipp

Comme d'autres réponses l'ont expliqué, il est impossible d'empêcher un hôte tiers de pouvoir inspecter les données sur votre serveur. Ce que vous pouvez faire cependant, c'est rendre ces données sans valeur pour quiconque les inspecte. Si vous pouvez le faire, l'hébergement de votre propre serveur physique ne doit pas être la seule solution.

Le simple chiffrement des données sur le serveur ne suffit pas et est complètement inutile contre un attaquant déterminé ayant accès au serveur. Ce dont vous avez besoin est connu sous le nom de chiffrement "zéro connaissance" et l'étendue et la facilité avec lesquelles vous pouvez l'utiliser dépendront de votre application serveur. Tout le chiffrement/déchiffrement est effectué côté client, et seules les données chiffrées sont transmises et stockées sur le serveur. Le serveur ne voit jamais les données non chiffrées à aucun moment.

Par exemple, un service de synchronisation/stockage de fichiers de type Dropbox peut y parvenir assez facilement. Le client chiffre les fichiers avant le téléchargement et les déchiffre après le téléchargement. Toute personne ayant un accès direct au serveur ne pourra voir que les fichiers cryptés. Un autre exemple avec une solution simple est une application de messagerie, où le chiffrement est effectué de bout en bout. Chaque client transmet des données cryptées via le serveur, l'autre client effectuant le décryptage.

Cela seul laissera encore les métadonnées vulnérables. Dans l'exemple de Dropbox, l'attaquant pourra voir la taille des fichiers, les horodatages, etc. Que cela dépende ou non de vos besoins de sécurité spécifiques, bien sûr, mais si vous voulez une solution complète, vous devrez trouver un moyen de crypter les métadonnées aussi. Idéalement, vous souhaitez stocker un seul flux d'octets chiffrés bruts sur le serveur et faire exécuter toutes les opérations par le client.

Même alors, vous devrez considérer que l'attaquant peut glaner des informations en analysant la quantité et la fréquence des données transmises vers et depuis le client, ainsi que des éléments tels que l'adresse IP du client. Cela pourrait être un problème dans certains contextes (par exemple, les personnes vivant sous des gouvernements oppressifs), mais ce n'est probablement pas pour la plupart des applications.

11
Jon Bentley