Что такое и как я могу использовать пары OpenSSL BIO? - PullRequest
17 голосов
/ 13 января 2009

Что такое пара BIO в OpenSSL и как она предназначена для использования? Я уже проверил документы OpenSSL, но никаких подробностей мало.

Ответы [ 5 ]

11 голосов
/ 13 января 2009

BIO в OpenSSL похож на дескриптор файла. Вы используете пару из них для безопасного общения друг с другом, как если бы вы использовали два разъема. Лучшее объяснение, которое я нашел, это здесь .

Я также получил много пользы от сайта Херонга Янга несколько месяцев назад, когда мне пришлось написать приложение с использованием OpenSSL. Разделы по созданию и подписанию сертификатов с использованием OpenSSL и keytool оказали большую помощь в тестировании моего приложения.

7 голосов
/ 02 августа 2011

Пара BIO - это два BIO источника / приемника, которые связаны друг с другом. Все, что написано одному, может быть прочитано другим. Если у вас уже есть два BIOS, вы можете объединить их, используя BIO_make_bio_pair. Или вы можете создать новую пару BIO с BIO_new_bio_pair.

Одно из применений, упомянутых в книге «Сетевая безопасность с OpenSSL» (см. Стр. 111), заключается в том, что пара может быть связана с механизмом SSL. Все, что записано в пару BIO, будет прочитано механизмом SSL. Все, что записано в BIO-пару, можно прочитать. OpenSSL имеет пример этого (см. Ssl / ssltest.c)

5 голосов
/ 07 февраля 2009

Я нашел, что лучший способ узнать об OpenSSL - это прочитать « Сетевая безопасность с OpenSSL » Джона Виеги, Мэтта Мессье и Правира Чандры, ISBN 059600270X. У них есть целый раздел о том, как создать и использовать BIO-пару с примером кода.

1 голос
/ 08 августа 2018

Я написал о парах OpenSSL BIO в составе общего ответа о OpenSSL BIO :

«БИО» БИО (BIO_s_bio). Это трубообразный БИО. Пара таких БИО может быть создана. Данные, записанные в один BIO в паре, будут помещены для чтения второму BIO в паре. И наоборот. Она похожа на память BIO, но память BIO помещает данные в себя, а канал BIO помещает данные в BIO, с которым она сопряжена.

А также здесь :

Но, кроме того, есть BIO под названием BIO_s_bio, который имеет функцию, подобную трубе. Пара таких БИО может быть создана. Любые данные, записанные в первый BIO в паре BIO_s_bio объектов, будут считаны из второго BIO в паре. И наоборот: запись данных во второй BIO приведет к чтению этих данных из первого BIO. Таким образом, BIO_s_bio может использоваться вместо BIO_s_mem. Передача одного экземпляра объекта BIO_s_bio в функцию SSL_set_bio будет достаточной. Приложение получает данные и записывает их в свою БИО в паре BIO_s_bio. OpenSSL получит эти данные из своего BIO в паре. OpenSSL записывает данные в свой BIO в паре, и приложение по очереди получает эти данные из своего BIO.

1 голос
/ 01 ноября 2014

В рамках документации openssl Foundation поддерживает вики сообщества, которая, конечно, может быть улучшена. БИО освещается здесь: http://wiki.openssl.org/index.php/BIO.

...