TLS-PSK-tuki Java-palvelimessa
Kettunen, Tuure (2018)
Kettunen, Tuure
Oulun ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201802112283
https://urn.fi/URN:NBN:fi:amk-201802112283
Tiivistelmä
Ennalta jaettujen salausavaimien protokollan (TLS-PSK) tuelle ei ollut hyvin tunnettua ratkaisua Java-palvelimille, joten opinnäytetyön tarkoituksena oli tutkia esineiden internetin laitteiden ja Java-palvelimien välistä TLS-PSK-tukea. Opinnäytetyön tilaajana toimi Arm Finland Oy.
Opinnäytetyön alussa tavoitteiksi määriteltiin tutkia, mitkä kryptografiakirjastot voisivat tukea TLS-PSK:ta, ja tutkia, mikä näistä sopisi parhaiten täyttämään yrityksen tarpeet. Tutkimustyön lisäksi tavoitteeksi määriteltiin tehdä Java-palvelinsovellus, joka tukee TLS-PSK:ta, käyttäen valittua kirjastoa.
Kryptografiakirjastoksi valikoitui OpenSSL, sillä se tuki TLS-PSK:ta, sille löytyi hyvin tukea muista kirjastoista ja se osoittautui vähiten resursseja vieväksi kirjastoksi. Ennalta jaettujen salausavaimien käsittelyyn valittiin Googlen kehittämä Conscrypt-kirjasto.
Aluksi näitä kirjastoja käyttäen tehtiin JSSE-echo-palvelinsovellus, joka käytti asiakasohjelmien todentamiseen ennalta jaettuja salausavaimia. Palvelimen toiminnallisuuden testaamiseen käytettiin OpenSSL:n asiakasohjelmaa. Kun palvelin osoittautui toimivaksi, tehtiin monipuolisempi Netty-chat-palvelin.
Kun toimiva palvelin saatiin tehtyä, tehtiin suorituskykytesti, jolla pystyi mittaamaan, kuinka monta TLS-kättelyä palvelin kykeni tekemään asiakasohjelmien kanssa sekunnissa. Suorituskykytestejä varten tehtiin palvelimeen sopiva Netty-chat-asiakasohjelma. Tulosten vertailun vuoksi tehtiin myös samankaltaiset Netty-palvelinsovellukset ja -asiakasohjelmat, jotka käyttivät x.509-sertifikaatteja todentamiseen.
Opinnäytetyön lopputuloksena valmistui chat-palvelin, joka käyttää TLS-PSK:ta asiakasohjelmien todentamiseen. Tämä työ todisti, että TLS-PSK:ta voidaan käyttää Java-palvelimessa käyttäen OpenSSL:ää ja Conscryptiä. Jatkossa tätä ratkaisua voidaan käyttää Java-pohjaisissa esineiden internetin palvelimissa
Opinnäytetyön alussa tavoitteiksi määriteltiin tutkia, mitkä kryptografiakirjastot voisivat tukea TLS-PSK:ta, ja tutkia, mikä näistä sopisi parhaiten täyttämään yrityksen tarpeet. Tutkimustyön lisäksi tavoitteeksi määriteltiin tehdä Java-palvelinsovellus, joka tukee TLS-PSK:ta, käyttäen valittua kirjastoa.
Kryptografiakirjastoksi valikoitui OpenSSL, sillä se tuki TLS-PSK:ta, sille löytyi hyvin tukea muista kirjastoista ja se osoittautui vähiten resursseja vieväksi kirjastoksi. Ennalta jaettujen salausavaimien käsittelyyn valittiin Googlen kehittämä Conscrypt-kirjasto.
Aluksi näitä kirjastoja käyttäen tehtiin JSSE-echo-palvelinsovellus, joka käytti asiakasohjelmien todentamiseen ennalta jaettuja salausavaimia. Palvelimen toiminnallisuuden testaamiseen käytettiin OpenSSL:n asiakasohjelmaa. Kun palvelin osoittautui toimivaksi, tehtiin monipuolisempi Netty-chat-palvelin.
Kun toimiva palvelin saatiin tehtyä, tehtiin suorituskykytesti, jolla pystyi mittaamaan, kuinka monta TLS-kättelyä palvelin kykeni tekemään asiakasohjelmien kanssa sekunnissa. Suorituskykytestejä varten tehtiin palvelimeen sopiva Netty-chat-asiakasohjelma. Tulosten vertailun vuoksi tehtiin myös samankaltaiset Netty-palvelinsovellukset ja -asiakasohjelmat, jotka käyttivät x.509-sertifikaatteja todentamiseen.
Opinnäytetyön lopputuloksena valmistui chat-palvelin, joka käyttää TLS-PSK:ta asiakasohjelmien todentamiseen. Tämä työ todisti, että TLS-PSK:ta voidaan käyttää Java-palvelimessa käyttäen OpenSSL:ää ja Conscryptiä. Jatkossa tätä ratkaisua voidaan käyttää Java-pohjaisissa esineiden internetin palvelimissa