Я создаю хранилище данных о клиентах. Это включает в себя чтение CSV с различной информацией:
cell email gender language transaction
5551212 foo@bar.com M E 005
Я однозначно идентифицирую клиентов, используя ячейку + электронная почта (я знаю, что это не очень хорошо, отдельные вопросы), и я заинтересован в том, чтобы де-идентифицировать эти данные так, чтобы я удалял ячейку и электронную почту, сохраняя при этом возможность сопоставления -идентифицируемая информация для будущих записей с конкретными клиентами.
Одним из подходов, которые я рассмотрел, было хеширование ячейки + электронная почта с использованием алгоритма безопасного хеширования, такого как SHA2. Таким образом, сохраненные данные будут:
uid gender language transaction
aW51SGvswX... M E 005
Когда я получаю дополнительные записи, я хеширую ячейку + электронная почта. Если это новое, я создаю нового клиента. Если хеш существует, увеличьте счетчик транзакций на клиенте.
Если злоумышленник похитит БД, ему потребуется хэшировать различные комбинации «электронная почта + ячейка» для восстановления истории транзакций.
Я прочитал Как отделить личность человека от его личных данных? и, конечно, я понимаю, что если злоумышленник имеет длительный доступ к системе, все записи, наблюдаемые в это время, скомпрометированы. Однако конкретный сценарий, которого я хочу избежать, - это однократная кража БД.
Полагаю, растягивание хеша - хорошая идея. Я не верю, что можно использовать соль для защиты от радужных таблиц, так как мне нужно заранее вычислить и сохранить соль, а затем просмотреть ее, чего я не могу сделать без хеша.
Есть ли альтернативы этой системе?
Есть что-то, что я пропускаю?
Спасибо
Justin