Oletan että käytännössä kaikissa Linux versioissa on SSL. Mutta onko missään versiossa TSL?
http://en.wikipedia.org/wiki/Transport_Layer_Security
Jos on, niin onko se versiossa 2.4?
http://en.wikipedia.org/wiki/Transport_Layer_Security
Jos on, niin onko se versiossa 2.4?
Vastaukset 9
Vanhimmat
SSLv2, SSLv3 ja TLSv1
Mitä tarkoita 2.4:lla?
Linux kernelin versiota 2.4. "Meillä" on paljon sulautettuja linux-laitteita maailmalla joissa on Linux kernel versio 2.4. Nyt näihin pitäisi tehdä eräs sovellus joka edellyttää TSL:ää.
OpenSSL on tukenut TLS:ää pitkään. Hyvin on toiminut.
Omakohtaista kokemusta ei ole mutta en näe mitään syytä miksi openssl ei kääntyisi 2.4 kernelille. Kääntyyhän se lukuisille muillekin käyttöjärjestelmille.
Kuten huomaatte, olen nimeni veroinen.
Vastauksestasi päätellen myöskään SSL ei ole kernelissä. Olen vaan luullut niin.
Jos haluan hakea webbisivun http-palvelimelta, niin se tapahtuu yksinkertaistettuna pääpiirteittäin näin:
töpseli = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
connect(töpseli);
send(töpseli, "GET /index.html HTTP/1.0.....");
jne.
(Sain tuon jopa toimimaan joillekin sivuille. Lopullinen päämäärä ei ole webbisivujen haku, vaan aivan muuta, mutta tuo on hyvä lähtökohta.)
Jos palvelin onkin https-palvelin, niin välissä on kryptausta. Mihin väliin se kryptaus tulee?
Onko mahdollisesti olemassa jokin erillinen secure_socket() socket()-funktion tilalla vai jokin secure_send() send()-funktiontilla vai mikä juju?
Vai kryptataanko lähetettävä data koko edellä mainitun hässäkän ulkopuolella näin:
send(töpseli, kryptaa("GET /index.html HTTP/1.0....."));
Vai jotain ihan muuta?
(Periaatteellisia kaavakuvia ja muita dokumentteja löytyy vaikka kuinka, mutta niissä kysymykseni ei aukea kovin helposti.
http://en.wikipedia.org/wiki/Secure_Sockets_Layer
http://www.windowsecurity.com/articles/Secure_Socket_Layer.html
http://www.vanemery.com/Linux/Apache/apache-SSL.html
)
http://www.ibm.com/developerworks/linux/library/l-openssl.html
tai jotain...
Oikein hyvä linkki. Kiitos paljon.
Ongelmia jäi silti. Ensin asensin kolme uutta OpenSSL-pakettia omaan koneeseeni. (Tähti merkityt.)
Katso kuvaruutukaappaus:
http://personal.inet.fi/koti/kx/ssl_paketit.png
(Mukaan tuli myös muutama muu paketti riippuvuuksien takia.)
Sitten tein alla olevan testiohjelman. (Suomi24 syö sen sisennykset.) Kun käänsin sen, niin headerit löytyivät mutta jotain puuttuu vielä, sillä sain oheiset virheilmoitukset. Mitä pitää vielä asentaa? Ilmeisesti joku kirjasto puuttuu.
gcc -Wall -o myssl myssl.o
myssl.o: In function `main':
myssl.c:(.text 0x1e): undefined reference to `SSL_load_error_strings'
myssl.c:(.text 0x23): undefined reference to `ERR_load_BIO_strings'
myssl.c:(.text 0x28): undefined reference to `OPENSSL_add_all_algorithms_noconf'
myssl.c:(.text 0x34): undefined reference to `BIO_new_connect'
myssl.c:(.text 0x75): undefined reference to `BIO_ctrl'
myssl.c:(.text 0x99): undefined reference to `BIO_free_all'
collect2: ld returned 1 exit status
make: *** [myssl] Error 1
/***************************
* myssl.c
*
*/
#include
#include "openssl/bio.h"
#include "openssl/ssl.h"
#include "openssl/err.h"
int main(void) {
BIO * bio;
printf("Testi\n");
/* Initializing OpenSSL */
SSL_load_error_strings();
ERR_load_BIO_strings();
OpenSSL_add_all_algorithms();
/* Creating and opening a connection */
bio = BIO_new_connect("www.google.fi:80");
if(bio == NULL) {
printf("New connect failure\n");
return 1;
}
if(BIO_do_connect(bio)
Sain nuo virheet pois mutta uusia tuli tilalle. Täytyy tukia lisää.
Tuo aiempi linkki on muuten kovin vanha. Kaikki yksityiskohdat ei (ehkä) pidä ihan paikkaansa enää.