Mesaj imzalamak: “Cüzdanınla giriş yap” aslında neyi kanıtlıyor

·5 dk okuma·Yazar: SSP Editorial Team
SSP Academy kapağı: mesaj imzalama ve cüzdanla giriş yapma

Mesaj imzalamak: “Cüzdanınla giriş yap” aslında neyi kanıtlıyor

Er ya da geç bir site, işlem göndermek yerine sizden “bir mesaj imzalamanızı” ister. Gas yok, zincirde onay yok, geçmişinizde görünen hiçbir şey yok. Zararsız gibi gelir – ve çoğu zaman gerçekten de öyledir. Ama imza, anahtarınızın bir şeye kefil olmasıdır ve her seferinde sorulmaya değer soru basittir: Neye kefil oluyor?

İmza neyi kanıtlar

Dijital imza tek bir şeyi kanıtlar: belirli bir özel anahtarı kontrol eden kişi, belirli bir veriyi onaylamıştır. Herkes bunu, anahtarınız hakkında hiçbir şey öğrenmeden, açık adresinizle doğrulayabilir.

Bu, imzaları coin göndermenin çok ötesinde kullanışlı kılar. Bir site, siz hiçbir ücret ödemeden bir adresin sahibi olduğunuzu doğrulayabilir. Bir geliştirici bir sürümü kendisinin yayımladığını kanıtlayabilir. Bir düğüm operatörü bir sunucunun kendisine ait olduğunu kanıtlayabilir. Bunların hiçbiri zincire dokunmaz ve hepsi aynı güvenceye dayanır: anahtar tam olarak bu baytları imzaladı.

Püf noktası “tam olarak bu baytlar” ifadesindedir. İmza niyet taşımaz. Giriş yaptığınızı mı yoksa bir ödemeyi onayladığınızı mı düşündüğünüzü bilmez. Yalnızca anahtarınızı veriye bağlar – ve o imzaya sahip olan herkes onu verinin izin verdiği her şey için kullanabilir.

“Cüzdanınla giriş yap”

Göreceğiniz en yaygın mesaj bir giriş mesajıdır. Site parola yerine size bir metin gönderir, siz onu imzalarsınız ve site imzayı adresinizle kontrol eder. Eşleşirse içeridesiniz.

İyi hazırlanmış bir giriş mesajı küçük bir sözleşme gibi okunur ve Ethereum için standart format (Sign-In with Ethereum, EIP-4361 olarak bilinir) bunu açıkça tanımlar:

  • İsteyen alan adı – adres çubuğunuzdaki siteyle eşleşmelidir.
  • Giriş yapılan adres.
  • Sade kelimelerle yazılmış bir ifade, örneğin “Example’a giriş yap”.
  • Bir nonce – imzanın daha sonra yeniden kullanılamaması için tek seferlik rastgele bir değer.
  • Oluşturulma ve sona erme zamanları, böylece eski bir imza geçerliliğini yitirir.

Bunların hepsi mevcut olduğunda ve eşleştiğinde, bir giriş imzası düşük risklidir: tek bir sitede oturum açar, başka hiçbir şey yapmaz. Mesajdaki alan adı bulunduğunuz siteyle eşleşmiyorsa durun. Bu uyumsuzluk, imzanızı başka bir yerde yeniden kullanmaya çalışan bir oltalama sayfasının üreteceği şeyin ta kendisidir.

Para hareket ettiren imzalar

“Gas yok, o hâlde zararsız” düşüncesi tam burada çöker. Birkaç tür zincir dışı imza, daha sonra başka biri tarafından fonlarınızı hareket ettirmek için gönderilebilir:

  • Token permit’leri. Birçok token, zincir üstü onay yerine bir imzayla harcama izni vermenize olanak tanır. Harcayan taraf daha sonra bunu gönderir ve izin verilen miktara kadar transfer yapabilir. Sizin tarafınızdan bakıldığında bir mesaj imzalıyor gibi görünüyordu. Adı dışında her yönüyle bir onaydır.
  • Pazar yeri emirleri. İmzalanmış ilanlar ve teklifler, onlara sahip olan herkes tarafından, imzaladığınız koşullarla gerçekleştirilebilir – kötü niyetli bir sitenin sizin yerinize doldurduğu koşullar da dâhil.
  • Ham hash imzalama. Bazı eski yöntemler, okunabilir içeriği olmayan ve onu “yalnızca bir mesaj” olarak işaretleyen bir öneki bulunmayan rastgele 32 baytlık bir hash’i imzalar. Bir hash gerçek bir işlemin parmak izi olabilir. Okuyamadığınız birini imzalamak, en saf hâliyle kör imzalamadır.

Buradan çıkan kural kısadır: Ne imzaladığınızı okuyamıyorsanız, neye yetki verdiğini bilemezsiniz.

Bir imza isteği nasıl okunur

Herhangi bir mesajı onaylamadan önce aynı dört soruyu gözden geçirin:

  1. Kim istiyor? İsteği gönderen siteyi kullanmak istediğiniz siteyle karşılaştırın.
  2. Hangi adres ve hangi ağ? Beklediğinizden farklı bir adres veya zincir için gelen istek bir uyarı işaretidir.
  3. Okuyabiliyor musunuz? Anladığınız düz metin bir şeydir. Hex, hash’ler veya uzun, açıklamasız JSON bambaşka bir şeydir.
  4. Birinin ne yapmasına izin verir? Giriş yapmak, sahipliği kanıtlamak – sorun yok. Harcamak, listelemek, transfer etmek, onaylamak – bunu bir işlem gibi değerlendirin, çünkü tam olarak odur.

SSP size ne gösterir

WalletConnect üzerinden bağlanan bir dApp, SSP’den bir mesaj imzalamasını istediğinde, istek; isteyen siteyi, adresi, ağı ve mesajın kendisini gösterir. Hex kodlu mesajlar önce okunabilir metne çözülür; kontrol etmek isterseniz ham baytlar genişletilebilir bir bölümde yer alır.

Sıradan metin mesajları, standart Ethereum “imzalı mesaj” önekini alır; bu önek onları işlem değil mesaj olarak işaretler, böylece işlem olarak yeniden kullanılamazlar. Yapılandırılmış tipli veri istekleri, siz onaylamadan önce tam ham içeriklerini gösterir.

SSP’deki her şey gibi, cüzdanınızdan atılan bir mesaj imzası da her iki anahtarı gerektirir: SSP Wallet’ta onaylar, ardından SSP Key’de teyit edersiniz. Bu ikinci adım, ayrı bir cihazda gerçek bir ikinci bakıştır ve onu böyle kullanmaya değer.

SSP’nin yapamayacağı şey, bir sitenin bir imzayla ne yapmayı amaçladığını size söylemektir. Veriyi size eksiksiz ve doğru gösterir – onu okumak yine sizin işinizdir.

Dürüst özet

Mesaj imzalamak, hiçbir şey harcamadan anahtarınızla bir şeyler kanıtlamanın yoludur ve çoğu zaman tam da göründüğü kadar zararsızdır. İstisnalar harcamaya, listelemeye veya transfere yetki veren imzalardır – ve bunlar çoğu zaman siz okuyana kadar tıpatıp aynı görünür.

O yüzden okuyun. Alan adını, adresi, zinciri ve içeriği kontrol edin. Anladığınızı imzalayın, okuyamadığınız her şeye “hayır” deyin.

Bu makaleyi paylaş

İlgili makaleler