Все_лекции_Горбенко
.pdfSubjectKeyIdentifier визначає сертифікат підписувача по ідентифікатору ключа.
Для формату ЕЦП, визначеного у Специфікації, повинен використовуватися варіант щодо визначення відкритого ключа підписувача за структурою: IssuerAndSerialNumber
IssuerAndSerialNumber ::= SEQUENCE { issuer Name,
serialNumber CertificateSerialNumber }
Nameкодується відповідно до Технічних специфікаціях форматів представлення базових об’єктів (формат посиленого сертифікату відкритого ключа)
CertificateSerialNumber ::= INTEGER
digestAlgorithm Об’єктний ідентифікатор, який вказує на алгоритм геш-функції, що використовувався при обчисленні цифрового підпису. Геш-значення обчислюється за електронними даними у відношенні яких формується підпис, а також за атрибутами, що підписуються(signedAttrs) відповідно до порядку, визначеному у Специфікації. Об’єктний ідентифікатор поля digestAlgorithm повинен бути зазначений усписку digestAlgorithms.
DigestAlgorithmIdentifier ::= AlgorithmIdentifier
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
Кодування структури DigestAlgorithmIdentifierдля алгоритму гешування ГОСТ 34.311-95 наведено у п. 5.2.1.
signedAttrs Набір атрибутів, що підписуються.
signatureAlgorithm Об’єктний ідентифікатор, який вказує на криптографічний алгоритм цифрового підпису.
|
SignatureAlgorithmIdentifier ::=AlgorithmIdentifier |
|
AlgorithmIdentifier ::= SEQUENCE { |
|
algorithm OBJECT IDENTIFIER, |
|
parameters ANY DEFINED BY algorithm OPTIONAL } |
|
Порядок кодування AlgorithmIdentifier для алгоритмів за ДСТУ 4145- |
|
2002 та ГОСТ 34.310-95 наведений у відповідних розділах документу |
|
«Національна система електронного цифрового підпису. Технічні |
|
специфікації форматів представлення базових об’єктів». |
Signature |
Цифровий підпис |
|
SignatureValue ::= OCTET STRING |
unsignedAttrs |
Набір атрибутів, що не підписуються. |
5.5 Подання структуриsignedAttrs ASN.1 структура SignedAttributes
SignedAttributes ::= SET SIZE (1..MAX) OF Attribute
Attribute ::= SEQUENCE { attrType OBJECT IDENTIFIER,
attrValues SET OF AttributeValue }
AttributeValue ::= ANY
Структура signedAttrs повинна містити наступні обов’язкові атрибути: content-type, message-digest, ESS signing-certificate v2та може містити необов’язкові атрибути: signature- policy-identifier, signing-time,content-time-stamp.
5.5.1. Подання атрибуту content-type
Атрибут,який визначає тип електронних даних (Content Type), що підписуються. Значення атрибута content-typeповинно співпадати із значенням eContentTypeструктури encapContentInfoв signed-data.
Об’єктний ідентифікатор, що визначає атрибут content-type:
id-contentType OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) 3 }
Значення атрибуту content-type має ASN.1 тип ContentType
ContentType ::= OBJECT IDENTIFIER
Незважаючи на те, що синтаксисом attrValuesпередбачено як SET OF AttributeValue,атрибут content-type повинен мати єдине значення. Нульове або множинне значенняAttributeValue не допускається.
5.5.2. Подання атрибуту message-digest
Атрибут, що містить геш-значення даних, які підписуються (encapContentInfo eContent OCTET STRING у signed-data– тип формату „криптографічне повідомлення”) або файлу, що підписується (тип формату „зовнішній підпис”).
Об’єктний ідентифікатор, що визначає атрибут message-digest:
id-messageDigest OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) 4 }
Значення атрибуту message-digest має ASN.1 тип MessageDigest
MessageDigest ::= OCTET STRING
Незважаючи на те, що синтаксисом attrValuesвизначено як SET OF AttributeValue,атрибут message-digest повинен мати єдине значення. Нульове або множинне значенняAttributeValue не допускається.
5.5.2.1. Обчислення геш-значення.
Обчислення геш-значення здійснюється за даними, що підписуються (значення eContentструктури encapContentInfoв signed-dataабо зовнішнімиданими (файлом) та атрибутами, що підписуються(signedAttrs). Порядокобчислення геш-значення наступний.
1.Обчислюється геш-значення за даними, що підписуються, які розміщуються у eContentструктури encapContentInfoв signed-data(тип формату – „криптографічне повідомлення”) або за зовнішнім файлом, у відношення якого формується підпис (тип формату – „зовнішній підпис”). При цьому у першому випадку вхідними даними для гешалгоритму є тільки октети, що містять значення eContent.Октети тега та довжини не використовуються.
2.Здійснюється DER кодування структури signedAttrs,в якійрозміщується у
поліmessage-digest, геш-значення, що було отримане на попередньому кроці.
3. Обчислюється геш-значення DER кодованої структури signedAttrs,включаючи октети тега та довжини. Отримане геш-значення є вхідним значенням для криптографічного алгоритму обчислення цифрового підпису.
5.5.3 Подання атрибуту ESS signing-certificate v2
Зазначений атрибут повинен містити посилання на сертифікат підписувача. Метою реалізації зазначеного атрибутує попередження випадків підстановки (заміни) сертифіката підписувача, атак, пов’язаних з перевиданням сертифікату, та таким чином, чітко встановити відповідний сертифікат, який повинен використовуватися під час перевірки ЕЦП.
Об’єктний ідентифікатор, що визначає атрибут ESS signing-certificate v2:
id-aa-signingCertificateV2 OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)smime(16) id-aa(2) 47 }
Значення атрибуту ESS signing-certificate v2має ASN.1 тип
SigningCertificateV2 ::= SEQUENCE {
certs |
SEQUENCE OF ESSCertIDv2, |
policies |
SEQUENCE OF PolicyInformation OPTIONAL } |
Структураcertsповинна містити посилання на сертифікат підписувача.
ESSCertIDv2 ::= SEQUENCE {
hashAlgorithm |
AlgorithmIdentifier |
certHash |
Hash, |
issuerSerial |
IssuerSerial |
} |
|
Hash ::= OCTET STRING |
|
IssuerSerial ::= SEQUENCE { |
|
issuer |
GeneralNames, |
serialNumber |
CertificateSerialNumber |
} |
|
Значення поле issuerSerialповинне відповідати значенню serialNumber
структуриissuerAndSerialNumberвSignerIdentifier (SignerInfo).
hashAlgorithm містить об’єктний ідентифікатор алгоритму, що використовується для обчислення геш-значення.
certHashповинна містити геш-значення сертифікату підписувача. У випадку, якщо геш-значення сертифікату не відповідає сертифікату, що використовується під час перевірки підпису, результат перевірки підпису повинен бути встановлений як недійсний.
5.5.4.Подання атрибуту signature-policy-identifier.
Об’єктний ідентифікатор, що визначає атрибут signature-policy-identifier:
id-aa-ets-sigPolicyId OBJECT IDENTIFIER ::= { iso(1)member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)smime(16) id-aa(2) 15 }
Значення атрибуту signature-policy-identifier має ASN.1 тип SignaturePolicyIdentifier
SignaturePolicyIdentifier ::=CHOICE { signaturePolicyId SignaturePolicyId,
}
SignaturePolicyId ::= SEQUENCE {
sigPolicyId |
SigPolicyId, |
sigPolicyHash |
SigPolicyHash OPTIONAL, |
sigPolicyQualifiers SEQUENCE SIZE (1..MAX) OF SigPolicyQualifierInfo OPTIONAL} SignaturePolicyImplied ::= NULL
Присутність типу NULL вказує, що політика підпису визначається семантикою підписаних даних або за іншими зовнішніми даними.
Поле SigPolicyIdмістить об’єктний ідентифікатор, який унікально ідентифікує конкретну версію політики підпису. Синтаксис цього поля такий:
SigPolicyId ::= OBJECT IDENTIFIER
Поле sigPolicyHashє опціональним та містить ідентифікатор геш – алгоритму та геш
– начення політики підпису.
Якщо політика підпису визначена, використовуючи ASN.1 то геш – значення обчислюється із значення політики без зовнішніх даних щодо типу та довжини, і алгоритм хешування повинен бути таким, як вказано в полі sigPolicyHash.
Якщо політика підпису визначена, використовуючи іншу структуру, тип структури та алгоритм гешування повинен бути також вказаний як частина політики підпису, або вказаний, використовуючи спеціфікатор (особу, що розробляє специфікації) політики підпису.
SigPolicyHash ::= OtherHashAlgAndValue
OtherHashAlgAndValue ::= SEQUENCE {
hashAlgorithm |
AlgorithmIdentifier, |
hashValue |
OtherHashValue } |
OtherHashValue ::= OCTET STRING
Ідентифікатор політики підпису може бути пов’язаний з іншою інформацією щодо спеціфікатора. Семантика і синтаксис специфікатора пов’язані з об’єктним ідентифікатором в полі sigPolicyQualifierId.
Загальний синтаксис специфікатора наступний: SigPolicyQualifierInfo ::= SEQUENCE { sigPolicyQualifierId SigPolicyQualifierId,
sigQualifier ANY DEFINED BY sigPolicyQualifierId }
Цей документ визначає такі специфікатори:
spuri: містить web URI або URL посилання на політику підпису;
sp-user-notice: містить повідомлення для користувача, що повинно відображатися кожного разу, коли перевіряється підпис.
SigPolicyQualifierId ::= OBJECT IDENTIFIER
id-spq-ets-uri OBJECT IDENTIFIER ::= { iso(1)member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)smime(16) id-spq(5) 1 }
SPuri ::= IA5String
id-spq-ets-unotice OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) id-spq(5) 2}
SPUserNotice ::= SEQUENCE {
noticeRef |
NoticeReference OPTIONAL, |
explicitText |
DisplayText OPTIONAL} |
NoticeReference ::= SEQUENCE { organization DisplayText,
noticeNumbers SEQUENCE OF INTEGER }
DisplayText ::= CHOICE {
visibleString |
VisibleString (SIZE (1..200)), |
bmpString |
BMPString (SIZE (1..200)), |
utf8String |
UTF8String (SIZE (1..200)) } |
5.5.5.Подання атрибуту signing-time
Атрибутsigning-time, містить час формування цифрового підпису, яке заявляється підписувачем.
Об’єктний ідентифікатор, що визначає атрибут signing-time:
id-signingTime OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) 5 }
Значення атрибуту signing-time має ASN.1 тип SigningTime
SigningTime ::= Time
Time ::= CHOICE { utcTime UTCTime,
generalizedTime GeneralizedTime }
В ЕЦП, що формуєтьсядо 2049року, полеSigningTime кодується у форматі UTCTime. ЕЦП,що формуєтьсяз 2050 року,полеSigningTimeкодуєтьсяу форматі
GeneralizedTime.
UTCTimeзначення повинно бутипредставлено у формі„YYMMDDHHMMSSZ”. Наприклад, північ повинна бутипредставлена як "YYMMDD000000Z".
Століття представляєтьсяне явно та повинно визначатися за наступними правилами:
якщо YYбільше або рівняється 50, рік повинен інтерпретуватися як 19YY;
якщо YYменше50,рік повинен інтерпретуватисяяк 20YY;
Незважаючи на те, що синтаксисом attrValuesвизначено як SET OF AttributeValue,атрибут signing-time повинен мати єдине значення. Нульове або множинне значення AttributeValue не допускається.
Слід зазначити,що часформуванняпідпису можебути некоректним.У разі необхідності забезпеченнядоказу щодо існуванняданих напевний момент часу, необхідно використовувати послугу фіксування часу та їїрезультат - позначку часу.
5.5.6. Поданняатрибутуcontent-time-stamp
Атрибут,якиймістить позначку часу для даних, що підписуються. Позначка часу повиннаіснуватидо початку формуванняблоку ЕЦП.
Об’єктний ідентифікатор,що визначає атрибутcontent-time-stamp:
id-aa-ets-ContentTimeStamp OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9) smime(16) id-aa(2) 20 }
Значення атрибуту content-time-stamp має ASN.1 тип ContentTimeStamp.
ContentTimeStamp ::= TimeStampToken
Формат представлення структури TimeStampTokenвизначається у RFC 3161 "Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)".
Значення messageImprintструктури TimeStampTokenє геш-значення даних, атрибуту message-digest.
5.6. Подання структуриunisignedAttrs
unsignedAttrs - набір атрибутів, що не підписуються. ASN.1 структура UnsignedAttributes
UnsignedAttributes ::= SET SIZE (1..MAX) OF Attribute
Attribute ::= SEQUENCE { attrType OBJECT IDENTIFIER, attrValues SET OF AttributeValue }
AttributeValue ::= ANY
5.6.1. Додатковідані перевірки,що забезпечують встановленнядійсності підпису у достроковому періоді.
Додатковідані перевірки,що забезпечуютьвстановленнядійсності підпису у достроковому періодікодуються як атрибути, що непідписуються вструктурі UnsignedAttributes.Використаннятаких даних забезпечуєстворенняЕЦПу форматах
CAdES-С таCAdES-XLong.
Такимиатрибутамиє:
signature-time-stamp; сomplete-certificate-references; complete-revocation-references; certificate-values; revocation-values.
5.6.2. Поданняатрибуту signature-time-stamp
Атрибутsignature-time-stampміститьзначенняTimeStampToken,який обчислюєтьсяу відношенніцифрового підпису.
Об’єктний ідентифікатор,що визначає атрибутsignature-time-stamp:
id-aa-signatureTimeStampToken OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 14}
Значення атрибуту signature-time-stamp має ASN.1 тип SignatureTimeStampToken.
SignatureTimeStampToken ::= TimeStampToken
У складіunsignedAttributesможе знаходитисьдовільнакількістьатрибутів типуsignature-time-stamp (наприклад,від різних центрів сертифікації ключів,що надають послугу фіксуваннячасу).
Позначка часу можебути отримана післяформуванняцифрового підпису.
Формат представлення структури TimeStampTokenвизначається у RFC 3161 "Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)".
Значення messageImprintструктури TimeStampTokenє геш-значення даних поляsignatureструктури SignerInfo цифрового підпису, до складу структури unsignedAttributes якого він входить.
5.6.3.Подання атрибутуcomplete-certificate-references
Атрибутcomplete-certificate-referencesмістить посилання на всі сертифікати центрів сертифікації ключів, що використовуються для перевіряння підпису. Посилання на сертифікат підписувача у зазначений атрибут не включається. Посилання на сертифікат підписувача включається до атрибутуESS signing-certificate v2.
Об’єктнийідентифікатор,що визначаєатрибутcomplete-certificate-references:
id-aa-ets-certificateRefs OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 21}
Значення атрибуту complete-certificate-references має ASN.1 тип CompleteCertificateRefs.
CompleteCertificateRefs ::= SEQUENCE OF OtherCertID
OtherCertID ::= SEQUENCE { otherCertHash OtherHash, issuerSerial IssuerSerial OPTIONAL }
OtherHash ::= CHOICE { sha1Hash OtherHashValue,
otherHash OtherHashAlgAndValue}
OtherHashValue ::= OCTET STRING
OtherHashAlgAndValue ::= SEQUENCE { hashAlgorithm AlgorithmIdentifier, hashValue OtherHashValue }
IssuerSerialповинен бути присутнім в структурі OtherCertID.
Зазначений атрибут може містити посилання на сертифікати, що використовуються для перевірки позначки часу. В цьому випадку, атрибут повинен включатися у поле signedData позначки часу як unsignedAttrs структури signerInfos.
5.6.3. Подання атрибутуcomplete-revocation-references
Атрибут complete-revocation-references містить посилання на всі списки відкликаних сертифікатів або відповіді за протоколомOCSP, які використовуються для перевірки сертифікатів центрів сертифікації ключів.
Об’єктний ідентифікатор,що визначає атрибутcomplete-revocation-references
id-aa-ets-revocationRefs OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 22}
Значення атрибуту complete-certificate-references має ASN.1 синтаксис CompleteRevocationRefs.
CompleteRevocationRefs ::= SEQUENCE OF CrlOcspRef
CrlOcspRef ::= SEQUENCE { crlids [0] CRLListID OPTIONAL, ocspids [1] OcspListID OPTIONAL,
otherRev [2] OtherRevRefs OPTIONAL
}
CompleteRevocationRefsповинен містити один CrlOcspRefдляsigningcertificate,таким чином для кожного OtherCertIDв атрибутіCompleteCertificateRefs. Другий та наступні атрибут CrlOcspRefповинні бути розміщені у послідовності у тому же порядку, як OtherCertID з якими вони пов’язані.
CRLListID ::= SEQUENCE {
crls SEQUENCE OF CrlValidatedID}
CrlValidatedID ::= SEQUENCE { crlHash OtherHash,
crlIdentifier CrlIdentifier OPTIONAL}
CrlIdentifier ::= SEQUENCE { crlissuer Name, crlIssuedTime UTCTime,
crlNumber INTEGER OPTIONAL
}
OcspListID ::= SEQUENCE {
ocspResponses SEQUENCE OF OcspResponsesID}
OcspResponsesID ::= SEQUENCE { ocspIdentifier OcspIdentifier, ocspRepHash OtherHash OPTIONAL
}
OcspIdentifier ::= SEQUENCE { ocspResponderID ResponderID, producedAt GeneralizedTime
}
OtherRevRefs ::= SEQUENCE { otherRevRefType OtherRevRefType,
otherRevRefs ANY DEFINED BY otherRevRefType
}
OtherRevRefType ::= OBJECT IDENTIFIER
Під час створення crlValidatedID,значення атрибуту crlHashобчислюється у відношенні повного DERкодованого списку відкликаних сертифікатів (CRL), включає його підпис.
crlIdentifier призначений для ідентифікації списку відкликаних сертифікатів (CRL), за реквізитами центру сертифікації ключів, що сформував цей CRL, а також за часом формування CRL, який повинен відповідати часу зазначеному в атрибуті thisUpdate списку відкликаних сертифікатів та, якщо присутнє поле crlNumber.
OcspIdentifierпризначений для ідентифікації OCSPвідповіді за реквізитами центру сертифікації ключів, що сформував цю OCSPвідповідь, а також за часом формування OCSPвідповіді, який повинен відповідати часу зазначеному в атрибуті producedAtOCSPвідповіді.
Зазначений атрибут може містити посилання на CRL,OCSP–відповіді, що використовуються для перевірки сертифікатів для позначки часу. В цьому випадку, атрибут, що не підписується повинен включатися у поле signedData позначки часу як unsignedAttrs структури signerInfos.
5.6.4. Подання атрибуту certificate-values
Атрибут certificate-valuesатрибут містить значення сертифікатів, посилання на які знаходяться у атрибуті complete-certificate-references.
Об’єктний ідентифікатор, що визначаєатрибутcertificate-values
id-aa-ets-certValues OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 23}
Значення атрибуту certificate-valuesмає ASN.1 синтаксис CertificateValues
CertificateValues ::= SEQUENCE OF Certificate
5.6.5Подання атрибуту revocation-values
Атрибут revocation-valuesмістить значення CRL та OCSPвідповідей, посилання на які знаходяться у атрибуті complete-revocation-references.
Об’єктний ідентифікатор, що визначає атрибутrevocation-values:
id-aa-ets-revocationValues OBJECT IDENTIFIER ::= { iso(1) member-body(2)us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) id-aa(2) 24}
Значення атрибуту revocation-valuesмає ASN.1 синтаксис RevocationValues
RevocationValues ::= SEQUENCE {
crlVals [0] SEQUENCE OF CertificateList OPTIONAL, ocspVals [1] SEQUENCE OF BasicOCSPResponse OPTIONAL, otherRevVals [2] OtherRevVals OPTIONAL}
OtherRevVals ::= SEQUENCE { otherRevValType OtherRevValType,
otherRevVals ANY DEFINED BY OtherRevValType}
OtherRevValType ::= OBJECT IDENTIFIER
ЛЕКЦІЯ №4 з ДИСЦИПЛІНИ
«ТЕХНОЛОГІЇІНФРАСТРУКТУР ВІДКРИТОГО КЛЮЧА »
Тема лекції
«Моделі та механізми електронних довірчих послуг. ».
ОСНОВНІ НАВЧАЛЬНІ ПИТАННЯ.
4.1 Загальна характеристика транскордонних електронних довірчих послуг. Електронні довірчі послуги.
4.2. ЕЛЕКТРОННІ ДОВІРЧІ ПОСЛУГИ ІДЕНТИФІКАЦІЇ ТА АВТЕНТИФІКАЦІЇ.