Tietoturva

    Vanhenevat linkit: salaisuus tuhotaan, eikä vain uudelleenohjaus katkea

    Vanheneva salainen linkki tuhoaa salaisuuden määräajan päättyessä, kuollut lyhytlinkki vain lakkaa ohjaamasta. Ajan valinta ja erikoistapaukset.

    W. Miller · Päivitetty · Tietoa LinkPilotista

    Vanheneva salainen linkki tuhoaa salaisuuden määräajan päättyessä: LinkPilotissa tallennettu salateksti ylikirjoitetaan, joten avattavaa ei jää mitään. Lyhytlinkkipalvelu, joka alkaa palauttaa vastauksen 410 Gone, on vain lopettanut uudelleenohjauksen. Jokaisella salaisuutta kantavalla linkillä pitäisi olla voimassaoloaika, koska ilman sitä ”kertakäyttöisyyden” lupaus heikkenee huomaamatta jokaisena päivänä, jonka linkki odottaa avaamattomana. Tässä kirjoituksessa käydään läpi, mitä voimassaoloaika todella suojaa, miten valitset ajan, jonka pystyt perustelemaan, mitkä erikoistapaukset aiheuttavat ongelmia käytännössä ja milloin vanhenevat linkit ovat kokonaan väärä työkalu. Jos haluat ensin nähdä, miten se toimii, ilmainen kertakäyttöisen salaisen linkin luontityökalu asettaa voimassaoloajan jokaiselle luomalleen salaisuudelle.

    Mitä voimassaoloaika todella suojaa?

    Voimassaoloaika rajaa ajan, jonka kuluessa tieto voi vuotaa. Linkki, joka toimi viisi minuuttia, on hyökkääjälle paljon vähemmän arvoinen kuin viikon toiminut linkki, vaikka molemmat olisivat ”kertakäyttöisiä”.

    Mieti, mihin salaisuutta kantava URL-osoite päätyy, kun painat lähetä-painiketta: vastaanottajan saapuneet-kansioon, hänen sähköpostipalvelunsa tallennustilaan, ehkä eteenpäin välitettyyn kopioon, puhelimeen synkronoituun chat-historiaan ja selaimen historiaan. Mihinkään näistä kopioista et voi vaikuttaa. Voit kuitenkin päättää, kuinka kauan mikään niistä on avattavissa. Tunnin voimassaoloaika tarkoittaa, että jokainen osoitteen hajakopio muuttuu arvottomaksi kuusikymmentä minuuttia luomisen jälkeen, minne se sitten päätyikin.

    Voimassaoloaika kattaa myös todellisen inhimillisen virheen, johon lukemisen jälkeen tuhoutuminen ei auta: vastaanottaja ei koskaan avaa linkkiä. Tuhoa lukemisen jälkeen -asetus laukeaa vasta, kun linkki luetaan. Avaamaton linkki, jolla ei ole voimassaoloaikaa, jää postilaatikkoon toistaiseksi: yhä käytössä, haettavissa ja yhden edelleenlähetyksen päässä väärästä henkilöstä.

    Voimassaoloaika ja lukemisen jälkeen tuhoutuminen kattavat eri virheet

    Nämä kaksi asetusta sekoitetaan jatkuvasti. Ne ovat toisistaan riippumattomia, ja vahvin kokoonpano käyttää molempia:

    VirhetilanneEstääkö lukemisen jälkeen tuhoutuminen?Estääkö voimassaoloaika?
    Vastaanottaja lukee sisällön, ja linkki jää sen jälkeen postilaatikkoonKyllä: linkki on jo kuollutKyllä, aikanaan
    Vastaanottaja ei koskaan avaa linkkiäEi: linkki pysyy käytössä ikuisestiKyllä
    Väärä henkilö avaa linkin ensinOsittain: sisältö tuhoutuu, ja kirjausketju näyttää senEi
    URL-osoite vuotaa viikkoja myöhemmin sähköpostin vientitiedostostaVain jos linkki on luettuKyllä: linkki on ollut kuollut jo pitkään

    Huomaa ”väärä henkilö” -rivi: kumpikaan asetus ei estä tätä lukemista. Siihen tarvitaan salalause, joka toimitetaan eri kanavaa pitkin. Voimassaoloaika rajaa ajan, tuhoutuminen lukukerrat ja salalause sen, kuka voi avata linkin. Kolme erillistä säädintä.

    Odotetun luovutuksen ajan ja yhden kohtuullisen viiveen verran, ei pidempään. Käytännön nyrkkisääntö tilanteittain:

    TilanneVoimassaoloaikaMiksi
    Luovutus reaaliajassa (chat, puhelu, näytön jakaminen)1 tunti (lyhin valmisasetus)Vastaanottaja on paikalla, ja lukemisen jälkeen tuhoutuminen sulkee linkin heti, kun hän lukee sisällön
    Sähköposti tutulle, aktiiviselle vastaanottajalle1 tuntiKattaa postilaatikon viiveen jättämättä linkkiä auki yön yli
    Ajastettu luovutus (perehdytys huomenna klo 10)24 tuntiaKestää aikataulun venymisen, mutta on silti kuollut seuraavana päivänä
    Vastaanottaja kaukaisella aikavyöhykkeellä24–48 tuntiaHänen työpäivänsä ei välttämättä osu lainkaan päällekkäin sinun työpäiväsi kanssa
    Kaikki, mikä vaatii > 7 päivääPysähdyLinkki on väärä perusratkaisu: käytä holvia

    Taulukon periaate: aseta ajaksi odotettu luovutusaika ja yksi kohtuullinen viive, ei ”niin pitkä, ettei minun tarvitse enää ajatella asiaa”. Mukavuuden mukaan valitut voimassaoloajat lähestyvät äärettömyyttä.

    Ajastettu luovutus vaihe vaiheelta

    Uusi kehittäjä aloittaa huomenna klo 10:00. Sinun pitää antaa hänelle tuotantotietokannan lukuoikeuden salasana.

    1. 09:55 Luo salainen linkki LinkPilot-tililtäsi niin, että Tuhoa lukemisen jälkeen -asetus on päällä, linkissä on salalause ja mukautettu voimassaoloaika päättyy klo 11:00. Kellonaikaan sidottu voimassaoloaika ja salalause ovat molemmat Pro-ominaisuuksia. Kirjautuneena valmisasetukset ovat 1 tunti, 24 tuntia tai 7 päivää, ja ilman tiliä käytettävä työkalu asettaa 7 päivää.
    2. 09:56 Lähetä linkki sähköpostilla.
    3. 09:58 Lähetä salalause tekstiviestillä tai Slackin yksityisviestinä eli eri kanavaa pitkin kuin linkki, jotta yhden kanavan vuoto ei riitä.
    4. 10:05 Vastaanottaja avaa linkin, syöttää salalauseen ja lukee salasanan kerran. Linkki tuhoutuu.
    5. 10:30 Tarkista tarkastusloki eli loki linkin tapahtumista. Yksi avaus, oikea aika ja uskottava sijainti. Valmista.
    6. Jos linkkiä ei ole avattu klo 10:30 mennessä, mitätöi se, ota yhteyttä vastaanottajaan ja jaa salasana uudelleen hänen ollessaan paikalla. Älä vain odota vanhenemista: avaamaton, käytössä oleva linkki on avoin ikkuna.

    Aika on niin lyhyt, että vuotanut sähköposti on arvoton tuntia myöhemmin. Salalause suojaa, jos linkki siepataan tuon tunnin aikana. Tuhoutuminen estää uudelleenlukemisen. Kukin asetus pysäyttää sen, minkä muut päästävät läpi.

    Erikoistapauksia, jotka kannattaa tuntea

    Sähköpostin skannerit eivät kuluta aikaa eivätkä salaisuutta

    Yritysten sähköpostin tietoturvatyökalut hakevat URL-osoitteet heti, kun viesti saapuu. Hyvin tehty salainen linkki käsittelee nämä haut metatietopyyntöinä: LinkPilotin näyttämisen päätepiste palauttaa GET-pyyntöön vain tilan, ja avaus kirjataan vain nimenomaisesta POST-näyttöpyynnöstä. Klo 09:56 linkkiin osuva skanneri ei siis tuhoa sitä eikä saa siitä mitään hyödyllistä tietoa. Skannereita ei kuitenkaan voi estää näkemästä, että URL-osoite on lähetetty. Sekin on syy lähettää salalause eri kanavaa pitkin.

    Vastaanottaja minuutilla 59

    Voimassaoloaika tarkistetaan näyttämishetkellä, ei taustalla ajettavalla siivouksella, jonka toivoisit ehtineen käydä. LinkPilotissa vanhentunut salaisuus saa tilan expired seuraavalla käyttökerralla, ja sisältö ylikirjoitetaan samassa kirjoitusoperaatiossa. Näyttäminen, joka alkaa ennen määräaikaa ja päättyy sen jälkeen, ratkeaa selvästi jompaankumpaan suuntaan. Puoliksi vanhentunutta tilaa ei ole.

    Aikavyöhykelaskut

    ”Vanhenee 24 tunnin kuluttua” on yksiselitteinen, ”vanhenee huomenna illalla” ei ole. Aseta voimassaoloaika kestona tästä hetkestä, ja kun kerrot vastaanottajalle, ilmoita määräaika hänen aikavyöhykkeessään. Yllättävän moni valitus siitä, että linkki oli kuollut avattaessa, johtuu aikavyöhykkeiden laskuvirheestä.

    Vaatimustenmukaisuus

    Voimassaoloaika on myös käytännön toteutus kahdelle periaatteelle, jotka löytyvät useimmista nykyisistä tietosuojasäädöksistä: tietojen minimointi ja säilytyksen rajoittaminen (EU:n yleisen tietosuoja-asetuksen 5 artiklan 1 kohdan c alakohta ja 5 artiklan 1 kohdan e alakohta). Jos henkilötietoja on pakko välittää, esimerkiksi henkilöllisyystodistus, asiakastietue tai henkilöön sidottu kirjautumistieto, linkki, joka todistettavasti lakkaa olemasta rajatun ajan jälkeen, on auditoijalle paljon helpompi selittää kuin ”se on jossain sähköpostijärjestelmässä”. Kirjausketju, joka näyttää jokaisen jaon luonti-, avaus- ja vanhenemistapahtumat, tekee säilytystä koskevasta väitteestäsi näytön pelkän vakuuttelun sijaan. Mikään tästä ei tee työkalusta itsestään GDPR:n mukaista, sillä vaatimustenmukaisuus on koko prosessisi ominaisuus, mutta rajattu elinikä ja tapahtumalokit ovat sen raaka-ainetta.

    Missä voimassaoloajasta ei ole apua

    Voimassaoloaika ei korvaa seuraavia:

    • Vaihtaminen. Jos itse salaisuus on vaarantunut, linkin voimassaoloaika ei mitätöi kirjautumistietoa. Vaihda se lähdejärjestelmässä. Voimassaoloaika rajaa, kuinka kauan toimitusväline on käyttökelpoinen, mutta ei kerro mitään sisällöstä toimituksen jälkeen.
    • Salalausesuojaus. Voimassaoloaika rajaa ajan, salalause pääsyn. Ne ovat toisistaan riippumattomia, ja ne on helppo yhdistää.
    • Tarkastusloki. Voimassaoloaika ei kerro mitään siitä, kuka näki salaisuuden tai milloin. Siihen tarvitaan linkkikohtaiset tarkastustapahtumat. LinkPilot kirjaa seuraavat tapahtumat aikaleimoineen ja IP-osoitteen tiivisteineen: luonti, avaus, väärä salalause, tuhoutuminen, vanheneminen ja mitätöinti.

    ”Pidennän sitä” -virhemalli

    Houkuttelevaa ja lähes aina väärin. Vastaanottaja on hyväksynyt tietyn ajan. Pidentäminen hänen tietämättään rikkoo luottamusmallin: hän oletti linkin kuolleen ja on ehkä käsitellyt salaisuutta sen mukaan tai lakannut vartioimasta postilaatikkoa, jossa linkki on.

    Siisti tapa: mitätöi vanha linkki, luo uusi uudella voimassaoloajalla ja kerro siitä vastaanottajalle. Kirjausketju pysyy totuudenmukaisena: yksi linkki, yksi aikaikkuna ja yksi lopputulos jakoa kohden. Siksi LinkPilotissa voit lyhentää käytössä olevan linkin voimassaoloaikaa tai mitätöidä sen heti, mutta pidennyspainiketta ei tarkoituksella ole.

    Rehellinen luettelo rajoista:

    • Toistuva käyttö. Jos joku tarvitsee tiedon myös ensi viikolla, tallenna se salasanojen hallintaohjelmaan ja jaa holvin kohde. Linkkien lähettäminen uudelleen aikataulun mukaan on kuin holvi, jossa on enemmän vaiheita ja heikommat takuut.
    • Koneet tiedon käyttäjinä. CI-putkien ja palvelujen pitäisi hakea tiedot salaisuuksien hallintapalvelusta (tai alustan omasta salaisuusvarastosta), ei kertakäyttöisistä URL-osoitteista.
    • Laaja jakelu. Linkki, jota viisitoista ihmistä tarvitsee, ei ole salaisuuden luovutus. Se on käyttöoikeuksien hallintaa, ja se kuuluu järjestelmään, jossa sellainen on.

    Vanhenevat linkit ovat parhaimmillaan täsmälleen yhdessä tehtävässä: arkaluonteisen tiedon siirtämisessä yhdeltä ihmiseltä toiselle kerran, niin että mahdollisen vahingon laajuus on rajattu.

    Lähteet

    Työkalut tähän artikkeliin

    Usein kysytyt kysymykset

    LinkPilot lähettää salaisen linkin, joka katoaa, kun se on avattu.

    Salataan selaimessasi, näytetään kerran ja tuhotaan sitten. Tiliä ei tarvita.

    Luo salainen linkki

    Lue seuraavaksi