3.13.2. При використанні функції гешування за ГОСТ 34.311-95 під час обчислення електронного цифрового підпису значення стартового вектора H встановлюється рівним 256 нульовим бітам.
3.13.3. При використанні функції гешування за ДСТУ 7564-2014 під час обчислення електронного цифрового підпису рекомендовано застосовувати режими обчислення геш-значення, що визначаються бітовою довжиною порядка базової точки еліптичної кривої та наведені в таблиці 4. Як стартовий вектор геш-функції використовується нульовий вектор.
Таблиця 4
( Пункт 3.13 розділу III в редакціїНаказу Міністерства юстиції № 1017/5/206 від 29.03.2017 )
3.14. Порядок кодування окремих параметрів криптографічних алгоритмів.
При кодуванні реквізитів криптографічного алгоритму за ДСТУ 4145-2002 застосовуються такі правила:
( Абзац пункту 3.14 розділу III в редакціїНаказу Міністерства юстиції № 1017/5/206 від 29.03.2017 )
При кодуванні реквізитів криптографічних алгоритмів ДСТУ 4145-2002 та ГОСТ 34.310-95 застосовуються такі правила:
3.14.1. Значення типу "INTEGER".
Всі значення типу "INTEGER" для алгоритмів ДСТУ 4145-2002 кодуються як цілі числа >=0.
Наприклад, значення для типу "INTEGER" кодуються такою послідовністю байтів:
а) позитивне число 18А3h кодується в DER як послідовність байтів 02 02 18 А3;
б) позитивне число FA10h кодується як послідовність байтів 02 03 00 FA 10 (додається 00 як додатковий старший байт, оскільки старший біт старшого байта FAh дорівнює 1);
в) число 0 кодується в DER як послідовність байтів 02 01 00.
( Підпункт 3.14.1 пункту 3.14 розділу III із змінами, внесеними згідно зНаказом Міністерства юстиції № 1017/5/206 від 29.03.2017 )
3.14.2. Кодування двійкових рядків в складі ASN.1-типу OCTET STRING у форматі Little-Endian.
Математичне кодування двійкових рядків (бітових послідовностей) виконується за схемою - молодший байт (що містить менші за номерами біти) за молодшою адресою (ближче до початку потоку).
Біти в байті нумеруються від 0 до 7 за вагою розряду: біт i має вагу 2-i.
Наприклад: біт 0 має вагу 1 (01h), біт 1 має вагу 2 (02h), біт 7 має вагу 128 (80h).
Біт n двійкового рядка кодується як біт i байта j, де i та j обчислюються за формулами:
i = n mod 8,
j = n div 8,
де:
x mod y - операція обчислення залишку від ділення x на
y, x div y - операція ділення x на y із заокругленням до
найближчого цілого в меншу сторону.
Якщо кількість бітів у двійковому рядку не кратна 8, біти останнього байта, які не використовуються, мають містити нульове значення.
Наприклад:
бітовий рядок 11100011 кодується як байт E3h;
бітовий рядок 1111000110111 кодується як послідовність байт 37h 1Eh.
ІV. Розширення сертифіката (extensions) для перевірки електронного цифрового підпису в інформаційно-телекомунікаційних системах з метою електронного документообігу та електронної взаємодії інформаційних систем в межах України
( Назва розділу IV в редакціїНаказу Міністерства юстиції № 1017/5/206 від 29.03.2017 )
4.1. Формат розширень сертифіката має такий вигляд:
Extensions ::= SEQUENCE SIZE (1…MAX) of Extension
Extension ::= SEQUENCE (
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnvalue OCTET STRING )
Базовий об’єктний ідентифікатор розширень сертифіката має такий вигляд:
id-ce OBJECT IDENTIFIER::= ( joint-iso-ccitt (2) ds (5) 29 )
Сертифікат може містити будь-які додаткові розширення, які не визначені в цьому документі, за умови, що вони визначені як некритичні. Об’єктні ідентифікатори таких розширень повинні бути зареєстровані у встановленому порядку.
4.2. Розширення сертифіката наведені у таблиці 5.
Таблиця 5
( Таблиця 4 пункту 4.2 розділу IV із змінами, внесеними згідно з Наказом Міністерства юстиції № 3354/5/730 від 24.11.2016 )
( Пункт 4.2 розділу IV із змінами, внесеними згідно з Наказом Міністерства юстиції № 1017/5/206 від 29.03.2017 )
4.3. Розширення "Ідентифікатор відкритого ключа Центру" ("authorityKeyIdentifier") використовується для ідентифікації відкритого ключа, що відповідає особистому ключу, яким підписано сертифікат або список відкликаних сертифікатів.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= (id-ce 35)
authorityKeyIdentifier ::= SEQUENCE (
keyIdentifier [0] keyIdentifier
authorityCertIssuer [1] GeneralNames OPTIONAL,
authorityCertSerialNumber [2] CertSerialNumber OPTIONAL )
KeyIdentifier::= OCTET STRING
Атрибут "KeyIdentifier" повинен обов’язково бути присутнім.
Поле "authorityKeyIdentifier" не повинно визначатися як критичне.
4.4. Розширення "Ідентифікатор відкритого ключа підписувача" ("subjectKeyIdentifier") використовується для ідентифікації відкритого ключа, що відповідає особистому ключу, за допомогою якого підписувач здійснює накладання електронного цифрового підпису.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-subjectIdentifier OBJECT IDENTIFIER :: = (id-ce 14)
SubjectKeyIdentifier ::= KeyIdentifier
Поле "Ідентифікатор відкритого ключа підписувача" ("subjectKeyIdentifier") не повинно визначатися як критичне.
4.5. Обчислення "keyIdentifier" для алгоритмів ДСТУ 4145-2002.
( Абзац перший пункту 4.5 розділу IV із змінами, внесеними згідно зНаказом Міністерства юстиції № 1017/5/206 від 29.03.2017 )
Значення "keyIdentifier" в розширеннях "subjectKeyIdentifier" та "authorityKeyIdentifier" обчислюються відповідно засобами ЕЦП підписувача та Центром під час генерації та обробки запиту на формування сертифіката таким чином.
Із кодованого як BIT STRING зображення відкритого ключа вилучаються байт, що містить ознаку типу даних, байти, що містять довжину блоку даних, та байт, що містить число невикористаних бітів.
Обчислюється значення геш-функції згідно з пунктом 3.13 розділу ІІІ цих Вимог.
( Абзац четвертий пункту 4.5 розділу IV в редакціїНаказу Міністерства юстиції № 1017/5/206 від 29.03.2017 )
Якщо параметри криптоалгоритму у полі "Інформація про відкритий ключ підписувача" ("subjectPublicKeyInfo") містять таблицю заповнення вузлів заміни блоку підстановки (ДКЕ), то при обчисленні геш-функції використовується саме цей ДКЕ, інакше використовується ДКЕ № 1, що наведений у додатку 1 до Інструкції № 114.
4.6. Розширення "Призначення відкритого ключа" ("keyUsage") визначає призначення відкритого ключа, що міститься в сертифікаті та повинно визначатися як критичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-keyUsage OBJECT IDENTIFIER::= ( id-ce 15 )
keyUsage::= BIT STRING (
digitalSignature (0), електронний цифровий підпис
nonRepudiation (1), неспростовність
keyEncipherment (2), шифрування з метою транспортування ключа
dataEncipherment (3), шифрування даних
keyAgreement (4), відкритий ключ використовується в протоколах
узгодження ключа
keyCertSign (5), електронний цифровий підпис у сертифікаті
crlSign (6), електронний цифровий підпис у списку відкликаних
сертифікатів
encipherOnly (7), якщо біт "keyAgreement" встановлено, відкритий ключ
може використовуватися тільки для шифрування даних
decipherOnly (8) ) якщо біт "keyAgreement" встановлено, відкритий ключ
може використовуватися тільки для розшифрування даних
Для сертифіката, що формується підписувачу, повинні бути встановлені біти "digitalSignature" (0) та "nonRepudiation" (1).
Для сертифіката Центру повинні бути встановлені біти "keyCertSign" (5) та "crlSign" (6).
4.7. Розширення "Уточнене призначення відкритого ключа" ("extendedKeyUsage") може бути визначено як критичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-extKeyUsage OBJECT IDENTIFIER::= ( id-ce 37 )
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1.. MAX) OF KeyPurposeId
KeyPurposeId ::= OBJECT IDENTIFIER
id-kp OBJECT IDENTIFIER ::= ( iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) 3 )
Для сертифіката Центру, що використовується для перевірки підпису OCSP-відповідей та позначок часу, повинні бути зазначені об’єктні ідентифікатори ( id-kp 8 ) або ( id-kp 9 ).
id-kp-timeStamping Перевірка позначки часу. Застосовується із
OBJECT IDENTIFIER::= ( id-kp 8 ) встановленим бітом "nonRepudiation" (1) розширення
"Призначення відкритого ключа" ("keyUsage")
id-kp-OCSPSigning Перевірка підпису на відповіді протоколу визначення
OBJECT IDENTIFIER::= ( id-kp 9 ) статусу сертифіката (OCSP-відповіді)
Для сертифіката підписувача, якщо ЕЦП застосовується як електронна печатка, розширення "Уточнене призначення відкритого ключа" ("extendedKeyUsage") повинно містити об’єктний ідентифікатор 1.2.804.2.1.1.1.3.9.
Для сертифікатів підписувача, які використовуються для перевірки ЕЦП у визначених інформаційно-телекомунікаційних системах, в розширенні "Уточнене призначення відкритого ключа" ("extendedKeyUsage") можуть використовуватись відповідні об’єктні ідентифікатори за умови, що ці об’єктні ідентифікатори зареєстровані у встановленому порядку.
4.8. Розширення "Політика сертифікації" ("certificatePolicies") містить посилання на політику сертифікації, відповідно до якої Центр сформував сертифікат. Розширення повинно визначатися як критичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-certificatePolicies OBJECT IDENTIFIER ::= ( id-ce 32 )
anyPolicy OBJECT IDENTIFIER ::= ( id-ce-certificatePolicies 0 )
CertificatePolicies::= SEQUENCE SIZE (1.. MAX) OF PolicyInformation
PolicyInformation ::= SEQUENCE (
policyIdentifier CertPolicyId,
policyQualifiers SEQUENCE SIZE (1.. MAX) OF PolicyQualifierInfo OPTIONAL )
CertPolicyId ::= OBJECT IDENTIFIER
4.9. Розширення "Додаткові дані підписувача" ("subjectAlternativeName") використовується для розширення межі ідентифікації підписувача (адреса електронної пошти, DNS, IP-адреса, URL).
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-subjectAltName OBJECT IDENTIFIER::= ( id-ce 17 )
SubjectAltName ::= GeneralNames
GeneralNames ::= SEQUENCE SIZE (1.. MAX) OF GeneralName
GeneralName ::= CHOICE (
otherName [0] OtherName,
rfc822Name [1] IA5String,
dNSName [2] IA5String,
x400Address [3] ORAddress,
directoryName [4] Name,
ediPartyName [5] EDIPartyName,
uniformResourceIdentifier [6] IA5String,
iPAddress [7] OCTET STRING,
registeredID [8] OBJECT IDENTIFIER )
OtherName ::= SEQUENCE (
type-id OBJECT IDENTIFIER,
value [0] EXPLICIT ANY DEFINED BY type-id )
EDIPartyName ::= SEQUENCE (
nameAssigner [0] DirectoryString OPTIONAL,
partyName [1] DirectoryString )
4.10. Розширення "Додаткові дані Центру" ("issuerAlternativeName") дозволяє розширити межі ідентифікації Центру (адреса електронної пошти, DNS, IP-адреса, URL). Розширення повинно бути визначено як некритичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-issuerAltName OBJECT IDENTIFIER::= ( id-ce 18 )
IssuerAltName::= GeneralNames
4.11. Розширення "Основні обмеження" ("basicConstraints") дозволяє визначити, що сертифікат сформований для Центру або підписувача. Розширення повинно визначатися як критичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-basicConstraints OBJECT IDENTIFIER::=( idce 19 )
BasicConstraints ::= SEQUENCE (
cA BOOLEAN DEFAULT FALSE, сA=TRUE указує, що сертифікат сформований для
Центру
сA=FALSE указує, що сертифікат сформований для
підписувача
pathLenConstraint INTEGER (0.. MAX) OPTIONAL )
Поле "pathLenConstraint" використовується, якщо поле сA встановлено в TRUE. У цьому разі воно визначає максимально допустиму кількість проміжних сертифікатів, що знаходяться між цим сертифікатом та сертифікатом підписувача.
У сертифікаті акредитованого центру сертифікації ключів розширення "pathLenConstraint" повинно мати значення "0".
У сертифікаті засвідчувального центру розширення "pathLenConstraint" повинно мати значення "1".
У сертифікаті центрального засвідчувального органу розширення "pathLenConstraint" повинно мати значення "2".
4.12. Розширення "Персональні дані підписувача" ("subjectDirectoryAttributes") має містити додаткові персональні дані підписувача та бути визначено як некритичне. Поле не використовується для зберігання даних про підписувача, що визначені в полі "subject".
Об’єктний ідентифікатор цього розширення має такий вигляд:
id-ce-subjectDirectoryAttributes OBJECT IDENTIFIER::= ( id-ce 9 )
SubjectDirectoryAttributes::= SEQUENCE SIZE (1.. MAX) OF Attribute
Attribute ::= SEQUENCE (
Type Attributetype,
Values SETOFAttributeValue )
Кодування національних реквізитів у розширенні "Персональні дані підписувача" ("SubjectDirectoryAttributes") виконується за такими правилами:
1) код за Єдиним державним реєстром підприємств та організацій України юридичної особи - резидента (реєстраційний номер облікової картки платника податків - фізичної особи - підприємця) використовується для сертифікатів електронних печаток юридичних осіб - резидентів та для сертифікатів ключів їх посадових осіб. Для сертифікатів ключів посадових осіб у цьому реквізиті вказується код за Єдиним державним реєстром підприємств та організацій України юридичної особи (реєстраційний номер облікової картки платника податків - фізичної особи - підприємця), представником якої (в межах повноважень) є посадова особа.
Для кодування цього реквізиту використовується об’єктний ідентифікатор 1.2.804.2.1.1.1.11.1.4.2.1. Формат реквізиту - "PrintableString", що містить 8, 9 або 10 цифр;
2) реквізит реєстраційного номера облікової картки платника податків - фізичної особи - резидента використовується для сертифікатів ключів, підписувачами у яких є фізичні особи, у тому числі посадові особи. У цьому реквізиті вказується реєстраційний номер облікової картки платника податків - фізичної особи - підписувача.
Для кодування цього реквізиту використовується об’єктний ідентифікатор 1.2.804.2.1.1.1.11.1.4.1.1. Формат реквізиту - "PrintableString", що містить 10 цифр;
3) для фізичних осіб - резидентів, які через свої релігійні переконання відмовились від прийняття реєстраційного номера облікової картки платника податків та повідомили про це відповідний контролюючий орган і мають відмітку у паспорті, до реквізитів, яким відповідають об’єктні ідентифікатори 1.2.804.2.1.1.1.11.1.4.1.1 та 1.2.804.2.1.1.1.11.1.4.2.1, вносяться серія (за наявності) та номер паспорта громадянина України. Формат реквізиту - "PrintableString", що містить від 2 до 8 літер серії паспорта (за наявності) та 6 або 9 цифр номера паспорта.
Кодування літерної частини реквізиту здійснюється відповідно до таблиці транслітерації українського алфавіту латиницею, затвердженої постановою Кабінету Міністрів України від 27 січня 2010 року № 55;
4) реквізит унікального номера запису в Єдиному державному демографічному реєстрі використовується для сертифікатів, підписувачами у яких є фізичні особи - резиденти, у тому числі посадові особи. У цьому реквізиті вказується унікальний номер запису в Єдиному державному демографічному реєстрі фізичної особи - підписувача. Для кодування цього реквізиту використовується об’єктний ідентифікатор 1.2.804.2.1.1.1.11.1.4.3.1. Формат реквізиту - "PrintableString", що містить послідовність з 8 цифр, символу "-" та 5 цифр.
Кодування реквізитів у розширенні "Персональні дані підписувача" ("SubjectDirectoryAttributes") для юридичних осіб - нерезидентів та фізичних осіб - нерезидентів здійснюється за тими самими правилами з урахуванням особливостей форматів ідентифікаційних даних юридичних осіб та фізичних осіб, прийнятих у державі нерезидента, які підтверджено офіційними документами, наданими підписувачем.
( Пункт 4.12 розділу IV в редакції Наказів Міністерства юстиції № 873/5/269 від 05.06.2014, № 3354/5/730 від 24.11.2016, № 1017/5/206 від 29.03.2017 )
4.13. У розширенні "Точки доступу до списків відкликаних сертифікатів" ("CRL Distribution Points") повинна зазначатися принаймні одна загальнодоступна точка розповсюдження списків відкликаних сертифікатів (CRL), яка визначається http (http://) або ldap (ldap://). Розширення не повинно визначатися як критичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-СRLDistributionPoints OBJECT IDENTIFIER::= ( id-ce 31 )
CRLDistributionPoints ::= SEQUENCE SIZE (1.. MAX) OF DistributionPoint
DistributionPoint ::= SEQUENCE (
distributionPoint [0] DistributionPointName OPTIONAL,
reasons [1] ReasonFlags OPTIONAL,
crlIssuer [2] GeneralNames OPTIONAL )
DistributionPointName::= CHOICE (
fullName [0] GeneralNames,
nameRelativeToCRLIssuer [1] RelativeDistinguishedName )
ReasonFlags::= BIT STRING (
unused (0),
keyCompromise (1),
cACompromise (2),
affiliationChanged (3),
superseded (4),
cessationOfOperation (5),
certificateHold (6),
privilegeWithdrawn (7) )
Дозволяється використання лише атрибута "distributionPoint" і тільки у форматі URI, який вказує на відповідний CRL.
4.14. Якщо Центр разом із базовим CRL формує і частковий CRL, то посилання на нього вказується у розширенні "Точка доступу до часткового списку відкликаних сертифікатів" ("Freshest CRL"). Розширення не повинно визначатися як критичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-freshestCRL OBJECT IDENTIFIER ::= ( id-ce 46 )
FreshestCRL ::= CRLDistributionPoints
Формування цього розширення здійснюється за правилами формування розширення "Точки доступу до списків відкликаних сертифікатів" ("CRL Distribution Points").
Це розширення не є обов’язковим. Якщо посилання на частковий CRL не вказується в сертифікаті, то воно обов’язково вказується у відповідному розширенні в структурі базового CRL.
Вимоги щодо формату CRL визначені у Вимогах до формату списку відкликаних сертифікатів, затверджених наказом Міністерства юстиції України, Адміністрації Державної служби спеціального зв’язку та захисту інформації України від 20 серпня 2012 року № 1236/5/453, зареєстрованих у Міністерстві юстиції України 20 серпня 2012 року за № 1400/21712.
4.15. Розширення "Ознаки посиленого сертифіката" ("qualified certificate statement") повинно бути визначено як критичне.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-pe OBJECT IDENTIFIER::= ( iso(1) identified-organization(3)dod(6)internet(1) security(5)
mechanisms(5) pkix(7) pe(1) )
id-pe-qcStatements OBJECT IDENTIFIER::= ( id-pe 3 )
QCStatements ::= SEQUENCE OF QCStatement
QCStatement ::= SEQUENCE (
statementId OBJECT IDENTIFIER,
statementInfo ANY DEFINED BY statementId OPTIONAL )
4.15.1. Ознака того, що сертифікат сформований як посилений:
ua-qcStatement-1 QC-STATEMENT ::= ( IDENTIFIED BY id_ua-diglow-qcs-QcCompliance )
id-ua-diglaw-qcs-QcCompliance OBJECT IDENTIFIER ::= ( 1.2.804.2.1.1.1.2.1 )
Для зазначення того, що сертифікат є посиленим, використовується таке заповнення реквізитів сертифіката підписувача:
обов’язково: в розширенні "Політика сертифікації" ("certificate policies") вказується об’єктний ідентифікатор політики посиленої сертифікації 1.2.804.2.1.1.1.2.2, який визначає, що сертифікат сформовано як посилений згідно із Законом України "Про електронний цифровий підпис" . Якщо сертифікат підписувача відповідає вимогам додаткових політик сертифікації Центру, у ньому можуть бути вказані додатково об’єктні ідентифікатори цих політик сертифікації;
додатково: може бути присутнім розширення "qualified certificate statement", у якому за допомогою стандартного об’єктного ідентифікатора 1.2.804.2.1.1.1.2.1 ("Qualified certificate statement id-ua-diglow-qcs-QcCompliance") позначено відповідність Закону України "Про електронний цифровий підпис" .
14.15.2. Ознака наявності обмеження максимальної суми, на яку вчиняється правочин з використанням електронного цифрового підпису органу державної влади, органу місцевого самоврядування, підприємства, установи та організації державної форми власності:
esi4-qcStatement-2 QC-STATEMENT::= ( SYNTAX
QcEuLimitValue IDENTIFIED BY id-etsi-qcs-QcLimitValue )
id-etsi-qcs-QcLimitValue OBJECT IDENTIFIER::= ( id-etsi-qcs 2 )
QcEuLimitValue::= MonetaryValue
MonetaryValue::= SEQUENCE (
сurrency Iso4217CurrencyCode,
amount INTEGER,
exponent INTEGER )
Iso4217CurrencyCode::= CHOICE (
alphabetic PrintableString (SIZE 3) )
V. Подання сертифіката для перевірки електронного цифрового підпису відповідно до міжнародних стандартів
Під час формування сертифікатів відкритих ключів підписувачів повинні використовуватись алгоритми електронного цифрового підпису ECDSA відповідно до національного стандарту ДСТУ ISO/IEC 14888-3:2014 "Інформаційні технології. Методи захисту. Цифрові підписи з доповненням. Частина 3. Механізми на основі сертифікатів", затвердженого наказом Міністерства економічного розвитку і торгівлі України від 30 грудня 2014 року № 1493, зі ступенем розширення основного поля еліптичної кривої не менше 256 бітів або RSA відповідно до рекомендацій RFC 3447 "Public-Key Cryptography Standards (PKCS) № 1: RSA Cryptography Specifications Version 2.1".
Для обчислення значення геш-функції під час формування сертифікатів відкритих ключів підписувачів повинен використовуватись алгоритм SHA-256 або SHA-512 відповідно до FIPS PUB 180-4 "Secure Hash Standard".
Параметри особистих ключів, які використовуються під час формування сертифікатів відкритих ключів підписувачів, визначаються регламентом роботи центрального засвідчувального органу.
( Вимоги доповнено новим розділом Vзгідно з Наказом Міністерства юстиції № 1017/5/206 від 29.03.2017 )
Директор Департаменту нотаріату, банкрутства та функціонування центрального засвідчувального органу Міністерства юстиції України | К.І. Чижмарь |
Директор Департаменту криптографічного захисту інформації Адміністрації Державної служби спеціального зв’язку та захисту інформації України | А.І. Пушкарьов |