| ||||
| ||||
Какой сертификат используется для создания конверта, если их у меня есть несколько? | ||||
Ответы: | ||||
| ||||
Под конвертом понимается шифрование? Если вы шифруете в адрес получателя то нужен открытый ключ (сертификат) получателя. Посмотрите http://www.cryptopro.ru/CryptoPro/doc/w2k_PKI.doc | ||||
| ||||
Как я понимаю, EnvelopedData формирует цифровой конверт (шифрование+подпись). Так вот, какой из моих сертификатов будет использоваться для формировании подписи | ||||
| ||||
Enveloped - это шифрование. К подписи никакого отношения не имеет. Подпись - Signed. Если есть желание разобраться поподробнее, посмотрите RFC 2315 (PKCS#7) http://www.ietf.org/rfc.html. Там описаны типы криптографических форматов. При подписи сами выбираете какой из ваших сертификатов (т.е. закрытых ключей) пользовать. Либо из дислога, либо программно. | ||||
| ||||
Тогда скажите, пожалуйста, чем отличается EncryptedData от EnvelopedData. Оба шифруют. Только "The EnvelopedData object provides properties and methods to envelop data for privacy by encryption", и "The EncryptedData object provides properties and methods to encrypt and decrypt data using a session key derived from a secret". Т.о. различие заключается в том, что EnvelopedData формирует цифровой конверт (подпись+шифрование). Или я не прав? | ||||
| ||||
Не правы. Смотрим RFC 2315. The syntax is general enough to support many different content types. This document defines six: data, signed data, enveloped data, signed-and-enveloped data, digested data, and encrypted data. 10. Enveloped-data content type The enveloped-data content type consists of encrypted content of any type and encrypted content-encryption keys for one or more recipients. The combination of encrypted content and encrypted content-encryption key for a recipient is a "digital envelope" for that recipient. Any type of content can be enveloped for any number of recipients in parallel. It is expected that the typical application of the enveloped-data content type will be to represent one or more recipients’ digital envelopes on content of the data, digested-data, or signed-data content types. The process by which enveloped data is constructed involves the following steps: 1. A content-encryption key for a particular content- encryption algorithm is generated at random. 2. For each recipient, the content-encryption key is encrypted with the recipient’s public key. 3. For each recipient, the encrypted content- encryption key and other recipient-specific information are collected into a RecipientInfo value, defined in Section 10.2. 4. The content is encrypted with the content- encryption key. (Content encryption may require that the content be padded to a multiple of some block size; see Section 10.3 for discussion.) 5. The RecipientInfo values for all the recipients are collected together with the encrypted content into a EnvelopedData value, defined in Section 10.1. 13. Encrypted-data content type The encrypted-data content type consists of encrypted content of any type. Unlike the enveloped-data content type, the encrypted-data content type has neither recipients nor encrypted content-encryption keys. Keys are assumed to be managed by other means. It is expected that the typical application of the encrypted-data content type will be to encrypt content of the data content type for local storage, perhaps where the encryption key is a password. Enveloped, Encrypted ничего не подписывают. Различия: Encrypted не имеет получателей, как делаются ключи не описано. Рекомендуется пользовать для локального хранения. | ||||
| ||||
Ясно. Спасибо. :( Но если я буду использовать объект SignedData, будет ли использоваться подписывание по ГОСТу? | ||||
| ||||
Если будете пользовать SignedData.Sign то нужный криптопровайдер (алгоритм) для создания подписи будет оределяться сертификату и ссылке на закрытый ключ. | ||||
| ||||
Ясно. Спасибо :) | ||||