Kaksivaiheinen tunnistautuminen tekstiviestiyhdyskäytävän avulla
Kylmälä, Juha (2018)
Kylmälä, Juha
Hämeen ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2018060813197
https://urn.fi/URN:NBN:fi:amk-2018060813197
Tiivistelmä
Tämän opinnäytetyön tarkoituksena oli parantaa PHP-pohjaisen websovelluksen sisäänkirjautumisen tietoturvaa. Työssä rakennettiin toimiva tekstiviestiyhdyskäytävä ja sitä käyttävä kaksivaiheisen tunnistautumisen vaativa sisäänkirjautumissovellus.
Vaiheessa yksi käyttäjältä pyydetään sähköpostia ja salasanaa. Syötettyään tiedot oikein järjestelmä lähettää kertakäyttöisen numerosarjan käyttäjälle tekstiviestiyhdyskäytävän kautta. Vaiheessa kaksi käyttäjä tunnistetaan edellä mainitun numerosarjan avulla.
Tekstiviestiyhdyskäytävä rakennettiin luottokortin kokoisella Raspberry Pi -tietokoneella, johon liitettiin Huawein operaattorivapaa nettitikku SIM-kortilla varustettuna. Webpalvelin ja tietokantapalvelin sijaitsivat erillisellä kannettavalla tietokoneella. Sovelluksen rakentamisessa käytettiin PHP-ohjelmointikieltä olio-ohjelmoinnilla ja MVC arkkitehtuurilla.
Lopputuotoksena muodostui sovellus, jossa puutteellista autentikointia on rajattu varmistamalla käyttäjä kahdella toisistaan riippumattomalla tavalla. Yksistään jo tämä keino parantaa käyttäjän todennusta huomattavalla tavalla. Lisäksi sovelluksen tietoturvaa on parannettu suojaamalla arkaluontoinen tieto tietokannassa ja estämällä SQL injektiot käyttäjän syötteistä. Sovellukseen luotiin myös yksinkertainen lokikirja ja valvonta käyttäjän virheellisistä kirjautumisyrityksistä.
Vaiheessa yksi käyttäjältä pyydetään sähköpostia ja salasanaa. Syötettyään tiedot oikein järjestelmä lähettää kertakäyttöisen numerosarjan käyttäjälle tekstiviestiyhdyskäytävän kautta. Vaiheessa kaksi käyttäjä tunnistetaan edellä mainitun numerosarjan avulla.
Tekstiviestiyhdyskäytävä rakennettiin luottokortin kokoisella Raspberry Pi -tietokoneella, johon liitettiin Huawein operaattorivapaa nettitikku SIM-kortilla varustettuna. Webpalvelin ja tietokantapalvelin sijaitsivat erillisellä kannettavalla tietokoneella. Sovelluksen rakentamisessa käytettiin PHP-ohjelmointikieltä olio-ohjelmoinnilla ja MVC arkkitehtuurilla.
Lopputuotoksena muodostui sovellus, jossa puutteellista autentikointia on rajattu varmistamalla käyttäjä kahdella toisistaan riippumattomalla tavalla. Yksistään jo tämä keino parantaa käyttäjän todennusta huomattavalla tavalla. Lisäksi sovelluksen tietoturvaa on parannettu suojaamalla arkaluontoinen tieto tietokannassa ja estämällä SQL injektiot käyttäjän syötteistä. Sovellukseen luotiin myös yksinkertainen lokikirja ja valvonta käyttäjän virheellisistä kirjautumisyrityksistä.