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