Использование OpenSSL и PHP для хранения данных? - PullRequest
0 голосов
/ 08 октября 2010

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

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

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

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

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

1 Ответ

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...