İşlemlerin güvenliği, crypto alanındaki hızlı büyüyen bu dar alan da daha da kritik hale geliyor. Blok zincirinin artan kullanımına paralel olarak, hakerlerin zayıflıkları istismar etme yolları da artıyor. Yeniden oynatma saldırısı, ciddi ve iyi anlaşılmamış tehlikelerden biridir.
Yeniden oynatma saldırısı nedir?
Bir tekrar saldırı, bir saldırganın sistemi yanıltmak amacıyla legítim bir işlemi yeniden iletmesi durumudur. Saldırgan imzayı değiştirmez, ancak onu başka yerde kullanır. Bu, aynı işlemin tekrarlanmasına neden olabilir ve kullanıcı için bir tehdit oluşturur.
İmza aynı kaldığından, blok zincirinin yinelenen mesajı kabul etmesi mümkündür. blok zincirleri veya uygulamalar doğrulanmadığında, saldırgan tekrar oyunu kullanır. Bu, çatallanmalarda veya böyle blok zinciri zincirleri arasında özellikle güvenli olmayabilir.
Yeniden oynatma saldırıları ne zaman gerçekleşir?
Blok zinciri bölündüğünde veya iki zincir aynı formatta olduğunda tekrar saldırıları sıklıkla meydana gelebilir. İmzalı bir işlem, yeterli koruma olmadan her iki zincirde de kullanılabilir. Bu, paranın bir zincirde ve aynı anda başka bir zincirde gönderilebileceği anlamına gelir.
Blok zincirleri arasındaki net sınırların olmaması, hackerlar için bir fırsat sunar. Ayrıca, zayıf mesaj doğrulamasına sahip uygulamaları hedef alırlar. Her iki durumda da saldırgan, geçerli gibi görünen faaliyetleri tekrarlayarak para kazanmayı amaçlar.
Bir örnek ise 2016 yılında ethereum ve Ethereum classic durumuydu. Saldırganlar, ilk koruma mekanizmaları olmadığı için her iki ağda da işlemlerini tekrarladı. Sonuç olarak kullanıcılar, iki kez işlem yaparak istemedikleri şekilde para kaybetti.
Cüzdanların Yeniden Oynatma Saldırılarını Nasıl Önlediği
Kripto cüzdanlar, herhangi bir tekrar saldırıdan önce güçlü güvenlik araçlarına sahiptir. Bunlardan biri, her imzalı mesajla ilişkili olan bir zincir kimliğidir. Bu, imzanın yalnızca bir blok zinciri üzerinde geçerli olup diğer blok zincirlerinde başarısız olacağını garanti eder.
Diğer önemli araç, nonce olarak adlandırılır ve her işlemde artırılan bir sayıdır. Nonce yeniden kullanılırsa cüzdan işlemi reddeder. Bu, saldırganların aynı mesajı veya ödemenin tekrarlanmasını engeller.
Bazı cüzdanlarda ödeme almak için zaman sınırları da kullanılır. Örneğin, bir mesaj beş dakika kadar geçerli olabilir. Ardından imza kullanılamaz hale gelir ve tekrar oynama mümkün olmaz.
Akıllı Sözleşme ve Uygulama Düzeyi Savunmaları
Cüzdanlar işlevsel olsa da, akıllı sözleşmeler ve uygulamalar da kendilerini korumalıdır. Çoğu sözleşme, eylemlerin tekrarlanmasını önlemek için bir nonce/kullanıcı sayıcısına sahiptir. Bu, sözleşmenin gözlemlediği her imzayı reddetmesini sağlar.
Çevrimdışı imzalamaya yardımcı olan uygulamalar, muhtemelen EIP-712 standardını takip edecektir. Bu format, zincir kimliğini, uygulamanın ve sözleşmenin adını içerir. Bu standardı kullanarak, uygulamalar her mesajı amaçlanan amaçla ilişkilendirir ve tekrarlamaları önler.
QuillAudits'e göre, bir blok zinciri güvenlik şirketi, uygulamaların çevrimdışı onaylarda alan ayrımını atlamaması gerekir. Doğru bağlamın olmaması, etkileşimli çalışabilirliği kötüye kullanmaya izin verecektir. Bu, Web3 sistemlerini güvence altına almak için denetimlerin neden önemli olduğunu gösterir.
Ana Bileşenler
Yeniden oynatma koruması, doğru bağlamı sağlamak için ayrı ve açık araçlara dayanır. Bu araçlar zincir kimlikleri, hesap nonceleri ve sürenin sona erme zamanıdır. Bunların birleşimi, saldırganların yeniden oynatma girişimlerini zorlaştırır.
En önemli unsurlar şunlardır:
- Chain ID – İşlem, tek bir blok zinciri içinde geçerlidir ve diğer blok zincirleri tarafından reddedilir.
- Nonce – İmzalı bir mesajın birden çok kez kullanılmamasını sağlamak için kullanılan bir sayıdır.
- Zaman damgası veya Zaman Sınırları – Bu, bir mesajın tekrar oynatılmasının zaman geçtikten sonra reddedileceği bir zaman penceresi ekler.
- Alan Ayırıcı – Tether, EIP-712 standartları aracılığıyla off-chain mesajlarını belirli bir uygulama, sözleşme ve zincire ayırır.
- Akıllı Sözleşme Nonce İzleme – uygulamaların ve sözleşmelerin, sözleşme düzeyinde kullanılmış veya çoğaltılmış mesajları engellemesini sağlar.
Bu araçların bir kombinasyonu, çoğaltma tehdilerinin büyük bir kısmını önler. Tüm bu teknikler, mesaj çoğaltmasına karşı korunmak amacıyla cüzdanlar, uygulamalar ve protokoller tarafından kullanılır. Sonuç olarak, geliştiriciler ve kullanıcılar arasında daha güvenli bir deneyim sağlanır.
Neden Yeniden Oynatma Koruması Kullanıcılar İçin Önemlidir
Yeniden oynatma koruması, kullanıcıların cüzdanları, köprüleri ve borsaları kullanırken güven duymasını sağlar. Bu koruma yoksa, kullanıcılar paranın kaybolduğunu fark etmez. Sistemler, tekrarlı veya kötüye kullanılmış işlemler yapmayı reddederek daha güvenli ve güvenilir hale gelir.
Zincir adı-ID-talep cüzdanları, kullanıcıların hataları önlemesine olanak tanır. Kullanıcılar, işlemlerinin nereye yönlendirildiğini açıkça anladığında, kontrolü ele alabilir. Bu aynı zamanda zincirler veya uygulamalar arasında geçiş sırasında karışıklığı azaltır.
Yeniden oynatma koruması, borsaların ve saklayıcıların güvenli yatırma ve çekim işlemlerini gerçekleştirmesinde de kullanılır. Bunlar, yalnızca uygun ağda işlemler yapılmasına izin veren kişiselleştirilmiş araçlar geliştirme eğilimindedir. Bu, çatallanmalar veya yükseltmeler durumunda müşterilerin güvenliğini ve operasyonların istikrarını sağlar.
Sonuç
Yeniden oynama saldırıları, bir veya daha fazla blok zinciri veya sistemde yeniden kullanılan imzaları kullanarak blok zinciri güvenliğini tehdit eder. Ancak blok zinciri kimliği, nonceler ve zaman sınırlamaları kullanılarak cüzdanlar, bu saldırıların önlenmesinde önemli katkı sağlar. Uygulamalar ve akıllı sözleşmeler de bunlara katkıda bulunmalı ve kullanımını ile imzalarını izlemelidir.
Sistemler birbirleriyle işbirliği yapmalı ve birbirlerinden haberdar olmalı, çünkü bu tek yol onların en iyi koruma olmalarıdır. Kullanıcılar, güvenilir cüzdanlar, doğrulanmış dapp'lar ve denetlenmiş akıllı sözleşmeler uygulayarak tekrar oynama riskini azaltır. Blok zinciri alanı genişliyor ve güvenliğini sağlamak için çaba artırılmalıdır.

