The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"SSL + мультиплексирование сокетов"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"SSL + мультиплексирование сокетов"  +/
Сообщение от GreenHouse email(ok) on 04-Дек-09, 17:44 
Написал приложение клиент/сервер на С++ под Linux, в сервере использую квантование информации и мультиплексирование ввода/вывода. Теперь наконецто задумался о безопасности соединений. Начал розбиратся с SSL и понял, что в ssl не все так просто при использовании функции select. SSL_read работает с полной информацией, тоесть сокет должен быть блокирован и вся идея с Select идёт коту под хвост. Так скажите возможно ли использовать мультиплексирование ssl соединений или нет? Если можно то подилитесь примерчиками кода.
Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "SSL + мультиплексирование сокетов "  +/
Сообщение от Вова on 04-Дек-09, 18:36 
>SSL_read работает с полной информацией, тоесть сокет должен быть блокирован

нет, не должен. всё прекрасно работает на неблокирующих сокетах. Более того, работа с ссл на блокирующих сокетах может привести к отказу обслуживания при обычном тисипи-коннекте на прослушиваемый порт.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "SSL + мультиплексирование сокетов "  +/
Сообщение от GreenHouse email(ok) on 04-Дек-09, 21:23 
>>SSL_read работает с полной информацией, тоесть сокет должен быть блокирован
>
>нет, не должен. всё прекрасно работает на неблокирующих сокетах. Более того, работа
>с ссл на блокирующих сокетах может привести к отказу обслуживания при
>обычном тисипи-коннекте на прослушиваемый порт.

select — опрашивает сетевой буффер, а SSL_write и SSL_read работают с внутренним SSL -буффером. Таким образом результат полученный от select не позволяет однозначно использовать его для вызовов SSL (SSL_write, SSL_read)

Правильно я мыслю ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "SSL + мультиплексирование сокетов "  +/
Сообщение от Вова on 05-Дек-09, 10:18 

> select — опрашивает сетевой буффер, а SSL_write и SSL_read работают с
>внутренним SSL -буффером. Таким образом результат полученный от select не позволяет
>однозначно использовать его для вызовов SSL (SSL_write, SSL_read)
>
>Правильно я мыслю ?

Понимание верно, развиваем мысль дальше: так как вполне возможно, что данных, о наличии которых рапортует селект(), будет недостаточно для успешного выполнения алгоритмов ссл, то использование блокирующих сокетов недопустимо; при использовании неблокирующего транспорта SSL_read/write возвращают специальные значения хочу_ещё_читать/хочу_ещё_слать по которым необходимо повторять вызов.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "SSL + мультиплексирование сокетов "  +/
Сообщение от GreenHouse email(ok) on 05-Дек-09, 13:04 
>данных о наличии которых рапортует селект(), будет недостаточно для успешного выполнения. >При использовании неблокирующего транспорта SSL_read/write возвращают
>специальные значения хочу_ещё_читать/хочу_ещё_слать по которым необходимо повторять >вызов.

Из выше сказаного я понял, что мы вызываем select(), а потом для каждого активного дескриптора используем вызовы SSL_read/write, а они сами нам говорят о том как прочитали и разшифровали информацию.

Или может отказатся от использования SSL как одного из уровней приложения? Я имею ввиду, что можно используя алгоритмы для асиметричного шифрования(эти алгоритмы взять из OpenSSL) зашифрововать данные, а потом напрямую передавать их через TCP/IP. Чем такой подход хуже чем использования SSL как ещё один уровень?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру