Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Все_лекции_Горбенко

.pdf
Скачиваний:
343
Добавлен:
23.02.2015
Размер:
16.96 Mб
Скачать

SubjectKeyIdentifier визначає сертифікат підписувача по ідентифікатору ключа.

Для формату ЕЦП, визначеного у Специфікації, повинен використовуватися варіант щодо визначення відкритого ключа підписувача за структурою: 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. ЕЛЕКТРОННІ ДОВІРЧІ ПОСЛУГИ ІДЕНТИФІКАЦІЇ ТА АВТЕНТИФІКАЦІЇ.