Juhuslik API võtme generaator - Tasuta turvaline 32-märgiline võti
Genereerige krüptograafiliselt turvalised API võtmed koheselt. Tasuta veebipõhine tööriist loob juhuslikud 32-märgilised alfanumeerilised võtmed autentimiseks. Kliendipoolne genereerimine, ilma salvestamiseta.
API võtme generaator
Dokumentatsioon
Juhuslike API-võtmete generaator on tööriist, mis loob kahe arvutiprogrammi vahel paroolilaadse koodina kasutamiseks juhusliku tähtedest ja numbritest koosneva jada. See töötab täielikult külastaja veebibrauseris. Kasutaja saab valida võtme pikkuseks 8 kuni 128 märki, kus vaikepikkus on 32 märki.
Mis on API-võti?
API-võti on märkide jada, mille programm saadab koos päringuga, tõendamaks, et tal on õigus teenust kasutada. Veebiserver kontrollib võtit enne päringule vastamist. Erinevalt kasutajanimest ja paroolist tuvastab API-võti tavaliselt rakenduse või skripti, mitte inimest.
Võtmed toimivad kõige paremini siis, kui keegi ei saa neid ära arvata. Tõelist juhuslikkust kasutav generaator väldib mustreid, mis tekivad inimese sisestatud võtmetes, näiteks korduvad märgid või lühikesed meeldejäävad sõnad.
Kuidas see generaator töötab
Tööriist koostab iga võtme kindlast 62 märgi suurusest kogumist: 26 suurtähest A–Z, 26 väiketähest a–z ja 10 numbrist 0–9. Pikkusega n võtme puhul valib see sellest kogumist ükshaaval n märki.
Iga märk pärineb brauseri Web Crypto API-st, täpsemalt crypto.getRandomValues()-ist. See on krüptograafiliselt turvaline juhuarvugeneraator (CSPRNG), erinevalt JavaScripti Math.random()-ist, mis on etteaimatav ega sobi turvatundlike väärtuste jaoks.
Juhuslikust baidist õiglase märgi valimiseks 62 võimaluse seast (256 võimalikku väärtust) ei saa generaator lihtsalt kasutada byte % 62. Kuna 256 ei jagu 62-ga võrdselt, muudaks tavaline jäägiga jagamine kogumi esimesed märgid ülejäänutest veidi tõenäolisemaks. Tööriist väldib seda tagasilükkamise teel: see hülgab iga juhusliku baidi, mis tekitaks sellise kallutatuse, ja genereerib selle asemel uue. Seetõttu on võtme igal märgil igas positsioonis võrdne ja kallutamata esinemise tõenäosus.
Kuidas genereerida API-võtit
- Sisestage võtme pikkuseks 8 kuni 128 märki või jätke vaikeväärtuseks 32. Sellest vahemikust väljapoole jääv arv märgitakse sobimatuks ja selle asemel kasutatakse lähimat lubatud pikkust.
- Klõpsake „Genereeri“. Võti kuvatakse tekstikastis ja luuakse täielikult brauseris. Tekstikastil klõpsamine valib kogu võtme.
- Võtme lõikelauale kopeerimiseks klõpsake „Kopeeri“. Mõni brauser küsib esimesel korral selleks luba.
- Sama pikkusega uue võtme loomiseks klõpsake „Genereeri uuesti“ või võtme kustutamiseks ja vaikepikkusele 32 naasmiseks „Lähtesta“.
Võtme all kuvab tööriist kolm näitajat: võtme pikkuse märkides, märgistikku suuruse (alati 62) ja entroopia bittides.
Ühtegi võtit ei saadeta serverisse, logita ega salvestata. Genereerimine toimub kohaliku JavaScripti koodiga, seega ei näita brauseri võrguliikluse kontrollimine genereerimise ajal väljuvaid päringuid.
Kuidas arvutada võimalike võtmete arvu
Antud pikkusega genereeritavate erinevate võtmete arv järgib lihtsat valemit:
kus N on võimalike võtmete arv, c märgistiku suurus ja n võtme pikkus.
Selle tööriista märgistiku suurus on alati 62. Vaikepikkuse 32 korral:
N = 62³² ≈ 2,27 × 10⁵⁷
Seda arvu väljendatakse ka entroopiana, mida mõõdetakse bittides järgmise valemi abil:
kus H on entroopia bittides.
32-märgilise võtme korral: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bitti.
kogu võtmeruumi läbiproovimisele kuluv aeg
Oletame, et ründaja suudaks kontrollida sekundis miljardit (10⁹) võtit, mis on iga tegeliku süsteemi jaoks ebarealistlikult kiire tempo. Kõigi võimalike 32-märgiliste võtmete proovimine võtaks:
2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ sekundit ≈ 7,2 × 10⁴⁰ aastat
Võrdluseks on universum umbes 1,4 × 10¹⁰ aastat vana. Kõigi võimalike võtmete ükshaaval proovimine ei kujuta sellise pikkuse puhul praktilist ohtu. Lühemate võtmete korral väheneb see arv kiiresti: 8-märgiline võti sisaldab vaid 62⁸ ≈ 2,18 × 10¹⁴ võimalikku väärtust, mille kiire arvuti võiks mõne päevaga läbi proovida.
Miks rakendused kasutavad API-võtmeid
API-võtmed annavad teenusele lihtsa viisi tuvastada, milline rakendus päringu teeb. Sellel on mitu põhjust.
Autentimine. Server saab tagasi lükata päringud, mis saabuvad kehtiva võtmeta, takistades enamikku juhuslikust väärkasutusest.
Kasutuse jälgimine. Kuna igal kliendil võib olla erinev võti, saab teenus mõõta iga kliendi kasutusmahtu ja rakendada võtmekohaseid eraldi kiiruspiiranguid.
Tühistamine. Ühe rikutud võtme saab välja lülitada teisi kliente mõjutamata, sest iga võti on sõltumatu.
API-võtmeid on lihtsam rakendada kui OAuthi 2,0 autentimisstandardit, mis põhineb ajutistel ja automaatselt uuendatavatel juurdepääsutokenitel. OAuth sobib avalikele teenustele, mis käitlevad kasutajate isikuandmeid. API-võtmed on tavalised sisemistes tööriistades, skriptides ja teenustevahelistes päringutes, kus pika kehtivusajaga tunnuse kasutamine on vastuvõetav.
API-võtmete turvapraktikad
Mõned tavad vähendavad võtme lekkimise riski:
- Ärge salvestage võtmeid lähtekoodi. Versioonihalduse ajalugu on raske kustutada ja avalikke repositooriume kontrollitakse paljastatud tunnuste leidmiseks pidevalt. Salvestage võtmed selle asemel keskkonnamuutujatesse või saladuste haldurisse.
- Vahetage võtmeid regulaarselt. Võtme asendamine iga paari kuu järel piirab aega, mille jooksul lekkinud võti ründajale kasulik on.
- Andke võtmele ainult vajalikud õigused. Võti, millega saab ainult andmeid lugeda, ei tohiks võimaldada neid ka muuta või kustutada.
- Jälgige ebatavalist tegevust, näiteks ühe võtme päringute järsku kasvu.
Piirangud
See tööriist ei säilita genereeritud võtmete ajalugu, seega ei saa see tagada, et mõnda võtit pole varem toodetud. Kahe juhusliku 32-märgilise võtme kokkulangemise tõenäosus on umbes 1 2,27 × 10⁵⁷ kohta, mis on tavakasutuse jaoks piisavalt lähedal nullile. Süsteemid, mis vajavad absoluutset unikaalsuse garantiid, näiteks andmebaasi primaarvõtmed, peaksid siiski kontrollima uusi väärtusi serveris olemasolevate vastu.
Märgistik koosneb kindlalt suurtähtedest, väiketähtedest ja numbritest. See ei sisalda selliseid sümboleid nagu ! või -, mistõttu on võtmeid enamasti URL-idesse, päistesse ja konfiguratsioonifailidesse ohutu kleepida ilma paomärke lisamata.
Korduma kippuvad küsimused
Mis on API-võtmete generaator?
See on tööriist, mis loob tarkvararakenduste vahel autentimistunnustena kasutamiseks juhuslikke jadasid. See loob 8 kuni 128 märgi pikkuseid võtmeid 62 võimaliku märgi seast, kasutades brauseri krüptograafiliselt turvalist juhuarvugeneraatorit.
Kas selle tööriista loodud võti on tootmiskasutuseks piisavalt turvaline?
Juhuslikkus ise on krüptograafiliselt turvaline. Üldine turvalisus sõltub ka sellest, kuidas võtit hiljem talletatakse ja edastatakse: ärge kunagi lisage seda versioonihaldusse, saatke seda alati HTTPS-i kaudu ja vahetage regulaarselt.
Millise pikkuse peaksin valima?
Vaikimisi 32 märki annab umbes 2,27 × 10⁵⁷ võimalikku kombinatsiooni, mis on palju rohkem, kui ükski realistlik jõumeetodil otsing suudaks läbi proovida. Lühemad võtmed, näiteks 16 märki, võivad sobida väikese riskiga sisemistele tööriistadele. Väga pikad võtmed lisavad vähe täiendavat kaitset, kuid neid on raskem talletada ja kleepida.
Kas saan määrata kohandatud pikkuse?
Jah. Pikkuseväli aktsepteerib mis tahes täisarvu vahemikus 8 kuni 128. Märgistik ise (A–Z, a–z, 0–9) jääb samaks.
Kas tööriist salvestab või edastab genereeritud võtmeid?
Ei. Iga võti genereeritakse brauseris kohaliku JavaScriptiga. Midagi ei saadeta serverisse, logita ega salvestata.
Mis vahe on API-võtmel ja OAuthi tunnusel?
API-võti on pika kehtivusajaga tunnus, mis jääb kehtima seni, kuni keegi selle tühistab. OAuthi pääsutoken aegub automaatselt määratud aja möödudes ja seda saab uuendada ilma kasutaja otsese sekkumiseta. OAuth sobib avalikele teenustele, mis käitlevad isikuandmeid; API-võtmed sobivad lihtsamaks, sisemiseks või arenduskasutuseks.
Milliseid brausereid see tööriist toetab?
Kõiki brausereid, mis pakuvad Web Crypto API-t; see hõlmab kõiki viimase kümne aasta jooksul välja antud Chrome'i, Firefoxi, Safari, Edge'i ja Opera versioone. Kui see API puudub, kuvab tööriist veateate. See ei kasuta kunagi tagavarana Math.random()-it, sest see pole turvaline.