Jamil Sultanli.
← Ana Səhifəyə Qayıt

Passkeys (FIDO2) və Passwordless (Şifrəsiz) Autentifikasiya Arxitekturası: Təhlükəsizlik, UX və Gələcəyin Veb Standartları

·12 dəqiqə

Rəqəmsal dünyanın təkamülü ilə paralel olaraq, istifadəçi məlumatlarının qorunması və sistemlərə təhlükəsiz daxilolma metodları da köklü dəyişikliklərə məruz qalır. Onilliklər ərzində rəqəmsal kimliyimizin qoruyucusu rolunu oynayan ənənəvi şifrələr (passwords) artıq müasir kibertəhlükəsizlik təhdidləri qarşısında aciz qalır. "Credential stuffing", fişinq (phishing), sosial mühəndislik və məlumat sızmaları göstərir ki, insan faktoruna əsaslanan şifrə sistemləri fundamental olaraq qüsurludur.

Bu problemin həlli olaraq ortaya çıxan Passkeys (FIDO2/WebAuthn) texnologiyası, rəqəmsal autentifikasiyada yeni bir eranın başlanğıcını qoydu. Apple, Google, Microsoft və FIDO Alyansı (Fast IDentity Online) tərəfindən dəstəklənən bu standart, istifadəçilərə heç bir şifrə daxil etmədən, yalnız biometrik məlumatlar (Face ID, Touch ID) və ya cihazın pin kodu vasitəsilə veb-saytlara və tətbiqlərə təhlükəsiz daxil olmaq imkanı verir. Bu məqalədə Passkeys texnologiyasının arxasındakı mühəndislik prinsiplərini, WebAuthn arxitekturasını və şifrəsiz gələcəyə keçid strategiyalarını dərindən təhlil edəcəyik.


BUNLARI DA OXUYUN

Sıfırdan Sayt Hazırlamaq Bələdçisi: Kod Yazmadan Professional Veb Sayt Necə Qurulur?

Kod yazmadan professional veb sayt hazırlamaq istəyirsiniz? WordPress, Webflow və Shopify ilə addım-addım sayt qurmaq bələdçisi və ən yaxşı platformalar.

Oxumağa davam et

FIDO2 və WebAuthn: Şifrəsiz Autentifikasiyanın Texniki Sütunları

Passkeys texnologiyasının təməlində FIDO2 standartı dayanır. FIDO2, istifadəçilərin həm mobil, həm də masaüstü cihazlarda asanlıqla və yüksək təhlükəsizliklə autentifikasiyadan keçməsini təmin edən açıq standartlar toplusudur. Bu standart iki əsas komponentdən ibarətdir:

  1. WebAuthn (Web Authentication API): Brauzerlərə daxili olaraq inteqrasiya edilmiş və veb tətbiqlərin FIDO etibarnamələrindən istifadə etməsinə şərait yaradan rəsmi W3C standartıdır. WebAuthn, JavaScript vasitəsilə işləyir və server ilə istifadəçi cihazı (autentifikator) arasında körpü rolunu oynayır.
  2. CTAP (Client-to-Authenticator Protocol): Xarici autentifikatorların (məsələn, USB təhlükəsizlik açarları - YubiKey, smartfonlar) Bluetooth, NFC və ya USB vasitəsilə brauzer və ya əməliyyat sistemi ilə birbaşa əlaqə saxlamasını təmin edən protokoldur.

FIDO Alyansının Əsas Fəlsəfəsi: "Heç bir ortaq gizli məlumat (shared secret) serverdə saxlanılmamalıdır." Ənənəvi sistemlərdə şifrəniz serverdə (hətta hash olunmuş formada olsa belə) saxlanılır. FIDO2-də isə server yalnız sizin ictimai açarınızı (public key) bilir, şəxsi açarınız (private key) isə cihazınızın təhlükəsizlik çipində (Secure Enclave / TPM) kilidli qalır.


Passkeys Necə İşləyir? Kriptoqrafik Mexanizm və Asimmetrik Şifrələmə

Passkeys texnologiyası Asimmetrik Kriptoqrafiya (Public-Key Cryptography) üzərində qurulub. İstifadəçi bir saytda qeydiyyatdan keçdikdə, onun cihazı həmin sayt üçün unikal olan bir Açar Cütlüyü (Key Pair) yaradır:

  • Şəxsi Açar (Private Key): Cihazın daxilindəki xüsusi təhlükəsizlik modulunda (məsələn, Apple-ın Secure Enclave və ya Android-in StrongBox-ı) saxlanılır. Bu açar heç vaxt cihazı tərk etmir, internetə ötürülmür və server tərəfindən görünmür.
  • İctimai Açar (Public Key): Veb-saytın serverinə göndərilir və verilənlər bazasında saxlanılır. Bu açarın oğurlanması heç bir təhlükə yaratmır, çünki o, yalnız müvafiq şəxsi açarla imzalanmış mesajları doğrulamaq üçün istifadə edilə bilər.

