İPUCU

Donanım Bilgisayar Donanımı İle İlgili Yardımlaşma Bölümümüz ...

Seçenekler

Chip & Pin Uygulama Zayıflığı

Hybris - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
11/2009
Nereden:
System.Data.
Mesajlar:
1.020
Konular:
122
Teşekkür (Etti):
100
Teşekkür (Aldı):
234
Ticaret:
(0) %
30-03-2012 01:55
#1
Chip & Pin Uygulama Zayıflığı
Akıllı kartlar ödeme ve ATM işlemlerinde manyetik şeritli kartların yerini almaya başlamıştır. EMV uygulamasında kart kullanıcıları, kredi ve debit işlemleri için şatış işleminin yapıldığı terminalden PIN girerek kimlik denetimini gerçekleştirirler. PIN, terminal ile sayısal sertifika yöntemini kullanarak kimlik denetimini gerçekleştiren akıllı kart tarafından doğrulanır. İşlem detayları, kart kullanıcısı ile kartı kullanıcıya veren banka arasında paylaşılmış olan simetrik anahtar ile MAC (mesaj kimlik denetimi kodu) kullanılarak kimlik denetiminden geçirilir.
''CHIP and PIN'' uygulaması kart dolandırıcılığının artmasına karşı bir çözüm olarak tanıtılmıştır. CHIP uygulaması kartın kopyalanmasının önüne geçerken, PIN işlemi çalınmış kartların kötüye kullanımını engellemektedir.
EMV’nin diğer bir faydası ise kartı kullanıcıya sağlayan bankaların sorumluluğunu azaltmasıdır. Örneğin akıllı kartı kullandıktan sonra ıslak imza ile işlem onaylanıyorsa sorumluluk hizmeti satana, PIN ile işlem onaylanıyorsa sorumluluk kart kullanıcısına kalmaktadır. Dolayısıyla sistemi tasarlamakla görevli kartı sağlayan bankaya hiç bir sorumluluk kalmamaktadır. Bu durum, ''sorumluluğun kaydırılması'' olarak tanımlanmaktadır.
Akıllı kart kullanıcılarının akıllı kartlarının çalınıp kullanıldığı hakkında birçok şikayetleri, geçmiş yıllarda bankalar ve finansal hakem servisleri tarafından “Sizin kartınız CHIP okumalı ve PIN kullanımlıdır. Siz PIN’iniz hakkında umursamaz davranmışsınızdır.” denilerek reddedilmiştir.
Bu makalede bir saldırganın, ''CHIP and PIN'' uygulamalı bir akıllı kartı çaldıktan sonra PIN değerini bilmeden nasıl kullanabileceği anlatılacaktır.
Uygulama Zayıflığı

EMV, protokol takımlarından ve özel protokol taslaklarından oluşmaktadır. EMV kartı kullanıcıya sağlayacak olan banka, EMV protokollerinden kendi güvenliği için yeterli olacak kadar bir protokoller altkümesi oluşturur. Bu protokol alt kümesini sayısal imzalama metodlarından, MAC algoritmalarından ve kimlik denetimi ve risk yönetimi ile ilgili yüzlerce ayarlanabilir özelliklerden seçim yaparak oluşturur.
Bu makale hazırlanırken İngiltere ve Belçika'da ki EMV kullanım yöntemi esas alınmıştır. Bahsedilecek olan saldırı, EMV şablonundaki protokol eksikliğinden ve kartı kullanıcıya sağlayan bankanın MAC protokolünü uygulamasındaki eksikliğinden faydalanılarak oluşturulmuştur.
EMV protokolü 3 ayrı faza ayrılabilir; Kart kimlik denetimi, kart sahibi doğrulama ve işlem yetkilendirme. Bu 3 faz aşağıda ayrıntılı olarak anlatılacaktır. Şekil 1 ''CHIP and PIN'' protokolünü tam olarak göstermektedir.

Şekil 1 : ''CHIP and PIN'' Protokolü
Kartın asıllanması:

