Pregunta

¿Qué es exactamente un par BIO en OpenSSL y cómo se debe usar? Ya he revisado los documentos de OpenSSL, pero los detalles son pocos y distantes entre sí.

¿Fue útil?

Solución

Una BIO en OpenSSL es similar a un identificador de archivo. Utiliza un par de ellos para comunicarse entre sí de forma segura como lo haría con dos enchufes. La mejor explicación que he encontrado es aquí .

También utilicé mucho el sitio de Herong Yang hace unos meses cuando tuvo que escribir una aplicación usando OpenSSL. Las secciones sobre creación y firma de certificados con OpenSSL y keytool fueron de gran ayuda a la hora de probar mi aplicación.

Otros consejos

Un par BIO son dos BIO fuente / sumidero que están unidos. Todo lo que está escrito en uno se puede leer del otro. Si ya tiene dos BIOS, puede unirlos usando BIO_make_bio_pair. O puede crear un nuevo par BIO con BIO_new_bio_pair.

Un uso mencionado en el libro Seguridad de red con OpenSSL (consulte la página 111) es que el par puede vincularse a un motor SSL. Cualquier cosa escrita en el par BIO será leída por el motor SSL. Cualquier cosa escrita en el par BIO se puede leer. OpenSSL tiene una muestra de esto (ver ssl / ssltest.c)

Encontré que la mejor manera de aprender sobre OpenSSL era leer " Seguridad de red con OpenSSL " por John Viega, Matt Messier y Pravir Chandra, ISBN 059600270X. Tienen una sección completa sobre cómo crear y usar un par BIO con código de muestra.

En un esfuerzo de documentación, la fundación openssl mantiene un wiki comunitario que, por supuesto, puede mejorarse. BIO está cubierto aquí: http://wiki.openssl.org/index.php/BIO.

He escrito sobre pares de OpenSSL BIO como parte de una respuesta general sobre OpenSSL BIOs :

  

A " bio " BIO ( BIO_s_bio ). Es un BIO en forma de tubo. Se pueden crear un par de tales BIO. Los datos escritos en un BIO del par se colocarán para leerlos al segundo BIO del par. Y viceversa. Es similar a la memoria BIO, pero la memoria BIO coloca datos en sí mismo y la tubería BIO coloca datos en la BIO con la que está emparejada.

Y también aquí :

  

Pero además hay un BIO llamado BIO_s_bio que tiene una funcionalidad similar a una tubería. Se pueden crear un par de tales BIO. Todos los datos escritos en el primer BIO en el par de objetos BIO_s_bio se leerán del segundo BIO en el par. Y viceversa: escribir datos en el segundo BIO dará como resultado la lectura de estos datos del primer BIO. Entonces BIO_s_bio se puede usar en lugar de BIO_s_mem . Pasar una sola instancia del objeto BIO_s_bio a la función SSL_set_bio sería suficiente. La aplicación recibe datos y los escribe en su BIO en el par BIO_s_bio . OpenSSL obtendrá estos datos de su BIO en el par. OpenSSL escribe datos en su BIO en el par, y la aplicación obtiene estos datos de su BIO a su vez.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top