GDPR: Зашифрованный журнал в С#

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

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

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

Лучшее предложение, которое я видел до сих пор, - "использовать log4net, но написать собственный приложение, используя потоковое исполнение RFC 3852 от BouncyCastle". Кто-нибудь имеет на это преимущество?

Ответ 1

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

Однако слепое шифрование всего журнала, вероятно, будет ограничивать полезность журналов. Если вы централизуете свое ведение журнала, используя что-то вроде ELK, то вы не сможете выполнять поиск на основе любого поля/части ваших журналов, которые вы шифруете (например, если вы шифруете имя машины, тогда вы даже не знаете, где журналы поступают из!).

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

Ответ 2

Я согласен с некоторыми комментаторами; личные данные не должны быть частью файлов журнала. GDPR не касается шифрования - если вы просто шифруете личные данные, что не означает, что вы являетесь совместимым с GDPR. Что произойдет с персональными данными в ваших файлах журналов, когда вы получите запрос "забыть меня" (право на стирание) у человека? Или "изменить мои данные" (право на исправление)?

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

Связанный с частью шифрования с открытым ключом вашего вопроса, посмотрите: https://aws.amazon.com/kms или https://azure.microsoft.com/en-us/services/key-vault/