---
title: "Tietoturva: näin salaiset linkit toimivat | LinkPilot"
url: https://uselinkpilot.com/fi/security-architecture
description: "Miten LinkPilot käsittelee salaisia linkkejä: tallennus, voimassaoloaika, salalause, botit, lokitiedot ja erillisyys markkinointitilastoista."
lang: fi
---

Tietoturva-arkkitehtuuri

# Näin LinkPilotin salaiset linkit toimivat

Selkeä kuvaus siitä, miten salaiset sisällöt tallennetaan, näytetään ja tuhotaan, ja siitä, mitä emme niillä tarkoituksella tee.

avain = linkin # -merkin jälkeinen osa · ei lähetetä koskaan · AES-GCM-256

**Salaiset linkit ovat yksityisiä jo rakenteeltaan.** LinkPilot pitää salaisuuksien jakamisen erillään markkinointilinkkien tilastoista. Salaisuuksien sisältöä ei koskaan käytetä tilastointiin eikä profilointiin.

Löysitkö haavoittuvuuden tai haitallisen linkin? Ilmoita siitä tästä (https://uselinkpilot.com/report). Ilmoitukset menevät suoraan tiimille.

## 1. Yleiskatsaus

LinkPilotissa on samalla alustalla kaksi erillistä linkkien käsittelyputkea: **älykkäät linkit** eli lyhytlinkit omalla verkkotunnuksella klikkaustilastoineen ja **salaiset linkit** arkaluonteisen sisällön kertakäyttöiseen, vanhenevaan ja salalauseella suojattuun toimitukseen. Ne pidetään erillään datan, koodipolkujen ja tuotteen tasolla, jotta salaiset sisällöt eivät voi koskaan päätyä tilastojen hallintapaneeleihin, aineistovienteihin tai tekoälyominaisuuksiin.

Tällä sivulla kuvataan nimenomaan salaisten linkkien käsittelyputki: miten salaisuus luodaan, miten se näytetään, mitä tapahtuu sen avaamisen jälkeen ja mitä metatietoja matkan varrella kirjataan lokiin.

## 2. Näin salaiset linkit toimivat

1. Lähettäjä luo salaisuuden ja voi asettaa sille salalauseen, voimassaoloajan ja avauskertojen enimmäismäärän, jonka jälkeen se tuhoutuu.
2. Lähettäjän selain salaa sisällön ennen kuin mitään lähetetään. Meille saapuu salateksti, joka kirjoitetaan omaan tauluunsa `secret_links`, erilleen klikkaustilastojen tauluista.
3. LinkPilot palauttaa lyhyen URL-osoitteen (esim. `shrd.link/s/<slug>#k=<key>`), jonka lähetät vastaanottajalle. Merkin `#` jälkeinen osa on purkuavain. Se luodaan lähettäjän selaimessa, eikä sitä koskaan lähetetä meille. Emme pysty muodostamaan tätä URL-osoitetta myöhemmin uudelleen.
4. Kun vastaanottaja avaa linkin, sovellus kutsuu reunafunktiota `secret-reveal`. Pyyntö `GET` palauttaa vain metatiedot (tilan ja tiedon siitä, tarvitaanko salalausetta). Salatekstin palauttaa vasta pyyntö `POST`, jossa on mukana salalause. Sen jälkeen vastaanottajan selain purkaa salauksen avaimella, joka on linkin #-merkin jälkeisessä osassa. Näyttämisfunktio itse ei pura salausta koskaan, eikä se pystyisi siihen, vaikka haluaisi.
5. Onnistunut näyttäminen kirjataan atomisesti, ja avauskertojen enimmäismäärän asetuksesta riippuen salaisuus voidaan heti merkitä tilaan `burned`.

## 3. Salausmalli

Haluamme olla tässä täsmällisiä, koska sanoja ”salattu” ja ”zero knowledge” käytetään usein huolimattomasti.

- **Siirron aikana:** kaikki liikenne on TLS-salattua koko matkan vastaanottajalta reunapalvelimillemme ja hallinnoituun tietokantaamme.
- **Selaimessasi ennen siirtoa:** 29. syyskuuta 2026 alkaen sisältö salataan asiakaspäässä AES-GCM-256-salauksella 256-bittisellä avaimella, joka luodaan selaimessasi. Tallennamme salatekstin emmekä mitään muuta. Avain kulkee jakolinkissä merkin `#` jälkeen, eivätkä selaimet lähetä tätä osaa millekään palvelimelle: eivät meille eivätkä Cloudflarelle, joka tarjoilee näyttämissivun.
- **Tallennettuna:** salateksti on sarakkeessa, joka on loogisesti erotettu tilastodatasta. Sarake on hallinnoidussa Postgres-instanssissa, jossa on lisäksi levytason salaus.
- **Salalauseet:** kun asetat salalauseen, se muutetaan Unicoden vakiomuotoon (NFKC), jotta sama salalause tuottaa saman avaimen, vaikka se kirjoitettaisiin toisella näppäimistöllä tai syöttötavalla. Sen jälkeen salalausetta vahvistetaan PBKDF2-SHA256-funktiolla (210 000 kierrosta), ja tulos yhdistetään linkin avaimeen HKDF-SHA256-funktiolla, joten salausta ei voi purkaa pelkällä linkillä eikä pelkällä salalauseella. Lisäksi palvelimelle lähetetään erikseen salalauseen SHA-256-tiiviste, jotta palvelin voi kieltäytyä palauttamasta salatekstiä lainkaan pyytäjälle, joka ei tiedä salalausetta. Selväkielistä salalausetta ei koskaan kirjoiteta tietokantaamme eikä lokeihin.
- **Mitä tämä suojaa ja mitä ei:** me, tietokantamme ja reunapalvelimemme jäämme luottamusrajan ulkopuolelle. Se ei suojaa salaisuutta, jonka koko linkki on välitetty eteenpäin, tallennettu kuvakaappaukseen tai tallentunut johonkin lokiin vastaanottajan päässä, koska linkissä on avain.
- **Kaksi poikkeusta suoraan sanottuna:** ennen 29. syyskuuta 2026 luodut salaisuudet on tallennettu selväkielisinä. Niitä ei koskaan muuteta salaa, ne toimivat täsmälleen kuten ennenkin ja poistuvat käytöstä vanhetessaan. Myös liitetiedostot salataan selaimessa avaimella, joka johdetaan salaisuuden omasta avaimesta, joten sama linkki avaa molemmat, eikä meillä ole avainta kumpaankaan. Näemme edelleen tiedoston nimen, koon ja tyypin: ne ovat metatietosarakkeita, eivät sisältöä. Ennen 29. syyskuuta 2026 ladatut liitteet ovat edelleen tallessa salaamattomina tiedostoina.

Käytännön seuraus kannattaa sanoa ääneen: koska avain ei ole koskaan meillä, emme voi palauttaa salaisuutta puolestasi. Jos jakolinkki katoaa, sisältö on menetetty.

**Tarkista itse.** Selaimessa tehtävään salaukseen ei tarvitse luottaa sokeasti. Sama salauskoodi on avoimen lähdekoodin linkpilot-cli-koodivarastossamme (https://github.com/TetraCoreHQ/linkpilot-cli) (MIT-lisenssi), jossa ovat CLI, TypeScript-SDK ja MCP-palvelin. Koodivarastoon on tallennettu testivektorit, joilla verkkosovellus tarkistetaan, joten voit lukea avaimen johtamisen koodin, ajaa vektorit ja varmistaa, että asiakasohjelmasta lähtevä data on salatekstiä ja että avain menee vain linkin #-merkin jälkeiseen osaan. Jos huomaat eron koodin ja tämän sivun välillä, ilmoita siitä (https://uselinkpilot.com/report).

## 4. Mitä tapahtuu, kun salaisuus on avattu

- Avaus kirjataan atomisesti tietokantafunktiolla, joten samanaikaiset näyttämisyritykset eivät voi vuotaa salaisuutta kahdesti.
- Kun avauskertojen enimmäismäärä täyttyy, salaisuuden tila vaihtuu arvoon `burned` ja tallennettu sisältö korvataan merkkijonolla `[REDACTED]`.
- Myöhemmät näyttämisyritykset saavat selvän vastauksen ”jo avattu ja tuhottu” ja tilakoodin HTTP 410.
- Tarkastusloki eli loki linkin tapahtumista kirjaa jokaisen avauksen, tuhoutumisen ja mitätöinnin tiivistetyn IP-osoitteen kanssa. Siitä on hyötyä häiriötilanteiden selvittämisessä ja kirjautumistietojen vaihtamisessa.

## 5. Vanheneminen ja mitätöinti

- Jokaiselle salaisuudelle voi asettaa voimassaoloajan ja halutessaan avauskertojen enimmäismäärän. Voimassaoloaika on kaikissa paketeissa 1 tunti, 24 tuntia tai 7 päivää, ja Pro-paketissa sen voi asettaa myös tiettyyn päivään ja kellonaikaan.
- Vanhentuneen salaisuuden tila vaihtuu arvoon `expired` seuraavalla käyttökerralla, ja sisältö korvataan samassa kirjoitusoperaatiossa.
- Omistaja voi mitätöidä salaisuuden milloin tahansa hallintapaneelista. Mitätöityä salaisuutta ei enää näytetä, vaan palvelu palauttaa heti tilakoodin HTTP 410.
- Kun salaisuus on tuhoutunut, vanhentunut tai mitätöity, sisältöä ei voi palauttaa tuotteen kautta. Toimintoa ”peru mitätöinti” tai ”palauta” ei ole, ja se on tarkoituksellista.

## 6. Salalausesuojaus

- Salalause on valinnainen, mutta suosittelemme sitä jokaiselle salaisuudelle, jota et halua kenenkään sivullisen avaavan ja kuluttavan.
- Salalauseesta lasketaan selaimessa SHA-256-tiiviste, joka lähetetään TLS-yhteydellä, ja palvelin vertaa tiivisteitä. Alkuperäinen arvo ei koskaan päädy tietokantaamme.
- Rajoitamme salalauseyritykset enintään 5 yritykseen minuutissa IP-osoitetta ja salaisuutta kohden. Rajoitus toimii sekä muistissa toimivalla rajoittimella että tietokantaan perustuvalla liukuvalla aikaikkunalla.
- Jokainen epäonnistunut yritys kirjataan tarkastuslokiin tiivistetyn IP-osoitteen kanssa, jotta työtilan omistajat näkevät epäilyttävän toiminnan.
- Suosittelemme lähettämään salalauseen eri kanavaa pitkin kuin linkin, esimerkiksi linkin sähköpostilla ja salalauseen Slackin yksityisviestillä tai tekstiviestillä.

## 7. Suojaus linkkiskannereilta ja esikatselubotteilta

Sähköpostin tietoturvaskannerit ja pikaviestinten linkkiesikatselut (Slack, LinkedIn, iMessage, Outlook) hakevat URL-osoitteet yleensä heti, kun ne ilmestyvät. Lukemisen jälkeen tuhoutuvan linkin kohdalla yksinkertainen toteutus tarkoittaisi, että jo ensimmäinen esikatselu tuhoaisi salaisuuden ennen kuin vastaanottaja näkee sen.

LinkPilot estää tämän kolmella tavalla:

- **Erilliset rajapinnat metatiedoille ja näyttämiselle.** Näyttämisrajapintaan tehty pyyntö `GET` palauttaa vain tilan ja tiedon siitä, tarvitaanko salalausetta. Avaus kirjataan vasta erillisellä pyynnöllä `POST`, jonka ihminen tekee painettuaan Näytä-painiketta.
- **Salalause portinvartijana.** Kun salalause on asetettu, sisältöä ei palauteta kenellekään, ei botille eikä ihmiselle, ilman oikeaa tiivistettä.
- **Cache-Control: no-store** jokaisessa näyttämisvastauksessa, joten välityspalvelimet eivät tallenna salaisuuksien sisältöä välimuistiin.

## 8. Mitä metatietoja kirjataan lokiin

Jokaisesta näyttämisyrityksestä kirjaamme vain sen, mitä työtilan omistajat tarvitsevat luotettavaan tarkastuslokiin:

- Yrityksen **aikaleima**.
- **Tiivistetty IP-osoite:** asiakkaan IP-osoitteen ja päivittäin vaihtuvan suolan SHA-256-tiiviste katkaistuna 32 merkkiin. Alkuperäistä IP-osoitetta ei koskaan tallenneta.
- **Karkea sijainti** (maa ja kaupunki) reunapalvelimelta, jos palveluntarjoaja välittää sen.
- Asiakasohjelman ilmoittama **User-Agent-merkkijono**.
- **Tapahtuman tyyppi:** luotu, avattu, väärä salalause, tuhoutunut, vanhentunut, mitätöity.

_Emme_ kirjaa lokiin salaisuuden sisältöä, alkuperäistä salalausetta, alkuperäistä IP-osoitetta, vastaanottajan evästeitä (niitä ei ole) emmekä kolmansien osapuolten seurantapikseleitä.

## 9. Salaisten linkkien ja tilastolinkkien ero

| Ominaisuus | Älykkäät linkit (tilastot) | Salaiset linkit |
| --- | --- | --- |
| Tarkoitus | Lyhytlinkit omalla verkkotunnuksella ja klikkausten seuranta | Kertakäyttöinen, vanheneva ja turvallinen toimitus |
| Tallennus | Linkit ja klikkaustapahtumat | Salateksti eristetyssä secret_links-taulussa, korvataan tuhottaessa |
| Klikkauskohtaiset tiedot | Tiivistetty IP, viittaava sivu, UA, sijainti, UTM | Tiivistetty IP, UA, sijainti, tapahtuman tyyppi, ei sisältöä |
| Käyttö tilastoissa tai tekoälyssä | Kyllä (koostettuna, tiivistettynä) | Ei koskaan, täysin rajattu pois |
| Elinikä | Pysyvä, kunnes poistat sen | Tuhoutuu, vanhenee tai mitätöidään, minkä jälkeen sisältöä ei voi palauttaa |
| Bottien esikatselut | Lasketaan boteiksi ja suodatetaan pois tilastoista | GET palauttaa vain metatiedot, joten botit eivät voi näyttää sisältöä |

Molemmilla käsittelyputkilla on sama brändi, hallintapaneeli ja tiimin hallinta, mutta tietovirrat eivät kohtaa.

## 10. Liitteet

- Tiedostot salataan selaimessa avaimella, joka johdetaan salaisuuden omasta avaimesta, joten sama linkki avaa sekä tekstin että tiedoston.
- Ne toimitetaan lyhytikäisillä allekirjoitetuilla URL-osoitteilla, ja niitä suojaavat samat salalause-, voimassaolo- ja tuhoutumisasetukset kuin tekstiä.
- Tiedoston nimi, koko ja tyyppi näkyvät meille metatietoina, sen sisältö ei.
- Ennen 29. syyskuuta 2026 ladatut liitteet säilyvät salaamattomina tiedostoina, kunnes ne vanhenevat. Niitä ei koskaan muuteta jälkikäteen.

## 11. Säilytys

- Salaisuuden sisältö korvataan, kun salaisuus tuhoutuu, vanhenee tai mitätöidään. Palautustoimintoa ei tarkoituksella ole, emmekä voi palauttaa sisältöä puolestasi.
- Tilin tietoja säilytetään niin kauan kuin työtila on käytössä ja 30 päivää poistamisen jälkeen, jotta vahingossa tehdyn poiston voi perua.
- Lyhytlinkkien klikkaustilastot koostetaan 90 päivän jälkeen anonyymeiksi lukumääriksi.
- Tarkastuslokin tapahtumista säilytetään vain kohdassa 8 kuvatut tiivistetyt ja suolatut arvot. Alkuperäistä osoitetta ei ole, joten sitä ei voi säilyttää.

## 12. Nimettömät salaisuudet ja työtilan salaisuudet

Ilmainen salaisten linkkien luontityökalu (https://uselinkpilot.com/fi/tools/free-secret-link-generator) luo salaisuuksia ilman tiliä. Asetus ”Tuhoa lukemisen jälkeen” on aina käytössä, voimassaoloaika on 1 tunti, 24 tuntia tai 7 päivää, Turnstile suojaa lomaketta automaattiselta väärinkäytöltä, ja salaus tehdään samalla tavalla selaimessa.

Työtilan salaisuudessa on lisäksi tarkastusloki, mitätöinti hallintapaneelista, liitetiedostot sekä Pro-paketissa salalauseet ja oma vanhenemispäivä ja kellonaika. Salausmalli on molemmissa sama.

## 13. Rajoitukset suoraan sanottuna

- **Välitetty linkki on välitetty salaisuus.** Mikään toteutuksessa ei estä vastaanottajaa välittämästä linkkiä eteenpäin ennen sen avaamista. Riskiä pienentävät lyhyt voimassaoloaika ja toista kanavaa pitkin toimitettu salalause.
- **Kadonnut linkki on kadonnut salaisuus.** Avain ei ole koskaan meillä, joten palautettavaa ei ole.
- **Ennen 29. syyskuuta luotujen salaisuuksien poikkeus.** Ennen tätä päivää luodut salaisuudet tallennettiin selväkielisinä, kunnes ne vanhenivat.
- **Ei avointa lähdekoodia, ei ylläpitoa omalla palvelimella.** Salausasiakas on julkaistu testivektoreineen MIT-lisensoidussa CLI-koodivarastossa, mutta itse palvelu on meidän ylläpitämämme tuote. Jos tarvitset ylläpitoa omalla palvelimella, katso avoimen lähdekoodin vaihtoehdot (https://uselinkpilot.com/blog/best-onetimesecret-alternatives).
- **Loki ei kerro, kuka avasi.** Loki kertoo, milloin ja suunnilleen mistä salaisuus avattiin, mutta ei koskaan sitä, kuka sen avasi. Jos sen avasi väärä taho, vaihda kirjautumistiedot.

## 14. Haavoittuvuudesta ilmoittaminen

Tietoturvahavainnoista ja haitallisista linkeistä voi ilmoittaa osoitteessa /report (https://uselinkpilot.com/report), ja ilmoitukset menevät suoraan tiimille. Tietosuoja- ja tietopyynnöt lähetetään osoitteeseen privacy@uselinkpilot.com, ja niihin vastataan 30 päivän kuluessa. GDPR-sivulla (https://uselinkpilot.com/fi/gdpr) kerrotaan, mitä tietoja käsittelemme ja millä perusteella.

## 15. Usein kysytyt kysymykset

### Onko salaisuus päästä päähän -salattu?

On, jos se on luotu 29. syyskuuta 2026 tai sen jälkeen. Sisältö salataan selaimessasi AES-GCM-256-salauksella ennen lähettämistä, ja avain sijoitetaan jakolinkin #-merkin jälkeiseen osaan. Se on URL-osoitteen fragmentti, jota selaimet eivät koskaan lähetä. Saamme vain salatekstin emmekä koskaan avainta, joten emme pysty lukemaan salaisuutta. Liitetiedostot salataan samalla tavalla avaimella, joka johdetaan samasta linkistä. Kaksi varausta haluamme sanoa suoraan: ennen tätä päivää luodut salaisuudet on yhä tallennettu selväkielisinä, ja ne toimivat muuttumattomina, kunnes vanhenevat. Lisäksi tiedoston nimi, koko ja tyyppi tallennetaan edelleen salaamattomina, vaikka sisältö on salattu.

### Voivatko LinkPilotin työntekijät lukea salaisuuksiani?

Eivät, jos salaisuus on salattu selaimessasi: purkuavainta ei koskaan lähetetä meille, joten ylläpitäjä, jolla on täysi pääsy tietokantaan, näkee vain salatekstiä. Sama koskee ketä tahansa, joka murtautuu tietokantaamme tai reunapalvelimillemme. Kolme rehellistä rajoitusta: ennen 29. syyskuuta 2026 luotu salaisuus on tallennettu selväkielisenä, ja ylläpitäjä voisi lukea sen niin kauan kuin se on voimassa. Näemme edelleen tiedoston nimen, koon ja tyypin, vaikka emme voi lukea sen sisältöä. Kuka tahansa, joka saa haltuunsa koko jakolinkin #-merkin jälkeistä osaa myöten, voi avata salaisuuden, ja siksi lyhyt voimassaoloaika ja tuhoutuminen lukemisen jälkeen ovat edelleen tärkeitä.

### Tuhoutuuko salaisuus, jos linkin esikatselu avautuu Slackissa tai sähköpostissa?

Ei. Linkkien esikatselut tekevät GET-pyyntöjä, jotka palauttavat vain metatiedot (tilan ja tiedon siitä, tarvitaanko salalausetta). Avaus kirjataan vasta erillisellä POST-pyynnöllä, jonka vastaanottaja tekee painaessaan Näytä-painiketta.

### Mitä tietoja avauksesta kirjataan lokiin?

Jokaisesta avauksesta kirjaamme aikaleiman, tiivistetyn IP-osoitteen (SHA-256 ja päivittäin vaihtuva suola, katkaistu 32 merkkiin), maan ja kaupungin reunapalvelimen tiedoista, jos ne ovat saatavilla, sekä User-Agent-merkkijonon. Emme kirjaa salaisuuden sisältöä, alkuperäistä salalausetta emmekä alkuperäistä IP-osoitetta.

### Käytetäänkö salaisuuksia koskaan mallien kouluttamiseen tai tilastointiin?

Ei. Salaisuuksien sisältö on rajattu pois tilastoista, profiloinnista ja kaikista tekoälyominaisuuksista. Salaisten linkkien käsittelyputki on erillään älykkäiden linkkien tilastoputkesta.

### Näenkö, kuka salaisuuden avasi?

Et sitä, kuka sen avasi. Pro-paketissa loki näyttää, milloin kukin avaus tapahtui, reunapalvelimen ilmoittaman maan ja kaupungin, selaimen User-Agent-merkkijonon sekä verkko-osoitteen tiivisteen, jonka suola vaihtuu päivittäin. Se riittää toimituksen vahvistamiseen tai väärästä paikasta tehdyn avauksen huomaamiseen, ja se on suunniteltu niin, ettei siitä voi päätellä henkilöllisyyttä.

### Voinko ylläpitää LinkPilotia omalla palvelimella?

Et. LinkPilot on meidän ylläpitämämme palvelu. Salausasiakas on julkaistu MIT-lisensoidussa CLI-koodivarastossa testivektoreineen, jotta sen voi tarkastaa, mutta itse palvelu ei ole avointa lähdekoodia. Jos tarvitset ylläpitoa omalla palvelimella, tavallisia vaihtoehtoja ovat OneTimeSecret, Password Pusher, PrivateBin ja Yopass.

### Mitä tapahtuu, jos joku yrittää murtaa salalauseen kokeilemalla?

Salalauseyritykset rajoitetaan 5 yritykseen minuutissa IP-osoitetta ja salaisuutta kohden kahdella tasolla (muistissa ja tietokannassa). Epäonnistuneet yritykset kirjataan tarkastuslokiin tiivistetyn IP-osoitteen kanssa.

## Aiheeseen liittyvää

- Salasanojen turvallinen jakaminen: 5 tapaa vertailussa: https://uselinkpilot.com/fi/secure-password-sharing
- Kertakäyttöisten salaisten linkkien luontityökalu: https://uselinkpilot.com/fi/tools/free-secret-link-generator
- Asiakaspään salaus salaisuuksien jakamisessa: https://uselinkpilot.com/blog/client-side-encryption-for-secret-sharing
- Tietosuojakäytäntö: https://uselinkpilot.com/privacy
- GDPR: https://uselinkpilot.com/fi/gdpr

## Kokeile salaista linkkiä itse

Free-paketti on pysyvästi ilmainen. Maksukorttia ei tarvita.

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "Onko salaisuus päästä päähän -salattu?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "On, jos se on luotu 29. syyskuuta 2026 tai sen jälkeen. Sisältö salataan selaimessasi AES-GCM-256-salauksella ennen lähettämistä, ja avain sijoitetaan jakolinkin #-merkin jälkeiseen osaan. Se on URL-osoitteen fragmentti, jota selaimet eivät koskaan lähetä. Saamme vain salatekstin emmekä koskaan avainta, joten emme pysty lukemaan salaisuutta. Liitetiedostot salataan samalla tavalla avaimella, joka johdetaan samasta linkistä. Kaksi varausta haluamme sanoa suoraan: ennen tätä päivää luodut salaisuudet on yhä tallennettu selväkielisinä, ja ne toimivat muuttumattomina, kunnes vanhenevat. Lisäksi tiedoston nimi, koko ja tyyppi tallennetaan edelleen salaamattomina, vaikka sisältö on salattu."
        }
      },
      {
        "@type": "Question",
        "name": "Voivatko LinkPilotin työntekijät lukea salaisuuksiani?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Eivät, jos salaisuus on salattu selaimessasi: purkuavainta ei koskaan lähetetä meille, joten ylläpitäjä, jolla on täysi pääsy tietokantaan, näkee vain salatekstiä. Sama koskee ketä tahansa, joka murtautuu tietokantaamme tai reunapalvelimillemme. Kolme rehellistä rajoitusta: ennen 29. syyskuuta 2026 luotu salaisuus on tallennettu selväkielisenä, ja ylläpitäjä voisi lukea sen niin kauan kuin se on voimassa. Näemme edelleen tiedoston nimen, koon ja tyypin, vaikka emme voi lukea sen sisältöä. Kuka tahansa, joka saa haltuunsa koko jakolinkin #-merkin jälkeistä osaa myöten, voi avata salaisuuden, ja siksi lyhyt voimassaoloaika ja tuhoutuminen lukemisen jälkeen ovat edelleen tärkeitä."
        }
      },
      {
        "@type": "Question",
        "name": "Tuhoutuuko salaisuus, jos linkin esikatselu avautuu Slackissa tai sähköpostissa?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ei. Linkkien esikatselut tekevät GET-pyyntöjä, jotka palauttavat vain metatiedot (tilan ja tiedon siitä, tarvitaanko salalausetta). Avaus kirjataan vasta erillisellä POST-pyynnöllä, jonka vastaanottaja tekee painaessaan Näytä-painiketta."
        }
      },
      {
        "@type": "Question",
        "name": "Mitä tietoja avauksesta kirjataan lokiin?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Jokaisesta avauksesta kirjaamme aikaleiman, tiivistetyn IP-osoitteen (SHA-256 ja päivittäin vaihtuva suola, katkaistu 32 merkkiin), maan ja kaupungin reunapalvelimen tiedoista, jos ne ovat saatavilla, sekä User-Agent-merkkijonon. Emme kirjaa salaisuuden sisältöä, alkuperäistä salalausetta emmekä alkuperäistä IP-osoitetta."
        }
      },
      {
        "@type": "Question",
        "name": "Käytetäänkö salaisuuksia koskaan mallien kouluttamiseen tai tilastointiin?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Ei. Salaisuuksien sisältö on rajattu pois tilastoista, profiloinnista ja kaikista tekoälyominaisuuksista. Salaisten linkkien käsittelyputki on erillään älykkäiden linkkien tilastoputkesta."
        }
      },
      {
        "@type": "Question",
        "name": "Näenkö, kuka salaisuuden avasi?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Et sitä, kuka sen avasi. Pro-paketissa loki näyttää, milloin kukin avaus tapahtui, reunapalvelimen ilmoittaman maan ja kaupungin, selaimen User-Agent-merkkijonon sekä verkko-osoitteen tiivisteen, jonka suola vaihtuu päivittäin. Se riittää toimituksen vahvistamiseen tai väärästä paikasta tehdyn avauksen huomaamiseen, ja se on suunniteltu niin, ettei siitä voi päätellä henkilöllisyyttä."
        }
      },
      {
        "@type": "Question",
        "name": "Voinko ylläpitää LinkPilotia omalla palvelimella?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Et. LinkPilot on meidän ylläpitämämme palvelu. Salausasiakas on julkaistu MIT-lisensoidussa CLI-koodivarastossa testivektoreineen, jotta sen voi tarkastaa, mutta itse palvelu ei ole avointa lähdekoodia. Jos tarvitset ylläpitoa omalla palvelimella, tavallisia vaihtoehtoja ovat OneTimeSecret, Password Pusher, PrivateBin ja Yopass."
        }
      },
      {
        "@type": "Question",
        "name": "Mitä tapahtuu, jos joku yrittää murtaa salalauseen kokeilemalla?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Salalauseyritykset rajoitetaan 5 yritykseen minuutissa IP-osoitetta ja salaisuutta kohden kahdella tasolla (muistissa ja tietokannassa). Epäonnistuneet yritykset kirjataan tarkastuslokiin tiivistetyn IP-osoitteen kanssa."
        }
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Etusivu",
        "item": "https://uselinkpilot.com/fi"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Tietoturva-arkkitehtuuri",
        "item": "https://uselinkpilot.com/fi/security-architecture"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": "https://uselinkpilot.com/#software",
    "name": "LinkPilot",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web",
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "url": "https://uselinkpilot.com",
    "offers": [
      {
        "@type": "Offer",
        "name": "Free",
        "price": "0",
        "priceCurrency": "USD",
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro",
        "price": "29",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "29",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency",
        "price": "299",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "299",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus",
        "price": "799",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "799",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro (yearly)",
        "price": "288",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "288",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency (yearly)",
        "price": "2988",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "2988",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus (yearly)",
        "price": "7980",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "7980",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Enterprise",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "priceCurrency": "USD"
        },
        "url": "https://uselinkpilot.com/pricing"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://uselinkpilot.com/#organization",
    "name": "LinkPilot",
    "alternateName": "LinkPilot by TetraCore",
    "url": "https://uselinkpilot.com",
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer support",
      "email": "support@uselinkpilot.com",
      "url": "https://uselinkpilot.com/support"
    },
    "parentOrganization": {
      "@type": "Organization",
      "@id": "https://tetracorehq.com/#organization",
      "name": "TetraCore",
      "url": "https://tetracorehq.com/"
    },
    "logo": {
      "@type": "ImageObject",
      "url": "https://uselinkpilot.com/logo-512.png",
      "width": 512,
      "height": 512
    },
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "sameAs": [
      "https://x.com/uselinkpilot",
      "https://www.linkedin.com/company/uselinkpilot",
      "https://facebook.com/uselinkpilot",
      "https://github.com/TetraCoreHQ/linkpilot-cli",
      "https://github.com/TetraCoreHQ/linkpilot-mcp",
      "https://www.npmjs.com/package/linkpilot",
      "https://www.npmjs.com/package/@uselinkpilot/sdk",
      "https://www.npmjs.com/package/@uselinkpilot/mcp",
      "https://chromewebstore.google.com/detail/linkpilot-short-links-and/mnmppadihpcncicldpkmgknhnjkondad",
      "https://addons.mozilla.org/en-US/firefox/addon/uselinkpilot/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "LinkPilot",
    "url": "https://uselinkpilot.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://uselinkpilot.com/blog?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
]
```