Satunnainen API-avaimengeneraattori - Ilmaiset turvalliset 32-merkkiset avaimet
Luo kryptografisesti turvalliset API-avaimet välittömästi. Ilmainen verkkotyökalu luo satunnaiset 32-merkkiset aakkosnumeeriset avaimet todentamiseen. Asiakaspuolen generointi, ei tallennusta.
API-avaimen Luoja
Dokumentaatio
Satunnainen API-avaingeneraattori on työkalu, joka luo satunnaisen kirjain- ja numeromerkkijonon käytettäväksi salasanan kaltaisena koodina kahden tietokoneohjelman välillä. Tämä generaattori toimii kokonaan vierailijan verkkoselaimessa. Käyttäjä voi valita avaimen pituudeksi 8–128 merkkiä, ja oletuspituus on 32 merkkiä.
Mikä on API-avain?
API-avain on merkkijono, jonka ohjelma lähettää pyynnön mukana osoittaakseen, että sillä on oikeus käyttää palvelua. Verkkopalvelin tarkistaa avaimen ennen kuin se vastaa pyyntöön. Käyttäjätunnuksesta ja salasanasta poiketen API-avain tunnistaa yleensä sovelluksen tai komentosarjan, ei henkilöä.
Avaimet toimivat parhaiten, kun kukaan ei pysty arvaamaan niitä. Todellista satunnaisuutta käyttävä generaattori välttää kuviot, joita esiintyy ihmisen kirjoittamissa avaimissa, kuten toistuvat merkit tai lyhyet, helposti muistettavat sanat.
Miten tämä generaattori toimii
Työkalu muodostaa jokaisen avaimen kiinteästä 62 merkin joukosta: 26 isosta kirjaimesta A–Z, 26 pienestä kirjaimesta a–z ja 10 numerosta 0–9. Kun avaimen pituus on n, se valitsee tästä joukosta n merkkiä yksi kerrallaan.
Jokainen merkki saadaan selaimen Web Crypto API:sta, tarkemmin sanottuna funktiosta crypto.getRandomValues(). Se on kryptografisesti turvallinen satunnaislukugeneraattori (CSPRNG), toisin kuin JavaScriptin Math.random(), joka on ennustettava eikä sovellu tietoturvan kannalta arkaluonteisiin arvoihin.
Valitakseen satunnaisesta tavusta tasapuolisesti yhden merkin 62 vaihtoehdosta (256 mahdollisesta arvosta) generaattori ei voi käyttää suoraan menetelmää byte % 62. Koska 256 ei ole jaollinen luvulla 62, tavallinen jakojäännösmenetelmä tekisi joukon ensimmäisistä merkeistä hieman muita todennäköisempiä. Työkalu käyttää tähän hylkäysotantaa: se hylkää satunnaisen tavun, joka aiheuttaisi tällaisen vinouman, ja arpoo sen sijaan uuden. Siksi jokaisella lopullisen avaimen merkillä on jokaisessa kohdassa yhtä suuri ja vääristymätön esiintymistodennäköisyys.
API-avaimen luominen
- Syötä avaimen pituudeksi 8–128 merkkiä tai pidä oletusarvo 32. Tämän alueen ulkopuolinen luku merkitään virheelliseksi, ja sen sijaan käytetään lähintä sallittua pituutta.
- Napsauta ”Luo”. Avain näkyy tekstikentässä, ja se on luotu kokonaan selaimessa. Kun tekstikenttää napsautetaan, koko avain valitaan.
- Kopioi avain leikepöydälle napsauttamalla ”Kopioi”. Jotkin selaimet pyytävät tähän lupaa ensimmäisellä kerralla.
- Luo uusi samankokoinen avain napsauttamalla ”Luo uudelleen” tai tyhjennä avain ja palauta oletuspituudeksi 32 napsauttamalla ”Palauta”.
Työkalu näyttää avaimen alla kolme lukua: avaimen pituuden merkkeinä, merkistökoon (aina 62) ja entropian bitteinä.
Avainta ei lähetetä palvelimelle, kirjata lokiin eikä tallenneta. Luominen tapahtuu paikallisella JavaScript-koodilla, joten selaimen verkkoliikenteen tarkistaminen luomisen aikana ei näytä lähteviä pyyntöjä.
Mahdollisten avainten määrän laskeminen
Tietyn pituisilla avaimilla mahdollisten erilaisten avainten määrä noudattaa yksinkertaista kaavaa:
jossa N on mahdollisten avainten määrä, c merkistön koko ja n avaimen pituus.
Tämän työkalun merkistön koko on aina 62. Oletuspituudella 32:
N = 62³² ≈ 2,27 × 10⁵⁷
Tämä luku ilmaistaan myös entropiana, joka mitataan bitteinä seuraavan kaavan avulla:
jossa H on entropia bitteinä.
32 merkin avaimelle: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bittiä.
kaikkien avainten kokeilemiseen kuluva aika
Oletetaan, että hyökkääjä voisi kokeilla miljardia (10⁹) avainta sekunnissa, mikä on epärealistisen nopea tahti mille tahansa todelliselle järjestelmälle. Kaikkien mahdollisten 32 merkin avainten kokeilemiseen kuluisi:
2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ sekuntia ≈ 7,2 × 10⁴⁰ vuotta
Vertailun vuoksi maailmankaikkeus on noin 1,4 × 10¹⁰ vuotta vanha. Kaikkien mahdollisten avainten brute force -haku ei ole käytännöllinen uhka tämänpituisella avaimella. 8 merkin pituinen avain tuottaa vain 62⁸ ≈ 2,18 × 10¹⁴ mahdollista arvoa, jotka nopea tietokone voisi käydä läpi muutamassa päivässä.
Miksi sovellukset käyttävät API-avaimia
API-avaimet tarjoavat palvelulle yksinkertaisen tavan selvittää, mikä sovellus tekee pyynnön. Tämä on tärkeää muutamasta syystä.
Todentaminen. Palvelin voi hylätä pyynnöt, jotka saapuvat ilman kelvollista avainta, ja estää siten suurimman osan satunnaisesta väärinkäytöstä.
Käytön seuranta. Koska kullakin asiakkaalla voi olla eri avain, palvelu voi mitata kunkin käyttömäärää ja soveltaa kullekin avaimelle erillisiä nopeusrajoituksia.
Peruuttaminen. Yksittäinen vaarantunut avain voidaan poistaa käytöstä vaikuttamatta muihin asiakkaisiin, koska kukin avain on itsenäinen.
API-avaimet ovat yksinkertaisempia toteuttaa kuin OAuth 2,0, joka on väliaikaisiin, automaattisesti uusittaviin tunnuksiin perustuva todentamisstandardi. OAuth soveltuu julkisiin palveluihin, jotka käsittelevät käyttäjien henkilötietoja. API-avaimet ovat yleisiä sisäisissä työkaluissa, komentosarjoissa ja palvelujen välisissä kutsuissa, joissa pitkäikäinen tunnistetieto on hyväksyttävä.
API-avainten tietoturvakäytännöt
Muutamat käytännöt vähentävät vuotaneen avaimen riskiä:
- Älä tallenna avaimia lähdekoodiin. Versionhallinnan historiaa on vaikea poistaa, ja julkisista repositorioista etsitään jatkuvasti paljastuneita tunnistetietoja. Tallenna avaimet sen sijaan ympäristömuuttujiin tai salaisuuksien hallintajärjestelmään.
- Vaihda avaimet säännöllisesti. Avaimen vaihtaminen muutaman kuukauden välein rajoittaa aikaa, jonka vuotanut avain pysyy hyökkääjälle hyödyllisenä.
- Myönnä avaimelle sen tarvitsema vähimmäiskäyttöoikeus. Avaimen, jolla voi vain lukea tietoja, ei pitäisi voida myös kirjoittaa tai poistaa niitä.
- Seuraa epätavallista toimintaa, kuten yhden avaimen tekemien pyyntöjen äkillistä kasvua.
Rajoitteet
Tämä työkalu ei säilytä luetteloa luomistaan avaimista, joten se ei voi taata, ettei avainta ole luotu aiemmin. Todennäköisyys, että kaksi satunnaista 32 merkin avainta täsmää, on noin 1 tapaus (2,5 cm) 2,27 × 10⁵⁷:sta, mikä on tavanomaiseen käyttöön käytännössä nolla, mutta järjestelmien, jotka tarvitsevat ehdottoman ainutlaatuisuustakuun, kuten tietokantojen pääavainten, pitäisi verrata uusia arvoja palvelimella olemassa oleviin arvoihin.
Merkistö koostuu isoista kirjaimista, pienistä kirjaimista ja numeroista. Se ei sisällä symboleja, kuten ! tai -, joten avaimet voi liittää useimpiin URL-osoitteisiin, HTTP-otsakkeisiin ja asetustiedostoihin ilman erikoismerkkien suojausta.
Usein kysyttyä
Mikä on API-avaingeneraattori?
Se on työkalu, joka tuottaa satunnaisia merkkijonoja käytettäväksi todentamistietoina ohjelmistosovellusten välillä. Tämä generaattori luo 8–128 merkin avaimia 62 mahdollisesta merkistä käyttäen selaimen kryptografisesti turvallista satunnaislukugeneraattoria.
Onko tämän työkalun luoma avain riittävän turvallinen tuotantokäyttöön?
Satunnaisuus itsessään on kryptografisesti turvallista. Kokonaisturvallisuus riippuu myös siitä, miten avain tallennetaan ja lähetetään myöhemmin: älä koskaan tallenna sitä versionhallintaan, lähetä se aina HTTPS-yhteyden kautta ja vaihda se säännöllisesti.
Minkä pituuden valitsen?
Oletuspituus 32 merkkiä tuottaa noin 2,27 × 10⁵⁷ mahdollista yhdistelmää, mikä on paljon enemmän kuin mikään realistinen brute force -yritys voisi käydä läpi. Lyhyemmät avaimet, kuten 16 merkkiä pitkät avaimet, voivat sopia vähäisen riskin sisäisiin työkaluihin. Erittäin pitkät avaimet lisäävät suojaa vain vähän, mutta niitä on vaikeampi tallentaa ja liittää.
Voinko määrittää mukautetun pituuden?
Kyllä. Pituuskenttä hyväksyy minkä tahansa kokonaisluvun välillä 8–128. Merkistö itsessään (A–Z, a–z, 0–9) pysyy samana.
Tallentaako tai lähettääkö työkalu luomansa avaimet?
Ei. Jokainen avain luodaan paikallisella JavaScriptillä selaimessa. Mitään ei lähetetä palvelimelle, kirjata lokiin tai tallenneta.
Mikä ero on API-avaimella ja OAuth-tunnuksella?
API-avain on pitkäikäinen tunnistetieto, joka pysyy voimassa, kunnes joku peruuttaa sen. OAuth-tunnus vanhenee automaattisesti määritetyn ajan kuluttua, ja sen voi uusia ilman käyttäjän suoraa osallistumista. OAuth sopii henkilötietoja käsitteleviin julkisiin palveluihin; API-avaimet sopivat yksinkertaisempaan, sisäiseen tai kehityskäyttöön.
Mitä selaimia tämä työkalu tukee?
Kaikkia selaimia, jotka tarjoavat Web Crypto API:n. Näihin kuuluvat kaikki viimeisen vuosikymmenen aikana julkaistut Chromen, Firefoxin, Safarin, Edgen ja Operan versiot. Jos API puuttuu, työkalu näyttää virheilmoituksen. Se ei koskaan käytä varamenetelmänä Math.random()-funktiota, joka ei ole turvallinen.