Двустороннее шифрование на локальном веб-сервере, которое может быть украдено - PullRequest
3 голосов
/ 14 октября 2010

У меня есть компьютер с автономным киоском, на котором будет работать веб-сервер LAMP и размещена форма для людей, которые могут подойти и заполнить. Предоставленные ими данные будут зашифрованы и сохранены в базе данных MySQL (все хранятся локально на этом компьютере).

Проблема заключается в том, что, если вся коробка будет украдена, кто-то потенциально сможет получить доступ к коду, просмотреть ключи шифрования и расшифровать данные.

Есть ли способ выполнить эту настройку так, чтобы зашифрованные данные стали бесполезными, даже если вся машина была украдена? (т. е. пароль шифрования, который хранится в другом месте, но все же позволяет шифровать и сохранять вновь введенные данные формы во время использования киоска)?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 14 октября 2010
0 голосов
/ 15 октября 2010

Для этого можно использовать алгоритмы асимметричного шифрования (например, RSA).При этом у вас будет пара ключей, приватный и публичный.И, как следует из названия, открытый ключ будет доступен каждому, поэтому пользовательские данные могут быть зашифрованы с помощью этого открытого ключа, а зашифрованные данные будут расшифрованы только с помощью соответствующего закрытого ключа, который в случае владельца машины будет сохранен.Таким образом, даже в случае кражи вашей машины человеку будет очень сложно расшифровать данные.

0 голосов
/ 14 октября 2010

Насколько умны ваши "нападающие"?

Вы могли бы, но ключ в таране, таким образом, он (вроде бы) исчезнет, ​​когда машина теряет мощность. Для этого вы можете смонтировать ram как раздел (ramdisk) и позволить коду загрузить ключ оттуда.

Но, удерживая ключ от когда-либо касаясь диска, может быть трудно. ОС может, например, поменять его.

Edit:

Умные злоумышленники могут обойти это либо:

  1. Копирование ключа, прежде чем украсть коробку
  2. Покопайтесь вокруг диска, чтобы найти ключ ... или, возможно, его части и перебрать все остальное. Как я уже сказал, удерживать ключ от прикосновения к диску может быть сложно.

Вы также можете сделать несколько легких анти-реверс-инжиниринга и собрать код в код. Таким образом, было бы нетривиально (но не так сложно) прочитать его.

...