Цифровая подпись сообщений (Digitally Signing Messages)

Для обеспечения юридической значимости передаваемых сообщений посредством интерфейса API СУЗ 2.0, в заголовок HTTP запроса и ответа со стороны СУЗ добавлен опциональный параметр «X-Signature», для включения откреплённой цифровой подписи данных запроса и ответа (при включении в параметр «X-Signature» откреплённой подписи данные должны кодироваться в Base64).

Формат подписи - откреплённая подпись в формате CMS. Синтаксис криптографических сообщений CMS [IETF RFC 5652] используется для цифровой подписи, хэширования, проверки подлинности и шифрования произвольных сообщений. Для CMS используются криптографические алгоритмы согласно стандартам ГОСТ 28147-89, ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012, а также документа Технического комитета по стандартизации «Криптографическая защита информации» (ТК 26), «Информационная технология. Криптографическая защита информации. Рекомендации по стандартизации. Использование алгоритмов ГОСТ 28147-89, ГОСТ Р 34.11 и ГОСТ Р 34.10 в криптографических сообщениях формата CMS».

Значения CMS генерируются с помощью языка АСН.1 ГОСТ Р ИСО/МЭК 8824-1 с использованием базовых правил кодирования (BER) ГОСТ Р ИСО/МЭК 8825-1.

В целях проведения тестирования, будут поддерживаться тестовый Удостоверяющий Центр ООО "КРИПТО-ПРО".

Заказы и отчёты также могут быть подписаны участником оборота посредством пользовательского интерфейса СУЗ.

В настоящий момент для товарных групп «Предметы одежды, белье постельное, столовое, туалетное и кухонное», «Обувные товары», «Духи и туалетная вода», «Шины и покрышки пневматические резиновые новые», «Фотокамеры (кроме кинокамер), фотовспышки и лампы-вспышки», «Молочная продукция», «Велосипеды и велосипедные рамы», «Кресла-коляски» в том случае, если заказ не подписывается через API, его требуется обязательно подписать через пользовательский интерфейс.

Если в составе запроса был отправлен параметр «X-Signature», содержащий откреплённую подпись параметров запроса или тела сообщения, то СУЗ проводит валидацию подписи и в случае, если подпись действительна, то запрос обрабатывается СУЗ, в противном случае возвращает ошибку, ниже приведён пример включения в запрос откреплённой цифровой подписи.

Пример (Example):

POST /api/v2/{extension}/orders?omsId=CDF12109-10D3-11E6-8B6F0050569977A1 HTTP/1.1
Accept: application/json
clientToken: 1cecc8fb-fb47-4c8a-af3d-d34c1ead8c4f
Content-Type: application/json;charset=UTF-8
X-Signature:
MIIE5QYJKoZIhvcNAQcCoIIE1jCCBNICAQExDjAMBggqhQMHAQECAgUAMAsGCSqGSIb3
DQEHAaCCA64wggOqMIIDWaADAgECAhMSADtoj1yy/t4ybprnAAEAO2iPMAgGBiqFAwIC
AzB/MSMwIQYJKoZIhvcNAQkBFhRzdXBwb3J0QGNyeXB0b3Byby5ydTELMAkGA1UEBhMC
UlUxDzANBgNVBAcTBk1vc2NvdzEXMBUGA1UEChMOQ1JZUFRPLVBSTyBMTEMxITAfBgNV
BAMTGENSWVBUTy1QUk8gVGVzdCBDZW50ZXIgMjAeFw0xOTA5MjkxMzIzMjdaFw0xOTEy
MjkxMzMzMjdaMIGuMScwJQYJKoZIhvcNAQkBFhhteWxvbmdsb25nbmFtZUBnbWFpbC5j
b20xFTATBgNVBAMMDFZsYWRpbWlyV2ViMjENMAsGA1UECwwEaG9tZTENMAsGA1UECgwE
aG9tZTETMBEGA1UEBwwK0J/QtdC90LfQsDEsMCoGA1UECAwj0J/QtdC90LfQtdC90YHQ
utCw0Y8g0L7QsdC70LDRgdGC0YwxCzAJBgNVBAYTAlJVMGYwHwYIKoUDBwEBAQEwEwYH
KoUDAgIkAAYIKoUDBwEBAgIDQwAEQBsvZTPYdD+mZxp1TU8iWNXsC6o5M9YcLJw4AIlu
dme1J4K9iEjYf/I/rmbjf43Ds2/CKYs/tyvSBSBn2KzBnaOjggF3MIIBczAPBgNVHQ8B
Af8EBQMDB/AAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBSpoGfZxUJ4YK4R
cSViA3G5FkFTrDAfBgNVHSMEGDAWgBROgz4Uae/sXXqVK18R/jcyFklVKzBcBgNVHR8E
VTBTMFGgT6BNhktodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5yb2xsL0NS
WVBUTy1QUk8lMjBUZXN0JTIwQ2VudGVyJTIwMigxKS5jcmwwgawGCCsGAQUFBwEBBIGf
MIGcMGQGCCsGAQUFBzAChlhodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9DZXJ0RW5y
b2xsL3Rlc3QtY2EtMjAxNF9DUllQVE8tUFJPJTIwVGVzdCUyMENlbnRlciUyMDIoMSku
Y3J0MDQGCCsGAQUFBzABhihodHRwOi8vdGVzdGNhLmNyeXB0b3Byby5ydS9vY3NwL29j
23
c3Auc3JmMAgGBiqFAwICAwNBAHIfklsYgixUVKVy75nXFgOK1vnJjJYj3RjK3fwsQFbf
mRwkzBVXHF0R/FIvbMmUgTNLC7+Gw3kEsRCZ2tu5yeMxgf0wgfoCAQEwgZYwfzEjMCEG
CSqGSIb3DQEJARYUc3VwcG9ydEBjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMQ8wDQYD
VQQHEwZNb3Njb3cxFzAVBgNVBAoTDkNSWVBUTy1QUk8gTExDMSEwHwYDVQQDExhDUllQ
VE8tUFJPIFRlc3QgQ2VudGVyIDICExIAO2iPXLL+3jJumucAAQA7aI8wDAYIKoUDBwEB
AgIFADAMBggqhQMHAQEDAgUABEBqxixPd0wnkxB22kdt4fMhdgoH2TaGqwY3u3ZD62LK
4WHDX1NbN18mIODeAXOuuZLPzTlWWSKyrHXRBsruvPc0=
Content-Length: 783
{body content is omitted - содержание тела опущено}