- 8 Nis 2020
- 220
- 73
RC4, 1987 yılında Ron Rivest tarafından geliştirilen bir akış şifresidir. Akış şifreleri, şifreleme ve şifre çözme için aynı algoritmayı kullanır. RC4, şifreleme ve şifre çözme için aynı anahtarı kullanır.
RC4, hızlı ve verimli bir algoritmadır. Bu nedenle, ağ protokollerinde ve veri iletişiminde yaygın olarak kullanılır. Örneğin, RC4, SSL, TLS ve WEP gibi protokollerde kullanılır.
RC4 Algoritması Nasıl Çalışır?
RC4 algoritması, iki ana bileşene sahiptir:
KSA, 256 baytlık bir S-kutusu oluşturur. S-kutusu, 0'dan 255'e kadar olan sayılarla doldurulur. KSA, anahtarı kullanarak S-kutusunu şu şekilde oluşturur:
Sözde Rastgele Üretim Algoritması (PRGA)
PRGA, S-kutusunu kullanarak anahtar akışını oluşturur. Anahtar akışı, şifreleme ve şifre çözme için kullanılan rastgele bir dizidir. PRGA, anahtar akışını şu şekilde oluşturur:
Kötü amaçlı yazılımlarda RC4'ün kullanılmasının birkaç nedeni vardır:
1. S-kutusu başlatma:
RC4, hızlı ve verimli bir algoritmadır. Bu nedenle, ağ protokollerinde ve veri iletişiminde yaygın olarak kullanılır. Örneğin, RC4, SSL, TLS ve WEP gibi protokollerde kullanılır.
RC4 Algoritması Nasıl Çalışır?
RC4 algoritması, iki ana bileşene sahiptir:
- Anahtar zamanlama algoritması (KSA): Bu algoritma, anahtarı kullanarak S-kutusunu oluşturur. S-kutusu, şifreleme ve şifre çözme için kullanılan rastgele bir dizidir.
- Sözde rastgele üretim algoritması (PRGA): Bu algoritma, S-kutusunu kullanarak anahtar akışını oluşturur. Anahtar akışı, şifreleme ve şifre çözme için kullanılan rastgele bir dizidir
KSA, 256 baytlık bir S-kutusu oluşturur. S-kutusu, 0'dan 255'e kadar olan sayılarla doldurulur. KSA, anahtarı kullanarak S-kutusunu şu şekilde oluşturur:
- S-kutusunun her bir elemanına, dizinin indisine karşılık gelen değeri atar. Örneğin, S[0] = 0, S[1] = 1, S[2] = 2, ..., S[255] = 255.
- Anahtardaki her bayt için, şu işlemleri gerçekleştirir:
- "i" değişkenini anahtarın baytına eşitler.
- "j" değişkenini 0 olarak ayarlar.
- "S" ve "S[j]" değerlerini birbiriyle değiştirir.
[*]"j" değişkenini, (j + S) mod 256 olarak günceller.
Sözde Rastgele Üretim Algoritması (PRGA)
PRGA, S-kutusunu kullanarak anahtar akışını oluşturur. Anahtar akışı, şifreleme ve şifre çözme için kullanılan rastgele bir dizidir. PRGA, anahtar akışını şu şekilde oluşturur:
- "i" ve "j" değişkenlerini 0 olarak ayarlar.
- Sürekli olarak, şu işlemleri gerçekleştirir:
- "i" değişkenini, (i + 1) mod 256 olarak günceller.
- "S" ve "S[j]" değerlerini birbiriyle değiştirir.
[*]"t" değişkenini, (S + S[j]) mod 256 olarak ayarlar.
[*]"S[t]" değerini anahtar akışında bir bayt olarak çıkarır.
Kötü amaçlı yazılımlarda RC4'ün kullanılmasının birkaç nedeni vardır:
- Basit ve verimlidir: RC4, oldukça basit bir algoritmadır ve bu nedenle uygulamak ve kullanmak kolaydır. Bu, kötü amaçlı yazılım geliştiriciler için önemli bir avantajdır, çünkü kaynaklarını başka amaçlara ayırmalarını sağlar.
- Hızlıdır: RC4, oldukça hızlı bir algoritmadır. Bu, kötü amaçlı yazılımın ağ trafiği üzerinden veri göndermesini veya şifreli dosyalarla etkileşime girmesini hızlandırabilir.
- Esnektir: RC4, çeşitli veri türlerini şifrelemek için kullanılabilir. Bu, kötü amaçlı yazılımın çok çeşitli verileri gizlemek için RC4'ü kullanabileceği anlamına gelir.
- Güvenlik açığı riski: RC4, bazı güvenlik açıklarına sahiptir. Bu, kötü amaçlı yazılım geliştiricilerin bu açıkları kullanarak şifrelenmiş verileri çözmelerini sağlayabilir.
- Tanımlanması kolaydır: RC4'ün kendine özgü kod kalıpları vardır. Bu, kötü amaçlı yazılım analistlerinin RC4 kullanımını tespit etmesini kolaylaştırabilir.
1. S-kutusu başlatma:
- RC4, 256 elemanlı bir S-kutusu kullanır. Kodu inceleyerek, 256 elemanlı bir diziyi başlatma işlemini arayın. Bu genellikle for döngüleri ve sıfırdan 255'e kadar sayıları atamayı içeren kod ile gösterilir
- RC4 kodunda genellikle mod 256 işlemi kullanılır. Bu, bir sayıyı 256'ya bölüp kalanını hesaplayan bir işlemdir. Kodda 0x100 sabitinin kullanımını aramak, mod 256 işleminin bir ipucu olabilir.
- RC4 kodunda sıklıkla 0xff (255) değeri kullanılır. Bu genellikle S-kutusunun boyutunu veya dizilerin sınırlarını temsil eder. Kodda 0xff sabitinin kullanımını aramak, RC4'ün bir işareti olabilir.
- RC4, şifreleme ve şifre çözme için XOR işlemini kullanır. Kodda XOR operatörünü ("^") veya "XOR" işlemlerine atıfta bulunan değişken isimleri ("xorValue") aramak, RC4'ün bir işareti olabilir.
- RC4'de KSA (anahtar zamanlama algoritması) ve PRGA (sözde rastgele üretim algoritması) adı verilen iki aşama vardır. Her iki aşama da aynı S-kutusunu kullanır. Kodda, bir diziyi iki farklı döngü arasında aktaran işlemleri aramak, RC4'ün bir işareti olabilir
- KSA ve PRGA kodu tek bir fonksiyonda veya ayrı ayrı iki farklı fonksiyonda bulunabilir.
- Bu kalıplar RC4'ün kesin bir göstergesi değildir, başka algoritmalar da benzer kod kullanabilir. Kodun genel yapısı ve diğer kalıplar ile birlikte değerlendirmek önemlidir.