Храните загруженные изображения надежно
Я разрабатываю некоторый код на стороне сервера с PHP/MYSQL, который требует аутентификации пользователя.
Когда пользователь создает новую учетную запись, я делаю все стандартные вещи хэш + соль, чтобы сохранить хэш в базе данных, но я не знаю, что делать со сканированным идентификатором, который ему нужно загрузить.
Я имею в виду, что если вы создаете учетную запись, часть ваших личных данных (Имя, Фамилия, Адрес,...) является отсканированной копией (изображением) физической идентификационной карты (Водительские права,...) и касается меня о том, как я должен правильно обрабатывать эти чувствительные изображения.
Я был бы признателен, если бы вы, ребята, могли указать мне правильное направление или дать мне несколько советов.
Спасибо за ваше время!
РЕДАКТИРОВАТЬ:
Вау, ребята, вы крутые и быстрые!
Хранение идентификаторов является обязательным, я хотел бы как-нибудь обойти, но я не могу.
Я дам вам доступ к программному обеспечению, как вы предлагаете, и постараюсь удалить и сохранить на компакт-дисках или что-то подобное, как вы предложили.
Я думал о шифровании двоичных данных с помощью некоторого крипто, но не уверен, что это хорошая идея.
1 ответ
TL;DR Это действительно опасно. Не делай этого, если не должен.
На вашем месте я бы начал с анализа угроз. Какие возможные угрозы безопасности существуют для сохранения этих изображений идентификационных карт в вашей системе? Что может пойти не так? От чего ты защищаешься?
Плохие парни могут проникнуть в вашу систему, украсть их навалом и продать их ворам.
То же, что 1, но они также украдут информацию таблицы и соотнесут ее с вашими изображениями.
Кто-то может неправильно использовать или использовать функцию вашей системы для просмотра одного или нескольких изображений, а также неправильно использовать полученную в результате информацию.
Кто-то может совершить мошенничество на вас, дав вам украденные или поддельные удостоверения личности.
Если вы обрабатываете платежи, ваша система может не пройти проверку PCI, и вам будет отказано в доступе к обработке платежей.
Вы должны выяснить, от каких угроз вы защищаетесь, когда вы создаете систему, чтобы попытаться защитить эти очень чувствительные изображения. Вам также необходимо выяснить, кому разрешено просматривать эту информацию, как вы аутентифицируете этих авторизованных пользователей и как долго вы храните эту информацию.
В идеале вы не собираете эту информацию вообще.
Если вы собрали его, используйте https:// с первого дня.
Если вам нужно собрать его, ваша следующая лучшая альтернатива - быстро осмотреть его, а затем надежно стереть, чтобы вы не построили отличную приманку для воров.
Если вам действительно нужно сохранить его, ваша следующая лучшая альтернатива - быстро переместить его на носитель с воздушной пробкой и удалить его из ваших онлайн-систем. Например, вы можете записывать CD-ROM каждые несколько дней и хранить их архив в картотеке.
Если вам необходимо хранить эту информацию в Интернете, вам определенно нужно написать веб-программы, которые хранят ее в файловой системе где-то еще, кроме веб-корня. Когда кто-то хочет увидеть изображение, вы определенно не хотите просто представлять URL-адрес изображения как
https://honeypot.com/imgs/idcards/user2573551.png
и подать файл из каталога. Вместо этого вам нужно немного программного обеспечения, которое не принимает идентификатор пользователя в качестве явного параметра идентификатора пользователя. То есть вы могли бы представить URL-адрес как
https://honeypot.com/myId.php
Возможно, вы захотите ознакомиться с токенами безопасности, которые называются "одноразовыми номерами" и которые запрещают различные виды атак между сайтами или сохраненными URL-адресами. WordPress имеет хорошую систему одноразового использования, из которой вы могли бы поучиться.
Будь осторожен, а?