Merhaba,

Donanım desteği olmadan güvenlik mekanizmalarının doğru çalıştığından emin olamayız demek istiyorum. "Peki bekçileri kim gözetleyecek?" diye ünlü bir söz vardır. Problem orada.

Kastettiğim tam olarak şu, işletim sisteminden daha alt katmanda bir güvenlik denetimi tesis edemezseniz hiç bir yazılımsal güvenlik mekanizmanızın doğru çalıştığını *kanıtlama* şansınız olmaz. Kırmızı-Siyah ayrıştırma prensibine göre bu durumdaki bir güvenlik sistemi güvenilir değildir. Güvenlik ve güvenilirlik iki ayrı niteliktir. DRM gibi sistemlere ahlaki bakış bir yana, işletmeler çok ciddi varlıklarını emanet ettiklerine göre güvenilir bir mekanizma isterler değil mi?

Bahsettiğim konu pratik önemi olan bilimsel bir mevzu. Güvenlik konusu bilgisayar mimarisi alanına giriyor. Hangi mimariden bahsederseniz edin güvenlik için ön koşul güven ilişkisidir. Her hangi bir konuda güven tesis etmeniz için de doğrulanabilir veya yanlışlanamazlık testi yapmanız gerekli. Mevcuttaki sistemlerin güven ilişkilerini doğrulamak mümkün değil. Yanlışlamak ise mümkün. Zaten ortaya çıkan her güvenlik açığı yanlışlama anlamına geliyor.

Bunun gündelik bir örneği de şu. Bir çok tesiste, gece bekçileri rotalarında dolaşırken belli noktalardaki diyafonlardan merkezi arayıp, "şuraya geldim asayiş berkemal" demek mecburiyetindedir. Merkez hangi diyafondan konuşulduğunu görebildiği için bekçinin gerçekten tur attığından emin olur. Şu an için siz güvenlik, DRM, "SECURE ELEMENT", vs derken bekçileri konuşuyorsunuz. Ben ise diyafonu ve merkezi konuşuyorum. Diyafon, bekçi ve merkez arasında güvenilirlik ilişkisini kurmaya yarıyor.

Öte yandan güvenilirliği tesis edemediğiniz zaman eldeki ile idare ediyorsunuz. Bu pratik bir sonuçtur. Örneğin ABD ve İngiltere 2. Dünya Savaşı'nı radar teknolojisi ile uzatabildiler. Radar olmasaydı Almanya kolayca İngiltere'yi işgal edebilecekti. Peki o tarihte radar ne kadar güvenilebilir idi? Yaklaşık %50. Yani ekranda bir yerde yanıp sönen noktanın gerçekten bir Alman uçağı olması olasılığı %50 idi. Yazı tura atmaktan farkı yoktu. Ama kullanmak zorundalardı ve kullandılar. Bugün kesine yakın bir güvenilirlik söz konusu.

Yazılım güvenliği için de aynı şeyden bahsediyorum. Bugün tipik uygulama sahalarında güvenilirlik açısından çok kötü durumdayız. 10 sene sonra oldukça iyi bir yerde olacağız. Ama kimsenin de 10 yıl bekleyecek hali yok.

Oyun sektöründeki cihazlar ister tetris oyuncağı olsun ister PS3, uzun süre boyunca önemsiz cihazlardı. Çünkü riskler düşüktü; kimse dert etmiyordu. Ne zaman çevrim içi sistemlere abone olmak için kredi kartı bilgileri bu cihazlara kondu, o zaman işler karıştı. Güvenliği donanımsal olarak bu cihazlara koymak mümkündü ama cihazları çok pahalı hale getireceği için kısmi çözümler ile idare edilmişti. Birileri de aldılar kısmi çözümü kırdılar. Sonra da çok sayıda insanın kredi kartı bilgisi çalınıverdi.

Yani anlayacağınız kullandığımız platformlardaki donanım üreticilerinin ticari başarısı adına yaptıkları tercihler biz yazılımcıları çok fena etkiliyor.

