2010-10-08 1 views
0

Для одной из ролей я получаю пару документов от людей по электронной почте. Это нечувствительные данные, поэтому электронная почта в порядке, но я бы хотел создать небольшой портал, где люди могут загружать файлы, и только когда они отправят все необходимые файлы, я получаю уведомление о завершении запроса.Использование OpenSSL и PHP для хранения данных?

Независимо от содержания, я хотел бы надежно хранить документы. Это также заставило меня задуматься о шифровании вообще для моих других потребностей. Первоначально я рассматривал шифрование AES в MySQL, но общий консенсус в том, что это не хорошо, поскольку ключ легко доступен на сервере. Таким образом, это заставило меня задуматься о шифровании с открытым/закрытым ключом.

Вот план я исследование, чтобы увидеть, если он будет работать или, если это уже было сделано, и я просто не могу найти стандартную реализацию:

  1. Я генерировать открытые/закрытые пары ключей. Открытый ключ переходит на веб-сервер, закрытый ключ остается у меня на моем компьютере.
  2. Пользователь загружает файл через веб-страницу на мой веб-сервер через сайт https.
  3. Загрузить скрипт берет файл, шифрует его открытым ключом и сохраняет его в файловой системе или базе данных.
  4. По завершении я получаю уведомление, и я подключаюсь к серверу и загружаю файлы через SSH или другое зашифрованное соединение.
  5. Наконец, я локально расшифровываю файлы с помощью закрытого ключа и обрабатываю их по мере необходимости.

Любые недостатки, которых мне не хватает в этом сценарии? Или, если есть лучшие способы сделать это, можете ли я указать мне в правильном направлении? Благодарю.

ответ

0

Ваш план в основном говорит о том, что вы доверяете серверу, но не файловой системе. Это используется в случаях, когда вы используете совместную службу или стороннюю резервную копию или хотите применить политику уничтожения данных путем периодического уничтожения ключа шифрования.

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

Единственный трюк - настроить веб-сервер так, чтобы он хранил загруженные файлы строго в памяти, пока вы их не зашифруете. PHP, например, будет по умолчанию записывать загруженные файлы в/tmp даже до вызова вашего скрипта.

 Смежные вопросы

  • Нет связанных вопросов^_^