Generator nasumičnih API ključeva - Besplatni sigurni 32-znamenkasti ključevi
Trenutno generirajte kriptografski sigurne API ključeve. Besplatni mrežni alat stvara nasumične 32-znamenkaste alfanumeričke ključeve za autentifikaciju. Generiranje na strani klijenta, bez pohrane.
Generator API ključeva
Dokumentacija
Generator nasumičnih API ključeva alat je koji stvara nasumični niz slova i znamenki za upotrebu kao kôd nalik lozinki između dvaju računalnih programa. Ovaj generator u cijelosti radi unutar web-preglednika posjetitelja. Korisnik može odabrati duljinu ključa od 8 do 128 znakova, pri čemu je zadana duljina 32 znakova.
Što je API ključ?
API ključ niz je znakova koji program šalje zajedno sa zahtjevom kako bi dokazao da smije upotrebljavati uslugu. Web-poslužitelj provjerava ključ prije nego što odgovori na zahtjev. Za razliku od korisničkog imena i lozinke, API ključ obično identificira aplikaciju ili skriptu, a ne osobu.
Ključevi najbolje funkcioniraju kada ih nitko ne može pogoditi. Generator koji upotrebljava istinsku nasumičnost izbjegava obrasce koji se pojavljuju u ključevima koje upisuje osoba, kao što su ponovljeni znakovi ili kratke, pamtljive riječi.
Kako ovaj generator radi
Alat sastavlja svaki ključ iz fiksnog skupa od 62 znakova: 26 velikih slova A–Z, 26 malih slova a–z i 10 znamenki 0–9. Za ključ duljine n odabire n znakova iz tog skupa, jedan po jedan.
Svaki znak dolazi iz pregledničkog API-ja Web Crypto, točnije iz crypto.getRandomValues(). Riječ je o kriptografski sigurnom generatoru slučajnih brojeva (CSPRNG), za razliku od JavaScriptove funkcije Math.random(), koja je predvidljiva i neprikladna za vrijednosti osjetljive sa sigurnosnog stajališta.
Za pravedan odabir znaka iz 62 mogućnosti na temelju slučajnog bajta (256 mogućih vrijednosti), generator ne može jednostavno upotrijebiti byte % 62. Budući da se 256 ne može ravnomjerno podijeliti s 62, obični ostatak pri dijeljenju učinio bi prvih nekoliko znakova u skupu malo vjerojatnijima od ostalih. Alat to izbjegava uzorkovanjem s odbacivanjem: odbacuje svaki slučajni bajt koji bi uzrokovao tu pristranost i umjesto njega izvlači novi. Zato svaki znak u konačnom ključu ima jednaku, nepristranu vjerojatnost pojavljivanja na svakom položaju.
Kako generirati API ključ
- Unesite duljinu ključa između 8 i 128 znakova ili zadržite zadanu vrijednost 32. Broj izvan tog raspona označava se kao nevažeći, a umjesto njega upotrebljava se najbliža dopuštena duljina.
- Kliknite „Generate”. Ključ se pojavljuje u tekstnom polju, a u cijelosti se sastavlja u pregledniku. Klikom na polje odabire se cijeli ključ.
- Kliknite „Copy” da biste kopirali ključ u međuspremnik. Neki preglednici prvi put zatraže dopuštenje.
- Kliknite „Regenerate” da biste izradili novi ključ iste duljine ili „Reset” da biste izbrisali ključ i vratili zadanu duljinu od 32.
Ispod ključa alat prikazuje tri podatka: duljinu ključa u znakovima, veličinu skupa znakova (uvijek 62) i entropiju u bitovima.
Nijedan se ključ ne šalje poslužitelju, ne bilježi se niti pohranjuje. Generiranje se odvija lokalnim JavaScript kodom, pa provjera mrežne aktivnosti preglednika tijekom generiranja ne pokazuje odlazne zahtjeve.
Kako izračunati broj mogućih ključeva
Broj različitih ključeva koje može proizvesti zadana duljina slijedi jednostavnu formulu:
gdje je N broj mogućih ključeva, c veličina skupa znakova, a n duljina ključa.
Veličina skupa znakova za ovaj je alat uvijek 62. Za zadanu duljinu od 32:
N = 62³² ≈ 2,27 × 10⁵⁷
Taj se broj izražava i kao entropija, mjerena u bitovima, prema formuli:
gdje je H entropija u bitovima.
Za ključ od 32 znakova: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bitova.
Primjer izračuna: vrijeme potrebno za isprobavanje svih ključeva
Pretpostavimo da napadač može ispitati milijardu (10⁹) ključeva u sekundi, što je nerealno velika brzina za bilo koji stvarni sustav. Isprobavanje svakog mogućeg ključa od 32 znakova trajalo bi:
2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ sekundi ≈ 7,2 × 10⁴⁰ godina
Usporedbe radi, svemir je star otprilike 1,4 × 10¹⁰ godina. Pretraživanje svih mogućih ključeva grubom silom nije praktična prijetnja pri toj duljini. Kraći ključevi brzo smanjuju taj broj: ključ od 8 znakova ima samo 62⁸ ≈ 2,18 × 10¹⁴ mogućih vrijednosti, koje bi brzo računalo moglo pretražiti za nekoliko dana.
Zašto aplikacije upotrebljavaju API ključeve
API ključevi usluzi pružaju jednostavan način utvrđivanja koja aplikacija šalje zahtjev. To je važno iz nekoliko razloga.
Provjera autentičnosti. Poslužitelj može odbiti zahtjeve koji stižu bez valjanog ključa i time spriječiti većinu slučajnih zlouporaba.
Praćenje upotrebe. Budući da svaki klijent može imati drukčiji ključ, usluga može mjeriti koliko svaki klijent upotrebljava uslugu i primjenjivati zasebna ograničenja brzine za svaki ključ.
Opoziv. Jedan ugroženi ključ može se isključiti bez utjecaja na bilo kojeg drugog klijenta jer je svaki ključ neovisan.
API ključeve jednostavnije je implementirati nego OAuth 2,0, standard za provjeru autentičnosti zasnovan na privremenim tokenima koji se automatski obnavljaju. OAuth odgovara javno dostupnim uslugama koje obrađuju osobne podatke korisnika. API ključevi uobičajeni su za interne alate, skripte i pozive između usluga, gdje je prihvatljiva dugotrajna vjerodajnica.
Sigurnosne prakse za API ključeve
Nekoliko praksi smanjuje rizik od otkrivanja ključa:
- Ne pohranjujte ključeve u izvornom kodu. Povijest sustava za upravljanje verzijama teško se briše, a javna se spremišta neprestano pretražuju radi otkrivenih vjerodajnica. Umjesto toga ključeve pohranjujte u varijable okruženja ili upravitelj tajni.
- Povremeno mijenjajte ključeve. Zamjena ključa svakih nekoliko mjeseci ograničava koliko dugo ključ koji je procurio ostaje koristan napadaču.
- Dodijelite ključu najmanji potreban opseg pristupa. Ključ koji samo čita podatke ne bi smio moći i zapisivati ih ili brisati.
- Pratite neuobičajenu aktivnost, kao što je nagli porast zahtjeva s jednog ključa.
Ograničenja
Ovaj alat ne čuva zapis ključeva koje je generirao, pa ne može jamčiti da neki ključ nikada prije nije proizveden. Vjerojatnost podudaranja dvaju nasumičnih ključeva od 32 znakova iznosi približno 1 prema (2,5 cm) 2,27 × 10⁵⁷, što je za uobičajenu upotrebu dovoljno blizu nuli, ali sustavi kojima je potrebno apsolutno jamstvo jedinstvenosti, kao što su primarni ključevi baze podataka, trebali bi na poslužitelju provjeriti nove vrijednosti u odnosu na postojeće.
Skup znakova fiksan je i sastoji se od velikih slova, malih slova i znamenki. Ne uključuje simbole kao što su ! ili -, čime se ključevi mogu sigurno zalijepiti u većinu URL-ova, zaglavlja i konfiguracijskih datoteka bez potrebe za escapiranjem.
Često postavljana pitanja
Što je generator API ključeva?
To je alat koji proizvodi nasumične nizove za upotrebu kao vjerodajnice za provjeru autentičnosti između softverskih aplikacija. Ovaj generator stvara ključeve od 8 do 128 znakova, iz skupa od 62 mogućih znakova, uz pomoć kriptografski sigurnog generatora slučajnih brojeva u pregledniku.
Je li ključ iz ovog alata dovoljno siguran za upotrebu u produkciji?
Sama je nasumičnost kriptografski sigurna. Ukupna sigurnost ovisi i o tome kako se ključ poslije pohranjuje i prenosi: nikada ga nemojte unositi u sustav za upravljanje izvornim kodom, uvijek ga šaljite putem HTTPS-a i redovito ga mijenjajte.
Koju duljinu trebam odabrati?
Zadana duljina od 32 znakova daje približno 2,27 × 10⁵⁷ mogućih kombinacija, mnogo više nego što bi se moglo pretražiti bilo kakvim realističnim pokušajem grubom silom. Kraći ključevi, primjerice od 16 znakova, mogu odgovarati internim alatima niskog rizika. Vrlo dugi ključevi pružaju malo dodatne zaštite, ali ih je teže pohranjivati i lijepiti.
Mogu li postaviti prilagođenu duljinu?
Da. Polje za duljinu prihvaća bilo koji cijeli broj od 8 do 128. Sam skup znakova (A–Z, a–z, 0–9) ostaje nepromijenjen.
Pohranjuje li alat ključeve koje generira ili ih prenosi?
Ne. Svaki se ključ generira lokalnim JavaScriptom u pregledniku. Ništa se ne šalje poslužitelju, ne bilježi se niti sprema.
Koja je razlika između API ključa i OAuth tokena?
API ključ dugotrajna je vjerodajnica koja ostaje valjana dok je netko ne opozove. OAuth token automatski istječe nakon određenog vremena i može se osvježiti bez izravnog sudjelovanja korisnika. OAuth odgovara javnim uslugama koje obrađuju osobne podatke, a API ključevi jednostavnijoj, internoj ili razvojnoj upotrebi.
Koje preglednike ovaj alat podržava?
Bilo koji preglednik koji podržava Web Crypto API, što obuhvaća sve verzije preglednika Chrome, Firefox, Safari, Edge i Opera objavljene tijekom proteklog desetljeća. Ako taj API nedostaje, alat prikazuje poruku o pogrešci. Nikada se ne vraća na Math.random(), koji nije siguran.