Создание зашифрованного файла журнала

Вы можете попробовать поэкспериментировать со свойствами hardsource и кэша.

https://nuxtjs.org/api/configuration-build/#hardsource

https://nuxtjs.org/api/configuration-build/#cache

Это должно сделать последующие сборки намного быстрее

9
задан JamieH 10 March 2009 в 11:31
поделиться

8 ответов

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

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

4
ответ дан 4 December 2019 в 07:35
поделиться

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

Original Encrypted using ECB mode Encrypted using other modes

Вместо этого удостоверьтесь, что шифрование записи в журнале зависит от предыдущих записей в журнале. Хотя это имеет некоторые недостатки (Вы не можете дешифровать отдельные записи в журнале, как всегда необходимо дешифровать весь файл), он делает шифрование намного более сильным. Для нашей собственной библиотеки входа, SmartInspect, мы используем Шифрование AES и режим CBC для предотвращения проблемы шаблона. Не стесняйтесь давать SmartInspect попытку, если коммерческое решение подошло бы.

10
ответ дан 4 December 2019 в 07:35
поделиться

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

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

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

6
ответ дан 4 December 2019 в 07:35
поделиться

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

Вот то, что можно сделать:

  1. Используйте симметричное шифрование (предпочтительно AES)
  2. Выберите случайный главный ключ
  3. Выберите окно безопасности (5 минут, 10 минут, и т.д.)

Затем выберите случайный временный ключ в начале каждого окна (каждые 5 минут, каждые 10 минут, и т.д.)

Зашифруйте каждый объект журнала отдельно с помощью временного ключа и добавьте к временному файлу журнала.

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

Затем выберите новый временный ключ и продолжите.

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

Это должно обеспечить достаточно безопасности.

1
ответ дан 4 December 2019 в 07:35
поделиться

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

4
ответ дан 4 December 2019 в 07:35
поделиться

Мне не ясно, является ли Ваше беспокойство на безопасности или реализации.

Простая реализация должна поднять трубку с потоковым утройством шифрования. Потоковое утройство шифрования поддерживает свое собственное состояние и может зашифровать на лету.

StreamEncryptor<AES_128> encryptor;
encryptor.connectSink(new std::ofstream("app.log"));
encryptor.write(line);
encryptor.write(line2);
...
1
ответ дан 4 December 2019 в 07:35
поделиться

Поскольку .NET видит Microsoft Application blocks для журнала и шифрует функциональность: http://msdn.microsoft.com/en-us/library/dd203099.aspx

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

0
ответ дан 4 December 2019 в 07:35
поделиться

Я задаюсь вопросом, какое приложение Вы пишете. Вирус или Троянский конь? Так или иначе...

Зашифруйте одну только каждую запись, преобразуйте ее в некоторую строку (Base64, например) и затем зарегистрируйте ту строку как "сообщение".

Это позволяет Вам сохранять части файла читаемыми и только шифровать важные части.

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

Намного лучший подход был бы к obfuscator для файла журнала. Это просто заменяет определенные шаблоны "XXX". Можно все еще видеть то, что произошло и когда Вам нужна определенная часть данных, можно попросить это.

[РЕДАКТИРОВАНИЕ] Эта история имеет больше последствий, что Вы думали бы на первый взгляд. Это эффективно означает, что пользователь не видит то, что находится в файле. Среди "Пользователя" не обязательно "взломщик". Взломщик сконцентрируется на зашифрованных файлах (так как они, вероятно, более важны). Это - причина старой поговорки: Как только кто-то получает доступ к машине, нет никакого способа предотвратить его, чтобы сделать что-либо на нем. Или сказать это иначе: Просто, потому что Вы не знаете, как не означает, что кто-то еще также не делает. Если Вы думаете, что у Вас нет ничего для сокрытия, Вы не думали о себе.

Кроме того, существует проблема ответственности. Скажите, некоторые утечки данных в Интернете после того, как Вы получите копию журналов. Так как пользователь понятия не имеет, что находится в файлах журнала, как можно доказать в суде, что Вы не были утечкой? Боссы могли попросить файлы журнала контролировать своих пешек, прося кодировать его, таким образом, крестьяне не могут заметить и пожаловаться на это (или предъявить иск, пена!).

Или посмотрите на него от совершенно другого угла: Если бы не было никакого файла журнала, то никто не мог бы злоупотребить им. Как насчет того, чтобы позволить отладить только в случае чрезвычайной ситуации? Я настроил log4j для хранения последних 200 сообщений журнала в буфере. Если ОШИБКА зарегистрирована, я вывожу 200 сообщений к журналу. Объяснение: Я действительно не забочусь о том, что происходит в течение дня. Я только забочусь об ошибках. Используя JMX, просто установить уровень отладки на ОШИБКУ и понизить его удаленно во времени выполнения при необходимости в большем количестве деталей.

1
ответ дан 4 December 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: