Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2046 раз в 1586 постах
|
|
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Так (2 байта) показывает студия - смотрите в окно Memory. И да, в примерах всё есть.
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 04.11.2016(UTC) Сообщений: 15 Откуда: Москва Сказал(а) «Спасибо»: 7 раз
|
Добрый день! Тоже вопрос по поводу передачи сессионного ключа.
1. На машинах создаётся ключ обмена. 2. На одной машине создаётся сессионный ключ. Алгоритм следующий (проверки, логирование и пр. не пишу, но они есть). 2.1. Создаём ключ через CryptGenKey с флагом CRYPT_EXPORTABLE. 2.2. Экспортируем его через CryptExportKey, используя ключ обмена, с флагом SIMPLEBLOB (вызываем дважды - узнать размер и получить блоб). 2.3. Подписываем его своим сертификатом через CryptSignMessage. 2.4. Старый ключ, если он был, уничтожаем через CryptDestroyKey. 3. Полученный пакет пересылаем на другую машину. 4. На второй машине принимаем сессионный ключ. 4.1. Проверяем подпись через CryptVerifyMessageSignature. 4.2. Если на принимавшей стороне существовал сессионный ключ, уничтожаем его через CryptDestroyKey. 4.3. Импортируем новый ключ через CryptImportKey, используя ключ обмена.
Наблюдается странность. Допустим, у нас машины А и Б. Если машина А создала сессионный ключ и передала его машине Б, всё проходит нормально. Но если потом машина Б создала сессионный ключ и передала его машине А, на машине А при вызове CryptImportKey возвращается NTE_BAD_DATA. К сожалению, процесс обмена ключами невозможно сделать односторонним (протокол обмена, который мы не можем изменить, подразумевает, что передача данных односторонняя, но в определённый момент меняющая направление). Если машины А и Б поменять местами, остаётся ситуация, что та машина, которая первой принимала ключ, принимает его нормально, а когда при смене направления передачи данных передаётся новый ключ, он при попытке импортировать даёт bad data. Отказаться от перегенерации ключей мы также не можем ввиду ограничения нагрузки на сессионный ключ.
Где может быть проблема? Спасибо!
p.S. Сертификаты действующие на обеих машинах.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close