Atsitiktinių API raktų generatorius - Nemokami Saugūs 32 simbolių raktai
Akimirksniu sugeneruokite kriptografiškai saugius API raktus. Nemokamas internetinis įrankis sukuria atsitiktinius 32 simbolių raidinius skaitmeninius raktus autentifikacijai. Generavimas kliento pusėje, be saugojimo.
API rakto generatorius
Dokumentacija
Atsitiktinių API raktų generatorius – tai įrankis, sukuriantis atsitiktinę raidžių ir skaitmenų eilutę, skirtą naudoti kaip slaptažodžio tipo kodą tarp dviejų kompiuterinių programų. Šis generatorius veikia tik lankytojo žiniatinklio naršyklėje. Naudotojas gali pasirinkti rakto ilgį nuo 8 iki 128 simbolių, o numatytasis ilgis yra 32 simboliai.
Kas yra API raktas?
API raktas yra simbolių eilutė, kurią programa siunčia kartu su užklausa, kad įrodytų turinti teisę naudotis paslauga. Žiniatinklio serveris patikrina raktą prieš atsakydamas į užklausą. Kitaip nei naudotojo vardas ir slaptažodis, API raktas paprastai identifikuoja programą arba scenarijų, o ne asmenį.
Raktai geriausiai veikia tada, kai jų niekas negali atspėti. Tikrą atsitiktinumą naudojantis generatorius išvengia dėsningumų, pasitaikančių žmogaus įvestuose raktuose, pavyzdžiui, pasikartojančių simbolių ar trumpų, lengvai įsimenamų žodžių.
Kaip veikia šis generatorius
Įrankis kiekvieną raktą sudaro iš fiksuoto 62 simbolių rinkinio: 26 didžiųjų raidžių A–Z, 26 mažųjų raidžių a–z ir 10 skaitmenų 0–9. Jei rakto ilgis yra n, iš šio rinkinio po vieną parenkama n simbolių.
Kiekvienas simbolis gaunamas iš naršyklės Web Crypto API, konkrečiai iš crypto.getRandomValues(). Tai kriptografiškai saugus atsitiktinių skaičių generatorius (CSPRNG), kitaip nei JavaScript Math.random(), kurio rezultatus galima nuspėti ir kuris netinka saugai svarbioms reikšmėms.
Norint iš atsitiktinio baito (256 galimų reikšmių) sąžiningai pasirinkti vieną iš 62 variantų, generatorius negali tiesiog naudoti byte % 62. Kadangi 256 nesidalija be liekanos iš 62, paprasta liekana pirmuosius kelis rinkinio simbolius padarytų šiek tiek tikėtinesnius už kitus. Įrankis to išvengia atmetimo atranka: atmeta bet kurį atsitiktinį baitą, kuris sukeltų tokį šališkumą, ir vietoj jo generuoja naują. Todėl kiekvienas galutinio rakto simbolis kiekvienoje pozicijoje turi vienodą, nešališką tikimybę pasirodyti.
Kaip sugeneruoti API raktą
- Įveskite rakto ilgį nuo 8 iki 128 simbolių arba palikite numatytąjį 32 ilgį. Už šio intervalo ribų esantis skaičius pažymimas kaip netinkamas, o vietoj jo naudojamas artimiausias leistinas ilgis.
- Spustelėkite „Generate“. Raktas, sukurtas tik naršyklėje, pasirodo teksto laukelyje. Spustelėjus laukelį, pažymimas visas raktas.
- Spustelėkite „Copy“, kad nukopijuotumėte raktą į iškarpinę. Kai kurios naršyklės pirmą kartą paprašo leidimo.
- Spustelėkite „Regenerate“, kad sugeneruotumėte naują tokio paties ilgio raktą, arba „Reset“, kad išvalytumėte raktą ir atkurtumėte numatytąjį 32 ilgį.
Po raktu įrankis pateikia tris rodiklius: rakto ilgį simboliais, simbolių rinkinio dydį (visada 62) ir entropiją bitais.
Joks raktas nesiunčiamas į serverį, nefiksuojamas žurnaluose ir neišsaugomas. Generavimas vyksta naudojant vietinį JavaScript kodą, todėl generuojant patikrinus naršyklės tinklo veiklą nematyti jokių išsiunčiamų užklausų.
Kaip apskaičiuoti galimų raktų skaičių
Skirtingų raktų, kuriuos galima sugeneruoti pasirinkus tam tikrą ilgį, skaičius nustatomas pagal paprastą formulę:
Čia N yra galimų raktų skaičius, c – simbolių rinkinio dydis, o n – rakto ilgis.
Šio įrankio simbolių rinkinio dydis visada yra 62. Kai numatytasis ilgis yra 32:
N = 62³² ≈ 2,27 × 10⁵⁷
Šis skaičius taip pat išreiškiamas entropija, matuojama bitais, pagal formulę:
Čia H yra entropija bitais.
32 simbolių raktui: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bitų.
kiek laiko užtruktų išbandyti kiekvieną raktą
Tarkime, kad įsilaužėlis galėtų tikrinti vieną milijardą (10⁹) raktų per sekundę – tai nerealiai didelis greitis bet kuriai tikrai sistemai. Išbandyti kiekvieną galimą 32 simbolių raktą užtruktų:
2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ sekundžių ≈ 7,2 × 10⁴⁰ metų
Palyginimui, visatos amžius yra apie 1,4 × 10¹⁰ metų. Išsami paieška, išbandant kiekvieną galimą raktą, tokio ilgio raktui nekelia praktinės grėsmės. Trumpesni raktai šį skaičių greitai sumažina: 8 simbolių raktas turi tik 62⁸ ≈ 2,18 × 10¹⁴ galimų reikšmių, kurias spartus kompiuteris galėtų patikrinti per kelias dienas.
Kodėl programos naudoja API raktus
API raktai suteikia paslaugai paprastą būdą nustatyti, kuri programa siunčia užklausą. Tai svarbu dėl kelių priežasčių.
Autentifikavimas. Serveris gali atmesti užklausas, pateiktas be galiojančio rakto, ir taip užkirsti kelią daugeliui atsitiktinio netinkamo naudojimo atvejų.
Naudojimo stebėjimas. Kadangi kiekvienas klientas gali turėti skirtingą raktą, paslauga gali matuoti kiekvieno kliento naudojimąsi ja ir kiekvienam raktui taikyti atskirus užklausų dažnio apribojimus.
Atšaukimas. Vieną pažeistą raktą galima išjungti nepaveikiant jokio kito kliento, nes kiekvienas raktas yra nepriklausomas.
API raktus įdiegti paprasčiau nei OAuth 2,0 – tai autentifikavimo standartas, pagrįstas laikinais, automatiškai atnaujinamais žetonais. OAuth tinka viešai prieinamoms paslaugoms, tvarkančioms asmens duomenis. API raktai dažni vidiniuose įrankiuose, scenarijuose ir programų tarpusavio užklausose, kai galima naudoti ilgai galiojantį prisijungimo duomenį.
API raktų saugos praktika
Kelios praktikos sumažina nutekėjusio rakto keliamą riziką:
- Nelaikykite raktų pradiniame kode. Versijų valdymo istoriją sunku ištrinti, o viešos saugyklos nuolat tikrinamos, ar jose nėra atskleistų prisijungimo duomenų. Vietoj to raktus laikykite aplinkos kintamuosiuose arba paslapčių tvarkyklėje.
- Periodiškai pakeiskite raktus. Pakeitus raktą kas kelis mėnesius, sutrumpėja laikas, kurį nutekėjęs raktas gali būti naudingas įsilaužėliui.
- Suteikite raktui tik būtiniausias prieigos teises. Raktas, suteikiantis teisę tik skaityti duomenis, neturėtų suteikti teisės jų įrašyti ar ištrinti.
- Stebėkite neįprastą veiklą, pavyzdžiui, staigų vieno rakto siunčiamų užklausų skaičiaus padidėjimą.
Apribojimai
Šis įrankis neišsaugo sugeneruotų raktų įrašų, todėl negali garantuoti, kad raktas anksčiau nebuvo sugeneruotas. Tikimybė, kad sutaps du atsitiktiniai 32 simbolių raktai, yra maždaug 1 iš (2,5 cm) 2,27 × 10⁵⁷, o tai įprastam naudojimui pakankamai artima nuliui. Tačiau sistemos, kurioms reikia absoliučios unikalumo garantijos, pavyzdžiui, duomenų bazės pirminiams raktams, turėtų serveryje patikrinti naujas reikšmes, palygindamos jas su esamomis.
Simbolių rinkinys yra fiksuotas: didžiosios raidės, mažosios raidės ir skaitmenys. Jame nėra tokių simbolių kaip ! ar -, todėl raktus galima saugiai įklijuoti į daugumą URL adresų, antraščių ir konfigūracijos failų, jų neekranuojant.
Dažnai užduodami klausimai
Kas yra API raktų generatorius?
Tai įrankis, sukuriantis atsitiktines eilutes, skirtas programinės įrangos programų tarpusavio autentifikavimo prisijungimo duomenims. Šis generatorius sukuria nuo 8 iki 128 simbolių ilgio raktus iš 62 galimų simbolių, naudodamas naršyklės kriptografiškai saugų atsitiktinių skaičių generatorių.
Ar šio įrankio sugeneruotas raktas pakankamai saugus naudoti gamybinėje aplinkoje?
Pats atsitiktinumas yra kriptografiškai saugus. Bendras saugumas taip pat priklauso nuo to, kaip raktas vėliau saugomas ir perduodamas: niekada neįtraukite jo į versijų valdymo sistemą, visada siųskite HTTPS ryšiu ir reguliariai keiskite.
Kokį ilgį turėčiau pasirinkti?
Numatytasis 32 simbolių ilgis suteikia apie 2,27 × 10⁵⁷ galimų derinių – daug daugiau, nei galėtų patikrinti bet kokia reali bruteforce ataka. Trumpesni raktai, pavyzdžiui, 16 simbolių, gali tikti mažos rizikos vidiniams įrankiams. Labai ilgi raktai suteikia nedaug papildomos apsaugos, tačiau juos sunkiau saugoti ir įklijuoti.
Ar galiu nustatyti pasirinktinį ilgį?
Taip. Ilgio lauke galima įvesti bet kurį sveikąjį skaičių nuo 8 iki 128. Pats simbolių rinkinys (A–Z, a–z, 0–9) nesikeičia.
Ar įrankis saugo arba perduoda sugeneruotus raktus?
Ne. Kiekvienas raktas sugeneruojamas naudojant vietinį JavaScript kodą naršyklėje. Niekas nesiunčiama į serverį, nefiksuojama žurnaluose ir neišsaugoma.
Kuo skiriasi API raktas ir OAuth žetonas?
API raktas yra ilgai galiojantis prisijungimo duomuo, kuris galioja tol, kol kas nors jį atšaukia. OAuth žetonas automatiškai nustoja galioti po nustatyto laiko ir gali būti atnaujintas be tiesioginio naudotojo įsikišimo. OAuth tinka viešosioms paslaugoms, tvarkančioms asmens duomenis, o API raktai – paprastesniam, vidiniam ar kūrimo naudojimui.
Kokias naršykles palaiko šis įrankis?
Bet kurią naršyklę, teikiančią Web Crypto API; tai apima visas per pastarąjį dešimtmetį išleistas Chrome, Firefox, Safari, Edge ir Opera versijas. Jei šios API nėra, įrankis parodo klaidos pranešimą. Jis niekada nenaudoja atsarginio Math.random() varianto, nes jis nėra saugus.