Lohkoketjut SSL/TLS-salauksessa
Nordström, Samuel (2018)
Nordström, Samuel
Metropolia Ammattikorkeakoulu
2018

Creative Commons Attribution-NonCommercial-ShareAlike 1.0 Suomi
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201805097400
https://urn.fi/URN:NBN:fi:amk-201805097400
Tiivistelmä
Insinöörityön tavoitteena oli hyödyntää lohkoketjuja selainten SSL/TLS-salauksessa (TLS-salaus). Työn tavoitteena oli parantaa TLS-salausta poistamalla TLS-salauksesta sen heikoin lenkki, Certificate Authorityt (CA).
Certificate Authorityt allekirjoittavat verkkosivujen sertifikaatteja, ja tämän järjestelmän toimiminen vaatii, että käyttäjän pitää luottaa, että CA:t hoitavat hommansa kunnolla. Käytännössä se tarkoittaa sitä, että CA:t allekirjoittavat sertifikaatteja vain verifioiduille verkkotunnusten omistajille ja lisäksi heillä pitää olla tietoturva kunnossa, etteivät hakkerit pääse salausavaimiin käsiksi.
Lohkoketjut ovat jaettuja tietokantoja, ja näiden avulla voisi olla mahdollista saada TLS-salaus toimimaan ilman Certificate Authorityja ja sitä kautta saada TLS-salauksesta turvallisempaa, jossa loppukäyttäjät saisivat itse hallita kaikkea siihen liittyvää. Tämän työn tarkoituksena onkin tutkia tällaisen teknisen toteutuksen mahdollisuutta ja toteuttaa MVP-versio (minimum viable product) tästä, jossa käyttäjä voi tallentaa lohkoketjuun verkkotunnuksensa ja sen sertifikaatin julkinen salausavain verifioiduille verkkotunnuksille. Näin selaimet voivat tarkistaa lohkoketjusta, onko verkkosivun antama sertifikaatti luotettava vai ei, eikä välikäsiä tarvita.
Sovelluksen kehityksessä käytettiin Ethereum-lohkoketjua, joka mahdollistaa Turing-täydellisten (Turing-complete) sovellusten rakentamisen lohkoketjuun ilman, että tarvitsee itse rakentaa lohkoketjua. Kielenä lohkoketjusovelluksessa käytettiin Ethereumin kehittämää Solidityä. Käyttöliittymässä käytettiin ReactJS-kirjastoa yhdessä web3-kirjaston kanssa, joka mahdollistaa helpon kommunikoinnin Ethereum-lohkoketjun kanssa.
Certificate Authorityt allekirjoittavat verkkosivujen sertifikaatteja, ja tämän järjestelmän toimiminen vaatii, että käyttäjän pitää luottaa, että CA:t hoitavat hommansa kunnolla. Käytännössä se tarkoittaa sitä, että CA:t allekirjoittavat sertifikaatteja vain verifioiduille verkkotunnusten omistajille ja lisäksi heillä pitää olla tietoturva kunnossa, etteivät hakkerit pääse salausavaimiin käsiksi.
Lohkoketjut ovat jaettuja tietokantoja, ja näiden avulla voisi olla mahdollista saada TLS-salaus toimimaan ilman Certificate Authorityja ja sitä kautta saada TLS-salauksesta turvallisempaa, jossa loppukäyttäjät saisivat itse hallita kaikkea siihen liittyvää. Tämän työn tarkoituksena onkin tutkia tällaisen teknisen toteutuksen mahdollisuutta ja toteuttaa MVP-versio (minimum viable product) tästä, jossa käyttäjä voi tallentaa lohkoketjuun verkkotunnuksensa ja sen sertifikaatin julkinen salausavain verifioiduille verkkotunnuksille. Näin selaimet voivat tarkistaa lohkoketjusta, onko verkkosivun antama sertifikaatti luotettava vai ei, eikä välikäsiä tarvita.
Sovelluksen kehityksessä käytettiin Ethereum-lohkoketjua, joka mahdollistaa Turing-täydellisten (Turing-complete) sovellusten rakentamisen lohkoketjuun ilman, että tarvitsee itse rakentaa lohkoketjua. Kielenä lohkoketjusovelluksessa käytettiin Ethereumin kehittämää Solidityä. Käyttöliittymässä käytettiin ReactJS-kirjastoa yhdessä web3-kirjaston kanssa, joka mahdollistaa helpon kommunikoinnin Ethereum-lohkoketjun kanssa.