Худшая слабость заключается в том, что доступ для чтения к первому файлу раскрывает имя и дату рождения пациентов.
Кроме того, доступ на чтение к другим файлам для злоумышленника со знанием системы (как предполагается в криптографии) позволяет получить медицинские данные для каждого пациента, идентифицированного по имени и дате рождения, при приемлемых вычислительных затратах.
Это проблема ИТ-безопасности, для которой нет полного криптографического решения. Стандартное решение — ограничить доступ на чтение к файлам. Лучшее, что я вижу практически возможным без таких ограничений, это то, что знание/угадывание точного имени и даты рождения пациента необходимо для деанонимизации его данных, а проверка предположения требует вычислительных затрат. Общая идея состоит в том, чтобы либо
- вообще не хранить имя и дату рождения; это кажется возможным без изменения функциональности, как указано в «на практике», но мы больше не можем деанонимизировать или обнаружить, что неправильно введенное имя/дата рождения создали дубликаты записей для одного и того же пациента.
- хранить имя и дату рождения, зашифрованные с помощью открытого ключа, при этом закрытый ключ хранится с дополнительными предосторожностями и используется (для расшифровки) только в исключительных случаях, когда необходимо деанонимизировать данные пациента.
В качестве относительно незначительного отступления: «Случайное присвоение идентификатора каждому пациенту» требует чего-то неустановленного, чтобы избежать дублирования идентификаторов, и здесь может закрасться слабость.