Перейти к содержанию

Получение контейнера ключей из файла

Ключи криптографии используются для удостоверения того, что система, которая прислала или отправила какое-либо сообщение, является именно той, за кого себя выдает. Другими словами, это «цифровая подпись».

Один из вариантов хранения таких ключей, это хранение ключей в физическом файле, на каком-либо носителе, однако такой способ несет определенные риски.

Содержимое файла, содержащего ключи криптографии, может быть изменено без обнаружения или предупреждения при последующем использовании. Таким образом для добавления объектов сертификата не требуется никакой контроль доступа. Это дает возможность злоумышленнику вставить данные своего центра сертификации в эти файлы без необходимости какой-либо авторизации.

С того момента, как центр сертификации злоумышленника вставлен в атакуемую систему она будет доверять и признавать любой сертификат, выпущенный центром сертификации атакующего.

Атака также может быть произведена по схеме «атака посредника», который перехватывает файлы во время транспортировки, и вставляет вражеский Trust Anchor.

Один из более безопасных способов хранения, хранение контейнеров непосредственно в конфигурации 1С, в виде макета двоичных данных.

Неправильно:

Пароль = "КакойТоПароль";
Контейнер = Новый КонтейнерКлючейКриптографии("C:/cert.p12", Пароль);

Правильно:

Пароль = ПарольИзБезопасногоХранилища();
ДвоичныеДанные = ДанныеДляКонтейнераКлючей(); // берем из данные или макета
Контейнер = Новый КонтейнерКлючейКриптографии(ДвоичныеДанные, Пароль);

См. также

Экранирование кода

// sonar:CryptoKeysContainerFromFile:off
// sonar:CryptoKeysContainerFromFile:on