Поддержка PEM


Всем привет!

Мы добавили поддержку CMS подписей в кодировке PEM в вызовы API сервиса, теперь можно регистрировать такие подписи, использовать их для аутентификации и экспортировать подписи в таком формате.

Это было сделано в рамках работ по подготовке к большому обновлению НУЦ, так как новый предполагаемый модуль NCALayer будет возвращать подписи именно в PEM, а не в DER. До этого принято было работать с DER.

Перечень затронутых вызовов API:

В чем отличие DER от PEM?

CMS, он же PKCS #7 - это формат представления данных, описанный с использованием ASN.1 синтаксиса. DER - один из способов кодирования (сериализации) структур, описанных с помощью ASN.1, он бинарный (не текстовый), является одним из самых распространенных.

То есть ASN.1 - это язык описания структур данных, CMS - это описание конкретной структуры данных на этом языке, а DER - это способ сериализации (кодирования) экземпляров конкретных структур данных в байты.

Стандарт PEM (Privacy-Enhanced Mail, то есть Почта с повышенной секретностью) определяет текстовый формат, он был разработан отдельно, но приобрел большую популярность в области криптографии и стал применяться для хранения сертификатов, ключей и цифровых подписей. Фактически подпись в PEM - это подпись в DER закодированная в Base64 (то есть бинарные данные кодируются текстом), с добавленными символами переноса каретки и двумя специализированными отметками начала и конца.

Так как PEM - это текстовый формат, то файлы PEM можно открыть любым тестовым редактором. Подпись в PEM выглядит приблизительно так:

-----BEGIN CMS-----
MIIb+wYJKoZIhvcNAQcCoIIb7DCCG+gCAQExDzANBglghkgBZQMEAgEFADALBgkq
...
fWLub74VkG084gN+bEcv
-----END CMS-----

Переход с DER на PEM в НУЦ РК, вероятно, обусловлен тем, что для передачи DER в JSON и XML, его в любом случае приходится кодировать в Base64 (JSON и XML - это тестовые форматы, бинарные данные в них “как-есть” помещать невозможно). А плюсом PEM является то, что с этим форматом работают многие утилиты и приложения, таким образом упрощается отладка систем, появляется возможность использовать готовые инструменты без необходимости предварительной конвертации.

Мы всегда признательны за обратную связь, расскажите нам о том, что Вы думаете о нас, данные в разделе контакты.