Öte yandan o tarihte PS veya X-BOX'ı tasarlayanlara da hak vermek lazım çünkü ihtiyaç onlara iletilmemişti. SIM kart ile DRM için gereken güvenlik araçlarını karşılaştırmak da bu nedenle hatalı. İhtiyaçlar çok farklı. Örneğin GSM güvenliğinin önemli bir bölümü aslında SIM kartta değil, ağın merkezi idaresinde gerçekleşmektedir. SIM kartın kendisine yapılacak zamana bağımlı bir saldırı senaryosu (örnek replay) yoktur. O zaman SIM kart çok daha basit bir donanım olabilir ve olmalıdır çünkü ucuz olması gereklidir.

Donanım temelli güven zinciri tesis ettiğiniz zaman X-Box, vs'de firmware değiştirdiğiniz zaman ekranda ünlem işareti görüp "olmadı ya" deme durumu gerçek olacak. Çünkü bu kontrolü gerçekleştiren güvenlik bileşenine güvenebileceksiniz. O zaman da güvenlik açıkları olacak ama sistemdeki bir bileşenin tahrif edilmesine dayanan güvenlik sorunları yok olacak. Bu da önemli bir dizi saldırıyı bertaraf etmek, diğerlerini de çok zorlaştırmak demek.

Şu anda piyasadaki akıllı kartlarının hemen tamamı da güvenilmezdir. Ama kullanım alanları gereği zaten bu büyük bir dert değildir. Ama kalkıp gaza gelip akıllı kartın içine bir sürü kritik veriyi koymaya başlarsanız o zaman iş karışır. Akıllı kartınızın güvenlik mekanizmasına güvenmeniz için test yapmanız gerekir. Bu testler pahalıdır. O nedenle her akıllı kart üreticisi veya akıllı kart içine gömülü yazılım geliştiren üretici bu testleri yapmaz. Uygulama alanınız kritik ise o zaman bazı testler yapılır. Bazen de yasal gereksinimler ortaya konur.

Mesela bir yazarkasanın içindeki yazılım belli testlerden geçmeden Türkiye'de satışa sunulamaz. Aynı şey kredi kartları için kullanılan POS cihazları için de geçerli. Sayısal imza amaçlı kullanılacak olan akıllı kart için de geçerli. Dünyada yüzlerce akıllı kart üreticisi var ama sayısal imza için akıllı kart işine giren ve gerekli testlerden geçen işletme sayısı iki elin parmaklarını bulmuyor.

Yani güvenebileceğiniz bir güvenlik tesis etmek isterseniz çok para harcamanız gerekiyor.

Öte yandan Google Wallet ve benzeri uygulamaları tamamen yazılımsal temele dayandırmak önemli bir risk. Çünkü GSM veya POS cihazları gibi sistemler genel olarak kapalı devre olduğu için riskleri sınırlamak ve dar alandaki risklere odaklanmak mümkün. Yazılım işine girince, hele mobil dünyaya girince riskleri sınırlama kabiliyeti düşüyor. RFID temelli NFC cihazlarının ise çok sayıda güvenlik sorunu var.

Yazılımsal herhangi bir API kullandığınız zaman, o API'nin tüm alt katmanlarında herşeyin düzgün olduğuna inanmak zorundasınız. Yani varsayılan bir güven ilişkisi var. Kanıtlanabilir bir güven ilişkisi tesis etmek için ise bir yöntem yok. Mevcut durumda DRM veya benzeri mekanizmaların güvenliğinin şüphe götürür olması da bu nedenledir. Çünkü güven ilişkisini kanıtlamak için (bilimsel doğrulanabilirlik veya yanlışlanamazlık üzerine kurulu) bir mekanizmaya sahip değiliz.

Örneğin Java'da bir sürü güvenlik alt yapısı var; ama güvenilirlik alt yapısı henüz yok. Benim de (kendi çapımda) üyesi olduğum bir standart komitesi daha yeni oylamaya soktu. Bu arada standart geliştirilmesi yaklaşık 6 sene sürdü. Ayrıca referans API de şu an için mobil sistemleri hedeflemiyor çünkü varsaydığımız donanım mimarileri mobil cihazlarda yok.

Güvenlik konusunda en ileri diyebileceğimiz Java platformunda dahi güvenilirlik konusu önümüzdeki 5-10 yıl içinde ancak yaygın kullanıma girecek. Android'in Java'yla paralel gitmesi bu açıdan umut verici. Ama bugünü konuşuyorsak daldaki kuştan bahsediyoruz, eldekinden değil.

