215E225 TÜBİTAK 3001 PROJESİ SONUÇ RAPORU
Grup Kimlik Doğrulama Protokolü Güvenlik Analizi
Bu bölümde, önerilen protokolün çeşitli yöntemlere dayalı güvenlik düzeyi analiz edilmiştir. Önerilen protokolün bazı tanınmış RFID saldırılarına karşı direnci değerlendirilmiştir. Ek olarak Scyther (Cremers, 2008) protokol güvenlik analiz aracıyla protokolün simülasyonu ve değerlendirmesi yapılmıştır. Öncelikle, saldırı için bir model sunulmuş ve saldırganın aşağıdaki bilgi ve kaynaklara ulaşma yeteneğine sahip olduğu varsayılmıştır: 1. Saldırgan, etiketler ile okuyucu arasındaki tüm iletileri dinleyebilmektedir. 2. Saldırgan, iletişim kanalında iletilen veriyi engelleyebilir. 3. Saldırgan, etiket veya okuyucu olarak karşı tarafa ileti gönderebilir. 4. Saldırgan SRSÜ, şifreleme ve ÖZEL VEYA gibi tüm işlevlere erişir fakat gizli parametrelere erişime sahip değildir. 5. Saldırgan iletilen tüm mesajları işleyebilir ve onları tekrar iletişim kanalına enjekte edebilir. Tekrarlama saldırısı (Replay) Saldırganın bu saldırı türünde başarı ile gerçekleştirilmiş olan kimlik doğrulama süreçlerinde iletilen mesajları işleyebileceği veya kaydedebileceği varsayılmaktadır. Aynı zamanda RFID okuyucusu bir istek yayınladığında, saldırganın geçerli bir etiket yerine sürece katılabileceği varsayılmaktadır. Saldırgan, kaydedilen bilgileri tekrar göndererek bu sürece dâhil olmaya çalışır fakat M4 değeri şifreli iletildiğinden ve M4’ü oluşturan değerlerden birisi olan M2 içindeki Nt değerinin devamlı değişmesinden dolayı, geçerli bir M4 değerini tekrar oluşturamaz. Ayrıca, sunucu üzerinde bir önceki Nt değeri kaydedilip her başarılı doğrulama işleminde güncellendiğinden bu işlemin yapılması mümkün değildir. Bu saldırı yöntemi belirtilen tüm bu nedenlerden ötürü başarılı olamaz. Kimliğe bürünme saldırısı (Impersonation) Saldırgan kimliğe bürünme saldırısını gerçekleştirirken, okuyucuyu, alınan iletinin meşru bir etikete ait olduğuna ikna etmeye çalışır. Etiket tarafında M3 ve M4 değerlerinin hesaplanmasında AES yöntemi ile şifreleme yapılmıştır ve M4 değeri şifrelenmiş olarak okuyucuya gönderildiğinden saldırganın bu yanıtı üretebilmesi için bu işlemi yapabiliyor olması gerekmektedir. Saldırganın M3 değerini hesaplayıp şifreleyebilmek için IDt ve kt değerlerine ihtiyacı var iken, M4 değerini hesaplayabilmek için M3 bilgisine ek olarak kg değerine ihtiyacı vardır. Bu bilgilere saldırgan sahip olmadığı için etiketin kimliğini taklit etmesi olanaklı değildir. Bu nedenle protokol, bu saldırı yöntemine karşı koyabilmektedir. İzlenebilirlik saldırısı (Traceability) İzlenebilirlik saldırısının gerçekleştirilebilmesi için etiketin okuyucuya sabit cevaplar göndermesi gerekmektedir. Önerilen protokolde, etiket her mesaja değişen Nt nonce değerini eklemektedir. Nt ise daha önceki bölümde bahsedildiği üzere güvenliği NIST STS testleri ile istatistiksel olarak test edilmiş bir SRSÜ tarafından üretilmektedir. Mesajların sonuna Nt değerinin eklenmesinin yanısıra şifrelenen verilere de bu değer eklendiğinden şifreli metinler her mesajda değişmektedir. Dolayısıyla, önerilen protokol izlenebilirlik saldırısına karşı savunma içermektedir. Buna rağmen, etiketin grup bağımlılığını izlemek mümkündür. Bu durumda, geçerli bir M1, nonce ve MAC'yi depolayan ve yayınlayan herhangi bir saldırgan, gruptaki herhangi bir etiketten tekrar cevap alır. Ancak, yanıtları belirli bir etiket ile ilişkilendiremez. Fiziksel İfşa saldırısı (Physical disclosure) Bu saldırı tipinde, saldırganın fiziksel olarak bir etiket içindeki tüm gizli parametreleri ifşa etme kabiliyetine sahip olduğunu ve diğer etiketlerin veya grup doğrulama protokolünün güvenliğini tehdit ettiğini varsayıyoruz. Saldırgan gizli bilgileri ele geçirdikten sonra, takip edilebilirlik, kimlik taklidi veya mesaj tekrarlama saldırıları gibi saldırıları uygulayabilirse bu saldırı türüne fiziksel ifşa saldırısı denir. Önerilen protokolde, saldırgan bir etiketin gizli parametrelerini ele geçirirse, IDg, kg, IDt ve kt'yi elde eder. Her ne kadar diğer etiketlerden gönderilen M4 şifrelenmiş mesajını kg kullanarak çözebilecek olsa da gruptaki diğer etiketlerden herhangi birinin IDt bilgisini ele geçiremeyecektir. Buna ek olarak, her etiketin M3'ü etiketin kendisine ait benzersiz kt ile şifrelendiği için saldırgan bunu çözümleyemeyecektir. Bu nedenle, bir etiketi taklit etmek için M4’ü üretemez. Dolayısıyla, önerilen protokol fiziksel ifşa saldırısına karşı güçlüdür ve saldırgan bir etiketin gizli parametrelerini ifşa ederek protokolün güvenliğini tehdit edemez. İstenmeyen etiketleri kaldırma Okuyucunun etkileşim alanı içinde, ilgili gruba ait olmayan bazı etiketlerin olması mümkündür. Kimlik doğrulama protokolünün, geçerli ancak istenmeyen etiketleri kimlik doğrulama işlemine dahil etmesini önlemek için bir çözüm bulunmalıdır. Öncelikle önerilen protokol, etiketin istenen gruba üyeliğini kontrol eder. Okuyucu M4 değerinin şifresini çözer ve M2 = IDg Å Nt Å Nr ile ÖZEL VEYA işlemine tabi tutarak M3 değerini hesaplar. Bu değeri sunucuya sorar ve sunucudan ilgili kayıt bulunamadı şeklinde uyarı dönerse işlem iptal edilir. Bu nedenle, önerilen protokolde geçerli ama istenmeyen etiketleri ortadan kaldırmak için bir strateji vardır. Buna ek olarak saldırgan, fiziksel ifşa saldırısı ile okuyucuyu aldatacak geçerli bir M2 oluştursa bile, sunucu yine doğrulama aşamasında istenmeyen etiketi tespit eder. Kısmi-kanıt Önerilen protokol, kısmi kanıt olarak adlandırılan gruptaki bir takım etiketlerin kimliğini doğrulama yeteneğine sahiptir. Bu işlem sunucu tarafında yapılır. Sunucu istenen grubun bilgilerini okuyucuya aktarır. Okuyucu, kimlik doğrulama işlemini çalıştırır ve etiketlerin yanıtlarını sunucuya gönderir. Yanıtların alınmasından sonra sunucu, istenen kümedeki her bir etiketi veritabanında kayıtlı olan E(IDt, kt) ile karşılaştırır. Sunucu istenen kümenin yanıtlarını bulabilirse kısmi kanıt geçerli demektir. Ayrıca, bir veya daha fazla etiket gruptan ayrılırsa, sunucu kalan etiketleri temel alarak kimlik doğrulama işlemini çalıştırabilir. Bu nedenle önerilen protokol, bir veya birden fazla etiketin oluşturduğu gruplar için doğrulama işlemini gruplardaki etiket sayısına bağlı olmadan yapabilme yeteneğine sahiptir. Scyther ile güvenlik analizi Scyther güvenlik analiz aracı, Python kod altyapısını kullanarak kullanıcıya bir arayüz sunmaktadır. Bu arayüzün amacı kullanıcıların protokolün güvenlik analizlerini kolayca yapabilmelerine ve sonuçları anlayabilmelerine olanak sağlamaktır. Birden fazla saldırı yöntemini protokolün doğrulanması için deneyen bu araç ile tasarlanan protokol incelenmiştir. İnceleme sonucunda protokolün, Şekil 12’de verilen Scyther sonuç ekranında görüldüğü üzre tüm saldırı testlerinden geçtiği tespit edilmiştir.