EMV akıllı kartları farklı kriptografik anahtarlar ile birbirinden bağımsız ayrık uygulamalar içerebilirler. Bu uygulamalar satış yerlerinde debit ya da kredi kartı kullanımı, ATM kullanımı, çevrimiçi bankacılık uygulamalarında MasterCard CHIP kimlik denetimi programı kullanımıdır. Kart terminale takıldığı vakit ilk önce desteklenen uygulamaların listesini ister ve bir tanesini seçer. Daha sonra gerçek bir işlem Get Processing Option komutu karta gönderilerek başlatılır. Sonrasında terminal kartın ilgili dosyasından read record komutu ile kart kullanıcısının bilgilerini okur. Bu bilgiler kartla ilgili (hesap numarası, kartın son kullanım günü), eski teknoloji ile uyumlu veri ile ilgili (manyetik şeritin kopyası) ve protokol kontrol parametreleri (kart kullanıcısı doğrulama metodu listesi, kart veri nesne listesi) ile ilgili olabilir.
EMV’nin bazı türlerinde statik veri asıllama {SDA (static data authentication)} kullanılmaktadır. Statik veri asıllamada akıllı kart RSA (Rivest Shamir Adleman) yapabilecek yeterlilikte değildir. Statik sertifika ile asıllama işlemi gerçekleştirilir. Kullanılan diğer bir asıllama tekniği ise dinamik veri asıllama {DDA (dinamic data authentication)} tekniğidir. Dinamik veri asıllama tekniğinde kart RSA yapabilecek kapasitededir ve asıllama işlemi terminalden gönderilen verinin RSA gizli anahtarı ile imzalanmasıyla gerçekleştirilir.
SDA akıllı kartları tekrarlama saldırılarına açıktır. Kartın içerisinden sertifika okunup, sahte bir karta yazılabilir. Sahte kart daha sonra banka ile çevrimiçi bağlantısı olmayan bir satış noktasında kullanılabilir. Gerçek zamanlı iletişim olmadığı için alışveriş yapılmadan işlem sırasında oluşturulan MAC kontrol edilmeyecektir. DDA akıllı kartları banka ile iletişim çevrimdışı olsa bile sahteciliğin önüne geçebilmektedir.
Kart sahibi doğrulaması:

Kart sahibi doğrulama adımının başlangıcında, terminal ile akıllı kart hangi kart sahibi asıllama metodunun kullanılacağı konusunda anlaşırlar. Kart sahibi asıllama metodu PIN kullanılması, ıslak imza kullanılması ya da hiçbir şey kullanılmaması şeklinde olabilir. Akıllı kartlarda en fazla PIN doğrulaması kullanılırken en az kullanılan hiç bir doğrulama kullanılmamasıdır. Bazı akıllı kartlarda PIN doğrulamasından geçilmezse ıslak imzaya izin verilebilmektedir. Bu durumda satıcı yapacağı satıştan sorumlu olacağı için genellikle böyle bir durumu reddetmektedir. Ayrıca CHIP ve imza şeklinde kartlar da mevcuttur. Bu kartlar PIN hatırlayamayan kullanıcılar tarafından tercih edilmektedir. Bazı akıllı kart kullanıcıları da CHIP ve imza kartını ''CHIP and PIN'' kartının kendi üzerlerine sorumluluk yüklediğini düşündüğü için almak istemektedir.
Bununla birlikte kullanılan kartların büyük çoğunluğu PIN doğrulamalıdır. PIN doğrulamalı sistemlerde PIN numarası karta gönderilir ve kart girilen PIN numarası ile kendi içerisinde sakladığı PIN numarasını karşılaştırır. Eğer girilen PIN ile kartın içerisindeki PIN aynı ise kart 0x9000 cevabını döner. 0x9000 PIN doğrulamasının gerçekleştirildiği anlamına gelmektedir. Eğer girilen PIN ile kartın içerisindeki PIN değeri aynı değil ise kart 0x63Cx değeri döner. Bu dönüş kodu doğrulamanın yapılmadığı ve ''x'' adet deneme hakkının kaldığı anlamına gelmektedir.
ATM kart sahibi asıllaması yukarıda anlatılan çevrimdışı PIN asıllama yönteminden farklı olarak çevrimiçi PIN asıllamasını kullanmaktadır. Burada kullanıcı tarafından girilen PIN numarası şifrelenerek kartı kullanıcıya veren bankaya gönderilir. Banka karşılaştırmayı yaparak cevabı ATM’ye döner. Bu makale ile anlatılacak atak yöntemi çevrimdışı sistemler için uygulanabilmektedir.
Ülkeler arasında kullanıcının asıllanması açısından farklılıklar vardır. İngiltere, Belçika gibi ülkelerde yukarıda anlatılan sistem çevrimdışı kullanılırken; İsviçre, Türkiye, Almanya gibi ülkelerde ya CHIP ile imzayı birlikte kullanabiliyorsunuz ya da çevrimiçi PIN girmek zorundasınız. Burada anlatılacak olan saldırı İsviçre,Türkiye ve Almanya gibi çevrimiçi PIN girme zorunluluğunu uygulayan ülkeler için geçerli değildir. İngiltere ve Belçika gibi çevrimiçi PIN girme zorunluluğu bulunmayan ülkelerde gerçeklenebilir bir saldırı tekniğidir.
İşlem yetkilendirme:

Bu adımda terminal, kartı kullanıcıya sağlayan bankaya göndermek için akıllı karttan işlem detayları üzerinden kriptografik MAC oluşturmasını ister. Bunun için terminal Generate AC komutunu kullanarak karttan AROQ’u (yetkilendirme istek kriptogramı) istemektedir. Bu komut ile işlemin nasıl gerçekleştirileceği anlaşılmaktadır. Terminalin talebine cevap olarak kart CDOL1’de (kart veri nesne listesi 1) belirtilen veri elemanlarını uç uca birleştirerek gönderecektir. Genellikle terminalin gönderdiği Generate AC komutunun içeriğinde işlem hesabının, para biriminin, tipin ne olacağı ile ilgili sorular ve terminal tarafından bir defa kullanmak için oluşturulan bir sayı ile TVR’nin (Terminal doğrulama sonucunun) ne olduğuna dair bilgiler vardır. Özetle, bankaya gönderilecek olan kriptogram tip kodunu, işlemi tanımlayan sayaç değerini {ATC (Application transaction counter)}, kart tarafından oluşturulan veriyi ve bütün bundan önceki verileri kapsayacak şekilde alınan MAC’i içerecektir. MAC, kart ile kartı kullanıcıya veren banka arasında paylaşılan 3DES anahtarı kullanılarak oluşturulmaktadır.
Eğer kart işleme izin verirse AROQ, izin vermezse işlemi yarıda kesecek olan AAC’yi (uygulama asıllama kriptogramı) cevap olarak dönecektir. Eğer karttan AROQ cevabı alınmışsa, terminal AROQ cevabını kartı kart sahibine veren bankaya gönderecektir. Banka bunun üzerine çeşitli kriptografik kontroller, sahteciliğe karşı ve finansal kontroller yapar. Bu kontroller, kartın çalınmış olarak listelenmiş olması, harcamalar için yeterli kaynak olup olmadığı, risk analiz algoritmasının işlemi kabul edilir olarak görüp görmemesidir. Eğer kontrollerden geçilirse banka işlemin nasıl devam edeceğini gösteren 2 bayt değerinde ARC (yetkilendirme cevap kodu) değerini ve (AROQ + ARC) değerinin MAC değeri olan ARPC (yetkilendirme cevap kriptogramını) değerini terminale iletir. Bu değerler terminal tarafından akıllı karta External Authenticate komutu ile gönderilir.
Akıllı kart MAC ile ARPC’nin bütünlüğünü kontrol eder ve eğer sonuç başarılı ise banka işleme onay verdi olarak kendi iç durumunu değiştirir. Sonrasında terminal Generate AC komutunu tekrar kullanır. Bu defa terminal CDOL2 (kart veri nesnesi 2) ile işlemin devam etmesini yetkilendiren TC kriptogramını (işlem sertifikası kriptogramını) akıllı karttan ister. Son olarak terminal TC kriptogramını bankaya gönderir ve işlemlerde anlaşmazlık olması durumu için TC kriptogramının bir kopyasını kendi içinde saklar. Bu noktada eğer PIN ile doğrulama işlemi başarılı olmuşsa PIN ile doğrulandı mesajı slip'e bastırılır.
Yukarıda terminal çevrimiçi işlem yapmayı ve banka ile haberleşme halinde olmayı seçmiştir. Çevrimdışı işlemlerde Terminal, ilk Genereta AC komutu ile karttan TC’yi istemektedir. Bu durumda kart TC kriptogramını dönerek işlemin çevrimdışı gerçekleşmesine izin verebilir, AROQ dönerek işlemi çevrimiçi işleme zorlayabilir ya da AAC dönerek işlemi tümüyle reddedebilir.
Bu makale ile anlatılacak olan saldırı çevrimdışı durumu için geçerlidir.
Atak Yöntemi

Protokoldeki eksiklik PIN doğrulama işleminin bütün adımlarının açık bir şekilde onaylanmamasından kaynaklanmaktadır. Bankaya gönderilen veri TVR (Terminal Verification Result) ve IAD (Issuer Application Data) olmak üzere 2 farklı bilgi içermektedir. Bu 2 bilgi terminalle kart arasında gerçekleşen bütün olayları tam olarak yansıtamamaktadır. TVR Şekil 2’den de görüleceği gibi sadece kart sahibi doğrulaması aşamasındaki olası başarısızlık durumlarını belirtmektedir. Başarı durumunda hangi metodun kullanıldığını belirtmemektedir.

