http://en.wikipedia.org/wiki/PKCS
Используйте PKCS7 (S/MIME) признаком этого. Создайте собственную пару cert/private key, самостоятельно подпишите сертификат, а затем подпишите свой файл с помощью закрытого ключа и сертификата, используя PKCS7. Он будет прикреплять к нему сертификат, а затем он может проверить себя во время выполнения, используя команду openssl (man smime или просто helps openssl). Это защищен от несанкционированного доступа, потому что, хотя открытый ключ находится в файлах, которые вы выдаете, подпись S/MIME для этого открытого ключа может генерироваться только с помощью закрытого ключа, который вы не будете распространять. Поэтому, если файл подписан вашим сертификатом, он должен быть подписан кем-то с закрытым ключом, и поскольку вы никому не предоставляли закрытый ключ, он, должно быть, пришел от вас.
Вот как сделать самозаверяющий сертификат.
http://www.akadia.com/services/ssh_test_certificate.html
Вы должны убедить OpenSSL доверять своему серт как корень власти (-CAfile), а затем проверить ее с корнем, а также проверить сертификат на файл принадлежит вам (хеш-сертификат) и проверить хэш. Обратите внимание, что, хотя он не документирован, статус выхода openssl отражает действительность знака, который вы проверяете при выполнении проверки smime. Это значение равно 0, если оно совпадает с ненулевым, если оно не соответствует.
Обратите внимание, что все это небезопасно, потому что если проверка находится в вашем коде, они могут просто удалить чек, если они хотят побить вас. Единственный безопасный способ сделать это - это иметь контрольную панель в ОС и проверить ее двоичный файл и отказаться от ее запуска, если она не подписана. Но поскольку в ОС нет проверки, и linux может быть изменен, чтобы удалить/обойти его в любом случае ... То, что это действительно хорошо, - это просто обнаружение поврежденных файлов больше, чем попытка удержать людей от обхода вас.
Этот ответ - это то, что я ищу: двоичная сертификация на основе ядра. К сожалению, DigSig больше не поддерживается. Мой вывод заключается в том, что в настоящее время у нас нет решения на уровне производства на основе исполняемого сертификата на основе ядра. Спасибо всем за обсуждение. –
Возможно, можно перенести DigSig на последние версии ядра. Чувство моего чувства говорит мне, что обработка ELF не могла сильно измениться за последние два года. – hillu
@viraptor имеет приятный ответ ниже, IMA, но я должен был выбрать только один. –