Dil seçin

Web Bot Auth ve HTTP İleti İmzalama Anahtarı Üretici

Tarayıcınızda Ed25519 anahtar çifti oluşturun, RFC 9421 imza dizini JSON çıktısı alın ve bot isteklerinizi güvenle doğrulayın.

Web Bot Auth Anahtarı ÜreticiNasıl çalışır? ↓
Anahtar dizininizi sunacak https kaynağı. Signature-Agent başlık değeri olarak kullanılır.
Yalnızca aşağıdaki imzalı örnek istek için kullanılır
Dizin girdisine nbf ve exp değerlerini yazar

Anahtar çifti tarayıcınızın Web Crypto API'si tarafından oluşturulur ve bu sayfadan asla ayrılmaz. Sayfa yenilendiğinde silinir, ayrılmadan önce özel anahtarı indirin.

Mehmet Demiray Yayınlandı Güncellendi
Paylaş

Web Bot Auth Nedir ve Neden Gereklidir?

Arama motorları, yapay zeka tarayıcıları ve otomatik veri toplama botları internet sitelerini ziyaret ederken geleneksel olarak User-Agent başlığı veya IP adresi listeleriyle kendilerini tanıtır. Ancak HTTP başlıkları kolayca taklit edilebilir ve IP adresleri sürekli değiştiği için bu yöntemler güvenilmez hale gelmiştir. Web Bot Auth, bot operatörlerinin isteklerini kriptografik olarak imzalamasını sağlayan yeni nesil bir standart taslağıdır. IETF bünyesinde geliştirilen bu yaklaşım, RFC 9421 HTTP Message Signatures standardını temel alır. Bot, gönderdiği her HTTP isteğini kendi özel anahtarıyla imzalar. İstek alan web sunucusu ise botun origin adresinde yayınlanan genel anahtar dizinini kontrol ederek isteğin gerçekten iddia edilen kuruluşa ait olduğunu matematiksel kesinlikle doğrular.

Üretilen Anahtar Bileşenleri ve Çıktı Formatları

Web Bot Auth Anahtarı Üretici, istemci ve sunucu tarafında ihtiyaç duyulan tüm teknik bileşenleri tek işlemde hazırlar:

  1. Key ID (Anahtar Kimliği): RFC 7638 ve RFC 8037 kurallarına göre genel anahtarın SHA-256 özeti üzerinden hesaplanan benzersiz JWK thumbprint değeridir. İmzaların eşleştirilmesinde kullanılır.
  2. Özel Anahtar: İstekleri imzalamak için bot tarafında tutulan Ed25519 anahtarıdır. JWK ve PKCS#8 PEM formatlarında sunulur.
  3. Genel Anahtar: Doğrulayıcıların kullanabilmesi için SPKI PEM ve JWK formatlarında dışa aktarılır.
  4. Dizin JSON Dosyası: Web sitenizde yayınlanacak olan ve sadece genel anahtar bilgilerini içeren standart yapılandırma dosyasıdır.
  5. Örnek İmza Tabanı: RFC 9421 uyumlu imzalayıcı yazılımlarınızı test ederken bayt düzeyinde referans alabileceğiniz açık metin dizilimidir.

Genel Anahtar Dizinini Yayınlama Süreci

Botunuzun kimliğini web sunucularına kanıtlayabilmesi için genel anahtarınızı standart bir uç noktada sunmanız gerekir. Bu adres, botunuzun resmi alan adında yer alan /.well-known/http-message-signatures-directory konumudur. Yayınlama sürecinde dikkat edilmesi gereken temel unsurlar şunlardır:

  • Sunucu yanıtı Content-Type: application/http-message-signatures-directory+json başlığı ile dönmelidir.
  • Dizin dosyasında asla gizli d parametresi bulunmamalı, sadece genel parametreler yer almalıdır.
  • Anahtar için geçerlilik başlangıcı (nbf) ve bitişi (exp) değerleri isteğe bağlı olarak Unix zaman damgasıyla tanımlanabilir.
  • Üretim ortamında dizin yanıtının kendisi de 24 sa. gibi kısa süreler için imzalanarak DNS ve içerik dağıtım katmanlarındaki sahtecilik riskleri engellenmelidir.

RFC 9421 ile HTTP İsteklerinin İmzalanması

Bir HTTP isteği imzalanırken belirli bileşenler bir araya getirilerek imza tabanı (signature base) oluşturulur. Web Bot Auth profilinde zorunlu kapsanan bileşenler arasında @authority sözde başlığı ve signature-agent başlığı yer alır. İmzanın meta verileri Signature-Input başlığında tanımlanır:

  • created: İmzanın atıldığı Unix zaman damgası.
  • expires: İmzanın süresinin dolacağı zaman; genellikle istek oluşturulduktan sonraki 5 dk. için geçerlidir.
  • keyid: Dizin dosyasındaki anahtar kimliği.
  • alg: Standart olarak belirlenen ed25519 algoritması.
  • tag: İmza profilini niteleyen web-bot-auth etiketi.

Oluşturulan imza tabanı özel anahtarla şifrelenir ve üretilen bayt dizisi Signature başlığında Base64 kodlama formatıyla taşınır.

Özel Anahtar Güvenliği ve Tarayıcı İçi Üretim İlkeleri

Kriptografik kimlik doğrulama sistemlerinde güvenlik, özel anahtarın (private key) tamamen gizli kalmasına bağlıdır. Web Bot Auth Anahtarı Üretici, anahtarları yerel tarayıcınızın Web Crypto arayüzünü kullanarak cihazınızda üretir. Üretilen özel anahtar hiçbir zaman uzak bir sunucuya iletilmez veya kayıt altına alınmaz. Sayfa yenilendiğinde bellekteki anahtarlar silinir. Bu sebeple üretilen JWK veya PKCS#8 PEM dosyasını güvenli bir anahtar kasasında (secret manager) saklamanız gerekir. Web sunucunuzdaki genel dizin dosyasında kesinlikle d anahtar parametresinin yer almadığından emin olmalısınız.

Bot Kimliği Doğrulama ve Erişim Politikaları İlişkisi

Web Bot Auth sistemi bir isteğin gerçekten iddia edilen bota ait olduğunu kanıtlar, ancak o botun hangi sayfaları tarama yetkisi olduğunu belirlemez. Kimlik doğrulama (authentication) ile yetkilendirme (authorization) birbirini tamamlayan iki ayrı katmandır. Kimliği doğrulanan bir botun sitenizde nereleri tarayabileceği AI crawler robots.txt kuralları ile belirlenir. Yapılandırdığınız erişim kurallarının beklendiği gibi çalıştığını doğrulamak için robots.txt test aracı kullanabilirsiniz. Kriptografik imzalama ile standart erişim kurallarının birlikte uygulanması, bot operatörleri ile site sahipleri arasında güvenilir ve şeffaf bir web ekosistemi oluşturur.

En çok yanıtladıklarımız.

Botum için Web Bot Auth yapılandırmasını nasıl tamamlarım?

Web Bot Auth Anahtarı Üretici ile bir Ed25519 anahtar çifti oluşturun, elde ettiğiniz JSON çıktısını kendi etki alanınızdaki /.well-known/http-message-signatures-directory adresinde yayınlayın ve botunuzun gönderdiği HTTP isteklerini özel anahtarınızla imzalayın. Hedef sunucular, Signature-Agent başlığındaki adresten açık anahtarınızı alarak isteklerin gerçekten size ait olduğunu doğrular.

Özel anahtarım (private key) sunucularınıza iletiliyor mu?

Hayır, tüm anahtar çifti oluşturma işlemleri doğrudan tarayıcınızdaki Web Crypto API kullanılarak yerel olarak gerçekleştirilir. Özel anahtarınız hiçbir harici sunucuya iletilmez veya kaydedilmez. Bu sebeple pencereyi kapattığınızda veya sayfayı yenilediğinizde anahtar bellekten silinir.

Key ID nedir ve nasıl hesaplanır?

Key ID, açık anahtarın RFC 7638 standardına göre hesaplanan JWK parmak izidir. Açık anahtarın kurallı JSON gösteriminin SHA-256 özeti alınır ve Base64URL biçimine dönüştürülür. İmzalama sırasında hedef sunucunun doğru açık anahtarı seçebilmesi için Signature-Input başlığında keyid parametresi olarak iletilir.

Web Bot Auth, User-Agent veya IP listesi kontrolünden neden daha güvenlidir?

User-Agent başlığı herkes tarafından kolayca taklit edilebilir, IP adresleri ise dinamik veya paylaşımlı ağlarda sıklıkla değişebilir. Web Bot Auth, her HTTP isteğini RFC 9421 kapsamında kriptografik olarak imzaladığı için iletinin yolda değiştirilmediğini ve isteği gönderen botun belirtilen etki alanına ait olduğunu matematiksel kesinlikle kanıtlar.

Sayfayı yenilediğimde oluşturulan anahtar kayboldu, ne yapmalıyım?

Güvenlik prensipleri gereği oluşturulan anahtarlar tarayıcıda veya sunucuda depolanmaz, bu nedenle sayfa yenilendiğinde geri getirilemez. Üretilen özel anahtarı hemen indirip güvenli bir sır yöneticisine aktarmanız gerekir. Anahtar kaybolduysa aracı kullanarak yeni bir çift oluşturup dizin dosyanızı güncellemeniz yeterlidir.

Anahtar geçerlilik süresi (validity) belirlemeli miyim?

Belirli bir geçerlilik süresi seçmek anahtar rotasyonunu zorunlu kılarak güvenlik risklerini azaltır ancak düzenli güncelleme takibi gerektirir. Süresiz anahtarlar bakım kolaylığı sağlasa da olası bir sızıntı durumunda risk taşır. Otomatik anahtar dağıtımı yapabiliyorsanız 90 gün veya 365 gün gibi bir geçerlilik süresi tercih edebilirsiniz.

İmzalama yaptıktan sonra botumun erişim kurallarını nasıl yönetirim?

Web Bot Auth botunuzun kimliğini kanıtlar fakat hangi sayfaları tarayabileceğini belirlemez. Botunuzun sitelerdeki tarama sınırlarını doğru kurgulamak için yapay zeka robot kuralları oluşturucu ile politika belirleyebilir veya mevcut kuralları robots.txt test aracı üzerinden denetleyebilirsiniz.