2010-10-14 3 views
3

J'ai un ordinateur de kiosque hors ligne qui va exécuter un serveur web LAMP et héberger un formulaire pour que les gens puissent le remplir et le remplir. Les données qu'ils soumettent seront cryptées et stockées dans une base de données MySQL (toutes stockées localement sur cette machine). Le problème est que si toute la case était volée, quelqu'un pourrait potentiellement entrer dans le code, voir les clés de chiffrement et décrypter les données.Cryptage bidirectionnel sur un serveur web local qui pourrait être volé

Est-il possible d'effectuer cette configuration de manière à rendre les données chiffrées inutiles même si l'ensemble de la machine est volé? (c'est-à-dire un mot de passe de cryptage qui est conservé ailleurs, mais qui permet tout de même de crypter et de stocker les données de formulaire nouvellement entrées pendant que le kiosque est utilisé)?

Merci.

Répondre

3
+0

C'est ce dont vous avez besoin. Le cryptage de clé publique peut permettre à toute personne ayant la clé publique (par exemple, le kiosque) de chiffrer et uniquement le détenteur de la clé privée (vous) à déchiffrer. Cependant, vous ne pourrez pas utiliser les données de la base de données sur le kiosque. – rojoca

+0

Génial. Je vous remercie. Je pense que c'est exactement ce dont j'ai besoin. – insomniak29

+0

Uhm .. mais ce n'est pas bidirectionnel sur le kiosque? –

0

Comment smart sont vos "attaquants"?

Vous pourriez mais la clef dans le bélier, de cette façon il disparaîtrait (sorte de) quand la machine perd le pouvoir. Pour ce faire, vous pouvez monter un ram en tant que partition (ramdisk) et laisser le code charger la clé à partir de là. Mais, en gardant la touche jamais toucher le disque peut être difficile. Le système d'exploitation peut, par exemple, l'échanger.

Edit:

attaquants intelligents pourraient contourner ce soit:

  1. copie de la clé avant de voler la boîte
  2. Dig autour du disque pour trouver la clé .. ou peut-être des parties de celui-ci et la force brute le reste. Comme je l'ai dit, il peut être difficile de garder la clé en contact avec le disque.

Vous pouvez également faire de la lumière anti-reverse engineering et assembler le code dans le code. De cette façon, il ne serait pas trivial (mais pas si difficile non plus) de le lire.

0

Vous pouvez utiliser les algorithmes de chiffrement asymétrique (Ex. RSA) pour y parvenir. Avec cela, vous aurez une paire de clés, un privé et un public. Et comme son nom l'indique, la clé publique sera disponible pour tous, de sorte que les données utilisateur peuvent être cryptées avec cette clé publique, et les données cryptées sont décryptées uniquement à l'aide de la clé privée correspondante. Ainsi, même si quelqu'un volait votre machine, il serait très difficile pour une personne de déchiffrer les données.

Questions connexes