Teekond betani
Kogu töö sai alguse 2018. aasta jaanuaris.
Esmalt lõime front-end vaate Reacti abil ning seejärel saime samm-sammult hakata uurima võimalusi seoses krüptograafiaga. Lõppude lõpuks valisime lahendusviisi, mille käigus pidime abi küsima antud eriala spetsialistidelt. Täpselt nii turvaliseks me kogu programmi teha tahtsimegi.
Meie tegevuskava koos MyFinancieri arendusmeeskonnaga oli järgmine: selleks, et ära hoida igasuguseid infolekkeid andmebaasi, pidi kogu krüpteerimine toimuma rakenduse front-end poolel, kasutaja enda arvuti poolt. Tehnika nimi, mille kasutusele võtsime oli Salted Challenge Response Authentication Mechanism või siis lühidalt – SCRAM. SCRAM on paroolipõhine kahepoolne autentimise protokoll, mis muudab pealtkuulamisrünnaku (ehk man-in-the-middle) keerulisemaks. See on tehnika, mille abil kasutaja saab tõestada serverile, et nemad teavad saladust, mis on nende endi paroolist tuletatud ja samamoodi saab server tõestada kasutaja poolele, et tema teab salasõna ilma tunnussõna avaldamata.
Paroolide krüpteerimise juures kasutasime AES-GCM’i, et kõik kasutaja andmed oleksid nii ära turvatud kui vähegi võimalik ja häkkerite võimalused kellegi kasutaja andmete kättesaamiseks oleksid nullilähedased.
Kogu andmestik pannakse kaitstud konteinerisse ja viimaks saadetakse andmebaasi. Andmebaas näeb samaaegselt lihtsalt üht krüpteeritud seifi, muud midagi. Kui kasutaja soovib oma andmetele ligi pääseda, siis andmebaas ise ei tea kasutaja parooli, küll aga oskab see kindlaks teha kas kasutaja poolt sisestatud parool on õige.
AES võtmed on 128-bitised sümmeetrilised võtmed ning on välja arvutatud, et kui superarvuti üritaks suvaliste sõnade ja kombinatsioonidega parooli ära arvata, kuluks tal selleks keskmiselt miljard aastat.
Täpselt sellise turvakindluse me koostöös MyFinancieriga nende kodulehe jaoks ehitasimegi.
Meiepoolne töö lõppes 2018. aasta novembris.