Ana Sayfa

Unicode Karakter Çatışması: confusables.txt ve NFKC Farklı Yorumluyor

1 dk okuma

Homoglyph saldırıları, görsel olarak benzer karakterlerin (örneğin, Kiril 'а' ve Latin 'a') kötü niyetli kullanımıyla sistemleri aldatmayı amaçlar. Bu tür saldırılara karşı Unicode Konsorsiyumu, confusables.txt dosyasını sunar. Bu dosya, yaklaşık 6.565 karakteri görsel eşdeğerlerine eşleyerek, sistemlerin şüpheli girdileri tespit etmesini sağlar. confusables.txt'in temel amacı tespit etmek olup, kimlik doğrulama için karakterleri sessizce yeniden eşlemek yerine, görsel olarak Latin harflerini taklit eden karakterler içeren kimliklerin reddedilmesi gerektiğini vurgular.

Ancak, uygulamalar genellikle NFKC (Normalization Form Compatibility Composition) normalizasyonunu da kullanır. NFKC, tam genişlikli harfleri ASCII'ye, üst simgeleri normal rakamlara veya ligatürleri bileşen harflerine dönüştürerek karakterlerin uyumluluk varyantlarını standart bir forma indirger. Bu, Hello gibi girdilerin Hello'ya dönüşmesi gibi durumlar için idealdir ve slug veya kullanıcı adı doğrulamalarında ilk adım olarak önemlidir. NFKC, depolama ve karşılaştırma için kanonik bir form üretirken, confusables.txt insan okuyucuyu kandırabilecek karakterleri işaretleyerek güvenlik odaklı bir rol üstlenir.

Asıl sorun, confusables.txt ve NFKC'nin bazen aynı karakteri farklı Latin harflerine eşlemesidir. Örneğin, 18. yüzyıl baskılarında görülen "Long S" (ſ) karakteri, confusables.txt tarafından görsel benzerliğinden dolayı 'f'ye eşlenirken, NFKC tarafından dilbilimsel karşılığı olan 's'ye dönüştürülür. Bu durum, eğer NFKC normalizasyonu confusables.txt kontrolünden önce uygulanırsa, bazı güvenlik kontrollerinin atlanmasına yol açabilir. Bu nedenle, homoglyph saldırılarına karşı sağlam bir savunma için her iki mekanizmanın da amaçları ve etkileşimleri iyi anlaşılmalı ve ayrı ayrı uygulanmalıdır.

İçgörü

Homoglyph saldırılarına karşı savunma mekanizmalarının etkinliği, Unicode'un `confusables.txt` ve NFKC normalizasyonu arasındaki potansiyel çakışmaların doğru anlaşılmasına bağlıdır.

Kaynak