Dolayısı ile şimdilik Android veya başka bir yerdeki DRM API'nize veya o API'nin güvendiği bir alt yapıya dönük başarılı bir saldırı olduğu zaman açıkçası ruhunuz duymayacak. Şimdilik radar örneğinde olduğu gibi idareten kullanıyoruz. Bunu peşinen kabul etmek gerekli.

Mobil dünya derken özellikle ARM temelli düşünüyorum. Bunun çok çeşitli nedenleri var. Saysam bitmez. Ama güvenllik açısından üstün nitelikli bir platform olduğunu iddia etmekte sakınca yoktur. ARM'ın özellikle Cortex serilerinden sonra ortaya çıkan belirli güvenlik özellikleri önemli bir adım; ancak hala güvenilir olmak için gereken teorik koşulları eksiksiz sağlamıyor. Snapdragon Windows'u ARM'da çalıştırma iddiası ile medyada yer almakla birlikte, benim tartıştığım konuda yeni bir şey getirmiyor.

Öte yandan DRM'in müşterisi olan işletmeler çok muhafazakar. Fiziki olarak kontrol altına alamadıkları platformlar konusunda çok rahatsız oluyorlar. Bunun iktisadi sebepleri ortada. O zaman DRM'in pratikteki kullanım alanı daha uzun bir süre için sınırlı kalacaktır demek sağlam bir iddiadır.

Bir diğer problem de şu. Android'e bu tür güvenlik özelliklerini eklemek isteyenlerin GPLv3 ile sorunu olacak. Çünkü bir çok kritik bileşen GPLv3 ile lisanslı ve bu lisans bu tür özellikler için kullanımı (DRM'i öneren düşünce biçiminden farklı bir düşünce biçiminin ilkeleri gereği) açıkça reddediyor. GPLv2 olsa sorun yok. Bu durumda ya Android önemli miktarda kodun tekrar yazılmasını gerektirecek yada mahkemelerde çok kavga olacak. Bunlar da işi yavaşlatacaktır.

Sanırım bu kadar uzun uzun yazmamdan nasıl olup da (ekip olarak) 1.000 slayt (sayfa değil) yazdığımızı anlamışsınızdır.

Sevgiler,

Bora.

On 26.11.2011 21:58, Ali Utku Selen wrote:
Valla ben sizin epostanıza cevap yazmıştım, Mucip cevap yazınca yanlış yazdığımı hatta sadece direk ona yazdığımı düşündüm - ki android/gmail'den cevap yazmıştım. Şimdi Gmail/Web'den bakıyorum, ve bana herşey beklediğim gibi gözüküyor. Ben mesajı sizin mesajınızdan sonra yazmışım ama Mucip cevap vermiş.

DRM konusuna gelince hala ne demek istediğinizi anlayamıyorum. Yani donanım desteği olmadan güvenlik olmaz mı demek istiyorsunuz? Mükemmel güvenlikli birşey mi olmaz mı demek istiyorsunuz?

Kendi fikrimi söyleyeyim sanırım daha kolay anlaşılır - mesela bakın ps3 çok güçlü bir ortamdır ama bazı anahtarları sızdırdıkları için konsola dışarıdan giriş mümkün olmuştur. Xbox yine güçlü bir ortamdır fakat dvd sürücülerin firmwareleri değiştirilerek konsola kandırmak mümkündür.

Basit sim kartınız neredeyse hiç elektrik harcamaz ama yeni nesil sim kartlarının bilindik bir güvenlik açığını biliyor musunuz?

Bakın şimdi android'in yeni sürümünde (icecream) NFC'yi çok önde tutuyorlar ve Google Wallet adlı bir ödeme sistemini yaygınlaştırmaya çalışıyorlar ve bu cihazların içinde genelde bir "SECURE ELEMENT" (dışarıdan müdahelenin çok zor olduğu güvenlikli bir saklama alanı) bulunur. Bu donanımların hepsini bir akıllı kart ya da benzeri olarak tasarlamak mümkündür. Yani ortada özel güç gerektiren (elektrik ya da işlemci gücü) bir şey yok.

Düz DRM'e gelirsek android üzerinde zaten bunun için bir çatı bulunmakta
http://developer.android.com/reference/android/drm/package-summary.html
Yani bu tür cihazlarda bu mümkün.

