Přeskočit na obsah

Generátor náhodných API klíčů - Bezplatné zabezpečené 32-znakové klíče

Okamžitě generujte kryptograficky bezpečné API klíče. Bezplatný online nástroj vytváří náhodné 32-znakové alfanumerické klíče pro ověřování. Generování na straně klienta, bez ukládání.

Generátor API klíčů

Klíče jsou generovány lokálně ve vašem prohlížeči s Web Crypto API (CSPRNG) pomocí nezaujatého odmítnutého vzorkování. Do serveru se nic neodesílá.
Kalkulačka načítání...
📚

Dokumentace

Generátor náhodných klíčů API je nástroj, který vytváří náhodný řetězec písmen a číslic používaný jako kód podobný heslu mezi dvěma počítačovými programy. Tento generátor běží celý uvnitř webového prohlížeče návštěvníka. Uživatel může zvolit délku klíče od 8 do 128 znaků, přičemž výchozí délka je 32 znaků.

Co je klíč API?

Klíč API je řetězec znaků, který program odesílá spolu s požadavkem, aby prokázal, že smí službu používat. Webový server klíč ověří, než na požadavek odpoví. Na rozdíl od uživatelského jména a hesla klíč API obvykle identifikuje aplikaci nebo skript, nikoli osobu.

Klíče fungují nejlépe, když je nikdo nedokáže uhodnout. Generátor využívající skutečnou náhodnost se vyhýbá vzorům, které se objevují v klíčích zadaných člověkem, například opakovaným znakům nebo krátkým snadno zapamatovatelným slovům.

Jak tento generátor funguje

Nástroj vytváří každý klíč z pevné množiny 62 znaků: 26 velkých písmen A–Z, 26 malých písmen a–z a 10 číslic 0–9. U klíče délky n vybírá z této množiny postupně jeden znak za druhým, celkem n znaků.

Každý znak pochází z rozhraní Web Crypto API prohlížeče, konkrétně z funkce crypto.getRandomValues(). Jde o kryptograficky bezpečný generátor náhodných čísel (CSPRNG), na rozdíl od funkce Math.random() v JavaScriptu, která je předvídatelná a nevhodná pro hodnoty citlivé na bezpečnost.

Pro spravedlivý výběr znaku z 62 možností pomocí náhodného bajtu (256 možných hodnot) nemůže generátor jednoduše použít byte % 62. Protože 256 není beze zbytku dělitelné 62, obyčejný modulo výpočet by způsobil, že prvních několik znaků v množině bude o něco pravděpodobnějších než ostatní. Nástroj tomu předchází vzorkováním s odmítnutím: každý náhodný bajt, který by toto zkreslení způsobil, zahodí a místo něj vygeneruje nový. Každý znak ve výsledném klíči má proto na každé pozici stejnou, nezkreslenou pravděpodobnost výskytu.

Jak vygenerovat klíč API

  1. Zadejte délku klíče od 8 do 128 znaků, nebo ponechte výchozí hodnotu 32.
  2. Klikněte na „Generovat“. Klíč se zobrazí v textovém poli a vzniká celý v prohlížeči.
  3. Kliknutím na „Kopírovat“ zkopírujete klíč do schránky. Některé prohlížeče při prvním použití požádají o povolení.
  4. Kliknutím na „Vygenerovat znovu“ vytvoříte nový klíč stejné délky, kliknutím na „Obnovit výchozí“ se vrátíte k výchozí délce.

Žádný klíč se neodesílá na server, nezaznamenává ani neukládá. Generování probíhá pomocí lokálního kódu JavaScriptu, takže kontrola síťové aktivity prohlížeče během generování neukáže žádné odchozí požadavky.

Jak vypočítat počet možných klíčů

Počet různých klíčů, které lze vytvořit pro danou délku, se řídí jednoduchým vzorcem:

Možné klíče = (velikost množiny znaků) ^ (délka klíče)

Velikost množiny znaků je u tohoto nástroje vždy 62. Pro výchozí délku 32:

Možné klíče = 62³² ≈ 2,27 × 10⁵⁷

Toto číslo se také vyjadřuje jako entropie měřená v bitech pomocí vzorce:

Entropie (bity) = délka klíče × log₂(velikost množiny znaků)

Pro klíč o délce 32 znaků: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bitu.

Příklad výpočtu: čas potřebný k vyzkoušení každého klíče

Předpokládejme, že útočník dokáže každou sekundu otestovat jednu miliardu (10⁹) klíčů, což je pro jakýkoli skutečný systém nerealisticky vysoká rychlost. Vyzkoušení všech možných klíčů o délce 32 znaků by trvalo:

2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ sekund ≈ 7,2 × 10⁴⁰ let

Pro srovnání: vesmír je starý asi 1,4 × 10¹⁰ let. Hrubé prohledání všech možných klíčů při této délce není reálnou hrozbou. Kratší klíče toto číslo rychle zmenšují: klíč o 8 znacích má jen 62⁸ ≈ 2,18 × 10¹⁴ možných hodnot, které by rychlý počítač prohledal během několika dnů.

Proč aplikace používají klíče API

Klíče API poskytují službě jednoduchý způsob, jak zjistit, která aplikace odesílá požadavek. To je důležité z několika důvodů.

Ověřování. Server může odmítnout požadavky, které přicházejí bez platného klíče, a zablokovat tak většinu náhodného zneužití.