Giriş (Authentication) Prosesinin Addımları:

  1. Sorğu (Challenge): İstifadəçi daxil olmaq istədikdə, server brauzerə unikal, təsadüfi ədədlərdən ibarət bir "Challenge" (Sorğu) göndərir.
  2. Biometrik Doğrulama: Brauzer WebAuthn API vasitəsilə istifadəçinin cihazından autentifikasiya tələb edir. İstifadəçi barmaq izi və ya üz tanıma ilə öz kimliyini təsdiqləyir.
  3. İmzalama: Cihaz daxilindəki şəxsi açar (Private Key) vasitəsilə serverdən gələn "Challenge" rəqəmsal olaraq imzalanır.
  4. Doğrulama: İmzalanmış cavab serverə göndərilir. Server özündə saxladığı ictimai açar (Public Key) vasitəsilə imzanın doğruluğunu yoxlayır. Əgər imza düzgündürsə, istifadəçi sistemə daxil edilir.

Bu proses zamanı şəbəkə üzərindən heç bir şifrə və ya biometrik məlumat ötürülmür. Biometrik məlumatlar yalnız cihaz daxilində şəxsi açarın kilidini açmaq üçün lokal olaraq istifadə olunur.


Ənənəvi Şifrələr, 2FA və Passkeys: Müqayisəli Analiz

Müasir təhlükəsizlik arxitekturasında Passkeys-in yerini daha yaxşı anlamaq üçün aşağıdakı müqayisə cədvəlinə nəzər salaq:

ParametrlərƏnənəvi ŞifrəŞifrə + SMS OTP (2FA)App-based TOTP (Google Auth)Passkeys (FIDO2 / WebAuthn)
Təhlükəsizlik SəviyyəsiÇox AşağıOrtaYüksəkMaksimal (Kriptoqrafik)
Fişinqə (Phishing) Qarşı DözümlülükYoxdurÇox ZəifZəif100% Qorumalı (Domain Bound)
İstifadəçi Təcrübəsi (UX)Çətin (Yadda saxlamaq lazımdır)Orta (Kod gözləmək, daxil etmək)Orta (Tətbiqi açıb kodu köçürmək)Mükəmməl (Tək klik + Biometrika)
Məlumat Sızması RiskiÇox Yüksək (Server sındırılsa)YüksəkOrtaSıfır (Serverdə gizli açar yoxdur)
Cihazdan AsılılıqYoxdurQismənVarVar (Lakin bulud sinxronizasiyası mövcuddur)

WebAuthn API ilə Passkey İnteqrasiyası: Addım-Addım Tətbiq Planı və Kod Nümunəsi

Bir veb layihədə Passkey dəstəyini aktivləşdirmək üçün həm kliyent (frontend), həm də server (backend) tərəfində WebAuthn API-dan istifadə edilməlidir. Aşağıda frontend tərəfində yeni bir Passkey-in qeydiyyatdan keçirilməsi (Registration) prosesini nümayiş etdirən JavaScript kod nümunəsi verilmişdir.

Addım 1: Serverdən Qeydiyyat Seçimlərinin Alınması

Server, istifadəçi üçün unikal bir challenge və istifadəçi məlumatlarını ehtiva edən konfiqurasiya obyektini qaytarmalıdır.

Addım 2: Brauzerdə WebAuthn API-nin Çağırılması

// Serverdən gələn qeydiyyat seçimlərini (options) qəbul edirik
async function registerPasskey(registrationOptionsFromServer) {
  try {
    // Serverdən gələn Base64URL formatlı challenge və user ID-ni ArrayBuffer-ə çeviririk
    const options = {
      publicKey: {
        challenge: Uint8Array.from(atob(registrationOptionsFromServer.challenge), c => c.charCodeAt(0)),
        rp: {
          name: "Sizin Şirkət Rəqəmsal Platforması",
          id: window.location.hostname // Domain binding təhlükəsizliyi üçün vacibdir
        },
        user: {
          id: Uint8Array.from(atob(registrationOptionsFromServer.user.id), c => c.charCodeAt(0)),
          name: registrationOptionsFromServer.user.email,
          displayName: registrationOptionsFromServer.user.fullName
        },
        pubKeyCredParams: [
          { alg: -7, type: "public-key" }, // ES256 (ECDSA) alqoritmi
          { alg: -257, type: "public-key" } // RS256 alqoritmi
        ],
        authenticatorSelection: {
          authenticatorAttachment: "platform", // Cihaza daxili (FaceID/TouchID/Windows Hello)
          userVerification: "required", // Biometrik doğrulamanı məcburi edir
          residentKey: "required"
        },
        timeout: 60000
      }
    };

    // Brauzerin daxili WebAuthn API-ni çağırırıq
    const credential = await navigator.credentials.create(options);

    // Yaradılmış etibarnaməni (credential) serverə göndərmək üçün hazırlayırıq
    const credentialJSON = {
      id: credential.id,
      rawId: btoa(String.fromCharCode(...new Uint8Array(credential.rawId))),
      type: credential.type,
      response: {
        clientDataJSON: btoa(String.fromCharCode(...new Uint8Array(credential.response.clientDataJSON))),
        attestationObject: btoa(String.fromCharCode(...new Uint8Array(credential.response.attestationObject)))
      }
    };

    // Serverə göndəririk və qeydiyyatı tamamlayırıq
    const response = await fetch('/api/passkey/register-verify', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(credentialJSON)
    });

    if (response.ok) {
      console.log("Passkey uğurla qeydiyyatdan keçirildi!");
    } else {
      console.error("Server doğrulaması uğursuz oldu.");
    }

  } catch (error) {
    console.error("WebAuthn Qeydiyyat Xətası:", error);
  }
}

