Есть программно-аппаратный комплекс на базе обычного ПК под windows/linux, который поставляется клиенту. На нем должен писаться лог с защитой от изменения. Встал вопрос - как это сделать?
Писать на основной винт смысла не вижу - пользователь может его удалить.
Пока что мысль только одна - запломбированная коробочка с HDD и одноплатным ПК. Конечно, можно будет подключиться к интерфейсу и добавить логи, но удалить существующие не получится.
Может подскажете хорошее решение данной задачи?
Спасибо!
Можно использовать аппаратный ключ типа FIDO U2F либо ПК с встроенным TPM + в структуру данных лога добавить ц.подпись и что-то типа блокчейна, так чтобы можно было проверить целосность и последовательность всех подписей. Чтобы это взломать нужно будет произвести реверсинг и написать непростой код.
Для создания первого блока в таком логе нужно будет чтобы оператор ПК создал ПИН код либо нажал пальцем на кнопку U2F ключа для генерации первой подписи (которую невозможно подделать чисто програмно).
Либо Можно все вышесказанное упростить - можно писать лог на внешний источник , но для каждого блока записей записывать предыдущий Хеш (котрый храниться на ПК) и также новый Хеш. В результате подменить данные не получитьчся. поскольку на самом ПК всегда будет храниться предыдщий хеш который должен совпадать с тем который на лог сторадже.