http://en.wikipedia.org/wiki/PKCS
Используйте его знак PKCS7 (S/MIME). Создайте собственную пару сертификат/закрытый ключ, самостоятельно подпишите сертификат, а затем подпишите файл с помощью закрытого ключа и сертификата, используя PKCS7. Он прикрепит к нему сертификат, а затем сможет проверить себя во время выполнения с помощью команды openssl (man smime или просто справка openssl). Это защищено от несанкционированного доступа, потому что, хотя открытый ключ находится в файлах, которые вы выдаете, подпись S/MIME для этого открытого ключа может быть сгенерирована только с закрытым ключом, который вы не будете распространять. Поэтому, если файл подписан вашим сертификатом, он должен быть подписан кем-то с закрытым ключом, и, поскольку вы никому не давали закрытый ключ, он должен был исходить от вас.
Вот как сделать самоподписанный сертификат.
http://www.akadia.com/services/ssh_test_certificate.html
Вам нужно будет убедить openssl доверять вашему сертификату как корневому органу (-CAfile), затем проверить его как корень, а также проверить, что сертификат в файле принадлежит вам (хешировать сертификат) и проверить хэш. Обратите внимание, что, хотя это и не задокументировано, статус выхода openssl отражает действительность знака, который вы проверяете при проверке smime. Это 0, если он совпадает, не ноль, если нет.
Обратите внимание, что все это небезопасно, потому что, если проверка находится в вашем коде, они могут просто удалить проверку, если захотят победить вас. Единственный безопасный способ сделать это - иметь средство проверки в ОС, проверять ваш двоичный файл и отказываться от его запуска, если он не подписан. Но поскольку в ОС нет средства проверки, а Linux все равно можно изменить, чтобы удалить / обойти его ... То, для чего это действительно хорошо, - это просто обнаружение поврежденных файлов, а не попытка удержать людей от обхода вас.
person
Southern Hospitality
schedule
16.11.2009