Merhabalar,
O-Key Dongle yazılım koruma kilitleri ile ilgili tartışmanıza bazı konuları netleştirmek amacıyla,
firma yetkilisi olarak katılmak istiyorum.
O-Key Dongle; Okyanus Bilişim Teknolojilerinin geliştirdiği 20'nin üzerinde güvenlik ürünlerinden sadece
yazılım geliştiricilere yönelik olanıdır. Okyanus Bilişim Teknolojileri; oturum kilitlerinden, kurumsal ve kişisel
kripto sistemlerine kadar bir çok ürünü bünyesinde geliştirebilen dünyadaki sayılı şirketlerden birisidir. (www.o-key.com.tr)
Alanında uzmak akademik ve ticari tecrübeye sahip çekirdek bir ekip tarafından ürünlerimiz ve sistemlerimiz
geliştirilmektedir. Okyanus Bilişim Teknolojileri; gerek özel, gerek kamu kurumlarına güvenlik ve kripto sistemleri geliştiren
Tübitak haricinde ülkemizdeki tek kurumdur.
Ülkemizde yıllardır süre gelen özgüven eksikliğinin ve yabancının ürettiğine hayranlık duygusunun günümüzde de devam ettiğini
zaman zaman üzülerek görmekteyiz. Ancak ülkemiz gerek insan kaynağı açısından, gerek teknolojik ve ekonomik ilerlemeler
açısından artık yüksek teknoloji ürünleri geliştirebilecek noktalara gelmiştir.
O-Key Dongle yazılım koruma kilitlerimiz, dünyada sadece kendisine has olan bir çok özelliğiyle
(Sürücüsüz çalışma, şifreli ve pin erişimli hafıza blokları, uzaktan online güncelleme,
açık anahtar mimarisi desteği, Rados usb hat güvenlik algoritması, vb) bir çok yazılım
geliştiriciyi; mevcut koruma yöntemlerini ve cihazlarını terkederek O-key Dongle'a yönelmesine neden olmuştur.
Bu özelliklerin detaylarına http://www.okeydongle.com/detail.aspx?p … amp;menu=3 adresinden erişebilirsiniz.
Teknik açıdan bir yazılımın/dongle'ın kırılması hakkında biraz bilgi paylaşmak isterim.
Bir saldırgan yazılımı kırmak istediğinde;
1 - USB hattından yazılım ile cihaz arasında giden gelen verileri dinleyerek cihazı emule etmeye çalışabilir.
Örneğin yazılımınız "A" verisini cihaza gönderiyor, cihaz bunu şifreleyip yazılımınıza "B" verisine döndürüyor.
Yazılımınız her "A" gönderdiğinde cihazdan "B" cevabı geldiği taktirde, hattı dinleyenler bu akışı emule edip
sanal bir USB portu tanımlayıp yazılımınızı sanki cevaplar dongle'dan geliyormuş gibi kandırabilir. Piyasada
bulunan bir çok dongle bu yöntemle devre dışı bırakılmaktadır.
O-Key Dongle'ın bu soruna karşı geliştirdiği RADOS adını verdiği patentli bir algoritması bulunmaktadır.
Bu algoritma USB hattının veri güvenliği sağlamaktadır ve hattan giden gelen paketlerin dinlenerek anlamlı
veri elde edilmesini engellemektedir. RADOS sisteminde hattan giden bir verinin tekrar etme olasılığı
8,135*10^2311' de 1'dir.
2- Yazılımın dongle kontrolü sonucunda karar verdiği noktaları bulup atlatma,
Uygulamanızda gerek dongle kullanarak gerek yazılımsal yöntemlerle bir çok operasyon yapsanız da en son bir karar
verme "if" şartına gelirsiniz. Şartlar uygunsa devam et, değilse uygulamayı sonlandır dersiniz.
Saldırıların %90'ı buraya yapılır. Bu durumu korumak için uygulama dosyanızın decompile edilebilmesini
ya da bir debugger ile izlenebilmesini engellemelisiniz. Ancak bu yöntemler bile zannedildiği kadar
güvenli yöntemler değildir.
O-Key Dongle standart win32 uygulamalarında ve .Net (firmamız .Net kabuklama yapabilen dünyada bir kaç firmadan birisidir)
uygulamalarında kabuklama desteği vermektedir. Ancak VFP uygulamarı için böyle bir desteği bulunmamaktadır.
Firmamız hedef pazarının sadece %4'ü VFP ile uygulama geliştirmektedir ve maalesef arge öncelikleri sıramızda bugüne
kadar bulunmamıştır, bu nokta tamamen ticari bir karar sonucudur, ancak ilerleyen süreçler VFP için de arge
planlamaları bulunmaktadır, dolayısıyla şuan O-Key Dongle ürünleri API desteği ile VFP'da kullanılabilir, 3. parti
bir uygulama ile kabuklanarak ekstra güvenlik sağlanabilir.
Ancak burada çok önemli bir hususu belirtmek isterim;
Donanımsal kilitleri sadece kontrol mekanizması olarak kullanırsanız yukarıda bahsettiğim nedenlerden dolayı atlatılma
ihtimali çok yüksektir, ancak yazılımınızın bir parçası olarak kullanabildiğiniz taktirde çok güçlü bir koruma sağlamış olursunuz.
Örneğin uygulamanız veritabanına bağlanan bir yazılım olsun, connection string'i dongle içerisine gömdüğünüzü düşünelim,
saldırgan dongle kontrol noktalarınızı atlatsa bile, uygulama çalışacağı zaman ortada connection string olmadığından
uygulama çalışmayacaktır, bunu özel bir raporlama parametresinde, uygulama menülerinde, dosya kayıt işlemlerinde yapabilirsiniz,
hatta biraz becerikli bir yazılımcı dongle içerisine kod bile gömebilir, işlem yaptırabilir. Burada mantık yazılımının donanım olmadan
eksik çalışması ya da hiç çalışmamasını sağlayabilmektir. Bu verileri de şifreli hafızası olan bir cihaza gömdüğünüz taktirde çok güçlü
korumayı elde etmiş olursunuz, birilerinin olmayan bir kodu uygulamaya enjekte edebilmesi neredeyse kodun kendisini yazmaktan daha zordur.
Uygulamanızda kontrol noktalarını minimum 50 farklı yerde yapmalısınız. Bunun için de kullandığınız donanım çok hızlı olmalıdır.
O-Key Dongle ürünleri ortalama 30ms'de bir işlem yapar. Eğer uygulamanızın lisanssız olduğunu tespit ederseniz bunu hemen bir mesaj vererek
göstermemelisiniz, gerekiyorsa 1 gün 2 gün sonra uygulamanın çalışmamasını sağlayınız bu sayede kırmaya çalışan kişi yaptığım olmuşmuyu
görebilmek için 1-2 gün beklemek zorunda kalsın. Bu ve benzeri bir çok strateji ürünümüzle birlikte gelen 150 sayfanın üzerinde bulunan
Türkçe dokümantasyonda detaylı bir biçimde anlatılmaktadır. Yani her dongle kırılıyor mantığı yazılımcının bu ürünü nasıl kullandığı ile de
ilişkilidir, sadece yazılımın girişinde bir if ile kontrol yapılan uygulamada, hangi marka dongle kullanıldığının bir önemi yoktur.
Sanallaştırma teknolojileri lisans korumada ciddi tehtid oluşturmaktadır! Bir çok yazılımcı uygulamanın kurulduğu bilgisayarın donanım özelliklerini
alarak bir şifreleme ve aktivasyon mantığıyla yazılımlarını korumaktadır, ancak sanallaştırma teknolojilerinin hayatımıza girmesi ile
yazılımınız sanal bilgisayara kurulup sizden gerekli aktivasyon alındıktan sonra uygulamanızın kopyası direk sanal bilgisayar olarak dağıtılabilmektedir,
dolayısıyla sanal bilgisayarlarla birlikte klasik lisanslama teknolojisi çöpe gitmiş bulunmaktadır, ve donanımsal koruma şu an için optimum
çözümlerden birisi olarak ortaya çıkmaktadır.
Aydın Bey bize başvurduğunda da durum hakkında bilgi
verilmiştir. Ancak kendisinin yoğun talebi üzerine örnek uygulaması kabuklama için test edilmiş ve sonucu kendisine
bildirilmiştir, kendisi bu noktada çözüm düşünelim diye ısrar edince de bizim VFP dosyalarını çalıştıran do komutunun
stream üzerinden çalışması gibi bir durum varsa bu noktada size yardımcı olabilir bilgisi verilmiştir. Bu kendi işimizi
müşterimize yaptırmak gibi bir sebepten değil müşterimizin bize bahsettiği kadarıyla teslim etmek üzere olduğu yazılımını
hızlı bir biçimde korumak adına iyi niyetimizdendir. Kaldı ki biz Aydın Bey'e
kaç adet cihaz almayı planladığını bile sormadan bu desteği vermekteyiz, genel politikamız bu kapsamdadır, çünkü
bu uygulamaların tamamını milli servet olarak görmekteyiz.
Kayıtlarımıza göre Metin Emre Bey de Kalem Yazılım adına bizimle görüşmüştür, ancak o zaman da kendilerine kabuklama desteği
vermediğimiz ve api desteği ile kullanabilecekleri bildirilmiştir. Ancak kabuklama özelliği O-Key Dongle ürün ailesinin
52 güvenlik fonksiyonundan sadece birisidir ve bu özelliğin bir platformu desteklememesi ürünün, kalitesizmiş gibi gösterilmesi
yazılım güvenliği alanında ülkemizde yapılmış olan bu inovasyon çalışmasına ve onlarca yeni özelliğe haksızlık olduğunu düşünüyorum.
Her firmanın dongle kullanım amacı ve lisanslama ihtiyaçları farklı olabilir, bir kısmı elle tutulup gözle görünmeyen bir ürün sattığından
müşteride sen bu lisans parasını bunun için veriyorsun diyerek somut bir şey vermek için kullanır, bir kısmı kurumsal kimlik için, bir kısmı
decompile edilemesin diye, bir diğeri kullanıcı sayılarını etkin yönetebilmek için, bu örnekleri oldukça arttırmak mümkündür, dolayısıyla bakış
açılarımızı biraz geliştirerek durumu analiz etmekte fayda görüyorum.
Sabrınız ve yapmış olduğunuz değerli yorumlarınız için teşekkür ederim.
Mehmet ÖZKAN
Bilgisayar Yüksek Mühendisi