« first day  last day (14 days later) » 

9:06 AM
Добрый день, пока не все тут исследовал, не знал про чат. У меня путанница, я занимался администрированием шлюзов, и часто приходилось настраивать OPenVPN, там используется ключ Диффи-Хелмана, но там он создается через утилиту easy-rsa и простой командой build-dh, так же я знаю как через командную строку создать в OPenSSL ключ, но как я понял из статьи в wikipedia.org ключи должны быть на обеих сторонах, при том разные. Если так то генерироваться они могут в разных местах?
 
 
3 hours later…
11:44 AM
@Aslan Да, приватные и публичные ключи на обеих сторонах в общем случае - разные, и сгенерированы могут быть чем-угодно.
обмен производится только публичными ключами, приватные хранятся на местах,
или, как в случае с ECDHE - не хранятся вообще, а генерятся на каждую сессию.
 
Я думал эфемерные хуже, кажется по ним нельзя проверить личность?
возможно моё понимание искажено после работы с опенвпн, но как я понимаю должны быть ключи диффи-хелмана, еще сертификат клиента. и если hmac не поддерживается выбранной конфигурацией файл с конфигурациями проверки, там он часто назывался ta.key
 
12:00 PM
у меня в примере как раз генерится ключ диффи-хелмана (со спецификой в EC)
эфемерные не хуже, они просто медленнее, но безопаснее
 
EC_KEY_generate_key(key);
key это хранилище? как его в файл записать, на сколько я понял это не char
 
"личность" может проверяться другими инструментами
я с ECDH пока встречался только в качестве exchange-защиты для pre master secret в SSL
@Aslan а надо именно в файл?
key - это указатель на EC_KEY
 
да, желательно. Вы считаете что для каждой сессии лучше новые ключи?
моих навыков не хватит осилить сейчас boost.asio, или что-то еще, есть готовый компонет в C++ Builder IndyTCPServer и Client, они могут работать с файлами, и кажется (не проверял) с текстовым представлением
 
12:21 PM
если нужна защита, то да эфемерные как раз для этого,
но если важнее скорость, то придется выбирать )
текстовое представление- это pem-формат
мне не приходилось сохранять ключи в файл,
openssl все делает через BIO - это потоки ввода/вывода, типа наших stream'ов,
BIO могут быть так же в памяти, т.е. можно записать ключ в BIO, а затем - в файл
 
спасибо за разъяснение, работа будет проходить в локальной сети, но среда агрессивная. Небезопасно. А все же какой библиотекой было бы проще работать, я было отчаялся и искал аналоги, нашел cryptopp, но все равно компоненты Indy работают с ssleay библиотекой. А как сделается идентификация? после хендшейка отправляется подписанный фрагмент, и по нему определяется сертификат? Кажется для этого нужно выбирать DSA вместо RSA
 
лучше всего пользоваться openssl, тут все инструменты есть, только документация скуповата
ssleay - как раз openssl
идентификация сервера или клиента?
 
Хотелось бы с двух сторон
в компоненте есть это, но кажется функция там не работает, при её включении соединение у меня разрывается
работает только если я проверяю сервер
 
для сервера:
во время хендшейка сервер посылает публичный ключ (сместе с сертификатом)
затем, клиент шифрует этим ключом pre master secret и посылает серверу
если сервер расшифровал ключ, значит идентифицирован
оба варианта возможны: и RDA и DSA, но в специфике EC - это уже ECDSA
 
12:37 PM
Спасибо большое, вы организовываете сервер openssl? кажется там есть такая возможность клиент-сервер
 
для клиента пока сценарий не изучал, но скорее всего примерно также: клиент посылает свой сертификат с ключом, а сервер отсылает какой-то фрагмент хендшейка, закодированный этим ключом. Если клиент расшифровывает его, значит идентифицирован
 
спасибо большое! каша в голове стал гуще, но уже есть какое-то просветление. Я делал тестовое приложение, в котором генерировал пары ключей через openssl.exe. Теперь хотелось бы самому немного приобщиться
 
1:05 PM
я вынужден разбираться с SSL, т.к. плотно работаю с протоколом TDS, от mssql,
ms не отключает защиту, и даже инкапсулирует SSL в TDS, поэтому все особенности SSL приходится разбирать вручную, openssl тут просто необходим.

сам openssl как капуста )) : есть низкий уровень, есть высокий, есть несколько промежуточных слоев и не всегда понимаешь, как их стыковать,
надо гуглить и разбирать готовые примеры
 

« first day  last day (14 days later) »