Kriptografide, CBC-MAC, bir blok şifreleme ile mesaj kimlik doğrulama kodu oluşturmak için kullanılır. Mesaj, her blok önceki bloğun düzgün şifrelenmesine bağlı olacak şekilde, bir blok zinciri oluşturmak için CBC kipinde bir blok şifreleme algoritmasıyla şifrelenir. Bu bağlılık sayesinde, şifresiz metnin herhangi bir bitinde yapılan değişikliğin, şifrelenmiş son bloğun, blok şifreleme anahtarı bilinmeden tahmin edilmesini veya etkisiz hale getirilmesini engeller.
m mesajı için CBC-MAC hesaplarken m CBC kipinde ilklendirme vektörü ile şifrelenir ve son blok tutulur. Aşağıdaki şekil, bloklarından oluşan bir mesaj için, gizli anahtar k ve bir blok şifre E kullanarak CBC-MAC hesaplamasını göstermektedir.
Sabit ve değişken uzunluklu mesajlarda güvenlik
Eğer kullanılan blok şifreleme güvenliyse (pseudorandom bir permütasyon ise),CBC-MAC sabit uzunluktaki mesajlar için güvenlidir. Ancak, tek başına, değişken uzunluklu mesajlar için güvenli değildir. . Nitekim, herhangi tek anahtar sadece sabit ve bilinen uzunluktaki mesajlar için kullanılmalıdır. . Bunun sebebi ise, İki mesaj için doğru mesaj-etiket çiftlerini bilen saldırgan, ve , CBC-MAC'i olan üçüncü bir mesaj üretebilir. Bu, ilk bloğunu t ile xorladıktan sonra m mesajını değiştirilmiş ile birleştirilerek yapılır; diğer bir deyişle ile yapılır. mesajı için MAC hesaplanırken, öncelikle m için Mac’i t deki gibi klasik şekilde hesaplanır, ama bu değer ilerideki hesaplayan bir adıma zincirlendiğinde, ilk mesajdaki macten ürettilen değer ile birlikte özel or operasyonu gerçekleştirilir. Yeni mesajda etiketin var olması, ilk m mesajındaki şifresiz metin bloklarından üretilen mac’e etki bırakmadan iptal edileceği anlamına gelir:böylece için etiket dir.
Bu problem, sona mesaj boyutunda blok eklemek ile çözülemez. CBC-MAC in değişken uzunluklu mesajlar için güvenli yapabilecek şekilde değiştirildiği üç ana yöntem vardır; 1) Girdi boyutlu anahtar ayırmak; 2) başa uzunluk eklemek; 3) son bloğu şifrelemek. Öyle bir durumda, farklı bir blok şifre çalışma kipi kullanılması önerilebilir, örneğin, değişken boyutlu mesajın bütünlüğünü korumak için CMAC veya HMAC.
Uzunluğu başa eklemek
Bir çözüm yöntemi olarak, mesaj uzunluğunu ilk blokta bulundurmaktır; herhangi iki birbirinin prefixi olan mesaj kullanılmadığı sürece CBC-MAC'in güvenli olduğu kanıtlanmıştır ve uzunluğu başa eklemek bunun özel bir durumudur. İşlem başladığında mesajın uzunluğu bilinmiyorsa problemler oluşabilir.
Son bloğu şifrelemek
CBC-MACte son bloğu şifrelemek (ECBC-MAC),CBC-MAC-ELB(m, (k1, k2)) = E(k2, CBC-MAC(k1, m)) şeklinde tanımlanır. Bahsedilen diğer yöntemlerden olan CBC-MAC'i değişken uzunluklu mesajlar için uzatmaya göre, son bloğu şifrelemenin avantajı hesaplama bitene kadar mesaj uzunluğunun bilinmesinin gerekmemesidir.
Saldırı yöntemleri
Birçok kriptografik şemada olduğu gibi, şifrelerin ve protokollerin naif kullanımı, kriptografik korumanın etkenliğini düşürüp (hatta işe yaramaz hale getirip) saldırıları mümkün kılabilir. CBC-MAC'in yanlış kullanımından kaynaklanan saldırılardan bahsedeceğiz.
Şifreleme ve kimlik doğrulama için aynı anahtarı kullanma
Aynı anahtar k’yi CBC şifreleme ve CBC-MAC için yeniden kullanmak yaygın bir hatadır. Her ne kadar bir anahtarın farklı amaçlar için yeniden kullanılması genel olarak kötü bir uygulama olsa da, bu özel durumda bir saldırıya sebep olur:
Diyelim ki Alice Bob’a şifre metin blokları göndermiş olsun. Aktarma işlemi sırasında Eve, son metin bloğu aynı kalacak şekilde, şifre metni bloklarından herhangi birini karıştırabilir ve seçtiği bitleri istediği gibi ayarlayabilir. Bu örneğin amaçları doğrultusunda başlangıç vektörünün sıfırlar vektörü olduğunu varsayıyoruz.
Bob mesajı aldığında, şifre metin bloklarını kullanarak, Alice’in uyguladığı şifleme işlemi tersine çevirerek mesajın şifresini çözecektir. Bob’a gelen, Alice’in orijinal mesajı yerine karıştırılmış olan mesaj .
Bob önce, şifresiz metni elde etmek için paylaşılan gizli anahtar K kullanarak mesajın şifresini çözer. Eve sonuncu hariç bütün şifreli metin bloklarını değiştirdiği için, üretilen bütün şifresiz metin Alice’in gönderdiğinden farklı olacak. Özellikle, son şifresiz metin, , Alice’in gönderdiği orijinal 'den farklıdır; aynı olsa da, bu nedenle şifre çözme işleminden sonra önceki şifre bloğunu özel OR'a zincirlerken farklı üretilir.
Bob, çözdüğü tüm düz metin değerleri üzerinden CBC-MAC kullanarak kimlik doğrulama etiketini hesaplar. Yeni mesajın etiketi olan , şu şekilde elde edilir:
Bu ifadeler eşittir,
tam olarak hangisi :
buradan çıkarılır.
Bu nedenle Eve, iletilmekte olan şifre metnini (hangi şifresiz metne karşılık geldiğini bilmeden) değiştirebildi, öyle ki tamamen farklı bir mesaj, , üretildi ama bu mesajın etiketi orijinal mesajın etiketiyle eşleşti ve Bob iletim aşamasında mesajın içeriğinin değiştirildiğinden habersizdi. Tanım olarak, önceki mesajla (P) aynı etiketi üreten farklı bir mesaj (şifresiz metin dizisi ve ) bulabilirsek mesaj kimlik doğrulama kodu bozuktur deriz. Bu senaryoda, mesaj kimlik doğrulama protokolünün bozulduğu ve Bob'un Alice'in üretmediği bir mesaj gönderdiğine inanmak için aldatılmıştır.
Bunun yerine, şifreleme ve kimlik doğrulama aşamaları için farklı anahtarlar kullanırsak, ve , saldırı başarısız olurdu. Değiştirilmiş şifreli metin bloklarının,, şifresinin çözülmesi şifresiz metin dizisi, , sağlar. Ancak, MACin farklı bir anahtarını kullanması nedeniyle, aynı etiketi üretmek için ileti kimlik doğrulama kodunun hesaplanmasının ileri adımında şifre çözme işlemini "geri çeviremeyiz"; değiştirilmiş her artık CBC-MAC işleminde ile değerine şifrelenecek.
Bu örnek aynı zamanda CBC-MAC’in çarpışmaya dayanıklı tek yönlü bir fonksiyon olarak kullanılamayacağını da göstermektedir: bir anahtar verildiğinde, aynı etikete "özet"(hash?) yapan farklı bir mesaj oluşturmak önemsizdir.
Başlangıç vektörünün değerinin değişmesine izin verme
Şifreleme bloğu zincirleme (veya bir başka) kip içinde bir blok şifreleyici kullanarak verileri şifrelerken, şifreleme işleminin ilk aşamasına bir başlatma vektörü eklemek yaygındır.
Tipik olarak bu vektörün rastgele seçilmesi (tek seferlik anahtar) ve blok şifresinin çalıştığı herhangi bir gizli anahtar için tekrar edilmemesi gerekir. Bu, aynı düz metnin aynı şifre metnine şifrelenmemesini sağlayarak, saldırganın bir ilişki oluşturmasına izin verir semantik güvenlik sağlar.
Bir başlatma vektörünün CBC-MAC gibi bir mesaj kimlik doğrulama kodu hesaplanırken kullanılması olası bir saldırı vektörüdür.
Bir şifre bloğu zincirleme şifresinin çalışmasında, düz metnin ilk bloğu başlatma vektörü ile özel OR kullanılarak karıştırılır (). Bu işlemin sonucu, şifreleme işlemi için blok şifrelemenin girdisidir.
Ancak, şifreleme ve şifre çözme işlemleri gerçekleştirilirken, ilklendirme vektörü şifresiz metinle göndermekle yükümlüyüz -tipik olarak şifreli metnin ilk bloğundan önceki blok olarak- bu şekilde şifresiz metnin ilk bloğunun şifresi çözülebilir ve başarıyla kurtarılabilir. Eğer bir MAC hesaplıyorsanız, mesajdaki etiketin hesaplanan değer ile eşleştiğini doğrulayabilmek için ilklendirme vektörünü diğer tarafa şifresiz metin ile iletmemiz gerekecektir.
Eğer ilklendirme vektörünün keyfi olarak seçilmesine izin verilirse, aynı mesaj etiketi oluşturulurken ilk şifresiz metin bloğu değiştirilebilir (farklı bir mesaj ileterek).
Bir mesaj düşünün . Özellikle, CBC-MAC için mesaj etiketini hesaplarken, bir ilklendirme vektörü seçtiğimizi varsayalım, öyle ki MAC'ın hesaplanması ile başlasın. Bu bir (mesaj, etiket) çifti üretir .
Şimdi mesajı üret. içindeki değiştirilmiş her bit için, ilklendirme vektöründe karşılık gelen bitler çevirilir ve ilklendirme vektörü üretilir. Bu mesaj için MAC'ı hesaplarken şu işlem ile başlıyoruz: . Hem şifresiz metin hem ilklendirme vektörü bitleri aynı yerde değiştirildiği için, ilk aşamada değişiklik iptal edilir, yani blok şifre girişi için olan ile aynıdır. Eğer şifresiz metinde başka değişiklik yapılmazsa, farklı bir mesaj iletiliyor olsa dahi aynı etiket üretilir.
İlklendirme vektörü seçme özgürlüğü kaldırılırsa ve tüm CBC-MAC implementasyonları belirli bir ilklendirme vektörüne sabitlenirse(genelde sıfır vektörü ancak herhangi bir şey olabilir) bu saldırı devam edemez.
Özetlemek gerekirse, saldırgan MAC doğrulaması için kullanılacak IV'ü belirleyebiliyorsa, MAC'i geçersiz kılmadan ilk veri bloğunda keyfi değişiklik yapabilir.
Öngörülebilir ilklendirme vektörü kullanma
Bazen IV, mesaj tekrar saldırılarını önlemek için bir sayaç olarak kullanılır. Ancak, saldırgan MAC doğrulaması için hangi IV'ün kullanılacağını tahmin edebiliyorsa, doğrulama için kullanılacak IV'deki değişikliği telafi etmek için ilk veri bloğunu değiştirerek önceden gözlemlenen mesajı tekrar dinleyebilir. Örneğin saldırgan ile birlikte mesajını gözlemlemişse ve biliyorsa üretebilir, ile MAC doğrulamasını geçer.
En basit karşı tedbir, IV kullanmadan önce şifrelemektir (yani IV'ü veriler için hazırlamak). Alternatif olarak CFB kipindeki MAC kullanılabilir, çünkü CFB kipinde IV verilerle XOR edilmeden önce şifrelenir.
Başka bir çözüm olarak (mesaj tekrarı saldırıları koruması gerekli değilse) her zaman sıfır vektörü IV kullanılır. Yukarıdaki formül için haline gelir. ve aynı mesaj olduğu için, tanım gereği aynı etikete sahip olurlar. Bu bir sahtecilik değildir, CBC-MAC’in amaçlanan kullanımıdır.
Algoritmayı tanımlayan standartlar
FIPS PUB 113 Bilgisayar Verileri Kimlik Doğrulaması, CBC-MAC algoritmasını blok şifre olarak DES kullanarak belirleyen bir ABD hükümet standardıdır (artık kullanılmamaktadır) .
CBC-MAC algoritması ISO / IEC 9797-1 MAC 1 Algoritması'na eşdeğerdir.
Ayrıca bakınız
- CMAC - Farklı uzunluklardaki mesajlar için güvenli olan (NIST tarafından önerilen) blok şifreleme tabanlı bir MAC algoritması.
- OMAC ve PMAC - Blok şifrelemeleri mesaj kimlik doğrulama kodlarına (MAC) dönüştürmenin diğer yöntemleri.
- Tek yönlü sıkıştırma işlevi - Karma işlevler blok şifrelerden yapılabilir. Ancak, MAC'lar (CBC-MAC gibi) ve karmalar arasında güvenlik için işlev ve kullanımlarda önemli farklılıklar olduğunu unutmayın.
Kaynakça
- ^ M. Bellare, J. Kilian and P. Rogaway. The security of the cipher block chaining message authentication code. 12 Ağustos 2020 tarihinde Wayback Machine sitesinde . JCSS 61(3):362–399, 2000.
- ^ a b See Section 5 of Bellare, et al.
- ^ ISO/IEC 9797-1:1999 Information technology – Security techniques – Message Authentication Codes (MACs) – Part 1: Mechanisms using a block cipher 9 Nisan 2016 tarihinde Wayback Machine sitesinde ., clause 6.1.3 Padding Method 3
- ^ C. Rackoff and S. Gorbunov. On the Security of Block Chaining Message Authentication Code.
- ^ "Arşivlenmiş kopya". 22 Nisan 2017 tarihinde kaynağından . Erişim tarihi: 19 Nisan 2020.
- ^ Why I hate CBC-MAC 14 Mayıs 2020 tarihinde Wayback Machine sitesinde . by
- ^ Introduction to Modern Cryptography, Second Edition by Jonathan Katz and Yehuda Lindell
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Kriptografide CBC MAC bir blok sifreleme ile mesaj kimlik dogrulama kodu olusturmak icin kullanilir Mesaj her blok onceki blogun duzgun sifrelenmesine bagli olacak sekilde bir blok zinciri olusturmak icin CBC kipinde bir blok sifreleme algoritmasiyla sifrelenir Bu baglilik sayesinde sifresiz metnin herhangi bir bitinde yapilan degisikligin sifrelenmis son blogun blok sifreleme anahtari bilinmeden tahmin edilmesini veya etkisiz hale getirilmesini engeller m mesaji icin CBC MAC hesaplarken m CBC kipinde ilklendirme vektoru ile sifrelenir ve son blok tutulur Asagidaki sekil m1 m2 mx displaystyle m 1 m 2 cdots m x bloklarindan olusan bir mesaj icin gizli anahtar k ve bir blok sifre E kullanarak CBC MAC hesaplamasini gostermektedir Sabit ve degisken uzunluklu mesajlarda guvenlikEger kullanilan blok sifreleme guvenliyse pseudorandom bir permutasyon ise CBC MAC sabit uzunluktaki mesajlar icin guvenlidir Ancak tek basina degisken uzunluklu mesajlar icin guvenli degildir Nitekim herhangi tek anahtar sadece sabit ve bilinen uzunluktaki mesajlar icin kullanilmalidir Bunun sebebi ise Iki mesaj icin dogru mesaj etiket ciftlerini bilen saldirgan m t displaystyle m t ve m t displaystyle m t CBC MAC i t displaystyle t olan ucuncu bir mesaj m displaystyle m uretebilir Bu m displaystyle m ilk blogunu t ile xorladiktan sonra m mesajini degistirilmis m displaystyle m ile birlestirilerek yapilir diger bir deyisle m m m1 t m2 mx displaystyle m m m 1 oplus t m 2 dots m x ile yapilir m displaystyle m mesaji icin MAC hesaplanirken oncelikle m icin Mac i t deki gibi klasik sekilde hesaplanir ama bu deger ileridekiEKMAC m1 t displaystyle E K text MAC m 1 oplus t hesaplayan bir adima zincirlendiginde ilk mesajdaki macten urettilen deger ile birlikte ozel or operasyonu gerceklestirilir Yeni mesajda etiketin var olmasi ilk m mesajindaki sifresiz metin bloklarindan uretilen mac e etki birakmadan iptal edilecegi anlamina gelir EKMAC m1 t t EKMAC m1 displaystyle E K text MAC m 1 oplus t oplus t E K text MAC m 1 boylece m displaystyle m icin etiket t displaystyle t dir Bu problem sona mesaj boyutunda blok eklemek ile cozulemez CBC MAC in degisken uzunluklu mesajlar icin guvenli yapabilecek sekilde degistirildigi uc ana yontem vardir 1 Girdi boyutlu anahtar ayirmak 2 basa uzunluk eklemek 3 son blogu sifrelemek Oyle bir durumda farkli bir blok sifre calisma kipi kullanilmasi onerilebilir ornegin degisken boyutlu mesajin butunlugunu korumak icin CMAC veya HMAC Uzunlugu basa eklemek Bir cozum yontemi olarak mesaj uzunlugunu ilk blokta bulundurmaktir herhangi iki birbirinin prefixi olan mesaj kullanilmadigi surece CBC MAC in guvenli oldugu kanitlanmistir ve uzunlugu basa eklemek bunun ozel bir durumudur Islem basladiginda mesajin uzunlugu bilinmiyorsa problemler olusabilir Son blogu sifrelemek CBC MACte son blogu sifrelemek ECBC MAC CBC MAC ELB m k1 k2 E k2 CBC MAC k1 m seklinde tanimlanir Bahsedilen diger yontemlerden olan CBC MAC i degisken uzunluklu mesajlar icin uzatmaya gore son blogu sifrelemenin avantaji hesaplama bitene kadar mesaj uzunlugunun bilinmesinin gerekmemesidir CBC MAC Encrypt last block un hesaplanmasi Saldiri yontemleriBircok kriptografik semada oldugu gibi sifrelerin ve protokollerin naif kullanimi kriptografik korumanin etkenligini dusurup hatta ise yaramaz hale getirip saldirilari mumkun kilabilir CBC MAC in yanlis kullanimindan kaynaklanan saldirilardan bahsedecegiz Sifreleme ve kimlik dogrulama icin ayni anahtari kullanma Ayni anahtar k yi CBC sifreleme ve CBC MAC icin yeniden kullanmak yaygin bir hatadir Her ne kadar bir anahtarin farkli amaclar icin yeniden kullanilmasi genel olarak kotu bir uygulama olsa da bu ozel durumda bir saldiriya sebep olur Diyelim ki Alice Bob a sifre metin bloklari C C1 C2 Cn displaystyle C C 1 C 2 dots C n gondermis olsun Aktarma islemi sirasinda Eve son metin blogu Cn displaystyle C n ayni kalacak sekilde sifre metni bloklarindan herhangi birini karistirabilir ve sectigi bitleri istedigi gibi ayarlayabilir Bu ornegin amaclari dogrultusunda baslangic vektorunun sifirlar vektoru oldugunu varsayiyoruz Bob mesaji aldiginda sifre metin bloklarini C C1 C2 Cn displaystyle C C 1 C 2 cdots C n kullanarak Alice in uyguladigi sifleme islemi tersine cevirerek mesajin sifresini cozecektir Bob a gelen Alice in orijinal mesaji yerine karistirilmis olan mesaj C C1 Cn 1 Cn displaystyle C C 1 dots C n 1 C n Bob once sifresiz metni elde etmek icin paylasilan gizli anahtar K kullanarak mesajin sifresini cozer Eve sonuncu haric butun sifreli metin bloklarini degistirdigi icin uretilen butun sifresiz metin Alice in gonderdiginden farkli olacak Ozellikle son sifresiz metin Pn displaystyle P n Alice in gonderdigi orijinal Pn displaystyle P n den farklidir Cn displaystyle C n ayni olsa da Cn 1 Cn 1 displaystyle C n 1 not C n 1 bu nedenle sifre cozme isleminden sonra onceki sifre blogunu ozel OR a zincirlerken farkli Pn displaystyle P n uretilir Pn Cn 1 EK 1 Cn displaystyle P n C n 1 oplus E K 1 C n Bob cozdugu tum duz metin degerleri uzerinden CBC MAC kullanarak kimlik dogrulama etiketini hesaplar Yeni mesajin etiketi olan t displaystyle t su sekilde elde edilir t EK Pn EK Pn 1 EK EK P1 displaystyle t E K P n oplus E K P n 1 oplus E K dots oplus E K P 1 Bu ifadeler esittir t EK Pn Cn 1 displaystyle t E K P n oplus C n 1 tam olarak hangisi Cn displaystyle C n t EK Cn 1 EK 1 Cn Cn 1 EK EK 1 Cn Cn displaystyle t E K C n 1 oplus E K 1 C n oplus C n 1 E K E K 1 C n C n buradan t Cn t displaystyle t C n t cikarilir Bu nedenle Eve iletilmekte olan sifre metnini hangi sifresiz metne karsilik geldigini bilmeden degistirebildi oyle ki tamamen farkli bir mesaj P displaystyle P uretildi ama bu mesajin etiketi orijinal mesajin etiketiyle eslesti ve Bob iletim asamasinda mesajin iceriginin degistirildiginden habersizdi Tanim olarak onceki mesajla P ayni etiketi ureten farkli bir mesaj sifresiz metin dizisi P displaystyle P ve P P displaystyle P not P bulabilirsek mesaj kimlik dogrulama kodu bozuktur deriz Bu senaryoda mesaj kimlik dogrulama protokolunun bozuldugu ve Bob un Alice in uretmedigi bir mesaj gonderdigine inanmak icin aldatilmistir Bunun yerine sifreleme ve kimlik dogrulama asamalari icin farkli anahtarlar kullanirsak K1 displaystyle K 1 ve K2 displaystyle K 2 saldiri basarisiz olurdu Degistirilmis sifreli metin bloklarinin Ci displaystyle C i sifresinin cozulmesi sifresiz metin dizisi Pi displaystyle P i saglar Ancak MACin farkli birK2 displaystyle K 2 anahtarini kullanmasi nedeniyle ayni etiketi uretmek icin ileti kimlik dogrulama kodunun hesaplanmasinin ileri adiminda sifre cozme islemini geri ceviremeyiz degistirilmis her Pi displaystyle P i artik CBC MAC isleminde K2 displaystyle K 2 ile MACi Ci displaystyle mathrm MAC i not C i degerine sifrelenecek Bu ornek ayni zamanda CBC MAC in carpismaya dayanikli tek yonlu bir fonksiyon olarak kullanilamayacagini da gostermektedir bir anahtar verildiginde ayni etikete ozet hash yapan farkli bir mesaj olusturmak onemsizdir Baslangic vektorunun degerinin degismesine izin verme Sifreleme blogu zincirleme veya bir baska kip icinde bir blok sifreleyici kullanarak verileri sifrelerken sifreleme isleminin ilk asamasina bir baslatma vektoru eklemek yaygindir Tipik olarak bu vektorun rastgele secilmesi tek seferlik anahtar ve blok sifresinin calistigi herhangi bir gizli anahtar icin tekrar edilmemesi gerekir Bu ayni duz metnin ayni sifre metnine sifrelenmemesini saglayarak saldirganin bir iliski olusturmasina izin verir semantik guvenlik saglar Bir baslatma vektorunun CBC MAC gibi bir mesaj kimlik dogrulama kodu hesaplanirken kullanilmasi olasi bir saldiri vektorudur Bir sifre blogu zincirleme sifresinin calismasinda duz metnin ilk blogu baslatma vektoru ile ozel OR kullanilarak karistirilir P1 IV displaystyle P 1 oplus IV Bu islemin sonucu sifreleme islemi icin blok sifrelemenin girdisidir Ancak sifreleme ve sifre cozme islemleri gerceklestirilirken ilklendirme vektoru sifresiz metinle gondermekle yukumluyuz tipik olarak sifreli metnin ilk blogundan onceki blok olarak bu sekilde sifresiz metnin ilk blogunun sifresi cozulebilir ve basariyla kurtarilabilir Eger bir MAC hesapliyorsaniz mesajdaki etiketin hesaplanan deger ile eslestigini dogrulayabilmek icin ilklendirme vektorunu diger tarafa sifresiz metin ile iletmemiz gerekecektir Eger ilklendirme vektorunun keyfi olarak secilmesine izin verilirse ayni mesaj etiketi olusturulurken ilk sifresiz metin blogu degistirilebilir farkli bir mesaj ileterek Bir mesaj dusunun M1 P1 P2 displaystyle M 1 P 1 P 2 dots Ozellikle CBC MAC icin mesaj etiketini hesaplarken bir IV1 displaystyle IV 1 ilklendirme vektoru sectigimizi varsayalim oyle ki MAC in hesaplanmasi EK IV1 P1 displaystyle E K IV 1 oplus P 1 ile baslasin Bu bir mesaj etiket cifti uretir M1 T1 displaystyle M 1 T 1 Simdi M2 P1 P2 displaystyle M 2 P 1 P 2 dots mesaji uret P1 displaystyle P 1 icindeki degistirilmis her bit icin ilklendirme vektorunde karsilik gelen bitler cevirilir ve IV1 displaystyle IV 1 ilklendirme vektoru uretilir Bu mesaj icin MAC i hesaplarken su islem ile basliyoruz EK P1 IV1 displaystyle E K P 1 oplus IV 1 Hem sifresiz metin hem ilklendirme vektoru bitleri ayni yerde degistirildigi icin ilk asamada degisiklik iptal edilir yani blok sifre girisi M1 displaystyle M 1 icin olan ile aynidir Eger sifresiz metinde baska degisiklik yapilmazsa farkli bir mesaj iletiliyor olsa dahi ayni etiket uretilir Ilklendirme vektoru secme ozgurlugu kaldirilirsa ve tum CBC MAC implementasyonlari belirli bir ilklendirme vektorune sabitlenirse genelde sifir vektoru ancak herhangi bir sey olabilir bu saldiri devam edemez Ozetlemek gerekirse saldirgan MAC dogrulamasi icin kullanilacak IV u belirleyebiliyorsa MAC i gecersiz kilmadan ilk veri blogunda keyfi degisiklik yapabilir Ongorulebilir ilklendirme vektoru kullanma Bazen IV mesaj tekrar saldirilarini onlemek icin bir sayac olarak kullanilir Ancak saldirgan MAC dogrulamasi icin hangi IV un kullanilacagini tahmin edebiliyorsa dogrulama icin kullanilacak IV deki degisikligi telafi etmek icin ilk veri blogunu degistirerek onceden gozlemlenen mesaji tekrar dinleyebilir Ornegin saldirgan IV1 displaystyle IV 1 ile birlikte M1 P1 P2 displaystyle M 1 P 1 P 2 dots mesajini gozlemlemisse ve IV2 displaystyle IV 2 biliyorsa M1 P1 IV1 IV2 P2 displaystyle M 1 P 1 oplus IV 1 oplus IV 2 P 2 dots uretebilir IV2 displaystyle IV 2 ile MAC dogrulamasini gecer En basit karsi tedbir IV kullanmadan once sifrelemektir yani IV u veriler icin hazirlamak Alternatif olarak CFB kipindeki MAC kullanilabilir cunku CFB kipinde IV verilerle XOR edilmeden once sifrelenir Baska bir cozum olarak mesaj tekrari saldirilari korumasi gerekli degilse her zaman sifir vektoru IV kullanilir Yukaridaki formul M1 displaystyle M 1 icin M1 P1 0 0 P2 P1 P2 M1 displaystyle M 1 P 1 oplus 0 oplus 0 P 2 dots P 1 P 2 dots M 1 haline gelir M1 displaystyle M 1 ve M1 displaystyle M 1 ayni mesaj oldugu icin tanim geregi ayni etikete sahip olurlar Bu bir sahtecilik degildir CBC MAC in amaclanan kullanimidir Algoritmayi tanimlayan standartlarFIPS PUB 113 Bilgisayar Verileri Kimlik Dogrulamasi CBC MAC algoritmasini blok sifre olarak DES kullanarak belirleyen bir ABD hukumet standardidir artik kullanilmamaktadir CBC MAC algoritmasi ISO IEC 9797 1 MAC 1 Algoritmasi na esdegerdir Ayrica bakinizCMAC Farkli uzunluklardaki mesajlar icin guvenli olan NIST tarafindan onerilen blok sifreleme tabanli bir MAC algoritmasi OMAC ve PMAC Blok sifrelemeleri mesaj kimlik dogrulama kodlarina MAC donusturmenin diger yontemleri Tek yonlu sikistirma islevi Karma islevler blok sifrelerden yapilabilir Ancak MAC lar CBC MAC gibi ve karmalar arasinda guvenlik icin islev ve kullanimlarda onemli farkliliklar oldugunu unutmayin Kaynakca M Bellare J Kilian and P Rogaway The security of the cipher block chaining message authentication code 12 Agustos 2020 tarihinde Wayback Machine sitesinde JCSS 61 3 362 399 2000 a b See Section 5 of Bellare et al ISO IEC 9797 1 1999 Information technology Security techniques Message Authentication Codes MACs Part 1 Mechanisms using a block cipher 9 Nisan 2016 tarihinde Wayback Machine sitesinde clause 6 1 3 Padding Method 3 C Rackoff and S Gorbunov On the Security of Block Chaining Message Authentication Code Arsivlenmis kopya 22 Nisan 2017 tarihinde kaynagindan Erisim tarihi 19 Nisan 2020 Why I hate CBC MAC 14 Mayis 2020 tarihinde Wayback Machine sitesinde by Introduction to Modern Cryptography Second Edition by Jonathan Katz and Yehuda Lindell