< Basın Odasına geri dön

SSP Wallet v2.1.2 ve SSP Key v2.1.1: Ethereum kurumsal imzalama geri geldi

·5 dk okuma·Yazar: SSP Editorial Team
SSP Wallet v2.1.2 ve SSP Key v2.1.1 sürüm kapağı

SSP Wallet v2.1.2 ve SSP Key v2.1.1: Ethereum kurumsal imzalama geri geldi

Bugün iki sürüm var ve birlikte gidiyorlar: SSP Wallet v2.1.2 ve SSP Key v2.1.1. İkisini de güncelleyin.

Bunlar hata düzeltmeleri, ama içlerinden biri küçük değil. Ethereum'da kurumsal kasa imzalaması v2.0.0'dan beri bozuktu ve bu çift onu düzelten şey.

Saldırıya benzeyen mesaj

v2.0.0'dan bu yana herhangi bir anda SSP Key'de bir Ethereum kasa işlemini onaylamaya çalıştıysanız şunu gördünüz:

işlem, onay için gösterilenle eşleşmiyor

Bu, tasarım gereği SSP Key'in size söyleyebileceği en ürkütücü şeylerden biri. Cihaz bir işlemi yeniden hesaplayıp, imzalaması istenenden farklı bir sonuç bulduğunda beliren mesaj — cüzdanla telefonunuz arasındaki zincirde bir şeyin ödemeyi kurcalaması hâlinde görmeyi bekleyeceğiniz şeyin tam olarak kendisi.

Kurcalanan hiçbir şey yoktu. Denetimin kendisi bozuktu.

SSP Key bir kasa işlemini, özetini cihazda bağımsızca yeniden hesaplayıp kendisine gösterilenle karşılaştırarak doğrular. Bir EVM işleminin özetini yeniden hesaplamak zincir kimliğini gerektirir — Ethereum'u diğer her EVM ağından ayıran ve bir zincirdeki imzanın bir başkasında yeniden oynatılmasını engelleyen sayıyı. Ethereum ve Sepolia yapılandırmalarında bu eksikti. Böylece yeniden hesaplama, karşılaştıracak bir şey bulmadan önce başarısız oluyor ve doğrulama, aslında hiç sınamadığı bir uyuşmazlığı bildiriyordu.

Düzeltme eksik zincir kimliğini ekliyor ve artık bir test her EVM zincirini aynı boşluğa karşı koruyor; böylece gelecekte bir ağ, kimliği olmadan eklenemiyor.

Bunun ne olduğunu adıyla anmakta fayda var: kapalı biçimde başarısız olan bir güvenlik denetimi. Bu türden bir hatanın başarısız olması gereken doğru yön budur — Key, doğrulayamadığı bir şeyi imzalamak yerine imzalamayı reddetti — ama yine de bir hatadır ve Ethereum kurumsal kasalarını aylarca kullanılamaz kıldı.

Birincisinin arkasına saklanan iki sorun daha

Zincir kimliği nedendi. İşleri kötüleştiren, sonrasında olanlar oldu ve bu, hataların nasıl üst üste bindiğinin güzel bir örneği.

Reddedilen her deneme bir nonce yakıyordu. SSP Key, bir isteği doğrulamadan önce bir imza nonce'ı ayırır. Doğrulama başarısız olduğu için her deneme bir nonce tüketip hiçbir şey üretmiyordu — ve havuz tükendiğinde yeniden deneme bambaşka bir hatayla düşüyordu: "nonce'ların eşitlenmesi gerekiyor". İlk hatanın peşine düşen biri, ilgisiz görünen ikinci bir hataya çarpıyordu. Nonce artık yalnızca doğrulama geçtikten sonra, imza üretilmeden hemen önce tüketiliyor.

Ve eşitleme — bariz çare — işleri kötüleştirebiliyordu. Zorunlu eşitleme eskiden, yeniden doldurmadan önce röledeki her nonce'ı siliyordu. Yeniden doldurma başarısız olursa, imzalayacak hiçbir şeyiniz kalmıyordu. Cüzdan tarafındaki silme, bekleyen tekliflerin çoktan ayırdığı nonce'ları da atıyor ve o teklifleri kalıcı olarak imzalanamaz kılıyordu. Eşitleme artık röleyi, cüzdanın ve Key'in gerçekten elinde tuttuğu nonce'larla uzlaştırıyor ve yalnızca eksiği tamamlıyor. Nonce Eşitle penceresi ayrıca cüzdan tarafındaki bir arızayı dürüstçe bildiriyor; yalnızca Key'in onayına dayanarak başarı göstermiyor.

Yani: bozuk bir denetim korkutucu bir hata üretiyordu, yeniden denemeler sessizce bir kaynağı tüketiyordu ve o kaynak için belgelenmiş çare bekleyen işi yok edebiliyordu. Bunlardan herhangi biri tek başına bir hatadır. Birlikte, bunun bir yama yerine iki eşgüdümlü sürüm gerektirmesinin nedenidir.

Ayrıca düzeltildi

Gönderilmiş bir işlem artık gönderilmiş olarak gösteriliyor. Bir transfer imzalanıp yayına verildikten ve onaylandıktan sonra, röleye giden başarısız bir durum bildirimi yine de Request failed with status code 401 olarak görünebiliyordu — aslında başarılı olmuş bir işlem hakkında bir hata mesajı. İşlem kimliğini taşıyan onay ekranı artık her zaman beliriyor, röle çağrısı taze kimlik doğrulamayla bir kez yineleniyor ve oradaki bir arıza yalnızca bilgilendirici bir uyarıya indiriliyor. Paranız hareket etmişti; yanlış olan sadece bildirimdi.

Sekme kapansa bile imzalar kaydediliyor. Cüzdanın imza isteği artık organizasyon, kasa ve teklif referanslarını taşıyor; böylece röle imzanızı doğrudan teklife ekleyebiliyor. Önceden, imzayı isteyen kurumsal uygulama sayfası siz telefonda onaylarken artık orada değilse, yanıtın inecek bir yeri olmuyordu.

Bekleyen istekleri getirmek artık askıda kalamıyor. Bekleyen eylemler için röle sorgusu artık bir zaman aşımıyla sınırlı.

Ne yapmalısınız

İki uygulamayı da güncelleyin. Bu düzeltmeler cüzdan ile Key arasında bölünmüş durumda ve Ethereum imzalama onarımı iki yarıyı da gerektiriyor — yalnızca birini güncellemek onu geri getirmez.

Tarayıcı eklentileri kendilerini günceller, dolayısıyla cüzdan tarafı büyük olasılıkla zaten güncel. SSP Key bir mobil uygulama ve uygulama mağazanızdan bir dürtme gerekebilir.

Ethereum kurumsal kasanızda imzalanmayan teklifleriniz varsa, artık imzalanmalı. Zorunlu bir eşitleme ayrılmış nonce'larını attığı için kalıcı olarak takılmış teklifleriniz varsa, onların yeniden oluşturulması gerekecek — düzeltme tekrarını önler ama çoktan atılmış bir nonce'ı geri getiremez.

Hiçbir anahtar etkilenmedi, yeniden yapılandırılacak bir şey yok ve bütün bunlardan ötürü hiçbir zaman risk altında bir para olmadı: kapalı biçimde başarısız olan bir doğrulama imzalamaz ve parayı hareket ettirmek zaten iki cihazı gerektirir.

Önceki sürüm ve neyi düzelttiği için SSP Wallet v2.1.1 yazısına bakın.

Bu makaleyi paylaş

İlgili makaleler