Ок, до меня дошло, как оно работает. Мы выбираем некий ключ и записываем его в файл, а также сохраняем где-нибудь в сейфе. При каждом записи в лог считается хэш от (текущий ключ + текущая запись), и полученное значение записывается вместо старого ключа. Для проверки валидности лога мы достаём из сейфа первоначальный ключ и ещё раз проделываем эти операции, последовательно вычисляя хэш от каждой записи и текущего ключа, полученное значение должно совпадать с текущим хэшем на проверяемой системе. При этом удалить записи из лога, подделав хэш, невоможно, т. к. первоначального ключа злоумышленник не знает, и старые значения хэша нигде не сохраняются.Но тогда возникает проблема, например, с ротацией логов. Каждый раз, когда удаляются старые записи, старый ключ перестанет работать, и нужно опять новый ключ сохранять в беопасном месте. Право, лучше уж удалённый лог-сервер.
|