Протоколы безопасного сетевого взаимодействия


Example.18.7


ProofOfPossession ::= CHOICE {

raVerified [0] NULL,

-- используется, если RA уже убедился, что

-- запрашивающий обладает закрытым ключом

signature [1] POPOSigningKey,

keyEncipherment [2] POPOPrivKey,

keyAgreement [3] POPOPrivKey

}

POPOSigningKey ::= SEQUENCE {

poposkInput [0] POPOSigningKeyInput OPTIONAL,

algorithmIdentifier AlgorithmIdentifier,

signature BIT STRING

-- Подпись (используя "algorithmIdentifier") является

-- значением в DER-представлении poposkInput.

-- Замечание: если CertReqMsg certReq CertTemplate

-- содержит значения subject и publicKey, то poposkInput

-- должно быть опущено и подпись должна быть вычислена

-- для DER-представления значения CertReqMsg certReq.

-- Если CertReqMsg certReq CertTemplate не содержит

-- значения открытого ключа и субъекта, то poposkInput

-- должно присутствовать и должно быть подписано. Данная

-- стратегия гарантирует, что открытый ключ не

-- присутствует в полях poposkInput и CertReqMsg certReq

-- CertTemplate.

}

POPOSigningKeyInput ::= SEQUENCE {

authInfo CHOICE {

sender [0] GeneralName,

-- используется только если установлена

-- аутентифицированная идентификация для отправителя

-- (т.е. DN из ранее выпущенного или действительного

-- в настоящий момент сертификата)

publicKeyMAC PKMACValue },

-- используется, если в настоящий момент нет

-- аутентифицированного GeneralName отправителя;

-- publicKeyMAC содержит MAC, основанный на пароле,

-- в DER-представлении значения publicKey

publicKey SubjectPublicKeyInfo -- из CertTemplate

}

PKMACValue ::= SEQUENCE {

algId AlgorithmIdentifier,

-- значение алгоритма должно быть PasswordBasedMac

-- {1 2 840 113533 7 66 13}, значение параметра есть

-- значение PBMParameter BIT STRING

}

POPOPrivKey ::= CHOICE {

thisMessage [0] BIT STRING,

-- доказательство, представленное в данном сообщении

-- (содержит сам закрытый ключ, зашифрованный для СА)

subsequentMessage [1] SubsequentMessage,

-- доказательство приведено в следующем сообщении

dhMAC [2] BIT STRING

-- для keyAgreement (только) доказательство

-- приведено в данном сообщении, которое содержит

-- MAC (для значения DER-представления параметра

-- certReq в CertReqMsg, которое должно включать и

-- subject, и publicKey), основываясь на ключе,

-- полученном из закрытого ключа DH конечного

-- участника и открытого ключа DH СА.

}

SubsequentMessage ::= INTEGER {

encrCert (0),

-- запросы, при которых результирующий сертификат

-- зашифрован для конечного участника (при этом POP

-- будет выполнен в подтверждающем сообщении)

challengeResp (1)

-- запросы, при которых CA/RA обязан выполнить обмен

-- вызов-ответ с конечным участником, чтобы доказать,

-- что ему известен закрытый ключ

}




- Начало -  - Назад -  - Вперед -