Хранение номеров мобильных телефонов и кредитных карт в открытом виде?

Здравствуйте, есть такая задача:
Пользователи вводят свой номер, он подтверждается по смс.
Пользователь совершает перевод средств карту одного зелёного банка менеджеру, после чего менеджер подтверждает оплату.
Поскольку зелёный банк может возвращать только имя плательщика и последние четыре цифры номера карты(и сумму перевода), менеджер может искать оплату в выписке с использованием этих данных. Данные о карте и имени плательщика получаем от пользователя.
Если оплата не подтверждена - менеджер звонит клиенту по номеру, который мы подтвердили.
Соответственно менеджер должен в читаемом виде получать и данные о плательщике, о карте(последние 4 цифры), и о номере.
Один пользователь может оплачивать неограниченному количеству менеджеров и один менеджер может получать неограниченное количество оплат от неограниченного количества пользователей.
Вопрос – в каком виде хранить эти данные в базе максимально безопасно?
Безопасно ли хранить их в открытом виде? OWASP запрещает это делать
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
OWASP запрещает это делать

Ну таки шифруйте любым шифром - это автоматически делает их неоткрытыми. Именно это по вашей же ссылке и написано и перечислены варианты как можно скрыть данные. Необязательно это должно быть необратимое хеширование.

Безопасно ли хранить их в открытом виде?

даже с шифрованием при доступе к серверу/исходникам данные можно расшифровать, и безопасности это никак не прибавляет.
Защитит если данные сольют без доступа к коду или всему серверу, через стандартную инъекцию например на сайте.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@cicatrix
было бы большой ошибкой думать
Если "максимально безопасно" то, разумеется, шифровать.
Для поиска можно тупо повторить в соседнем поле в незашифрованном виде 4 цифры, которые получаете от банка.
И да, если "максимально безопасно", то каждая запись должна шифроваться своим ключом, который, разумеется, не должен лежать рядом с записью.

Вообще, это всё словоблудие: 100%-й безопасности не бывает. Определите сценарий угрозы - от чего именно вы хотите защититься, определите наиболее вероятные векторы атаки на ваши данные, постарайтесь закрыть хотя бы их. Безопасность - это КОМПЛЕКС мероприятий (начиная с того, насколько вы уверены в надёжности своих менеджеров/админов, что они не сольют базу злоумышленнику). Подкуп иногда бывает дешевле взлома.
Ответ написан
BojackHorseman
@BojackHorseman
...в творческом отпуске...
ничего тут страшного нет. телефон + 4 последних цифры номера карты не дадут возможности авторизоваться при транзакции. никак.

а вот совпадения ФИО + 4 последних цифры возможны и не подходят для идентификации.

PCI only allows the presentation of the first six (the BIN) or the last four digits. We strongly urge you to not display the credit card at all if it can be avoided. ИЛИ ИЛИ. вот полностью номер нигде хранить нельзя, он есть только на процессинге банка-эмитента карты и на магнитной полосе или чипе самой карты. первые 6 цифр, Bank Identification Number, хотя и является служебной информацией, но коммерческой тайны не составляют.

хранение номера телефона у нас регламентирует закон о сборе и обработке персональных данных, требуется разрешение от клиента. воровать эту базу у вас никто не будет, достать ее при желании вообще не проблема
Ответ написан
@feanor7
Системный администратор
То что Вы собираете, можно классифицировать как персональные данные. Регулирует 152-ФЗ, по обработке есть свои требования, в частности использование сертифицированных средств защиты. Что в целом закрывает Ваш вопрос.

Могут и не поймать за подобное, фирм-то много, все не обойдут. Но открытая база пользователей с телефонами...))) Ну давайте так, она у вас 9 из 10 будет закрытая, от внешнего мира, но открытая для внутреннего доступа. е экселевский же файл вы будете генерить)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы