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/