Комментарии 12
Хотел задать вопрос про аппаратную начинку ваших токенов, но вопрос отпал сам собой.
Программно-аппаратный токен lsToken входит в состав семейства токенов LS11. В качестве ключевого носителя используется обыкновенная флешка — USB-флеш-накопитель.
А нормальных аппаратных токенов у вас вообще никаких нет? А то такой как-то стрёмно использовать даже для "домашних" применений.
Схема со связкой тройки CKO_CERTIFICATE, CKO_PRIVATE_KEY, CKO_PUBLIC_KEY по CKA_ID работает для любого алгоритма. Работает уже очень давно.
Озвученная Вами схема сопоставления закрытых и открытых ключей с помощью тестовой подписи и ее проверки также работает для любого алгоритма.
Объекты можно защитить от изменения задав CKA_MODIFIABLE в CK_FALSE. Иначе где гарантия что, не только CKA_ID но еще и тело ключа кто-то подменил.
И если установлен только первый, то извлечь значение нельзя, а вот заменить можно.
Первое, современные токены не обращают внимание на эти флаги для закрытого ключа. Он просто неизвлекаемый и неизменяемый. Ну а дальше, изменили что-то и что? Это уже не тот ключ и нетот сертификат. Цепочка порушилась.
Причем, проверка может быть реализована как на уровне токена, так и в самой PKCS11.
А что касается проверки цепочки, так варианты разные бывают.
Раз смогли заменить значение приватного ключа, значит и для публичного или сертификата не составит труда сделать тоже самое.
А сертификат как подменить? Он же имеет подпись от корневого! И т… д. Хотя, если в УЦ свои люди, то конечно, как там в "Гении".
А вот возможность модификации объектов на токене, это потенциальная уязвимость, возможность эксплуатации которой зависит от конкретного ПО и его логики работы.
В чем уязвимость то, кроме потери сертификата и ключа. Мне их подменили и они перестали для меня и других существовать. Идем на УЦ и получаем новый сертификат. Подмена это не использование. Это разные вещи.
Я написал, что неизвлекаемость и немодифицируемость, это разные атрибуты. А уж можно такой сценарий эксплуатировать или нет, это вопрос к аналитикам.
Токены PKCS#11: сертификаты и закрытые ключи