Anonyymit merkit
Mitä ovat anonyymit merkit?
Jos käytät MetaGer-avainta, saat satunnaisesti generoidun salasanan, jonka selaimesi lähettää meille jokaisen hakukyselyn yhteydessä, jotta voimme mahdollistaa mainoksetonta hakua. Jos käytät Android-sovellustamme tai verkkolaajennustamme Chromeen ja Firefoxiin, selaimesi lähettää meille salasanan sijasta satunnaisesti generoidun salasanan (anonyymin tunnisteen) jokaisen hakupyynnön yhteydessä tunnistautumista varten, joka luodaan paikallisesti. Näin varmistetaan, että jokainen salasana on yksilöllinen eikä sillä ole yhteyttä varsinaiseen MetaGer-avaimeen eikä yksittäisten salasanojen välillä.
Mikä ongelma nimettömillä tunnuksilla on tarkoitus ratkaista?
Jos selaimesi lähettää meille aina saman salasanan jokaisen hakukyselyn yhteydessä, meillä olisi ainakin teoriassa mahdollisuus luoda korrelaatio kaikkien samalla avaimella tehtyjen hakujen välille. Vaikka emme tekisikään niin, luottamus olisi tietysti silti tarpeen, jotta voisimme olla varmoja anonyymistä hausta. Jotta meidän ei tarvitsisi vain luvata anonyymiä hakua, vaan voisimme myös todistaa sen, olemme ottaneet käyttöön anonyymit tunnukset.
Miten se toimii?
Haluamme siis, että kertakäyttösalasanat luodaan suoraan päätelaitteestasi, jonka sitten lähetät meille todennusta varten hakujen aikana. Jokaisen päätelaitteessasi olevan anonyymin tunnuksen osalta meidän on kuitenkin varmistettava, että MetaGer-avaimestasi on vähennetty tavallinen tunnus, ilman että (ja tämä on asian ydin) meille kerrotaan, mitä MetaGer-avainta käytettiin anonyymin tunnuksen tuottamiseen.
Perinteisesti käytämme tähän tarkoitukseen jonkinlaista kryptografista allekirjoitusta. Tässä tapauksessa allekirjoittaisimme luodun anonyymin tunnisteen. Kun lähetät meille myöhemmin nimettömän tunnisteen ja allekirjoituksen, voimme olla varmoja, että nimettömät tunnisteet ovat voimassa. Allekirjoituksen saamiseksi olisit kuitenkin lähettänyt meille nimettömän merkin yhdessä oikean avaimesi kanssa, mikä tekisi nimettömyyden tyhjäksi.
Sen vuoksi käytämme sen sijaan muunnettua salakirjoituksen muotoa, niin sanottua sokeaa allekirjoitusta. Todellisen elämän analogian luomiseksi se on kuin lähettäisi meille nimettömän merkkisi hiilipaperikuoressa. Tässä esimerkissä emme pystyisi avaamaan kirjekuorta, mutta voisimme allekirjoittaa sen ulkopuolelta, jolloin allekirjoituksemme siirtyisi sisällä olevaan anonyymiin merkkiin. Kun saat kirjekuoren takaisin, voit poistaa sen ja lähettää meille salasanan ja allekirjoituksen takaisin myöhemmin. Voisimme sitten vahvistaa, että kyseessä on todellakin meidän allekirjoituksemme.
Itse asiassa tämä vertaus on hieman harhaanjohtava, koska todellisessa prosessissa, kun lähetät meille nimettömän tunnisteen ja allekirjoituksen, emme ole koskaan nähneet nimettömiä tunnuksia emmekä myöskään itse allekirjoitusta. Silti voimme varmistaa, että allekirjoitus on meidän tuottamamme.
Mitä tämä tarkoittaa todennettujen hakujen kannalta?
Käyttämällä kuvattua algoritmia me ja sinä voimme varmistaa, että joka kerta todennetuissa hauissa käytetään uutta satunnaista salasanaa, joka ei liity MetaGer-avaimeesi.
Erityistä tässä algoritmissa on se, että kaikki anonymiteetin varmistavat osat suoritetaan paikallisesti laitteessasi. Kuka tahansa voi milloin tahansa tarkastella ja tarkistaa tämän suoritetun lähdekoodin.
Mikä parasta, sinun ei tarvitse määrittää mitään anonyymien tunnisteiden käyttöä varten. Pelkkä selainlaajennuksemme tai Android-sovelluksemme asentaminen/käyttö riittää, jotta laitteesi käyttää anonyymejä tunnuksia kaikissa hauissa.
Algoritmi sen takana:
Klassisessa RSA-allekirjoituksessa otamme anonyymin tunnuksen m
, salaisen eksponentin d
ja julkisen moduulin N
yksityisestä avaimestamme ja luomme allekirjoituksen käyttäen m^d (mod N)
. Haluamme kuitenkin, että m
pysyy salassa.
Siksi päätelaitteesi luo satunnaislukugeneraattorilla satunnaisluvun r
, joka on jakajasta riippumaton suhteessa N
. r
ja N
suurimman yhteisen jakajan on siis oltava 1
.
Koska r
on satunnaisluku, seuraa, että m'
ei paljasta mitään tietoa paikallisesti tallennetusta nimettömästä tunnuksesta m
.
Palvelimemme vastaanottaa nyt päätelaitteeltasi peitetyn anonyymin tunnisteen m'
sekä käytettävän MetaGer-avaimen. Vähennämme avaimesta merkin ja lähetämme myös peitetyn allekirjoituksen s'≡ (m')^d (mod N)
takaisin päätelaitteellesi.
Päätelaitteesi voi nyt laskea todellisen kelvollisen RSA-allekirjoituksen s
salaamattomalle nimettömälle tunnukselle: s≡ s' r^-1 (mod N)
. Tämä toimii, koska RSA-avaimilla r^(e*d)≡ r (mod N)
. Ja siis myös: s ≡ s' * r^-1 ≡ (m')^d*r^-1 ≡ m^d*r^(e*d)*r^-1 ≡ m^d*r*r^-1 ≡ m^d (mod N)
.
Loppulaitteesi lähettää meille nyt salaamattoman anonyymin tunnisteen ja siihen liittyvän allekirjoituksen hakua varten. Itse avainta ei enää lähetetä meille haun aikana.