Şekil 2 : Terminal doğrulama sonucu {TVR (Terminal verification result)}

Bu nedenle aradaki adam atağına göre (man-in-the-middle) saldırgan kart ile terminalin arasına girerek aradaki haberleşmeyi istediği gibi değiştirebilmektedir. Bu sayede terminal PIN girilmesini istedikten sonra karta hiçbir bilgi gönderilmeden aradaki saldırgan terminale 0x9000 göndererek terminali PIN girildiğine inandırmaktadır. Rasgele bir PIN girilecektir ancak man-in-the-middle atağına göre herhangi bir PIN kabul edilecektir. Bu durumda Kart terminalin PIN desteklemediğini düşünecektir ve kart sahibi doğrulamasını ya atlayacaktır ya da imza ile doğrulama isteyecektir. Rasgele girilen PIN karta hiç gönderilmeyeceği için PIN deneme sayısı düşürülmemiş olacaktır. Değiştirilmiş protokol akışı Şekil 3’deki gibidir.
Şekil 3 : '' Man-in-the-Middle '' Atak Yöntemi
Atağı gerçekleştirmek için kullanılan sistem Şekil 4’de ki gibidir. Man-in-the-middle saldırısı devresi terminal ile sahte kart üzerinden haberleşmektedir. Sahte kartı süren FPGA kartı sahte kart ile PC arayüzü arasındaki dönüşümü sağlar. Seri bağlantı üzerinden FPGA gerçek kartın kart okuyucu vasıtası ile bağlı bulunduğu bilgisayara bağlanmaktadır. Bilgisayar üzerinde Python kodu çalışmaktadır. Python kodu terminal ile gerçek kart arasındaki haberleşmeyi izlemektedir. Yalnız terminal VERIFY komutunu gönderdiğinde komutu gerçek karta göndermeyip terminale 0x9000 cevabını göndermektedir. Diğer hiç bir komut için herhangi bir şey yapmamaktadır, sadece hattı dinlemektedir.

Şekil 4 : Atak Ortamı

Kart ve terminal her ikisi de bu sahteciliği anlayamamaktadır. Çünkü TVR’nin 8. biti eğer PIN doğrulama kart tarafından yapılırsa ve başarısız olursa ''1'' olarak ayarlanmaktadır. Terminal PIN doğrulamanın başarılı olduğuna inanmaktadır (8. bit olarak ''0'' atamaktadır), kart ise PIN doğrulamaya teşebbüs olmadığına inanmaktadır (8. bit’in ''0'' olmasını kabul etmektedir ).
IAD ise genellikle PIN doğrulamasının yapılıp yapılmadığını gösterir. EMV’de yer almamakla birlikte kartı kullanıcıya veren bankanın uygulamasıdır. Terminal hangi kart doğrulama metodunun kullanıldığını bilmesine rağmen karttan gelen IAD bilgisini açmadan kartı kullanıcıya veren bankaya gönderir. Dolayısıyla IAD bilgisini açan banka bu bilgiyi atağı engellemek için kullanamaz.
Sonuç

Bu makalede EMV protokolünün PIN doğrulama özelliğinin eksikliği gösterilmiştir. Çevrimdışı sistemlerde PIN doğrulama adımının cevabında doğruluğunu kanıtlama yoluna gidilmemesi, saldırı yapan kişinin PIN bilgisini bilmeksizin man-in-the-middle atağını kullanarak kartı kullanabilmesine yol açmaktadır. Bu saldırı yöntemi ile çalıntı kartlar kullanılarak, kart sahipleri maddi olarak zarara uğratılabilirler.
Bu saldırının engellenebilmesi için ya EMV protokolünde değişikliğe gidilmesi ya da bütün ülkelerde çevrimiçi PIN doğrulama yöntemininin kullanılmasının zorunluluk olması gerekmektedir.

vlkn1907 - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
11/2011
Mesajlar:
296
Konular:
61
Teşekkür (Etti):
18
Teşekkür (Aldı):
8
Ticaret:
(0) %
04-04-2012 22:03
#2
ellerine sağlık kardaşım çok güzel bir paylaşım olmuş...
--------------------- BİZ ECDADIMIZ BİZDEN HİÇBİRŞEY İSTEMEDİ NE BİR ANI, NE BİR ŞİİR , NE BİR ANIT, NE DE GÜZEL BİR ŞARKI.....
ONLAR BİZDEN SADECE " BİZİ HATIRLAYIN" DEDİLER


Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı