Miten Salamailer suojaa viestisi
Miten suojaus toimii, missä sen rajat ovat ja miten voit tarkistaa väitteemme itse. Versio 1.0 — 13.7.2026. Tämä sivu on osa käyttöehtoja; versiohistoria säilytetään.
Avainhierarkia
- Sisältöavain (CK) — tuore 256-bittinen AES-GCM-avain jokaiselle viestille, luotu selaimessasi. Se salaa viestin ja jokaisen liitteen (myös tiedostonimet).
- Vastaanottajan kopio — pelkkä CK sijaitsee vain linkin fragmentissa (/m/<id>#<avain>). Selaimet eivät koskaan lähetä fragmenttia palvelimelle, joten emme koskaan vastaanota sitä.
- Lähettäjän kopio — CK käärittynä holviavaimesi (VK) alle, tallennettuna niin että sinun selaimesi voi rakentaa linkin uudelleen lähetystä varten. Emme voi avata sitä ilman salasanaasi.
- Holviavain (VK) — satunnainen, käärittynä salasanastasi johdetun avaimen alle. Tallennamme vain käärityn muodon.
Linkki ja koodi kulkevat eri reittejä
Salausavain kulkee linkissä. Viestin avaaminen vaatii lisäksi tunnuslauseen toista reittiä (kertakäyttökoodit tekstiviestillä ovat tulossa). Tunnuslause ei ole osa salausavainta, joten lyhyt, muistettava koodi riittää: sitä voi yrittää arvata vain palvelumme kautta — koodia ei voi murtaa jälkikäteen omalla koneella.
Arvailun esto käytännössä: viisi väärää yritystä lukitsee viestin avaamisen 15 minuutiksi — lukituksen aikana myös oikea koodi hylätään. Lukituksen jälkeen yrityksiä on taas viisi ennen uutta lukitusta. Jokainen yritys kirjataan lähettäjän näkemään tapahtumalokiin, ja viesti poistuu joka tapauksessa pysyvästi valittuna eräpäivänä (enintään 30 vrk). Lisäksi samasta IP-osoitteesta tulevia yrityksiä rajoitetaan kaikkien viestien yli.
Uhkamalli
| Hyökkääjä | Lopputulos | Miksi |
|---|---|---|
| Passiivinen verkon salakuuntelija | Ei sisältöä | TLS + vain salakirjoitus liikenteessä; avainfragmentti ei koskaan saavu palvelimellemme |
| Palvelimen täysi murto | Ei sisältöä | Säilytämme vain salakirjoitusta + avaimia, joita emme voi avata |
| Pelkkä sähköpostin sieppaus | Ei sisältöä | Avain on, mutta nopeusrajoitettu portti tarvitaan silti salakirjoituksen hakemiseen |
| Pelkkä tekstiviestin/koodin sieppaus | Ei sisältöä | Koodi on, mutta linkkiä/avainta ei |
| Portin raakavoima | Estetty | 5 yritystä → 15 min lukitus (myös oikea koodi hylätään); yritykset lokiin; viesti lyhytikäinen |
| Haitallinen vastaanottaja | Vain oma viesti | Sisältöavain on viestikohtainen eikä sitä käytetä uudelleen. Vastausavainpari on sen sijaan käyttäjäkohtainen, mutta vastaanottaja saa siitä vain julkisen puoliskon: sillä voi salata vastauksen, ei purkaa muiden vastauksia. Tavanomaisella laskennalla tästä ei pääse pidemmälle — kvanttitapaus on taulukon viimeisellä rivillä. |
| Palvelimen murto ja sähköpostin sieppaus yhdessä | Kyseiset viestit paljastuvat | Väistämätöntä, kun palvelin säilyttää salakirjoitusta ja avain kulkee sähköpostissa. Lievennetään lyhyellä säilytyksellä + tuhoa lukemisen jälkeen -toiminnolla. |
| Me lähetämme haitallista JS:ää (tai murto tekee sen) | Jokaisen nollatieto-verkkosovelluksen jäännösriski | Lievennetään tiukalla CSP:llä, itse isännöidyillä resursseilla ja julkaistuilla build-tiivisteillä. Ulkopuolinen auditointi ja allekirjoitettu asiakasohjelma ovat tiekartalla. |
| Kehotesyötetty tekoälyagentti CLI/MCP-työkaluja käyttäen | Rajattu | Paikallinen CLI valvoo vastaanottajan verkkotunnussallilistaa ja liitejuuren rajaa; palvelimen kiintiöt rajaavat väärinkäytön. Agentti voi silti vuotaa sen, mikä sille laillisesti annettiin — tämä raja kuuluu agentin isännälle. |
| Varastettu CLI-tunnustiedosto | Vain lähettäjän esiintyminen | Sisältää heti peruutettavan API-avaimen + holviavaimen. Ei voi läpäistä vastaanottajan portteja, luoda avaimia tai lukea meillä olevaa viestisisältöä (vain salakirjoitusta). |
| Kryptografisesti merkityksellinen kvanttitietokone ja tietokannan ja liitevaraston vuoto ja hyökkääjä on itse jonkin vastauksen sallivan viestin vastaanottaja | Vain hänen omat vastauksensa siihen yhteen viestiin | Vastausavainpari on ECDH P-256, jonka Shorin algoritmi murtaa, ja vastaanottajalla on lähettäjän julkinen vastausavain — riittävän suuri kvanttitietokone johtaisi siitä salaisen avaimen. Siksi vastausavaimen johtamiseen sekoitetaan viestikohtainen lisäsalaisuus, joka on selkokielisenä vain kyseisen viestin vastaanottajalla; vuotaneessa tietokannassa siitä on pelkkä lähettäjän holviavaimen alle kääritty kopio, jota emme voi avata ilman hänen salasanaansa. Niinpä auki saisi vain ne vastaukset, jotka hyökkääjä on itse kirjoittanut siihen yhteen viestiin, ja vain niin kauan kuin vastaukset säilyvät (90 vrk). Muiden viestien tai muiden vastaanottajien vastauksiin hän ei pääse. Viestien sisältö on symmetristä (AES-256-GCM): Grover puolittaa työn noin 128 bittiin, mikä ei ole murto. Ennen tämän lisäsalaisuuden käyttöönottoa lähetettyihin vastauksiin rajaus yhteen viestiin ei päde. |
Lisäsuojat halukkaille
Paranoiditila (valinta viestikohtaisesti): tunnuslause sekoitetaan myös salausavaimen johtamiseen, jolloin edes tietomurto ja siepattu sähköposti yhdessä eivät riitä — yllä olevan taulukon viimeinen väistämätön rivi sulkeutuu vahvalla tunnuslauseella. Toimitan linkin itse -tila ja Outlook-lisäosa lähettävät ilmoituksen omasta postilaatikostasi, jolloin avain ei kulje palvelimemme kautta edes hetkellisesti. Palautusavain (tulostettava koodi) kääräisee holviavaimesi toiseen kertaan: unohtunut salasana ei enää tuhoa holvia — eikä palvelin silti voi avata sitä.
Poikkeus itse isännöintiin: Outlook-lisäosan tehtäväruutu (/addin/, vain se) lataa Microsoftin vaatiman Office.js-kirjaston Microsoftin CDN:stä — se on alustan osa, kuten selain itse. Omat tiedostomme sillä sivulla ovat samassa tiivistelistassa kuin kaikki muukin, ja connect-src 'self' pätee myös siellä: koodi ei voi lähettää avaimia muualle kuin meille.
Varmenna tarjoamamme koodi
Julkaisemme jokaisen tarjoamamme tiedoston SHA-256-tiivisteen (SERVED-HASHES.txt). Voit tarkistaa, että selaimeesi tuleva koodi vastaa julkaistua: