Splync v1.0:sta Splync v1.1:een
Kun rekisteröidyt Splynciin, sinua pyydetään antamaan sähköpostiosoitteesi ja salasanasi. Kuten aiemmissa artikkeleissa esitin, Splync v1.0 sisälsi jo perusturvatoimenpiteet. Tietosi siirrettiin suojatun HTTPS-yhteyden kautta. Palvelimemme oli suojattu SSH:lla, joten vain kehittäjä pääsi siihen käsiksi. Salasanaasi ei koskaan tallennettu selkokielisenä, vaan se hajautettiin tietokantaan eikä sitä voitu purkaa. Kuitenkin v1.0:n salaisuus oli se, ettei tilinluomisprosessissa ollut sähköpostivarmistusta. Koska Splync oli tuolloin vielä kehitysvaiheessa oleva MVP (Minimum Viable Product), tämä ominaisuus jätettiin pois, sillä vain ystäväni tiesivät sovelluksesta. V1.0:ssa sovellus tarkisti vain, sisältääkö syötetty sähköposti '@'-merkin kirjainyhdistelmien välissä ja onko se ainutlaatuinen olemassa olevien tilien joukossa.
Mitä tapahtuu ilman sähköpostivarmistusta
Jos sovellus sallii käyttäjien luoda tilin ilman henkilöllisyyden varmistamista, on helppo kuvitella jonkun käyttävän toisen sähköpostiosoitetta luodakseen oman tilinsä. Juuri näin voisi tapahtua. Vaikka tämä ei tarkoita, että tietosi vuotaisivat, et voisi rekisteröityä omalla sähköpostiosoitteellasi, jos sitä on jo käytetty. Lisäksi joku voisi luoda tilin täysin kuvitteellisella sähköpostilla. Tämä ei välttämättä vaikuta vakavalta heti, mutta siitä tulee ongelma, kun kehittäjä yrittää myöhemmin veloittaa tai ottaa yhteyttä kyseiseen käyttäjään. En tietäisi edes, kuka henkilö oikeasti on! Siksi sähköpostivarmistus oli seuraava askel Splyncille.
Kuinka sähköpostivarmistus toimii
Splync v1.1:ssä, kun uusi käyttäjä rekisteröityy, sovellus lähettää automaattisesti sähköpostin syötettyyn osoitteeseen. Tämä sähköposti sisältää ainutlaatuisen, automaattisesti luodun varmennuslinkin. Klikkaamalla tätä linkkiä käyttäjä vahvistaa, että hänellä on todella pääsy kyseiseen sähköpostitiliin. Kun tilin aitous on varmistettu, palvelin aktivoi käyttäjän tilin ja tallentaa sen tietokantaan kelvollisena, varmennettuna käyttäjänä. Kuulostaako tutulta? Tämä prosessi varmistaa, että jokainen Splyncin tili kuuluu todelliselle, tavoitettavalle henkilölle — pieni mutta tärkeä askel kohti luotettavaa yhteisöä. Katsotaanpa tarkemmin, kuinka tämä virta on toteutettu teknisestä näkökulmasta.
Sähköpostivarmistuksen tekninen toteutus
Splyncin taustajärjestelmä käyttää Pythonia/FastAPI:ta, ja mobiilisovellus on rakennettu SwiftUI:lla. Sovellus vastaa vain käyttöliittymästä, kun taas varmennuslogiikka ja arkaluontoiset tiedot pysyvät turvallisesti palvelimella. V1.1:ssä lisäsimme vakiovaiheen sähköpostivarmistuksen tyyliin "varmentamaton käyttäjä" ja "varmennettu käyttäjä". Kun uusi käyttäjä rekisteröityy, sovellus lähettää syötetyt tiedot palvelimelle. Palvelimella on MariaDB-tietokanta. Se tallentaa käyttäjän varmentamattomana tietokantaan. Salasana hajautetaan ja tallennetaan, mutta tili ei ole vielä aktiivinen. Samaan aikaan palvelin luo ainutlaatuisen varmennustunnuksen, jolla on vanhentumisaika. Tämän jälkeen SMTP (Simple Mail Transfer Protocol) -palvelimen avulla palvelin lähettää varmennussähköpostin, joka sisältää turvallisen, kertaluonteisen linkin. Kun käyttäjä avaa linkin, palvelin tarkistaa, että tunnus on voimassa eikä vanhentunut. Kun se on vahvistettu, tili aktivoituu, ja käyttäjä voi kirjautua sovellukseen normaalisti. Tämä pitää todennuksen turvallisena ja kevyenä.
Python? FastAPI? SwiftUI? SMTP? MariaDB
Jos nämä kuulostavat salakieleltä, älä huoli — ne ovat vain työkaluja, jotka saavat järjestelmän toimimaan yhdessä. Ajattele Splyncin rekisteröintiprosessia kuin asiakastukikeskusta, joka vahvistaa jonkun henkilöllisyyden. “Saanko nimesi ja sähköpostiosoitteesi?” kysyy SwiftUI, ystävällinen vastaanottovirkailija. Annat hänelle tietosi, ja hän sanoo: “Voisitko odottaa hetken, kiitos?” Hän välittää ne heti FastAPI:lle, toimiston sisäiselle puhelinjärjestelmälle. FastAPI yhdistää hänet Pythonille, varmennuksesta vastaavalle asiantuntijalle. Python tarkistaa MariaDB:ltä, asiakastietokannalta, ja tallentaa tietosi turvallisesti — merkitsemällä statuksesi “varmentamattomaksi”. Sitten Python pyytää SMTP:tä, ulkoista viestintäpalvelua, lähettämään sinulle vahvistussähköpostin turvallisella linkillä. Kun klikkaat linkkiä, Python varmistaa sen voimassaolon ja päivittää tietosi MariaDB:ssä “varmennetuksi”. Lopuksi FastAPI ilmoittaa vastaanottovirkailijalle, että henkilöllisyytesi on vahvistettu, ja tilisi on nyt aktiivinen. Yhdessä nämä osat tekevät Splyncin varmennusprosessista sekä inhimillisen että turvallisen.
Splyncin turvallisuusmatkan seuraava askel
Sähköpostivarmistus voi vaikuttaa pieneltä ominaisuudelta, mutta se muuttaa kaiken luottamuksen osalta. Se merkitsee hetkeä, jolloin Splync kehittyy henkilökohtaisesta projektista ystävien kesken julkiseksi sovellukseksi, johon kuka tahansa voi liittyä luottavaisin mielin. Varmennuslinkin lähettäminen SMTP:n kautta tuntuu jopa kuin Splyncin ensimmäiseltä kättelyltä uuden käyttäjän kanssa. Kulissien takana tämä ominaisuus luo perustan tuleville parannuksille — salasanan nollaamiselle, monivaiheiselle todennukselle ja tilin palautukselle. Jokainen turvallisuustaso rakentuu edellisen päälle. Sähköpostivarmistuksen myötä Splync v1.1 ottaa merkittävän askeleen eteenpäin — tehden yhteisten kulujen hallinnasta paitsi kätevää, myös todella luotettavaa.