Belki mobil/gömülü diyince siz hala 8bitlik bir dünya hayal ediyorsunuz.

Bu arada 1000 sayfa konusu da çok ilginç, siz öyle yazınca gittim baktım amazona Bruce Schneier'in bile 1000 sayfalık kitabı yok :)

Son olarak mobil platformların son geldiği noktayı merak edenler için
http://www.qualcomm.com/documents/snapdragon-s4-architecture
Bu cihazla çalışmış biri olarak toplu iğne başı kadar bir SoC'un 28nm, oldukça uzun pil ömrü olacağına eminim.


2011/11/26 Bora Güngören <[email protected] <mailto:[email protected]>>


    Merhaba,

    Alınıtı benim yanıtımdan yapıldığına göre aslında benim epostama
    yanıt yazsanız daha doğru olurdu.

    Şimdi şöyle bir durum var ki, yazılımcı camiamızın hemen hemen
    tamamı için arkada tüketilen kaynaklar artık önemsiz bir detay. Bu
    yazılım dünyası için güzel bir durum olmakla birlikte, kaynakların
    oluşturabileceği kısıtlar hiç bir zaman ortadan kaybolmuyor.

    Mesela cep telefonundan eposta almak yollamak güzel ama üç beş
    kelimelik kısa mesajlardan fazlası için arayüz yetersiz hale
    geliyor. :) Aynı şey bazı güvenlik API'lerinin dayandığı
    donanımlar için de geçerli.

    Güvenlik amaçlı donanımsal özelliklerin daima (yada genelde) aktif
    kalan elektriksel devre bileşenleri olmak zorunda. Bu da prize
    bağlı olmayan, pille çalışan cihazlar için önemli sorunlar
    getiriyor. Güvenli ama şarj süresi kat kat azalan bir cep telefonu
    yada tablet bilgisayar ister miydiniz? Bu tür cihazların
    pazarlanması zorlaşıyor. Pazarlanması zor olunca da üreticiler
    fazla kasmıyorlar. Zaten piyasadaki tablet bilgisayarların donanım
    tasarımlarına bakınca ucuza temin edilenlerde güvenlik özellikli
    donanımsal özellik göremiyorum. Pahalı olanlarda da çok kısıtlı
    olarak var.

    Dolayısı ile harcıalem bir tablet bilgisayar üzerine başarılı bir
    DRM uygulaması kurmak şu an için mümkün değil. Farklı ve kısmen
    başarılı yazılım çözümleri mümkün ve şimdilik risk azaltmak adına
    bunlara güveniliyor. Amazon Kindle gibi özel tasarım cihazlarda
    yazılım alt yapısına müdahale etme şansı kalmasa da bunların birim
    maliyetleri yüksek olduğu için bizzat Amazon dahi riskleri kabul
    etmek zorunda kaldı.

    Bu konuları uzun uzadıya anlatmak mümkün ama bu konuda zamanında
    yazdığımız lisans üstü ders notlarının özet olarak 1.000 slaydı
    geçtiğini hatırlayınca, açıkçası eposta listesinden çok bir yüksek
    lisans dersinin tartışma ortamı olacağını görüyorum.

    Sevgiler,

    Bora.



    On 26.11.2011 13:02, Ali Utku Selen wrote:
    Pardon, cep telefonundan yazmaya çalışmıştım.

    Şunu merak ediyorum

    "
    Yüksek güvenlik özellikleri için gereken donanımlar, önemli
    oranda elektrik tüketen donanımlar olduğu için mobil cihazlar
    için zorluklar yaratıyor. 2005-2008 arasında Open Mobile
    Association (OMA) bu konuda önemli çalışmaları yönlendirdi ve
    düşük elektrik tüketimli donanımlar veya pil teknolojisinde büyük
    gelişme olmaksızın bu işin sıkıntıda olacağı görüldü. Raporları
    benim de bir projede birlikte çalıştığım küçük bir ekip yazmıştı;
    doğrudan olmasa da dolaylı olarak işin içindeydim.
    "



    _______________________________________________
    Linux-programlama mailing list
    [email protected]
    <mailto:[email protected]>
    https://liste.linux.org.tr/mailman/listinfo/linux-programlama
    Liste kurallari: http://liste.linux.org.tr/kurallar.php




_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap