Скажем, у меня есть сценарий, в котором у меня есть несколько сотен удаленных компьютеров. Эти компьютеры никогда не подключаются к Интернету. По крайней мере раз в месяц кому-то поручают с помощью подконтрольной мне утилиты загружать обновленные данные на USB-накопитель, передавать их на удаленный ПК и подключать его. На ПК установлено программное обеспечение, которое умеет импортировать и устанавливать данные с USB-накопителя. Я также могу обновлять и контролировать это программное обеспечение. Я хотел бы начать проверку целостности и источника данных, загружаемых на эти ПК, чтобы убедиться, что никто не подделал данные, загруженные на USB-накопитель. Моя идея состоит в том, чтобы хешировать все файлы, содержащиеся на USB-накопителе, хранить эти хэши, соответствующие каждому файлу в XML-документе, и подписывать XML-документ цифровой подписью. Данные не шифруются; Меня не волнует, увидит ли кто-то данные, я просто не хочу, чтобы кто-то вмешивался в них.
Проблема, с которой я столкнулся, заключается в том, как проверить лицо, подписавшее XML-документ. Типичная практика PKI заключалась бы в том, чтобы я подписал свой открытый ключ в центре сертификации (ЦС), которому доверяет удаленный ПК, чтобы подтвердить свою личность.
Однако, поскольку эти удаленные компьютеры никогда не подключаются к Интернету, я не могу гарантировать, что удаленные компьютеры имеют актуальные версии открытых ключей от данного ЦС или даже знают о нем. Есть ли безопасный способ распространения ключей сертификатов или другой метод проверки личности, который я мог бы использовать для этого?