Miten MyID toimii

Perheen oma kirjautuminen ilman salasanoja ja ilman Googlea. Avain, joka ei koskaan poistu puhelimestasi, hyväksyy jokaisen kirjautumisen sormenjäljelläsi.

Kirjautuminen — 20 sekunnissa

💻
Valitset palvelussa "Kirjaudu MyID:llä"

Vaikkapa MyMusicissa. Kerrot kuka olet, ja selain näyttää varmistusnumeron ja jää odottamaan puhelintasi.

37
📱
Puhelimeesi ilmestyy pyyntö

MyID-appi näyttää mihin palveluun ollaan kirjautumassa ja kenen tunnuksella — sekä kolme numeroa, joista vain yksi täsmää selaimen numeroon.

213784
👆
Valitset numeron ja painat sormesi lukijaan

Puhelimen suojaussiru allekirjoittaa hyväksynnän yksityisellä avaimella. Allekirjoitus syntyy vain sormenjäljelläsi tai laitteen PIN-koodilla — ja vain tälle nimenomaiselle pyynnölle.

Olet sisällä

MyID-palvelin tarkistaa allekirjoituksen laitteesi julkisella avaimella ja avaa palveluun 30 päivän istunnon. Selain jatkaa automaattisesti — mitään ei tarvitse kirjoittaa.

Miksi tämä on turvallinen

🔐
Avain asuu suojaussirussa

Yksityinen avain luodaan puhelimen StrongBox/TEE-sirulle merkinnällä "ei vietävissä". Sitä ei saa ulos edes puhelimen täysillä oikeuksilla — varastettu tai saastunut laite ei paljasta sitä.

🎣
Ei mitään kalasteltavaa

Salasanaa ei ole olemassa. Huijaussivusto voi matkia palvelua, mutta se ei voi varastaa mitään, millä kirjauduttaisiin puolestasi muualle.

🔢
Numerovarmistus

Puhelin ei koskaan kysy "hyväksytkö?" — se kysyy "mikä numero?". Väärä valinta hylkää pyynnön heti, joten vahinkohyväksyntä tai pyyntöpommitus ei toimi.

1️⃣
Kaikki on kertakäyttöistä

Jokainen pyyntö elää 2 minuuttia ja jokainen haaste, liittymiskoodi ja tokeninvaihto kelpaa täsmälleen kerran. Kaapattu viesti on arvoton.

👨‍👩‍👧
Vanhemmat lasten tukena

Matiaksen, Helmin ja Ilonan kirjautumiset voi hyväksyä myös Tapion tai Leenan puhelimesta. Valtuutuksia hallitaan hallintasivulta.

🚫
Kadonnut puhelin eristetään

Laite estetään hallintasivulta yhdellä napilla. Lukitun puhelimen avain on joka tapauksessa käyttökelvoton ilman sormenjälkeä tai PIN-koodia.

Rehellisesti: mitä tämä ei estä

📱
Auki oleva puhelin + tiedossa oleva PIN

Jos joku saa puhelimesi auki ja tietää PIN-koodisi, hän voi hyväksyä kirjautumisia. Sama rajoitus koskee pankkitunnuksia ja passkeytä — pidä PIN omana.

☁️
Cloudflare-tili on luottamusankkuri

Palvelin pyörii Tapion Cloudflare-tilillä. Sen kaappaaja voisi myöntää istuntoja — siksi tilillä on kaksivaiheinen tunnistus.

Tekniikka pähkinänkuoressa

Kryptografia

Jokaisella laitteella on oma EC P-256 -avainpari Android Keystoressa (setUserAuthenticationRequired, StrongBox jos saatavilla). Palvelin tuntee vain julkisen avaimen. Hyväksyntä on ECDSA-allekirjoitus kanonisesta viestistä:

MyID-v1|approve|<pyyntö-id>|<haaste>|<numero>|<palvelu>

jossa haaste on palvelimen arpoma 32-tavuinen kertakäyttöarvo. Istunnot ovat ES256-allekirjoitettuja JWT:itä; palvelut verifioivat ne itse julkisella avaimella (JWKS) tai kutsulla POST /api/verify.

Palvelinkomponentit

Cloudflare Worker + D1 (SQLite). Taulut: users (perhe + valtuutukset), devices (julkiset avaimet + tila), auth_requests (kertakäyttöiset pyynnöt), services (rekisteröidyt palvelut ja sallitut originit), enroll_codes, events (append-only loki).

VaiheKutsu
Palvelu aloittaa kirjautumisenPOST /api/authorize
Selain odottaaPOST /api/poll (poll-token)
Puhelin hakee pyynnötGET /api/device/pending
Puhelin hyväksyyPOST /api/device/approve (allekirjoitus)
Selain saa istunnonPOST /api/token → JWT
Laitteen elinkaari

Liittäminen: hallintasivulta luodaan 8-merkkinen kertakäyttökoodi (15 min), joka syötetään puhelimen MyID-appiin. Appi luo avainparin suojaussiruun ja rekisteröi julkisen avaimen. Esto: hallintasivun yksi nappi. Sormenjälkien muuttaminen puhelimessa mitätöi avaimen automaattisesti (tahallinen turvaominaisuus) — laite liitetään silloin uudelleen.

Palvelun liittäminen (kehittäjille)

Pudota sivulle <script src=".../myid-client.js"> ja kutsu MyID.button(el, { service, onLogin }). Palvelu rekisteröidään hallintasivulta (id, näyttönimi, sallitut originit). onLogin saa ES256-JWT:n, jonka voi verifioida JWKS:llä ilman kutsua MyID-palvelimeen.

Testaa kirjautumista · Hallinta · MyID on perheen oma, itse hostattu — koodi RapidPrototypes/ClaudeCode/MyID