Sledování využití. Protože každý klient může mít jiný klíč, služba může měřit, jaké množství prostředků každý klient využívá, a pro jednotlivé klíče uplatňovat samostatné limity četnosti požadavků.

Odvolání. Jeden kompromitovaný klíč lze vypnout, aniž by to ovlivnilo kteréhokoli jiného klienta, protože každý klíč je nezávislý.

Klíče API se implementují snadněji než protokol OAuth ve verzi 2,0, který je autentizačním standardem založeným na dočasných, automaticky obnovovaných tokenech. OAuth se hodí pro veřejně přístupné služby, které zpracovávají osobní údaje uživatelů. Klíče API jsou běžné u interních nástrojů, skriptů a volání mezi službami, kde je dlouhodobě platné pověření přijatelné.

Bezpečnostní postupy pro klíče API

Několik postupů snižuje riziko úniku klíče:

  • Neukládejte klíče do zdrojového kódu. Historii verzovacího systému lze jen těžko vymazat a veřejné repozitáře se neustále prohledávají kvůli odhaleným přístupovým údajům. Klíče ukládejte raději do proměnných prostředí nebo do správce tajných údajů.
  • Klíče pravidelně obměňujte. Nahrazení klíče každých několik měsíců omezuje dobu, po kterou může být uniklý klíč pro útočníka použitelný.
  • Udělujte klíči pouze minimální potřebná oprávnění. Klíč, který umožňuje pouze čtení dat, by neměl umožňovat také jejich zápis nebo mazání.
  • Sledujte neobvyklou aktivitu, například náhlý nárůst počtu požadavků z jednoho klíče.

Omezení

Tento nástroj si neuchovává záznam o vygenerovaných klíčích, takže nemůže zaručit, že stejný klíč nebyl vytvořen již dříve. Pravděpodobnost, že se dva náhodné klíče o délce 32 znaků shodují, je přibližně 1 ku 2,27 × 10⁵⁷, což je pro běžné použití prakticky nula. Systémy, které vyžadují absolutní záruku jedinečnosti, například primární klíče databáze, by však měly nové hodnoty porovnávat s existujícími na serveru.

Množina znaků je pevně daná a obsahuje velká písmena, malá písmena a číslice. Neobsahuje symboly jako ! nebo -, díky čemuž lze klíče bez escapování bezpečně vkládat do většiny adres URL, hlaviček a konfiguračních souborů.

Často kladené otázky

Co je generátor klíčů API?

Jde o nástroj, který vytváří náhodné řetězce používané jako ověřovací údaje mezi softwarovými aplikacemi. Tento generátor vytváří klíče o délce 8 až 128 znaků z 62 možných znaků pomocí kryptograficky bezpečného generátoru náhodných čísel v prohlížeči.

Je klíč z tohoto nástroje dostatečně bezpečný pro produkční použití?

Samotná náhodnost je kryptograficky bezpečná. Celková bezpečnost závisí také na tom, jak je klíč následně uložen a přenášen: nikdy jej neukládejte do verzovacího systému, vždy jej odesílejte přes HTTPS a pravidelně jej obměňujte.

Jakou délku bych měl zvolit?

Výchozí délka 32 znaků poskytuje přibližně 2,27 × 10⁵⁷ možných kombinací, což je mnohem více, než by bylo možné prohledat při jakémkoli realistickém útoku hrubou silou. Kratší klíče, například o délce 16 znaků, mohou vyhovovat interním nástrojům s nízkým rizikem. Velmi dlouhé klíče poskytují jen malou dodatečnou ochranu, ale hůře se ukládají a kopírují.

Mohu nastavit vlastní délku?

Ano. Pole pro délku přijímá libovolné celé číslo od 8 do 128. Množina znaků (A–Z, a–z, 0–9) zůstává pevně daná.

Ukládá nebo přenáší nástroj klíče, které vytváří?

Ne. Každý klíč se generuje pomocí lokálního JavaScriptu v prohlížeči. Nic se neodesílá na server, nezaznamenává ani neukládá.

Jaký je rozdíl mezi klíčem API a tokenem OAuth?

Klíč API je dlouhodobě platné pověření, které zůstává platné, dokud jej někdo neodvolá. Token OAuth automaticky vyprší po stanovené době a lze jej obnovit bez přímého zásahu uživatele. OAuth se hodí pro veřejné služby zpracovávající osobní údaje; klíče API pro jednodušší, interní nebo vývojové použití.

Které prohlížeče tento nástroj podporuje?

Funguje jakýkoli moderní prohlížeč s rozhraním Web Crypto API: Chrome 60 a novější, Firefox 55 a novější, Safari 10 a novější, Edge 79 a novější a Opera 47 a novější.

Reference

  1. MDN Web Docs (Mozilla). Crypto: getRandomValues() method. Crypto.getRandomValues() — vrací kryptograficky silné náhodné hodnoty vhodné pro kryptografické účely.
  2. MDN Web Docs (Mozilla). Math.random(). Math.random() — neposkytuje kryptograficky bezpečná náhodná čísla a nemá se používat pro účely zabezpečení.
  3. OWASP Foundation. Secrets Management Cheat Sheet. Secrets Management Cheat Sheet — pevně zapsané klíče API ve zdrojovém kódu a důvody pro centralizované ukládání a rotaci tajných údajů.
  4. NASA Science. Universe overview. Universe overview — vesmír vznikl před přibližně 13,8 miliardy let.