Domanda

Che cos'è esattamente una coppia BIO in OpenSSL e come deve essere utilizzata? Ho già controllato i documenti OpenSSL, ma i dettagli sono pochi e rari.

È stato utile?

Soluzione

Un BIO in OpenSSL è simile a un handle di file. Ne usi una coppia per comunicare tra loro in modo sicuro come faresti con due prese. La migliore spiegazione che ho trovato è qui .

Sono stato anche molto utilizzato da il sito di Herong Yang pochi mesi fa quando ho dovuto scrivere un'applicazione usando OpenSSL. Le sezioni sulla creazione e la firma dei certificati utilizzando OpenSSL e keytool sono state di grande aiuto quando si è trattato di testare la mia applicazione.

Altri suggerimenti

Una coppia BIO sono due BIO sorgente / sink collegati tra loro. Tutto ciò che è scritto su uno può essere letto dall'altro. Se hai già due BIOS, puoi unirli insieme usando BIO_make_bio_pair. Oppure puoi creare una nuova coppia BIO con BIO_new_bio_pair.

Un uso menzionato nel libro Network Security with OpenSSL (vedi pagina 111) è che la coppia può essere associata a un motore SSL. Qualsiasi cosa scritta nella coppia BIO verrà letta dal motore SSL. È possibile leggere qualsiasi cosa scritta sulla coppia BIO. OpenSSL ne ha un esempio (vedi ssl / ssltest.c)

Ho scoperto che il modo migliore per conoscere OpenSSL era leggere " Sicurezza di rete con OpenSSL " di John Viega, Matt Messier e Pravir Chandra, ISBN 059600270X. Hanno un'intera sezione su come creare e utilizzare la coppia BIO con il codice di esempio.

In uno sforzo di documentazione openssl foundation mantiene un wiki della comunità che può ovviamente essere migliorato. BIO è coperto qui: http://wiki.openssl.org/index.php/BIO.

Ho scritto delle coppie BIO OpenSSL come parte di una risposta generale sui BIO OpenSSL :

  

A "bio" BIO ( BIO_s_bio ). È un BIO simile a una pipa. È possibile creare una coppia di tali BIO. I dati scritti su un BIO nella coppia verranno inseriti per la lettura sul secondo BIO nella coppia. E viceversa. È simile alla memoria BIO, ma la memoria BIO posiziona i dati su se stessa e la pipe BIO posiziona i dati sul BIO con cui è accoppiata.

E anche qui :

  

Ma in più c'è un BIO chiamato BIO_s_bio che ha una funzionalità simile a una pipe. È possibile creare una coppia di tali BIO. Tutti i dati scritti sul primo BIO nella coppia di oggetti BIO_s_bio verranno letti dal secondo BIO nella coppia. E viceversa: la scrittura di dati nel secondo BIO comporterà la lettura di questi dati dal primo BIO. Pertanto è possibile utilizzare BIO_s_bio anziché BIO_s_mem . Passare una singola istanza dell'oggetto BIO_s_bio alla funzione SSL_set_bio sarebbe sufficiente. L'applicazione riceve i dati e li scrive nel proprio BIO nella coppia BIO_s_bio . OpenSSL otterrà quindi questi dati dal suo BIO nella coppia. OpenSSL scrive i dati sul proprio BIO nella coppia e l'applicazione ottiene a sua volta questi dati dal proprio BIO.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top