Генератор случајних API кључева - Бесплатни сигурни 32-карактерски кључеви
Тренутно генеришите криптографски сигурне API кључеве. Бесплатни онлајн алат ствара случајне 32-карактерске алфанумеричке кључеве за аутентификацију. Генерисање на страни клијента, без складиштења.
Генератор API кључева
Dokumentacija
Генератор случајних API кључева је алат који ствара случајни низ слова и бројева за употребу као шифра налик лозинки између два рачунарска програма. Овај генератор се у потпуности извршава у веб-прегледачу посетиоца. Корисник може да изабере дужину кључа од 8 до 128 знакова, при чему је подразумевана дужина 32 знака.
Шта је API кључ?
API кључ је низ знакова који програм шаље уз захтев да би доказао да сме да користи услугу. Веб-сервер проверава кључ пре него што одговори на захтев. За разлику од корисничког имена и лозинке, API кључ обично идентификује апликацију или скрипту, а не особу.
Кључеви најбоље функционишу када нико не може да их погоди. Генератор који користи заиста случајне вредности избегава обрасце који се појављују у кључевима које уноси човек, као што су поновљени знакови или кратке, лако памтљиве речи.
Како овај генератор ради
Алат гради сваки кључ из унапред одређеног скупа од 62 знака: 26 великих слова A–Z, 26 малих слова a–z и 10 цифара 0–9. За кључ дужине n бира n знакова из тог скупа, један по један.
Сваки знак потиче из Web Crypto API-ја веб-прегледача, тачније из функције crypto.getRandomValues(). То је криптографски безбедан генератор случајних бројева (CSPRNG), за разлику од JavaScript-ове функције Math.random(), која је предвидљива и није погодна за вредности осетљиве са становишта безбедности.
Да би изабрао равномерно распоређен знак из 62 могућности на основу случајног бајта (256 могућих вредности), генератор не може једноставно да користи byte % 62. Пошто се 256 не дели равномерно са 62, обичан остатак при дељењу учинио би првих неколико знакова у скупу незнатно вероватнијим од осталих. Алат то избегава методом одбацивања: одбацује сваки случајни бајт који би изазвао ту пристрасност и уместо њега извлачи нови. Зато сваки знак у коначном кључу има једнаку, непристрасну вероватноћу да се појави на свакој позицији.
Како генерисати API кључ
- Унесите дужину кључа између 8 и 128 знакова или задржите подразумевану вредност 32. Број изван тог опсега биће означен као неисправан, а уместо њега користиће се најближа дозвољена дужина.
- Кликните на „Generate“. Кључ се појављује у текстуалном пољу, а целокупна обрада се обавља у веб-прегледачу. Кликом на поље бира се цео кључ.
- Кликните на „Copy“ да бисте копирали кључ у међуспремник. Неки прегледачи први пут траже дозволу.
- Кликните на „Regenerate“ да бисте направили нови кључ исте дужине или на „Reset“ да бисте обрисали кључ и вратили подразумевану дужину од 32.
Испод кључа алат приказује три вредности: дужину кључа у знаковима, величину скупа знакова (увек 62) и ентропију у битовима.
Ниједан кључ се не шаље серверу, не уписује у евиденцију нити чува. Генерисање се обавља локалним JavaScript кодом, па провера мрежне активности прегледача током генерисања не показује одлазне захтеве.
Како израчунати број могућих кључева
Број различитих кључева које може да произведе дата дужина одређује се једноставном формулом:
где је N број могућих кључева, c величина скупа знакова, а n дужина кључа.
Величина скупа знакова за овај алат увек је 62. За подразумевану дужину од 32:
N = 62³² ≈ 2,27 × 10⁵⁷
Овај број се такође изражава као ентропија, мерена у битовима, помоћу формуле:
где је H ентропија у битовима.
За кључ од 32 знака: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 битова.
Пример израчунавања: време потребно за испробавање свих кључева
Претпоставимо да нападач може да испроба милијарду (10⁹) кључева у секунди, што је нереално велика брзина за било који стварни систем. Испробавање свих могућих кључева од 32 знака трајало би:
2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ секунди ≈ 7,2 × 10⁴⁰ година
Поређења ради, свемир је стар око 1,4 × 10¹⁰ година. Претраживање свих могућих кључева методом грубе силе није практична претња за ову дужину. Краћи кључеви брзо смањују тај број: кључ од 8 знакова има само 62⁸ ≈ 2,18 × 10¹⁴ могућих вредности, које би брз рачунар могао да претражи за неколико дана.
Зашто апликације користе API кључеве
API кључеви пружају услузи једноставан начин да утврди која апликација шаље захтев. То је важно из неколико разлога.
Аутентификација. Сервер може да одбије захтеве који стигну без важећег кључа и тако блокира већину случајне злоупотребе.
Праћење коришћења. Пошто сваки клијент може да има другачији кључ, услуга може да мери колико је сваки клијент користи и да примени одвојена ограничења учесталости за сваки кључ.
Опозив. Један компромитовани кључ може да се искључи без утицаја на било ког другог клијента, јер је сваки кључ независан.
API кључеви су једноставнији за примену од OAuth-а 2,0, стандарда за аутентификацију заснованог на привременим токенима који се аутоматски обнављају. OAuth одговара јавним услугама које обрађују личне податке корисника. API кључеви су уобичајени за интерне алате, скрипте и позиве између услуга, где је прихватљив акредитив који дуго важи.
Безбедносне праксе за API кључеве
Неколико пракси смањује ризик од откривања кључа:
- Не чувајте кључеве у изворном коду. Историју система за контролу верзија тешко је избрисати, а јавни репозиторијуми се непрестано скенирају у потрази за откривеним акредитивима. Уместо тога, чувајте кључеве у променљивама окружења или менаџеру тајни.
- Редовно ротирајте кључеве. Замена кључа сваких неколико месеци ограничава време током којег откривени кључ остаје користан нападачу.
- Доделите кључу најмањи потребан ниво приступа. Кључ који само чита податке не би требало да може и да их уписује или брише.
- Пратите неуобичајене активности, као што је нагли пораст броја захтева са једног кључа.
Ограничења
Овај алат не чува евиденцију о кључевима које је генерисао, па не може да гарантује да неки кључ никада раније није произведен. Вероватноћа да се два случајна кључа од 32 знака подударе износи око 1 према (2,5 cm) 2,27 × 10⁵⁷, што је довољно близу нули за уобичајену употребу, али системи којима је потребна апсолутна гаранција јединствености, као што су примарни кључеви базе података, треба да провере нове вредности на серверу у односу на постојеће.
Скуп знакова је унапред одређен и садржи велика слова, мала слова и цифре. Не укључује симболе као што су ! или -, што омогућава безбедно лепљење кључева у већину УРЛ адреса, заглавља и конфигурационих датотека без екранирања.
Најчешће постављана питања
Шта је генератор API кључева?
То је алат који производи случајне низове за употребу као акредитиве за аутентификацију између софтверских апликација. Овај генератор прави кључеве од 8 до 128 знакова, изабраних из скупа од 62 могућих знакова, користећи криптографски безбедан генератор случајних бројева веб-прегледача.
Да ли је кључ овог алата довољно безбедан за продукциону употребу?
Сама случајност је криптографски безбедна. Укупна безбедност такође зависи од тога како се кључ касније чува и преноси: никада га не постављајте у систем за контролу верзија, увек га шаљите преко HTTPS-а и редовно га ротирајте.
Коју дужину треба да изаберем?
Подразумевана дужина од 32 знака даје око 2,27 × 10⁵⁷ могућих комбинација, што је далеко више од броја који би реалан напад грубом силом могао да претражи. Краћи кључеви, као што су они од 16 знакова, могу одговарати интерним алатима са малим ризиком. Веома дуги кључеви пружају мало додатне заштите, али их је теже чувати и налепити.
Могу ли да подесим прилагођену дужину?
Да. Поље за дужину прихвата било који цео број од 8 до 128. Сам скуп знакова (A–Z, a–z, 0–9) остаје непромењен.
Да ли алат чува или преноси кључеве које генерише?
Не. Сваки кључ се генерише локалним JavaScript-ом у веб-прегледачу. Ништа се не шаље серверу, не уписује у евиденцију нити чува.
Која је разлика између API кључа и OAuth токена?
API кључ је акредитив који дуго важи и остаје важећи док га неко не опозове. OAuth токен аутоматски истиче након одређеног времена и може да се освежи без директног учешћа корисника. OAuth одговара јавним услугама које обрађују личне податке, а API кључеви једноставнијој, интерној или развојној употреби.
Које прегледаче овај алат подржава?
Сваки прегледач који обезбеђује Web Crypto API, што обухвата све верзије прегледача Chrome, Firefox, Safari, Edge и Opera објављене током последње деценије. Ако тај API недостаје, алат приказује поруку о грешци. Никада не прелази на Math.random(), јер та функција није безбедна.