Addım 3: Server Tərəfində Doğrulama

Server, kliyentdən gələn clientDataJSONattestationObject məlumatlarını deşifrə etməli, challenge-in doğruluğunu yoxlamalı və gələcək daxilolmalar üçün istifadəçinin Public Key (İctimai Açar) və Credential ID məlumatlarını verilənlər bazasında saxlamalıdır.


Passkeys-in Biznes və Təhlükəsizlik Üstünlükləri: Real Keyslər və Statistikalar

Passkeys yalnız texnoloji yenilik deyil, həm də biznes göstəricilərinə birbaşa təsir edən güclü bir alətdir. Şifrələrin unudulması və ya daxilolma zamanı yaranan çətinliklər istifadəçilərin platformaları tərk etməsinə (churn rate) səbəb olur.

  • Google Case Study: Google, öz istifadəçiləri üçün Passkeys dəstəyini aktivləşdirdikdən sonra daxilolma müvəffəqiyyətinin 40% artdığını və daxilolma müddətinin 2.5 dəfə sürətləndiyini bəyan etmişdir.
  • Dönüşüm Nisbətinin (Conversion Rate) Artması: E-ticarət saytlarında ödəniş və daxilolma mərhələsində Passkeys istifadəsi, səbətin tərk edilməsi (cart abandonment) faizini əhəmiyyətli dərəcədə azaldır.
  • Dəstək Xərclərinin Azaldılması: Böyük korporasiyalarda İT dəstək müraciətlərinin təxminən 20-50%-i şifrə sıfırlama (password reset) sorğuları ilə bağlıdır. Passkeys bu xərcləri demək olar ki, sıfıra endirir.

"Kibertəhlükəsizlikdə ən zəif bənd insan faktorudur. Passkeys, insanı təhlükəsizlik zəncirinin ən zəif həlqəsi olmaqdan çıxarır və prosesi tamamilə riyazi və cihaz səviyyəsində təhlükəsiz edir."


Gələcəyə Baxış: Şifrəsiz Dünyaya Keçid Strategiyası

Tamamilə şifrəsiz rəqəmsal ekosistemə keçid bir gecədə baş verə bilməz. Şirkətlər bu keçidi mərhələli şəkildə planlaşdırmalıdırlar:

  1. Hibrid Modelin Tətbiqi: Mövcud istifadəçilərə şifrə ilə yanaşı, alternativ olaraq "Passkey əlavə et" seçimi təklif edilməlidir.
  2. İstifadəçi Maarifləndirilməsi: İstifadəçilərə Passkey-in nə olduğu, biometrik məlumatların gizli saxlanıldığı və cihaz dəyişdirildikdə (məsələn, iCloud Keychain və ya Google Password Manager vasitəsilə) açarların necə bərpa olunduğu izah edilməlidir.
  3. Fallback (Ehtiyat) Metodların Hazırlanması: Cihazını itirən və ya Passkey dəstəkləməyən köhnə cihazlardan daxil olan istifadəçilər üçün təhlükəsiz ehtiyat daxilolma kanalları (məsələn, Magic Links və ya hardware tokenlər) aktiv saxlanılmalıdır.

Nəticə

Passkeys (FIDO2/WebAuthn) texnologiyası rəqəmsal təhlükəsizlik və istifadəçi təcrübəsi arasındakı əbədi balansı pozaraq, hər iki tərəfə maksimum fayda təmin edir. Şifrələrin yaratdığı təhlükəsizlik boşluqlarını və istifadəçi narahatlığını aradan qaldıran bu arxitektura, yaxın gələcəkdə bütün rəqəmsal platformaların standart daxilolma metoduna çevriləcək. Müasir rəqəmsal məhsullar hazırlayan mühəndislər və biznes rəhbərləri üçün Passkeys inteqrasiyası artıq bir seçim deyil, rəqabət qabiliyyətini və təhlükəsizliyi qorumaq üçün mütləq bir addımdır.

JS
YAZAR

Jamil Sultanli

Rəqəmsal marketinq, SEO və startuplar üzrə məsləhətçi. Datanın tətbiqi ilə işlərin miqyaslanması (Scaling) və inkişaf (Growth) strategiyalarının idarə olunması haqqında yazır.

Bunları da oxuyun