iOS Güvenliği

Transkript

iOS Güvenliği
iOS Güvenliği
iOS 9.3 veya daha yenisi
Mayıs 2016
İçindekiler
Sayfa 4
Giriş
Sayfa 5
Sistem Güvenliği
Güvenli başlatma zinciri
Sistem Yazılım Yetkilendirmesi
Secure Enclave
Touch ID
Sayfa 10
Şifreleme ve Veri Koruma
Donanım güvenlik özellikleri
Dosya Verilerini Koruma
Parolalar
Veri Koruma sınıfları
Anahtar Zinciri Verilerini Koruma
Safari tarafından kaydedilen parolalara erişim
Anahtar çantaları
Güvenlik Sertifikaları ve programları
Sayfa 18
Uygulama Güvenliği
Uygulama kodu imzalama
Çalışma zamanı işlem güvenliği
Uzantılar
Uygulama Grupları
Uygulamalarda Veri Koruma
Aksesuarlar
HomeKit
HealthKit
Güvenli Notlar
Apple Watch
Sayfa 27
Ağ Güvenliği
TLS
VPN
Wi-Fi
Bluetooth
Tekli Oturum Açma
AirDrop güvenliği
Sayfa 31
Apple Pay
Apple Pay bileşenleri
Apple Pay Secure Element'i nasıl kullanır?
Apple Pay NFC denetleyiciyi nasıl kullanır?
Kredi ve banka kartı provizyonu
Ödeme yetkilendirmesi
İşleme özel dinamik güvenlik kodu
Apple Pay ile temassız ödemeler
Uygulamaların içinden Apple Pay ile ödeme
Ödül kartları
Kartları askıya alma, kaldırma ve silme
iOS Güvenliği—Teknik Makale | Mayıs 2016
2
Sayfa 38
İnternet Servisleri
Apple Kimliği
iMessage
FaceTime
iCloud
iCloud Anahtar Zinciri
Siri
Süreklilik
Spotlight Önerileri
Sayfa 51
Aygıt Denetimleri
Parola koruması
iOS eşleme modeli
Konfigürasyonu uygulama
Mobil aygıt yönetimi (MDM)
Paylaşılan iPad
Apple Okul Yönetimi
Aygıt Kaydı
Apple Configurator 2
Denetleyip Yönetme
Sınırlamalar
Uzaktan Silme
Kayıp Modu
Etkinleştirme Kilidi
Sayfa 58
Gizlilik Denetimleri
Konum Servisleri
Kişisel verilere erişim
Gizlilik politikası
Sayfa 59
Sonuç
Güvenlik taahhüdü
Sayfa 60
Sözlükçe
Sayfa 62
Belgenin Gözden Geçirilme Tarihçesi
iOS Güvenliği—Teknik Makale | Mayıs 2016
3
Giriş
Apple, iOS platformunu merkeze güvenliği koyarak tasarlamıştır. Mümkün olan en iyi
mobil platformu yaratmak için yola çıktığımızda, yepyeni bir mimari oluşturmak için on
yılların deneyiminden yararlandık. Masaüstü ortamının güvenlik açıklarını göz önüne
alarak iOS tasarımında güvenliğe yönelik yeni bir yaklaşım belirledik. Mobil güvenliği
güçlendiren ve saptanmış olarak tüm sistemi koruyan yenilikçi özellikler geliştirerek
iOS'e ekledik. Sonuç olarak, mobil aygıt güvenliğinde iOS ileriye doğru büyük bir sıçrama sağladı.
Veri Koruma
Sınıf
Uygulama Sandbox'ı
Yazılım
Kullanıcı Bölüntüsü
(Şifreli)
İşletim Sistemi Bölüntüsü
Dosya Sistemi
Çekirdek
Secure
Enclave
Secure
Element
Donanım ve
Firmware
Şifreleme Motoru
Her iOS aygıtı, en üst düzeyde güvenlik ve şeffaf kullanıcı deneyimini sağlamak için
birlikte çalışmak üzere tasarlanmış yazılım, donanım ve servisleri bir araya getirir. iOS
yalnızca aygıtı ve etkin olmayan verilerini korumakla kalmaz, kullanıcıların yerel olarak,
ağlarda ve başlıca İnternet servislerini kullanarak yaptığı her şey dahil olmak üzere ekosistemin tamamını korur.
iOS ve iOS aygıtları gelişmiş güvenlik özellikleri sağlarken, kullanımları da son derece
kolaydır. Bu özelliklerin çoğu etkin olarak gelir, böylelikle BT bölümlerinin kapsamlı konfigürasyon işlemleri gerçekleştirmesine gerek kalmaz. Ayrıca, aygıt şifreleme gibi temel
güvenlik özellikleri yapılandırılamaz, dolayısıyla kullanıcılar bunları yanlışlıkla etkisizleştiremez. Touch ID gibi diğer özellikler, aygıtın güvenliğini sağlamayı basitleştirerek ve
daha sezgisel hale getirerek kullanıcı deneyimini geliştirir.
Bu belgede, güvenlik teknolojisi ve özelliklerinin iOS platformunda nasıl uygulandığına
ilişkin ayrıntılar verilmektedir. Belge, kuruluşların iOS platformu güvenlik teknolojisi ve
özelliklerini kendi politika ve yordamlarıyla birleştirerek özel güvenlik gereksinimlerini
karşılamasına yardımcı da olacaktır.
Bu belge aşağıdaki konulara göre düzenlenmiştir:
Aygıt Anahtarı
Grup Anahtarı
Apple Kök Sertifikası
iOS güvenlik mimarisi şeması, bu belgede
anlatılan farklı teknolojiler hakkında görsel
genel bilgiler sağlar.
• Sistem güvenliği: iPhone, iPad ve iPod touch platformu olan tümleşik ve güvenli
yazılım ve donanımlar.
• Şifreleme ve veri koruma: Aygıt kaybolur ya da çalınırsa ya da yetkisiz bir kişi aygıtı
kullanmaya ya da değiştirmeye kalkışırsa kullanıcı verilerini koruyan mimari ve tasarım.
• Uygulama güvenliği: Uygulamaların güvenli bir şekilde ve platform bütünlüğünü
bozmadan çalışmasını sağlayan sistemler.
• Ağ güvenliği: Aktarılan veriler için güvenli bir şekilde kimlik doğrulaması ve şifreleme
sağlayan sektör standardı ağ protokolleri.
• Apple Pay: Apple'ın güvenli ödeme uygulaması.
• İnternet servisleri: Apple'ın mesajlaşma, senkronizasyon ve yedeklemeye yönelik ağ
tabanlı altyapısı.
• Aygıt denetimleri: iOS aygıtlarının yönetimine izin veren yöntemler, yetkisiz kullanımları önler ve aygıt kaybolursa veya çalınırsa uzaktan silme olanağı tanıyan yöntemler.
• Gizlilik denetimleri: Konum Servisleri'ne ve kullanıcı verilerine erişimi denetlemek için
kullanılabilen iOS yetenekleri.
iOS Güvenliği—Teknik Makale | Mayıs 2016
4
Sistem Güvenliği
Aygıt Firmware Yükseltmesi (DFU)
moduna geçiş
Bir aygıtın DFU moduna geçtikten sonra
geri yüklenmesi, aygıtı yalnızca değiştirilmemiş, Apple tarafından imzalanmış
kodun olduğu kesin olan çalışır bir hale
döndürür. DFU moduna elle geçilebilir:
Aygıtı önce USB kablosu kullanarak bir
bilgisayara bağlayın, sonra Ana Ekran ve
Uyut/Uyandır düğmelerini aynı anda basılı
tutun. 8 saniye sonra Uyut/Uyandır düğmesini bırakırken Ana Ekran düğmesini
basılı tutmayı sürdürün. Not: Aygıt DFU
modundayken ekranda hiçbir şey görüntülenmez. Apple logosu görünürse, Uyut/
Uyandır düğmesi çok uzun süre basılı
tutulmuştur.
Sistem güvenliği, her iOS aygıtının tüm temel bileşenlerinde yazılım ve donanımın
güvenli olmasını sağlayacak şekilde tasarlanmıştır. Buna başlatma işlemi, yazılım güncellemeleri ve Secure Enclave dahildir. Bu mimari, iOS güvenliğinde merkezi öneme sahiptir ve aygıt kullanılabilirliğinin önüne asla geçmez.
iOS aygıtlarında donanım ve yazılımın güçlü bir şekilde entegrasyonu, sistemin her
bileşeninin güvenilir olmasını sağlar ve sistemi bir bütün olarak doğrular. Donanım ve
yazılımın optimum şekilde birlikte çalışmasını ve kaynakların düzgün kullanılmasını sağlamaya yardımcı olmak için, ilk başlatmadan iOS yazılım güncellemelerine ve üçüncü
parti uygulamalarına kadar her adım analiz edilir ve incelenir.
Güvenli başlatma zinciri
Başlatma işleminin her adımı, bütünlüğü sağlamak için yalnızca güven zinciri doğrulandıktan sonra sürdürülen, Apple tarafından şifreli olarak imzalanmış bileşenler içerir.
Buna başlatma yükleyicileri, çekirdek, çekirdek uzantıları ve ana bant firmware'i dahildir.
Bir iOS aygıtı açıldığında, uygulama işlemcisi anında Boot ROM olarak adlandırılan salt
okunur bellekten kodu çalıştırır. Donanım güven kökü olarak adlandırılan bu değişmez
kod, yonganın üretimi sırasında eklenir ve koda gizli olarak güvenilir. Boot ROM kodu,
Düşük Düzeyli Başlatma Yükleyicisinin (LLB) yüklenmesinden önce Apple tarafından
imzalanmış olduğunu doğrulamak için kullanılan Apple Kök CA açık anahtarını içerir.
Bu, sonraki her adımın Apple tarafından imzalanmış olmasını sağlayan güven zincirinin
ilk adımıdır. LLB görevlerini tamamladığında, sonraki aşamanın başlatma yükleyicisi
olan iBoot'u doğrular ve çalıştırır; iBoot da iOS çekirdeğini doğrular ve çalıştırır.
Bu güvenli başlatma zinciri, yazılımın en düşük düzeylerinin değiştirilmemesini sağlar
ve iOS'in yalnızca doğrulanmış Apple aygıtlarında çalışmasına izin verir.
Hücresel erişime sahip aygıtlarda, ana bant alt sistemi de ana bant işlemcisi tarafından
doğrulanmış anahtarlar ve imzalı yazılımlarla kendi benzer güvenli başlatma işlemini
gerçekleştirir.
A7 veya daha yeni A serisi işlemciye sahip aygıtlarda, Secure Enclave ek işlemcisi de
kendine ait yazılımının Apple tarafından imzalanmış ve doğrulanmış olmasını sağlayan
güvenli bir başlatma işlemi gerçekleştirir.
Bu başlatma işleminin bir adımı yüklenemez veya sonraki işlemi doğrulayamazsa, başlatma durdurulur ve aygıt "iTunes'a Bağlan" ekranını görüntüler. Buna kurtarma modu
adı verilir. Boot ROM LLB'yi yükleyemez veya doğrulayamazsa, DFU (Aygıt Firmware'ini
Yükseltme) moduna geçer. İki durumda da, aygıtın USB ile iTunes'a bağlanması ve saptanmış fabrika ayarlarının geri yüklenmesi gerekir. Kurtarma moduna elle geçiş hakkında daha fazla bilgi için, bkz. https://support.apple.com/tr-tr/HT1808.
iOS Güvenliği—Teknik Makale | Mayıs 2016
5
Sistem Yazılım Yetkilendirmesi
Apple, ortaya çıkan güvenlik sorunlarını gidermek ve yeni özellikler de sunmak için
düzenli olarak yazılım güncellemeleri yayımlar; bu güncellemeler, desteklenen bütün
aygıtlar için aynı anda sağlanır. Kullanıcılar aygıtları ve iTunes aracılığıyla iOS güncelleme bildirimleri alır ve güncellemeler, en yeni güvenlik düzeltmelerinin hızla uygulanmasını sağlamak için kablosuz olarak iletilir.
Yukarıda açıklanan başlatma işlemi, bir aygıta yalnızca Apple imzalı kodun yüklenebilmesini sağlamaya yardımcı olur. Aygıtların en yeni güvenlik güncellemelerini içermeyen önceki sürümlere alçaltılmasını önlemek için, iOS Sistem Yazılım Yetkilendirmesi
adı verilen bir işlemden yararlanır. Alçaltma mümkün olsaydı, bir aygıtı ele geçiren bir
saldırgan, iOS’in daha eski bir sürümünü yükleyerek yeni sürümde düzeltilmiş olan bir
güvenlik açığından yararlanabilirdi.
A7 veya daha yeni bir A serisi işlemciye sahip bir aygıtta, Secure Enclave ek işlemcisi
de yazılımının bütünlüğünü sağlamak ve alçaltma yüklemelerini önlemek için Sistem
Yazılım Yetkilendirmesini kullanır. Aşağıda "Secure Enclave" bölümüne bakın.
iOS yazılım güncellemeleri, aygıtta uzaktan (OTA) veya iTunes kullanılarak yüklenebilir.
iTunes ile, iOS'in tam kopyası indirilir ve yüklenir. OTA yazılım yüklemeleri, OS'un tamamını indirmek yerine ağ verimliliğini iyileştirerek yalnızca güncellemeyi tamamlamak için
gerekli bileşenleri indirir. Buna ek olarak yazılım güncellemeleri, OS X Server’da önbellek
servisini çalıştıran yerel bir ağ sunucusunda önbelleğe alınabilir; böylece iOS aygıtlarının
gerekli güncelleme verilerini almak için Apple sunucularına erişmesi gerekmez.
iOS yükseltmesi sırasında, iTunes (veya OTA yazılım güncellemeleri söz konusuysa aygıtın kendisi) Apple yükleme yetkilendirme sunucusuna bağlanarak yüklenecek yükleme
paketinin her parçası için şifreli ölçümlerin bir listesini (ör. LLB, iBoot, çekirdek ve OS
görüntüsü), rasgele bir yeniden göndermeyi önleme değerini (nonce) ve aygıtın benzersiz kimliğini (ECID) bu sunucuya gönderir.
Yetkilendirme sunucusu gönderilen ölçüm listesini, yüklemeye izin verilen sürümlerinkiyle karşılaştırır ve eşleşme bulursa, ECID'yi ölçüme ekleyerek sonucu imzalar. Sunucu,
yükseltme işleminin parçası olarak eksiksiz imzalanmış veri kümesini aygıta iletir.
ECID'nin eklenmesi, istekte bulunan aygıt için yetkilendirmeyi "kişiselleştirir". Yalnızca
bilinen ölçümlerin yetkilendirilmesi ve imzalanması sayesinde, sunucu güncellemenin
tam olarak Apple tarafından öngörülen şekilde gerçekleştirilmesini sağlar.
Başlatma zamanı güvenlik zinciri değerlendirmesi, imzanın Apple'dan geldiğini ve
diskten yüklenen öğe ölçümüyle birlikte aygıtın ECID'sinin imza kapsamıyla eşleştiğini
doğrular.
Bu adımlar, yetkilendirmenin belirli bir aygıt için olmasını ve bir aygıttaki eski iOS sürümünün başka bir aygıta kopyalanamamasını sağlar. Nonce, bir saldırganın sunucunun
yanıtını kaydedip onu aygıtı veya sistem yazılımını değiştirmek için kullanmasını önler.
iOS Güvenliği—Teknik Makale | Mayıs 2016
6
Secure Enclave
Secure Enclave, Apple A7 veya daha yeni A serisi işlemciye dahil edilmiş bir ek işlemcidir. Şifrelenmiş bellek kullanır ve rasgele sayı oluşturucusu donanımı içerir. Secure
Enclave, Veri Koruma anahtarı yönetimi için tüm şifre işlemlerini sağlar ve çekirdek
tehlikede olsa bile Veri Koruma bütünlüğünü sürdürür. Secure Enclave ile uygulama
işlemcisi arasındaki iletişim, kesilmelerle yönetilen bir posta kutusu ve paylaşılan bellek
veri tamponlarına indirgenmiştir.
Secure Enclave, L4 mikro çekirdek ailesinin Apple tarafından özellştirilmiş bir sürümünü
çalıştırır. Secure Enclave kendi güvenli başlatma işlemini kullanır ve uygulama işlemcisinden ayrı bir kişiselleştirilmiş yazılım güncelleme işlemi kullanılarak güncellenebilir.
Üretim sırasında her Secure Enclave, sistemin diğer parçaları tarafından erişilemeyen ve
Apple tarafından bilinmeyen kendi UID'si (Benzersiz Kimlik) ile hazırlanır. Aygıt başlatıldığında, UID'si ile karıştırılmış kısa ömürlü bir anahtar yaratılır ve bu, Secure Enclave'in
aygıtın belleğinde kapladığı kısmı şifrelemek için kullanılır.
Ayrıca, Secure Enclave tarafından dosya sistemine kaydedilen veriler, UID'yle ve yeniden
göndermeyi önleme sayacıyla karıştırılmış bir anahtarla şifrelenir.
Secure Enclave, Touch ID algılayıcıdan gelen parmak izi verilerini işlemekten ve kayıtlı
parmak izleriyle eşleşme olup olmadığını belirledikten sonra kullanıcı adına erişim veya
satın almaları etkinleştirmekten sorumludur. İşlemciyle Touch ID algılayıcı arasında
iletişim, seri periferik arayüz veri yolu üzerinden gerçekleştirilir. İşlemci, verileri Secure
Enclave'e iletir ancak okuyamaz. Veriler, aygıtın Touch ID algılayıcı ve Secure Enclave için
hazırlanan paylaşılan anahtarını kullanarak iletilen, şifrelenmiş ve kimlik doğrulaması
yapılmış bir oturum anahtarıyla şifrelenmiştir. Oturum anahtarı alışverişinde AES anahtar sarma kullanılır; her iki taraf da oturum anahtarını belirleyen ve AES-CCM aktarım
şifrelemesini kullanan rasgele bir anahtar sağlar.
Touch ID
Touch ID, aygıta daha kolay ve hızlı şekilde güvenli erişim sağlayan parmak izi algılama
sistemidir. Bu teknoloji, parmak izi verilerini herhangi bir açıdan okur; her kullanımda
örtüşen daha fazla düğüm belirlendiğinden parmak izi haritasını genişletmeyi sürdüren
algılayıcı, zaman içinde kullanıcının parmak izi hakkında daha fazla bilgi edinir.
Touch ID ile daha uzun ve karmaşık bir parola kullanmak daha pratiktir çünkü kullanıcıların bu parolayı sık sık aygıta girmesi gerekmez. Touch ID parola tabanlı kilit kullanmanın zorluklarını da ortadan kaldırır; kilidin yerini almaz ancak aygıta makul sınırlar ve
zaman sınırlamaları içinde güvenli erişim sağlar.
Touch ID ve parolalar
Touch ID'yi kullanabilmek için, kullanıcıların aygıtın kilidini açmak için bir parola gerekecek şekilde aygıtlarını ayarlaması gerekir. Touch ID kayıtlı bir parmak izini tarayıp tanıdığında, aygıtın kilidi aygıt parolası istenmeden açılır. Parola her zaman Touch ID yerine
kullanılabilir ve aşağıdaki durumlarda parmak izinin yanında yine de gereklidir:
• Aygıt açıldıktan veya yeniden başlatıldıktan hemen sonra.
• Aygıtın kilidi 48 saatten uzun süredir açılmamışsa.
• Son altı gündür aygıtın kilidini açmak için parola kullanılmamışsa ve son sekiz saattir
Touch ID aygıtın kilidini açmamışsa.
• Aygıt uzaktan kilitleme komutu almışsa.
• Parmak izini eşleştirmeye yönelik beş başarısız girişimden sonra.
• Touch ID ile yeni parmaklar ayarlanırken ya da kaydettirilirken.
iOS Güvenliği—Teknik Makale | Mayıs 2016
7
Touch ID etkinken, Uyut/Uyandır düğmesine basıldığında aygıt anında kilitlenir. Yalnızca
parola güvenliği kullanıldığında, pek çok kullanıcı aygıtın her kullanılışında parola girmemek için kilidi açma vadesi ayarlar. Touch ID kullanıldığında, aygıt uyku durumuna her
geçtiğinde kilitlenir ve her uyanışta parmak izi veya isteğe bağlı olarak parola gerektirir.
Touch ID en fazla beş farklı parmağı tanıyacak şekilde eğitilebilir. Tek bir parmak kaydettirildiğinde, başka birinin parmağıyla rasgele eşleşme olasılığı 50.000'de 1'dir. Ancak,
kullanıcının erişim sağlamak için parola girmesini gerektirmeden önce, Touch ID yalnızca beş başarısız parmak izi eşleştirme girişimine izin verir.
Touch ID'nin diğer kullanım alanları
Touch ID; iTunes Store, App Store ve iBooks Store'dan satın almaları onaylayacak ve
böylece kullanıcıların Apple kimliği parolası girmek zorunda kalmayacağı şekilde de
yapılandırılabilir. Kullanıcı bir satın alma işlemini yetkilendirmeyi seçtiğinde, aygıtla
mağaza arasında kimlik doğrulama jetonları alınıp verilir. Jeton ve şifreli nonce, Secure
Enclave'de saklanır. Nonce, tüm aygıtlar ve iTunes Store tarafından paylaşılan bir Secure
Enclave anahtarıyla imzalanır.
Touch ID, Apple'ın güvenli ödeme uygulaması Apple Pay ile de kullanılabilir. Daha fazla
bilgi için, bu belgenin Apple Pay bölümüne bakın.
Ayrıca, üçüncü parti uygulamaları, sistem tarafından sağlanan API'ları kullanarak kullanıcıdan Touch ID veya parola kullanarak kimlik doğrulamasını isteyebilir. Uygulamaya yalnızca kimlik doğrulamanın başarılı olup olmadığı bildirilir; uygulama Touch ID'ye veya
kayıtlı parmak iziyle ilişkili verilere erişemez.
Anahtar zinciri öğeleri de Touch ID ile korunabilir ve yalnızca parmak izi eşleşmesi veya
aygıt parolasıyla Secure Enclave tarafından gösterilebilir. Uygulama geliştiriciler, kullanıcı tarafından bir parolanın ayarlanmış olduğunu ve dolayısıyla Touch ID kullanılarak
anahtar zinciri öğelerinin kimliğinin doğrulanabileceğini veya kilidinin açılabileceğini
doğrulayan API'lara da sahiptir.
iOS 9 ile geliştiriciler, Touch ID API işlemlerinin uygulama parolası veya aygıt parolasına
başvurmamasını gerekli tutabilir. Kayıtlı parmakların durumunun bir açıklamasını alabilmenin yanı sıra bu, Touch ID'nin güvenlik açısından hassas uygulamalarda ikinci bir
faktör olarak kullanılabilmesini de sağlar.
Touch ID güvenliği
Parmak izi algılayıcı, yalnızca Ana Ekran düğmesinin çevresindeki kapasitif çelik halka
bir parmağın dokunuşunu algılayıp, gelişmiş görüntüleme dizisini parmağı tarayıp
sonra bu taramayı Secure Enclave'e göndermek üzere tetiklediğinde aktif olur.
Görüntü tarama verileri, inceleme için vektörel hale getirilirken Secure Enclave'deki
şifreli bellekte geçici olarak saklanır ve sonra atılır. İnceleme, kullanıcının gerçek parmak
izini yeniden oluşturmak için gerekli olan ayrıntılı verileri atan kayıplı bir işlem olan deri
altı çizgi akış açısı eşleme özelliğini kullanır. Sonuçta ortaya çıkan düğüm haritası, yalnızca Secure Enclave tarafından okunabilen şifreli bir biçimde, hiçbir kimlik bilgisi içermeden saklanır ve asla Apple'a gönderilmez veya iCloud ya da iTunes'da yedeklenmez.
iOS Güvenliği—Teknik Makale | Mayıs 2016
8
Touch ID bir iOS aygıtının kilidini nasıl açar?
Touch ID kapalıysa, aygıt kilitlendiğinde, Secure Enclave'de tutulan Tam Veri Koruma
sınıfına ait anahtarlar atılır. Kullanıcı kendi parolasını girip aygıtın kilidini açana kadar bu
sınıftaki dosyalara ve anahtar zinciri öğelerine erişilemez.
Touch ID açıkken, aygıt kilitlendiğinde anahtarlar atılmaz, bunun yerine Secure Enclave
içinde Touch ID alt sistemine verilen bir anahtara sarılır. Bir kullanıcı aygıtın kilidini
açmaya çalıştığında, Touch ID kullanıcının parmak izini tanırsa Veri Koruma anahtarlarının sarımını açmaya yönelik anahtarı sağlar ve aygıtın kilidi açılır. Bu işlem, Veri Koruma
ve Touch ID alt sistemlerinin aygıtın kilidini açmak üzere birlikte çalışmasını gerektirerek
ek koruma sağlar.
Touch ID'nin aygıtın kilidini açması için gereken anahtarlar, aygıt yeniden başlatılırsa
kaybolur ve 48 saat sonra ya da başarısız beş Touch ID tanıma girişiminin ardından
Secure Enclave tarafından atılır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
9
Şifreleme ve Veri Koruma
Tüm içerikleri ve ayarları sil
Ayarlar'daki "Tüm içerikleri ve ayarları sil"
seçeneği, Temizlenebilir Saklama Alanı'ndaki
tüm anahtarları geçersiz kılar ve aygıttaki
tüm kullanıcı verilerini şifreyle erişilemez
hale getirir. Dolayısıyla, bir aygıtı başkasına
vermeden veya servise iade etmeden önce
tüm kişisel bilgilerin silindiğinden emin
olmak için ideal bir yöntemdir. Önemli: Aygıt
yedeklenmeden "Tüm içerikleri ve ayarları
sil" seçeneğini kullanmayın çünkü silinen
verileri kurtarmanın hiçbir yolu yoktur.
Güvenli başlatma zinciri, kod imzalama ve çalışma zamanı işlem güvenliği hep birlikte
bir aygıtta yalnızca güvenilir kodlar ve uygulamaların çalışabilmesini sağlamaya yardımcı
olur. iOS'in, güvenlik altyapısının diğer bölümleri saldırıya uğradığında bile (örneğin,
yetkisiz değişikliklerin gerçekleştirildiği bir aygıtta) kullanıcı verilerini korumak için ek
şifreleme ve veri koruma özellikleri bulunur. Bu, kişisel ve kurumsal bilgileri her zaman
koruyarak ve aygıt çalındığında ya da kaybolduğunda anında ve tam uzaktan silme yöntemleri sağlayarak, hem kullanıcılara hem de BT yöneticilerine önemli faydalar sağlar.
Donanım güvenlik özellikleri
Mobil aygıtlarda, hız ve güç verimliliği çok önemlidir. Şifreli işlemler karmaşıktır ve bu
öncelikleri göz önüne alarak tasarlanmaz ve uygulanmazsa performans ya da pil ömrü
sorunlarına yol açabilir.
Her iOS aygıtında, flash bellek ile ana sistem belleği arasındaki DMA yoluna yerleşik,
adanmış bir AES 256 şifreleme motoru bulunur ve dosya şifrelemeyi son derece verimli
hale getirir.
Aygıtın benzersiz kimliği (UID) ve aygıt grup kimliği (GID), üretim sırasında uygulama
işlemcisi ve Secure Enclave'le birleştirilen (UID) veya derlenen (GID) AES 256 bit anahtarlardır. Herhangi bir yazılım ya da firmware bunları doğrudan okuyamaz; yalnızca UID
veya GID'yi anahtar olarak kullanarak silikona uygulanmış adanmış AES motorlarının gerçekleştirdiği şifreleme veya şifre çözme işlemlerinin sonuçlarını görebilir. Ayrıca, Secure
Enclave'in UID'si ve GID'si yalnızca Secure Enclave'e adanmış AES motoru tarafından
kullanılabilir. UID'ler her aygıt için benzersizdir ve Apple ya da tedarikçilerinden herhangi
biri tarafından kaydedilmez. GID'ler, bir aygıt sınıfındaki tüm işlemcilerde ortaktır (örneğin, Apple A8 işlemcisini kullanan tüm aygıtlar) ve yükleme ya da geri yükleme sırasında
sistem yazılımını iletme gibi güvenlik açısından çok önemli olmayan görevler için kullanılır. Bu anahtarların silikonla tümleştirilmesi, bunların değiştirilmesini, atlanmasını ya da
AES motoru dışında bunlara erişilmesini engellemeye yardımcı olur. UID ve GID'ler, JTAG
veya diğer hata ayıklama arayüzleri üzerinden de kullanılamaz.
UID, verilerin belirli bir aygıta şifreli olarak bağlanmasına izin verir. Örneğin, dosya sistemini koruyan anahtar hiyerarşisi UID'yi içerir; böylece bellek yongaları fiziksel olarak bir
aygıttan diğerine taşındığında dosyalara erişilemez. UID aygıttaki başka bir tanıtıcıyla
ilişkili değildir.
UID ve GID'nin dışındaki diğer tüm şifreli anahtarlar, sistemin rasgele sayı üreticisi (RNG)
tarafından CTR_DRBG tabanlı bir algoritma kullanılarak yaratılır. Sistem entropisi, başlatma sırasındaki zamanlama farklılıklarından ve ayrıca aygıt başlatıldıktan sonraki kesinti
zamanlamasından oluşturulur. Secure Enclave'de oluşturulan anahtarlar, son işlemesi
CTR_DRBG ile gerçekleştirilen birden çok halka osilatörünü taban alan gerçek donanım
rasgele sayı üreticisini kullanır.
Kaydedilen anahtarların güvenli bir şekilde silinmesi, oluşturulmaları kadar önemlidir.
Aşınma önleme özelliği nedeniyle verilerin birden çok kopyasının silinmesinin gerekebileceği flash belleklerde bunu yapmak özellikle zordur. Bu sorunu çözmek için iOS aygıtları, Temizlenebilir Saklama Alanı adı verilen, güvenli veri silmeye adanmış bir özellik
içerir. Bu özellik, çok düşük bir düzeyde az sayıda bloğu doğrudan ele almak ve silmek
için altta yatan saklama teknolojisine (örn. NAND) erişir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
10
Dosya Verilerini Koruma
iOS aygıtlarına yerleşik donanım şifreleme özelliklerine ek olarak Apple, aygıtta flash bellekte saklanan verileri daha fazla korumak için Veri Koruma adı verilen bir teknoloji kullanır. Veri Koruma, aygıtın gelen telefon aramaları gibi genel etkinliklere yanıt vermesine
izin vermenin yanı sıra, kullanıcı verileri için üst düzeyde şifrelemeyi de sağlar. Mesajlar,
Mail, Takvim, Kişiler, Fotoğraflar ve Sağlık veri değerleri gibi önemli sistem uygulamaları,
Veri Koruma'yı saptanmış olarak kullanır ve iOS 7 veya daha yenisinde yüklü üçüncü
parti uygulamaları bu korumayı otomatik olarak alır.
Veri Koruma bir anahtar hiyerarşisi oluşturarak ve bu hiyerarşiyi yöneterek uygulanır ve
her iOS aygıtında yerleşik donanım şifreleme teknolojilerinden yararlanır. Veri Koruma,
her dosya bir sınıfa atanarak dosya tabanında denetlenir ve erişilebilirlik, sınıf anahtarlarının kilidinin açılıp açılmadığına göre belirlenir.
Mimari genel bilgileri
Veri bölüntüsünde her dosya yaratıldığında, Veri Koruma yeni bir 256 bitlik anahtar
("dosyaya özel" anahtar) yaratır ve bu anahtarı donanım AES motoruna verir; bu motor
da anahtarı, AES CBC düğümü kullanılarak flash belleğe yazılırken dosyayı şifrelemek
için kullanır. (A8 işlemcili aygıtlarda, AES-XTS kullanılır.) Başlatma vektörü (IV), dosyaya
özel anahtarın SHA-1 özetiyle şifrelenen dosyadaki blok ofsetiyle hesaplanır.
Dosyaya özel anahtar, dosyaya erişilebilir olmasını gerektiren koşullara bağlı olarak birçok sınıf anahtarından birine sarılır. Diğer tüm sarımlar gibi bu da RFC 3394'e göre NIST
AES anahtar sarımı kullanarak gerçekleştirilir. Sarılan dosyaya özel anahtar, dosyanın
meta verilerinde saklanır.
Bir dosya açıldığında, dosyanın meta verilerinin şifresi, dosya sistem anahtarıyla çözülür
ve sarılan dosyaya özel anahtarla birlikte bu anahtarı hangi sınıfın koruduğuna ilişkin bir
açıklama gösterilir. Dosyaya özel anahtarın sarımı, sınıf anahtarıyla açılır ve sonra dosyayı
flash bellekten okurken şifresini çözen donanım AES motoruna iletilir. Sarılan dosya
anahtarının işlenmesi tümüyle Secure Enclave'de gerçekleşir ve dosya anahtarı uygulama işlemcisi tarafından asla doğrudan görülmez. Başlatma sırasında Secure Enclave, AES
motoruyla bir kısa ömürlü anahtar kararlaştırır. Secure Enclave dosyanın anahtarlarının
sarımını açtığında, bunlar kısa ömürlü anahtarla tekrar sarılır ve uygulama işlemcisine
geri gönderilir.
Dosya sistemindeki tüm dosyaların meta verileri, iOS ilk kez yüklendiğinde veya aygıt
kullanıcı tarafından silindiğinde yaratılan rasgele anahtarla şifrelenir. Dosya sistem
anahtarı Temizlenebilir Saklama Alanı'nda saklanır. Bu anahtar aygıtta saklandığından,
verilerin gizliliğini sağlamak için kullanılmaz; bunun yerine, istendiğinde (kullanıcı tarafından "Tüm İçerikleri ve Ayarları Sil" seçeneği kullanılarak ya da bir mobil aygıt yönetimi
(MDM) sunucusundan, Exchange ActiveSync'ten ya da iCloud'dan bir uzaktan silme
komutu veren bir kullanıcı ya da yönetici tarafından) hızla silinecek şekilde tasarlanmıştır. Anahtarın bu şekilde silinmesi, tüm dosyaları şifreyle erişilemez hale getirir.
Dosya Sistem
Anahtarı
Donanım
Anahtarı
Sınıf Anahtarı
Parola Anahtarı
iOS Güvenliği—Teknik Makale | Mayıs 2016
Dosya Meta Verileri
Dosya Anahtarı
Dosya İçerikleri
11
Bir dosyanın içeriği dosyaya özel anahtarla şifrelenir; bu anahtar bir sınıf anahtarına
sarılmıştır ve dosyanın meta verilerinde saklanır; meta veriler de dosya sistem anahtarıyla şifrelenmiştir. Sınıf anahtarı, donanım UID'siyle ve bazı sınıflar için kullanıcı
parolasıyla korunur. Bu hiyerarşi hem esneklik hem de performans sağlar. Örneğin, bir
dosyanın sınıfının değiştirilmesi için yalnızca dosyaya özel anahtarının yeniden sarılması
gerekir; parola değişikliği de sınıf anahtarını yeniden sarar.
Parolalar
Parolayla ilgili dikkat edilmesi gereken
noktalar
Yalnızca sayı içeren uzun bir parola girildiyse, Kilitli ekranda tam klavye yerine
sayısal klavye görüntülenir. Uzun sayısal
bir parolanın girilmesi, kısa alfasayısal bir
parolaya göre daha kolay olabilir ve ikisi
de aynı güvenliği sağlar.
Kullanıcı bir aygıt parolası ayarladığında otomatik olarak Veri Koruma'yı etkinleştirir. iOS
altı basamaklı, dört basamaklı ve isteğe bağlı uzunlukta alfasayısal parolaları destekler.
Aygıtın kilidini açmanın yanı sıra, parola belirli şifreleme anahtarları için entropi sağlar.
Böylelikle aygıtı ele geçiren bir saldırgan, parola olmaksızın belirli koruma sınıflarındaki
verilere erişemez.
Parola, aygıtın UID'siyle karıştırılmıştır, dolayısıyla saldırıya uğrayan aygıtta zorlama girişimlerinin gerçekleştirilmesi gerekir. Her girişimi yavaşlatmak için büyük bir yineleme
sayısı kullanılır. Yineleme sayısı, bir girişimin yaklaşık 80 milisaniye sürmesini sağlayacak
şekilde ayarlanmıştır. Dolayısıyla, küçük harfler ve sayılardan oluşan altı karakterli alfasayısal bir parolanın tüm kombinasyonlarını denemek, 5,5 yıldan fazla sürer.
Kullanıcı parolası ne kadar güçlüyse, şifreleme anahtarı da o kadar güçlü olur.
Kullanıcının normalde pratik olmayacak çok daha güçlü bir parola belirlemesini sağlayarak bu denklemi geliştirmek için Touch ID kullanılabilir. Bu, Veri Koruma için kullanılan
şifreleme anahtarlarını koruyan etkin entropi miktarını artırır ve kullanıcının gün içinde
defalarca iOS aygıtının kilidini açma deneyimini olumsuz etkilemez.
Parola girişimleri arasındaki gecikme
süreleri
Girişim
Uygulanan Gecikme
1-4
yok
5
1 dakika
6
5 dakika
7-8
15 dakika
9
1 saat
Zorla parola saldırılarını daha da fazla güçleştirmek için, Kilitli ekranda geçersiz parola girişinden sonra gecikme süreleri gittikçe artar. Ayarlar > Touch ID ve Parola >
Verileri Sil açıksa, art arda 10 yanlış parola girme denemesinden sonra aygıt otomatik
olarak silinir. Bu ayar, mobil aygıt yönetimi (MDM) ve Exchange ActiveSync ile yönetici
politikası olarak da kullanılabilir ve daha düşük bir eşiğe ayarlanabilir.
A7 veya daha yeni A serisi işlemciye sahip aygıtlarda, gecikmeler Secure Enclave tarafından uygulanır. Aygıt zamanlanmış bir gecikme sırasında yeniden başlatılsa bile sayaç
geçerli süre için baştan başlatılır ve gecikme uygulanır.
Veri Koruma sınıfları
Bir iOS aygıtında yeni bir dosya yaratıldığında, dosyayı yaratan uygulama dosyaya bir
sınıf atar. Her sınıf, verilerin erişilebilir olup olmadığını belirlemek için farklı politikalar
kullanır. Temel sınıflar ve politikalar, sonraki bölümlerde açıklanmıştır.
Tam Koruma
(NSFileProtectionComplete): Sınıf anahtarı, kullanıcı parolasından ve aygıt
UID'sinden türetilen bir anahtarla korunur. Kullanıcı aygıtı kilitledikten kısa bir süre
sonra (Parola Gereksin ayarı Hemen olarak ayarlanmışsa 10 saniye), şifresi çözülmüş sınıf
anahtarı atılır ve kullanıcı parolayı tekrar girene ya da Touch ID kullanarak aygıtın kilidini açana kadar bu sınıftaki hiçbir veriye erişilemez.
Açık Olmadığı Sürece Korumalı
(NSFileProtectionCompleteUnlessOpen): Bazı dosyaların, aygıt kilitliyken
yazılması gerekebilir. Bunun iyi bir örneği, arka planda indirilen bir e-posta ilişiğidir.
Bu davranış, asimetrik eliptik eğri şifreleme (Curve25519 üzeri ECDH) kullanılarak sağlanır. Normal dosyaya özel anahtar, NIST SP 800-56A'da belirtilen şekilde Tek Geçişli DiffieHellman Anahtar Anlaşması kullanılarak elde edilen bir anahtarla korunur.
iOS Güvenliği—Teknik Makale | Mayıs 2016
12
Anlaşmaya yönelik kısa ömürlü açık anahtar, sarılan dosyaya özel anahtarla birlikte saklanır. KDF, Ardışık Anahtar Türetme Fonksiyonudur (Onaylı Alternatif 1) (NIST
SP 800-56A 5.8.1 maddesinde belirtildiği şekilde). AlgorithmID atlanır. PartyUInfo ve
PartyVInfo, sırasıyla kısa ömürlü ve statik açık anahtardır. Özetleme fonksiyonu olarak
SHA-256 kullanılır. Dosya kapatılır kapatılmaz, dosyaya özel anahtar bellekten silinir.
Dosyayı yeniden açmak için, dosyaya özel anahtarın paketini açmak ve daha sonra dosyanın şifresini çözmek için kullanılan Açık Olmadığı Sürece Korumalı sınıfının özel anahtarı ve dosyanın kısa ömürlü açık anahtarı kullanılarak paylaşılan sır yeniden yaratılır.
İlk Kullanıcı Kimlik Doğrulamasına Kadar Korumalı
(NSFileProtectionCompleteUntilFirstUserAuthentication): Bu sınıf
Tam Koruma sınıfı gibi davranır, ancak şifresi çözülmüş sınıf anahtarı, aygıt kilitlendiğinde
bellekten silinmez. Bu sınıftaki korumanın masaüstü tüm birimi şifreleme sınıfına benzer
özellikleri vardır ve yeniden başlatmayla ilişkili saldırılardan verileri korur. Bu, bir Veri
Koruma sınıfına atanmamış tüm üçüncü parti uygulama verileri için saptanmış sınıftır.
Koruma Yok
(NSFileProtectionNone): Bu sınıf anahtarı, yalnızca UID ile korunur ve
Temizlenebilir Saklama Alanı'nda tutulur. Bu sınıftaki dosyaların şifresini çözmek için
gereken tüm anahtarlar aygıtta saklandığından, bu şifreleme yalnızca hızlı uzaktan
silme faydası sağlar. Bir dosyaya Veri Koruma sınıfı atanmamışsa bile şifreli biçimde
saklanır (iOS aygıtındaki tüm veriler gibi).
Anahtar Zinciri Verilerini Koruma
Pek çok uygulamanın parolalar ve anahtarlar ya da oturum açma jetonları gibi diğer
kısa ama hassas veri parçacıklarını işlemesi gerekir. iOS anahtar zinciri, bu öğeleri saklamak için güvenli bir yöntem sunar.
Anahtar zinciri, dosya sisteminde saklanan bir SQLite veritabanı olarak uygulanır.
Yalnızca bir veritabanı bulunur; her işlem veya uygulamanın hangi anahtar zinciri öğelerine erişebileceğini securityd arka plan yordamı belirler. Anahtar zinciri erişim API'ları,
arka plan yordamına çağrı yapar ve o da uygulamanın “keychain-access-groups,” “application-identifier,” ve “application-group” yetki anahtarlarını sorgular. Tek bir işleme erişimi sınırlandırmak yerine, erişim grupları anahtar zinciri öğelerinin uygulamalar arasında
paylaşılmasına izin verir.
Anahtar zinciri öğeleri yalnızca aynı geliştiriciye ait uygulamalar arasında paylaşılabilir.
Bu, üçüncü parti uygulamaların kendilerine Apple Geliştirici Programı tarafından uygulama grupları yoluyla ayrılmış bir ön ekle erişim gruplarını kullanmasını zorunlu tutarak
yönetilir. Ön ek gereksinimi ve uygulama grubunun benzersizliği; kod imzalama, Hazırlık
Profilleri ve Apple Geliştirici Programı aracılığıyla uygulanır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
13
Anahtar zinciri öğesinin bileşenleri
Erişim grubuyla birlikte, her anahtar zinciri
öğesi, yönetim meta verilerini (örneğin "yaratılış tarihi" veya "son güncelleme" zaman
damgalarını) içerir.
Ayrıca her bir öğenin şifresini çözmeden
öğenin aranmasına izin vermek için, öğeyi
sorgulamada kullanılan özelliklerin (hesap ve
sunucu adı gibi) SHA-1 özetlerini içerir. Son
olarak, aşağıdakilerin bulunduğu şifreleme
verilerini içerir:
• Sürüm numarası
• Erişim denetim listesi (ACL) verileri
• Öğenin hangi koruma sınıfında olduğunu
gösteren değer
• Koruma sınıfı anahtarıyla sarılmış öğe için
anahtar
• İkili bir özellik listesi olarak kodlanmış ve
öğe için anahtarla şifrelenmiş şekilde
öğeyi açıklayan özellikleri içeren sözlükçe
(SecItemAdd'e iletilen şekilde)
Şifreleme, GCM'de (Galois/Counter Modu) AES
128'dir; erişim grubu özelliklere eklidir ve şifreleme sırasında hesaplanan GMAC etiketiyle
korunur.
Anahtar zinciri verileri, dosya Veri Koruma'da kullanılana benzer bir sınıf yapısı kullanılarak korunur. Bu sınıfların davranışları, dosya Veri Koruma sınıflarınınkine eşdeğerdir,
ancak bu sınıflar ayrı anahtarlar kullanır ve farklı adlandırılmış API'ların parçasıdır.
Kullanılabilirlik
Dosya Verilerini Koruma
Anahtar Zinciri Verilerini Koruma
Kilitli değilken
NSFileProtectionComplete
kSecAttrAccessibleWhenUnlocked
Kilitliyken
NSFileProtectionCompleteUnlessOpen
Yok
İlk kilit açma
işleminden
sonra
NSFileProtectionCompleteUntilFirstUserAuthentication
kSecAttrAccessibleAfterFirstUnlock
Her Zaman
NSFileProtectionNone
kSecAttrAccessibleAlways
Parola etkin
Yok
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly
Arka planda yenileme servislerini kullanan uygulamalar, arka plan güncellemeleri
sırasında erişilmesi gereken anahtar zinciri öğeleri için
kSecAttrAccessibleAfterFirstUnlock kullanabilir.
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly sınıfı,
kSecAttrAccessibleWhenUnlocked ile aynı şekilde davranır, ancak yalnızca aygıt parolayla yapılandırıldığı zaman kullanılabilir. Bu sınıf yalnızca sistem anahtar çantasında
vardır ve iCloud Anahtar Zinciri ile eşzamanlanmaz, yedeklenmez ve emanet anahtar
çantalarına dahil edilmez. Parola silinir veya sıfırlanırsa, sınıf anahtarları atılarak öğeler
kullanılamaz hale getirilir.
Diğer anahtar zinciri sınıflarında, yedekleme sırasında aygıttan kopyalanırken her
zaman UID ile korunan ve farklı bir aygıta geri yüklendiği takdirde onu kullanılamaz
hale getiren "Yalnızca bu aygıt" karşılığı bulunur.
Apple, güvence altına alınan bilgi türüne ve iOS tarafından gereksinim duyulmasına
bağlı olan anahtar zinciri sınıfları seçerek güvenlikle kullanılabilirliği dikkatle dengelemiştir. Örneğin, bir VPN sertifikası aygıtın sürekli bağlantıyı koruyabilmesi için her
zaman kullanılabilir olmalıdır; ancak "aktarılamaz" olarak sınıflandırıldığından başka bir
aygıta taşınamaz.
iOS tarafından yaratılan anahtar zincirleri için, aşağıdaki sınıf korumaları uygulanır:
Öğe
Erişilebilir
Wi-Fi parolaları
İlk kilit açma işleminden sonra
Mail hesapları
İlk kilit açma işleminden sonra
Exchange hesapları
İlk kilit açma işleminden sonra
VPN parolaları
İlk kilit açma işleminden sonra
LDAP, CalDAV, CardDAV
İlk kilit açma işleminden sonra
Sosyal ağ hesabı jetonları
İlk kilit açma işleminden sonra
Handoff duyuru şifreleme anahtarları
İlk kilit açma işleminden sonra
iCloud jetonu
İlk kilit açma işleminden sonra
Ev paylaşımı parolası
Kilitli değilken
iPhone'umu Bul jetonu
Her Zaman
Sesli Mesaj
Her Zaman
iTunes yedeği
Kilitli değilken, aktarılamaz
Safari parolaları
Kilitli değilken
Safari yer imleri
Kilitli değilken
VPN sertifikaları
Her zaman, aktarılamaz
Bluetooth® anahtarları
Her zaman, aktarılamaz
iOS Güvenliği—Teknik Makale | Mayıs 2016
14
Apple Anında İletme Bildirim servisi jetonu
Her zaman, aktarılamaz
iCloud sertifikaları ve özel anahtar
Her zaman, aktarılamaz
iMessage anahtarları
Her zaman, aktarılamaz
Konfigürasyon Profili tarafından yüklenen sertifikalar ve özel
anahtarlar
Her zaman, aktarılamaz
SIM PIN
Her zaman, aktarılamaz
Anahtar zincirine erişim denetimi
Anahtar zincirleri, erişilebilirlik ve kimlik doğrulama gereksinimlerine yönelik politikaları
ayarlamak için erişim denetim listelerini (ACL) kullanabilir. Öğeler, kendilerine Touch ID
kullanarak kimlik doğrulaması yapılmadan veya aygıtın parolası girilmeden erişilemeyeceğini belirterek, kullanıcı varlığını gerektiren koşullar belirleyebilir. Öğelere erişim, öğe
eklendikten sonra Touch ID kaydının değişmediği belirtilerek de sınırlanabilir. Bu sınırlama, bir saldırganın anahtar zinciri öğesine erişmek için kendi parmak izini eklemesini
önlemeye yardımcı olur. ACL’ler Secure Enclave içinde değerlendirilir ve yalnızca belirtilen
sınırlamalara uyuluyorsa çekirdeğe verilir.
Safari tarafından kaydedilen parolalara erişim
iOS uygulamaları, aşağıdaki iki API'yı kullanarak Safari tarafından otomatik parola doldurma yoluyla kaydedilen anahtar zinciri öğeleriyle etkileşime girebilir:
• SecRequestSharedWebCredential
• SecAddSharedWebCredential
Ancak hem uygulama geliştirici hem de web sitesi yöneticisi onaylamışsa ve de kullanıcı
onay vermişse erişim izni verilir. Uygulama geliştiriciler, uygulamalarına bir yetki anahtarı
ekleyerek Safari tarafından kaydedilen parolalara erişmek istediklerini ifade eder. Yetki
anahtarında, ilişkili web sitelerinin koşulları tam olarak karşılayan alan adları listelenir.
Web siteleri, sunucularına onayladıkları uygulamaların benzersiz uygulama tanıtıcılarını
listeleyen bir dosya eklemelidir. com.apple.developer.associated-domains yetki anahtarına sahip bir uygulama yüklendiğinde, iOS listedeki her web sitesine bir TLS isteği
göndererek file/apple-app-site-association ister. Dosyadaki liste, yüklenen uygulamanın
uygulama tanıtıcısını içeriyorsa, iOS web sitesini ve uygulamayı güvenli ilişki olarak işaretler. Yalnızca güvenli ilişki olduğunda bu iki API'a yapılan çağrılar kullanıcıya istek gönderilmesiyle sonuçlanır; herhangi bir parola uygulamaya bildirilmeden, güncellenmeden ya
da silinmeden önce kullanıcının kabul etmesi gerekir.
Anahtar çantaları
Dosya ve anahtar zinciri Veri Koruma sınıflarındaki anahtarlar, anahtar çantalarında toplanır ve yönetilir. iOS şu beş anahtar çantasını kullanır: kullanıcı, aygıt, yedekleme, emanet
ve iCloud Yedekleme.
Kullanıcı anahtar çantası, aygıtın normal işleyişinde kullanılan paketlenmiş sınıf anahtarlarının saklandığı yerdir. Örneğin bir parola girildiğinde, NSFileProtectionComplete
anahtarı sistem anahtar çantasından yüklenir ve sarımı açılır. Koruma Yok sınıfında saklanan
ikili bir özellik listesidir, ancak içeriği Temizlenebilir Saklama Alanı'nda tutulan bir anahtarla şifrelenir. Anahtar çantalarına daha fazla güvenlik sağlamak için, kullanıcı parolasını
her değiştirdiğinde bu anahtar silinir ve yeniden oluşturulur. AppleKeyStore çekirdek
genişletmesi, kullanıcı anahtar çantasını yönetir ve aygıtın kilit durumuna ilişkin olarak sorgulanabilir. Yalnızca kullanıcı anahtar çantasındaki tüm sınıf anahtarlarına erişilebiliyorsa ve
bu anahtarların paketi başarılı bir şekilde açılırsa aygıtın kilidinin açıldığını bildirir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
15
Aygıt anahtar çantası, aygıta özel verileri ilgilendiren işlemler için kullanılan paketlenmiş
sınıf anahtarlarını saklamak için kullanılır. Paylaşılan kullanım için ayarlanmış iOS aygıtlarının kimi zaman kullanıcılar oturum açmadan önce kimlik bilgilerine erişmesi gerekir;
bunun için kullanıcı parolasıyla korunmayan bir anahtar çantası gerekir. iOS, kullanıcıya
özel dosya sistemi içeriğinin şifreli ayrılmasını desteklemez; bu durumda sistem dosyaya
özel anahtarları paketlemek için aygıt anahtar çantasındaki sınıf anahtarlarını kullanır.
Buna rağmen anahtar zinciri, kullanıcı anahtar zincirindeki öğeleri korumak için kullanıcı
anahtar çantasındaki sınıf anahtarlarını kullanır. Tek bir kullanıcı tarafından kullanılmak
üzere ayarlanmış iOS aygıtlarında (saptanmış konfigürasyon), aygıt anahtar çantası ve
kullanıcı anahtar çantası aynıdır ve kullanıcı parolasıyla korunur.
Yedekleme anahtar çantası, iTunes tarafından şifreli bir yedekleme oluşturulup aygıtın
yedeklendiği bilgisayarda saklandığında yaratılır. Yeni bir anahtar kümesi içeren yeni bir
anahtar çantası yaratılır ve yedeklenen veriler bu yeni anahtarlarla yeniden şifrelenir.
Daha önce açıklandığı gibi, aktarılamayan anahtar zinciri öğeleri UID'den türetilen anahtara sarılı kalır ve böylece özgün olarak yedeklendikleri aygıta geri yüklenmelerine izin
verilirken farklı bir aygıtta erişilemez hale gelmeleri sağlanır.
Anahtar çantası, iTunes'da ayarlanan ve 10.000 yinelemeli PBKDF2 fonksiyonu uygulanan
parolayla korunur. Bu büyük yineleme sayısına karşın, belirli bir aygıtla bağlantı olmadığından, teorik olarak yedekleme anahtar çantasına pek çok bilgisayarda paralel olarak
gerçekleştirilen bir zorla saldırı düzenlenebilir. Bu tehdit yeterince güçlü bir parolayla
azaltılabilir.
Kullanıcı iTunes yedeklemesini şifrelememeyi tercih ederse, Veri Koruma sınıfları ne olursa
olsun yedekleme dosyaları şifrelenmez, ancak anahtar zinciri UID'den türetilen bir anahtarla korunmayı sürdürür. Bu nedenle, ancak yedekleme parolası ayarlanmışsa anahtar
zinciri öğeleri yeni bir aygıta aktarılır.
Emanet anahtar çantası, iTunes eşzamanlaması ve MDM için kullanılır. Bu anahtar çantası, kullanıcının parola girmesini gerektirmeden iTunes'un yedekleme yapmasına ve MDM
sunucusunun bir kullanıcının parolasını uzaktan silmesine izin verir. iTunes ile eşzamanlama için kullanılan bilgisayarda ya da aygıtı yöneten MDM sunucusunda saklanır.
Emanet anahtar çantası, potansiyel olarak tüm veri sınıflarına erişimi gerektiren aygıt
eşzamanlaması sırasında kullanıcı deneyimini iyileştirir. Parolayla kilitlenmiş bir aygıt
iTunes'a ilk kez bağlandığında, kullanıcının parola girmesi istenir. Aygıt daha sonra aygıtta kullanılan sınıf anahtarlarının aynısını içeren ve yeni oluşturulan bir anahtarla korunan
bir emanet anahtar çantası yaratır. Emanet anahtar çantası ve bunu koruyan anahtar,
aygıtla ana bilgisayar ya da sunucu arasında bölünür; aygıttaki veriler İlk Kullanıcı Kimlik
Doğrulamasına Kadar Korumalı sınıfında saklanır. Bu nedenle kullanıcı yeniden başlatmadan sonra ilk kez iTunes ile yedekleme yapmadan önce aygıt parolasının girilmesi gerekir.
OTA yazılım güncellemesi durumunda, güncelleme başlatılırken kullanıcının parolasını
girmesi istenir. Bu parola güvenli olarak Tek Kullanımlık Kilit Açma Jetonu yaratmak için
kullanılır ve güncellemeden sonra kullanıcı anahtar çantasının kilidi bununla açılır. Bu
jeton, kullanıcı parolası girilmeden oluşturulamaz ve kullanıcı parolası değiştiği takdirde
önceden oluşturulan jetonlar geçersiz kılınır.
Tek Kullanımlık Kilit Açma Jetonları, katılımlı veya katılımsız yazılım güncelleme yüklemesine yöneliktir. Secure Enclave'deki tekdüze sayacın geçerli değerinden, anahtar çantasının UUID'sinden ve Secure Enclave'in UID'sinden türetilen bir anahtarla şifrelenirler.
Secure Enclave’de Tek Kullanımlık Kilit Açma Jetonu sayacının artırılması, var olan jetonları geçersiz kılar. Sayaç; bir jeton kullanıldığında, yeniden başlatılan aygıtın kilidi ilk kez
açıldığında, yazılım güncellemeden vazgeçildiğinde (kullanıcı veya sistem tarafından) ya
da jetonun politika sayacının süresi dolduğunda artırılır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
16
Katılımlı yazılım güncellemelerine yönelik Tek Kullanımlık Kilit Açma Jetonu'nun süresi 20 dakika sonra dolar. Bu jeton, Secure Enclave'den dışa aktarılır ve temizlenebilir
saklama alanına yazılır. Aygıt 20 dakika içinde yeniden başlatılmamışsa politika sayacı
jetonun sayacını artırır.
Kullanıcının güncelleme bildirildiğinde "Daha Sonra Yükle"yi seçmesiyle ayarlanan
katılımsız yazılım güncellemelerinde, uygulama işlemcisi Tek Kullanımlık Kilit Açma
Jetonu'nun Secure Enclave'de en fazla 8 saat etkin kalmasını sağlayabilir. Bu sürenin
sonunda, politika sayacı jeton sayacını artırır.
iCloud Yedekleme anahtar çantası, yedekleme anahtar çantasına benzer. Bu anahtar
çantasındaki tüm sınıf anahtarları asimetriktir (Açık Olmadığı Sürece Korumalı Veri
Koruma sınıfı gibi Curve25519 kullanılır), böylece iCloud yedeklemeleri arka planda gerçekleştirilebilir. Koruma Yok dışındaki tüm Veri Koruma sınıfları için, şifreli veriler aygıttan
okunup iCloud'a gönderilir. İlgili sınıf anahtarları, iCloud anahtarlarıyla korunur. Anahtar
zinciri sınıf anahtarları, şifrelenmemiş iTunes yedeklemesinde olduğu gibi UID'den türetilen bir anahtara sarılır. iCloud Anahtar Zinciri'nin anahtar zinciri kurtarma özelliğinde
de yedekleme için asimetrik bir anahtar çantası kullanılır.
Güvenlik Sertifikaları ve programları
Not: iOS güvenlik sertifikaları, doğrulamaları ve kılavuzları ile ilgili en son bilgiler için,
support.apple.com/tr-tr/HT202739 adresine bakın.
Şifre Doğrulama (FIPS 140-2)
iOS'teki şifre modüllerinin ABD Federal Bilgi İşleme Standartları (FIPS) 140-2 Düzey 1
ile uyumluluğu iOS 6'dan itibaren her sürümden sonra doğrulanmıştır. iOS 9'daki şifre
modülleri, iOS 8'dekilerle aynı olmakla birlikte, her sürümde olduğu gibi Apple modülleri yeniden doğrulama için göndermektedir. Bu program, Apple uygulamaları ve iOS şifre
servislerini düzgün şekilde kullanan üçüncü parti uygulamaları için şifre işlemlerinin
bütünlüğünü doğrular.
Ortak Kriterler Sertifikası (ISO 15408)
Apple Ortak Kriterler Sertifika (CCC) programı kapsamında iOS sertifikası için çalışmaya
başlamıştır. Tamamlanan ilk iki sertifika; Mobil Aygıt Temel Koruma Profili 2.0’a
(MDFPP2) karşılık iOS 9 için VID10695 ve VPN IPSecPP1.4 İstemci Koruma Profili’ne
(VPNIPSecPP1.4) karşılık VID10714’dür. Yerleşik MDM protokolü için MDM Aracısı EP 2.0
Koruma Profili’ne (MDMAgentEP2) karşılık bir Active sertifikası yakında tamamlanacaktır. Apple, Uluslararası Teknik Toplulukta (ITC), önemli mobil güvenlik teknolojisinin
değerlendirilmesine odaklanan ve şu anda kullanılamayan Koruma Profillerinin (PP)
geliştirilmesinde etkin bir rol üstlenmiştir. Apple bugün kullanılabilen yeni ve güncel PP
sürümlerine uygun sertifikaları değerlendirmeyi ve hedeflemeyi sürdürmektedir.
Gizli Bilgiler için Ticari Çözümler (CSfC)
Uygulanabilir olduğunda, Apple iOS platformunun ve çeşitli servislerin Gizli Bilgiler için
Ticari Çözümler (CSfC) Programı Bileşen Listesi'ne dahil olması için de başvurmuştur.
Özellikle Mobil Platform için iOS ve IPSec VPN İstemcisi (IKEv2 yalnızca Her Zaman Açık
VPN) için IKEv2 istemcisi bunlara dahildir. Apple platformları ve servisleri Ortak Kriterler
Sertifikaları için değerlendirilirken CSfC Program Bileşeni Listesi’ne dahil edilmeleri için
de gönderilecektir.
Güvenlik Konfigürasyon Kılavuzları
Apple "aygıt güçlendirme" olarak da bilinen daha güvenli bir ortam sağlamaya yönelik
yönergeler ve öneriler sağlayan kılavuzların geliştirilmesi için dünyanın her yerindeki
hükümetlerle iş birliği yapmıştır. bu kılavuzlar, gelişmiş koruma için iOS özelliklerinin nasıl
yapılandırılacağı ve kullanılacağı hakkında tanımlanmış ve incelenmiş bilgiler sunar.
iOS Güvenliği—Teknik Makale | Mayıs 2016
17
Uygulama Güvenliği
Uygulamalar, modern mobil güvenlik mimarisinin en önemli öğelerindendir. Uygulamalar
kullanıcılara verimlilik açısından mükemmel faydalar sağlarken, doğru şekilde kullanılmazlarsa sistem güvenliği, kararlılığı ve kullanıcı verilerini olumsuz etkileme potansiyeline de
sahiptir.
Bu nedenle, iOS uygulamaların imzalanmasını, doğrulanmasını ve kullanıcı verilerini
korumak üzere korumalı hale getirilmesini sağlamak için koruma katmanları sunar. Bu
öğeler uygulamalar için kararlı, güvenli bir platform sunarak geliştiricilerin iOS'te sistem
bütünlüğünü etkilemeden yüz binlerce uygulama sunmalarına olanak verir. Kullanıcılar
da virüsler, kötü amaçlı yazılımlar ya da yetkisiz saldırılardan gereksiz yere korkmadan
iOS aygıtlarında bu uygulamalara erişebilir.
Uygulama kodu imzalama
iOS çekirdeği başladıktan sonra, hangi kullanıcı işlemleri ve uygulamaların çalıştırılabileceğini denetler. Tüm uygulamaların bilinen ve onaylı bir kaynaktan gelmesini ve değiştirilmemiş olmasını sağlamak için, iOS yürütülebilir kodların tümünün Apple tarafından
sağlanan bir sertifikayla imzalanmasını gerektirir. Mail ve Safari gibi aygıtla birlikte gelen
uygulamalar Apple tarafından imzalanmıştır. Üçüncü parti uygulamalarının da Apple
tarafından sağlanan bir sertifika kullanılarak doğrulanmış ve imzalanmış olması gerekir.
Zorunlu kod imzalama, güven zinciri kavramını işletim sisteminden uygulamalara kadar
genişletir ve üçüncü parti uygulamalarının imzasız kod kaynakları yüklemesini veya
kendi kendini değiştiren kodlar kullanmasını önler.
iOS aygıtlarında uygulama geliştirmek ve yüklemek için, geliştiricilerin Apple’a kaydolması ve Apple Geliştirici Programı’na katılması gerekir. İster birey ister işletme olsun, her
geliştiricinin gerçek dünyadaki kimliği sertifika verilmeden önce Apple tarafından doğrulanır. Bu sertifika geliştiricilerin uygulamaları imzalamasını ve dağıtım için App Store'a
göndermesini sağlar. Sonuçta, App Store'daki tüm uygulamalar kimliği belirlenebilir
bir kişi veya kuruluş tarafından gönderilmiş olur ve bu da kötü amaçlı uygulamaların
yaratılmasında caydırıcı rol oynar. Ayrıca, açıklandığı gibi çalıştıklarından ve bariz hatalar
veya başka sorunlar içermediklerinden emin olmak için Apple tarafından da incelenir.
Burada açıklanan teknolojiye ek olarak, bu iyileştirme işlemi, müşterilerin satın aldıkları
uygulamanın kalitesine güvenmelerini sağlar.
iOS, geliştiricilerin uygulamalarının içine uygulamalar veya uygulamaya yerleşik uzantılar tarafından kullanılabilen yazılım çerçeveleri yerleştirmelerine izin verir. Sistemi ve
diğer uygulamaları adres alanlarının içine üçüncü parti kodlarının yüklenmesinden
korumak için, sistem bir işlemin başlatma zamanında bağlantı kurduğu dinamik kitaplıkların kod imzasını doğrular. Bu doğrulama, Apple tarafından sağlanan sertifikadan
seçilip çıkarılan takım tanıtıcısı (Takım Kimliği) aracılığıyla gerçekleştirilir. Takım tanıtıcısı,
10 karakterden oluşan alfasayısal bir dizedir; örneğin, 1A2B3C4D5F. Bir program, sistemle birlikte gelen herhangi bir platform kitaplığıyla veya kod imzasında ana çalıştırılabilir
öğeyle aynı takım tanıtıcısına sahip olan bir kitaplıkla bağlantı kurabilir. Sistemin parçası
olarak gelen çalıştırılabilir öğelerin takım tanıtıcısı olmadığından, bunlar yalnızca sistemin kendisiyle birlikte gelen kitaplıklarla bağlantı kurabilir.
İşletmelerin kendi kuruluşlarında kullanıma yönelik kurum içi uygulamalar yazma ve
bunları çalışanlarına dağıtma olanağı da bulunur. İşletmeler ve kuruluşlar, bir D-UN-S numarasıyla Apple Kurumsal Geliştirici Programı'na (ADEP) başvurabilir. Apple,
iOS Güvenliği—Teknik Makale | Mayıs 2016
18
başvuranların kimliğini ve uygunluğunu doğruladıktan sonra başvuruları onaylar. Bir
kuruluş ADEP üyesi olduktan sonra, yetkilendirdiği aygıtlarda kurum içi uygulamaların
çalıştırılmasına izin veren bir Hazırlık Profili almak için kayıt olabilir. Kullanıcıların kurum
içi uygulamaları çalıştırabilmesi için Hazırlık Profilini yüklemiş olmaları gerekir. Böylece
kuruluşun hedeflediği kullanıcıların uygulamaları kendi iOS aygıtlarına yüklemesi sağlanır. MDM aracılığıyla yüklenen uygulamalara, kuruluşla aygıt arasındaki ilişki zaten
kurulduğundan gizli olarak güvenilir. Aksi takdirde, kullanıcıların uygulamanın Hazırlık
Profilini Ayarlar'da onaylaması gerekir. Kuruluşlar, kullanıcıların bilinmeyen geliştiricilere
ait uygulamaları onaylamasını sınırlayabilir. Herhangi bir kurumsal uygulama ilk kez
başlatılırken, aygıtın Apple'dan uygulamanın çalışmasına izin verildiğine dair olumlu
onay alması gerekir.
Diğer mobil platformların aksine iOS, kullanıcıların web sitelerinden potansiyel olarak
kötü amaçlı, imzasız uygulamalar yüklemesine veya güvenilmeyen kodları çalıştırmasına
izin vermez. Çalışma süresinde, uygulamanın yüklendikten veya son güncellemeden
sonra değiştirilmediğinden emin olmak için, çalıştırılabilir bellek sayfalarının tümünde
sayfaların yüklenmesi sırasında kod imza denetimleri gerçekleştirilir.
Çalışma zamanı işlem güvenliği
Bir uygulamanın onaylı bir kaynaktan geldiği doğrulandıktan sonra, iOS, bu uygulamanın diğer uygulamaları ya da sistemin geri kalanını tehlikeye atmasını önlemek üzere
tasarlanmış güvenlik önlemleri uygular.
Tüm üçüncü parti uygulamaları, diğer uygulamalar tarafından saklanan dosyalara
erişimlerini veya aygıtta değişiklik yapmalarını sınırlamak için "korumalı" hale getirilir.
Böylece, uygulamaların diğer uygulamalar tarafından saklanan bilgileri toplaması veya
değiştirmesi engellenir. Her uygulamanın dosyaları için benzersiz bir ana dizini bulunur
ve bu ana dizin uygulama yüklendiğinde rasgele atanır. Bir üçüncü parti uygulamasının
kendisine ait olmayan bilgilere erişmesi gerekirse, bunu yalnızca iOS tarafından açıkça
sağlanan servisleri kullanarak yapabilir.
Sistem dosyaları ve kaynakları da kullanıcının uygulamalarından korunur. iOS'in büyük
kısmı, tüm üçüncü parti uygulamaları gibi ayrıcalıksız kullanıcı "mobil" olarak çalıştırılır.
İşletim sistemi bölüntüsünün tamamı salt okunur olarak bağlanmıştır. Uzaktan oturum
açma servisleri gibi gereksiz araçlar, sistem yazılımına dahil değildir ve API'lar uygulamaların diğer uygulamaları ya da iOS'in kendisini değiştirmek için kendi ayrıcalıklarını
artırmasına izin vermez.
Üçüncü parti uygulamalarının kullanıcı bilgilerine ve iCloud gibi özelliklerle genişletilebilirliğe erişimi, kesin yetki anahtarları kullanılarak denetlenir. Yetki anahtarları, bir
uygulamaya kaydettirilen anahtar değer çiftleridir ve unix kullanıcı kimliği gibi çalışma
zamanı faktörlerinin ötesinde kimlik doğrulamaya izin verir. Yetki anahtarları dijital olarak imzalandığından değiştirilemez. Yetki anahtarları, sistem uygulamaları ve arka plan
yordamları tarafından, aksi takdirde işlemin kök olarak çalıştırılmasını gerektirecek özel
ayrıcalıklı işlemleri gerçekleştirmek için yaygın şekilde kullanılır. Bu, saldırıya uğramış bir
sistem uygulaması veya arka plan yordamının ayrıcalık artırması potansiyelini önemli
ölçüde azaltır.
Bunlara ek olarak, uygulamalar yalnızca sistem tarafından sağlanan API'lar aracılığıyla
arka planda işlem gerçekleştirebilir. Bu, uygulamaların performansı düşürmeden ya da
pil ömrünü ciddi ölçüde etkilemeden işlemeyi sürdürmesini sağlar.
iOS Güvenliği—Teknik Makale | Mayıs 2016
19
Adres alanı yerleşim rasgele dağıtımı (ASLR), bellek bozma hatalarının kötüye kullanımına karşı koruma sağlar. Yerleşik uygulamalar, tüm bellek bölgelerinin başlatma sırasında
rasgele dağıtılmasını sağlamak için ASLR'ı kullanır. Çalıştırılabilir kodların, sistem kitaplıklarının ve ilgili programlama yapılarının bellek adreslerinin rasgele düzenlenmesi, pek
çok karmaşık kötüye kullanım olasılığını azaltır. Örneğin, bir return-to-libc saldırısı, yığın
ve sistem kitaplıklarının bellek adreslerini değiştirerek bir aygıtın kötü amaçlı kodları
çalıştırmasını sağlamaya çalışır. Bunların yerleşiminin rasgele hale getirilmesi, saldırının
özellikle birden fazla aygıtta çalıştırılmasını çok daha zorlaştırır. iOS geliştirme ortamı
olan Xcode, üçüncü parti programlarını otomatik olarak ASLR desteği açık şekilde derler.
iOS, bellek sayfalarını çalıştırılamaz olarak işaretleyen ARM'in Execute Never (XN) özelliğini kullanarak daha fazla koruma sağlar. Hem yazılabilir hem çalıştırılabilir olarak işaretlenen bellek sayfaları, yalnızca çok sıkı denetlenen koşullarda uygulamalar tarafından
kullanılabilir. Çekirdek, yalnızca Apple dinamik kod imzalama yetki anahtarının varlığını
denetler. Bundan sonra bile, çalıştırılabilir ve yazılabilir bir sayfaya istekte bulunabilmek
için yalnızca tek bir mmap çağrısı yapılabilir ve sayfaya rasgele dağıtılmış bir adres verilir. Safari bu işlevi JavaScript JIT derleyicisi için kullanır.
Uzantılar
iOS, uygulamaların uzantılar aracılığıyla diğer uygulamalara işlev sunmasına izin verir.
Uzantılar, bir uygulamayla aynı pakette bulunan, özel bir amaca yönelik, imzalanmış
çalıştırılabilir ikili öğelerdir. Sistem yükleme zamanında uzantıları otomatik olarak algılar
ve bir eşleştirme sistemi kullanarak diğer uygulamalar tarafından kullanılabilmelerini
sağlar.
Uzantıları destekleyen sistem alanına uzantı noktası adı verilir. Her uzantı noktası, o alan
için API'lar sağlar ve politikalar uygular. Sistem, uzantı noktasına özel eşleştirme kurallarını taban alan hangi uzantıların kullanılabilir olduğunu belirler. Sistem, genişletme
işlemlerini gerektiği şekilde otomatik olarak başlatır ve bu işlemlerin kullanım ömürlerini yönetir. Belirli sistem uygulamaları tarafından uzantıların kullanılabilirliğini sınırlamak
için yetki anahtarları kullanılabilir. Örneğin, bir Bugün görüntüsü araç takımı, yalnızca
Bildirim Merkezi'nde görünür ve paylaşım uzantısı yalnızca Paylaşım bölümünden kullanılabilir. Genişletme noktaları; Bugün araç takımları, Paylaşma, Özel eylemler, Fotoğraf
Düzenleme, Belge Sağlayıcı ve Özel Klavye’dir.
Uzantılar kendi adres alanlarında çalışır. Uzantı ile uzantının etkinleştirildiği uygulama
arasındaki iletişimde, sistem yazılım çerçevesinin aracılık ettiği işlemler arası iletişimler
kullanılır. Birbirlerinin dosyalarına veya bellek alanlarına erişmeleri gerekmez. Uzantılar,
birbirlerinden, kendilerini içeren uygulamalardan ve onları kullanan uygulamalardan
yalıtılacak şekilde tasarlanmıştır. Diğer tüm üçüncü parti uygulamaları gibi korumalıdırlar ve onları içeren uygulamanın kapsayıcısından ayrı bir kapsayıcıları bulunur. Ancak,
kapsayıcı uygulamayla aynı gizlilik denetimlerine erişimleri vardır. Bu yüzden, eğer bir
kullanıcı Kişiler'in bir uygulamaya erişimine izin verirse, bu izin uygulamaya yerleşik
uzantıları da kapsayacak şekilde genişletilir, ancak uygulama tarafından etkinleştirilen
uzantılara genişletilmez.
Özel klavyeler, kullanıcı tarafından sistemin tamamı için etkinleştirildiğinden özel bir
uzantı türüdür. Bir kez etkinleştirildikten sonra uzantı, parola girişi ve güvenli metin
görüntüsü hariç tüm metin alanları için kullanılır. Gizlilik nedeniyle, özel klavyeler, saptanmış olarak ağa; bir işlem adına ağ işlemlerini gerçekleştiren servislere ve uzantının
yazılan verileri çalmasına izin verecek API'lara erişimini engelleyen çok sınırlayıcı bir
korumayla çalıştırılır. Özel klavyelerin geliştiricileri, uzantılarının, sistemin kullanıcının
onayını aldıktan sonra uzantının saptanmış korumayla çalıştırılmasına izin veren Açık
Erişim'e sahip olmasını isteyebilir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
20
Mobil aygıt yönetimine kayıtlı aygıtlar için, belge ve klavye uzantıları Açık Yönetilir kurallarına uyar. Örneğin, MDM sunucusu bir kullanıcının bir belgeyi yönetilen bir uygulamadan yönetilmeyen bir Belge Sağlayıcıya aktarmasını ya da yönetilen bir uygulamayla
yönetilmeyen bir klavye kullanmasını engelleyebilir. Bunların yanı sıra, uygulama geliştiriciler üçüncü parti klavye uzantılarının uygulamalarında kullanımını önleyebilir.
Uygulama Grupları
Belirli bir geliştirici hesabının sahip olduğu uygulamalar ve uzantılar, bir Uygulama
Grubunun parçası olarak yapılandırıldığında içeriği paylaşabilir. Apple Geliştirici
Portalı'nda uygun grupları yaratmak ve istenen uygulama ve uzantı grubunu dahil
etmek geliştiricinin inisiyatifindedir. Bir Uygulama Grubunun parçası olarak yapılandırılan uygulamalar aşağıdakilere erişebilir:
• Saklama için paylaşılan, gruptaki en az bir uygulama yüklü olduğu sürece aygıtta
kalan, disk üzerinde bulunan bir kapsayıcı
• Paylaşılan tercihler
• Paylaşılan anahtar zinciri öğeleri
Apple Geliştirici Portalı, Uygulama Grup Kimliklerinin tüm uygulama ekosisteminde benzersiz olmasını garanti eder.
Uygulamalarda Veri Koruma
iOS Software Development Kit (SDK), üçüncü parti ve kurum içi geliştiricilerin Veri
Koruma'dan yararlanmasını kolaylaştıran ve uygulamalarında en üst düzeyde koruma
sağlamalarına yardımcı olan eksiksiz bir API paketi sunar. Veri Koruma, NSFileManager,
CoreData, NSData ve SQLite dahil olmak üzere tüm dosya ve veritabanı API'ları için kullanılabilir.
Mail uygulaması (ilişikler dahil), yönetilen kitaplar, Safari yer imleri, uygulama başlatma
görüntüleri ve konum verileri de kullanıcıların aygıtlarında parolayla korunan anahtarlarla şifrelenir. Takvim (ilişikler hariç), Kişiler, Anımsatıcılar, Notlar, Mesajlar ve Fotoğraflar
için, İlk Kullanıcı Kimlik Doğrulamasına Kadar Korumalı kullanılır.
Belirli bir Veri Koruma sınıfını tercih etmeyen kullanıcı tarafından yüklenen uygulamalar,
saptanmış olarak İlk Kullanıcı Kimlik Doğrulamasına Kadar Korumalı sınıfına dahil edilir.
Aksesuarlar
Made for iPhone, iPod touch ve iPad (MFi) lisans programı, incelenmiş aksesuar üreticilerinin iPod Aksesuarları Protokolü'ne (iAP) ve gerekli destekleyici donanım bileşenlerine
erişimini sağlar.
MFi aksesuarı bir Lightning bağlayıcısı kullanarak veya Bluetooth üzerinden bir iOS
aygıtıyla iletişim kurduğunda aygıt, aksesuarın Apple tarafından yetkilendirildiğini kanıtlamasını ister, Apple tarafından sağlanan bir sertifikayla yanıt vermesini bekler ve sertifikayı doğrular. Aygıt daha sonra kimlik sorar ve aksesuarın buna imzalı bir yanıtla karşılık
vermesi gerekir. Bu işlem, Apple'ın onaylı aksesuar üreticilerine sağladığı özel tümleşik
bir devre tarafından gerçekleştirilir ve aksesuarın kendisi tarafından görülebilir.
Aksesuarlar farklı iletim yöntemlerine ve işlevlerine; örneğin, Lightning kablosu üzerinden dijital ses akışlarına ya da Bluetooth üzerinden sağlanan konum bilgilerine erişim
isteyebilir. Kimlik doğrulama IC'si, yalnızca onaylı aygıtların aygıta tam erişimine izin
verilmesini sağlar. Bir aksesuar kimlik doğrulama sağlamazsa, erişimi analog ses ve
küçük bir seri (UART) ses çalma denetimi alt kümesiyle sınırlanır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
21
AirPlay de alıcıların Apple tarafından onaylanmış olduğunu doğrulamak için kimlik
doğrulama IC'sinden yararlanır. AirPlay ses ve CarPlay video akışları, aksesuarla aygıt
arasında iletişimi CTR modunda AES-128 kullanarak şifreleyen MFi-SAP (Güvenli
İlişkilendirme Protokolü) kullanır. Kısa ömürlü anahtarların alışverişi, ECDH anahtar alışverişi (Curve25519) kullanılarak yapılır ve Station-to-Station (STS) protokolünün parçası
olarak kimlik doğrulama IC'sinin 1024 bit RSA anahtarı kullanılarak imzalanır.
HomeKit
HomeKit, özel verileri Apple'a ifşa etmeden korumak ve eşzamanlamak için iCloud ve
iOS güvenliğini kullanan bir ev otomasyon altyapısı sağlar.
HomeKit kimliği
HomeKit kimliği ve güvenliği, Ed25519 açık-özel anahtar çiftlerini taban alır. Her kullanıcı için iOS aygıtında HomeKit'e özel Ed25519 anahtar çifti oluşturulur ve kullanıcının
HomeKit kimliği haline gelir. Bu kimlik, iOS aygıtları arasında ve iOS aygıtlarıyla aksesuarlar arasında iletişimin kimlik doğrulamasını yapmak için kullanılır.
Anahtarlar Anahtar Zinciri'nde saklanır ve yalnızca şifreli Anahtar Zinciri yedeklemelerine
dahil edilir. Anahtarlar aygıtlar arasında iCloud Anahtar Zinciri kullanılarak eşzamanlanır.
HomeKit aksesuarlarıyla iletişim
HomeKit aksesuarları, iOS aygıtlarıyla iletişimde kullanmak üzere kendi Ed25519 anahtar
çiftini oluşturur. Aksesuar fabrika ayarlarına döndürüldüğü takdirde, yeni bir anahtar
çifti oluşturulur.
iOS aygıtıyla HomeKit aksesuarı arasında bir ilişki kurmak için, Güvenli Uzaktan Parola
(3072 bit) protokolü kullanılarak, aksesuarın üreticisi tarafından sağlanan 8 basamaklı
kodun kullanıcı tarafından iOS aygıtına girilmesinden sonra HKDF-SHA-512 ile türetilen
anahtarlarla ChaCha20-Poly1305 AEAD kullanarak şifrelenen anahtar alışverişi yapılır.
Aksesuarın MFi sertifikası da ayarlama sırasında doğrulanır.
Kullanım sırasında iOS aygıtıyla HomeKit aksesuarı iletişim kurduğunda, her biri diğerinin kimliğini yukarıda belirtilen işlemde alınıp verilen anahtarları kullanarak doğrular.
Her oturum, Station-to-Station protokolü kullanılarak kurulur ve oturum için Curve25519
anahtarlarını taban alarak HKDF-SHA-512 ile türetilen anahtarlarla şifrelenir. Bu hem IP
tabanlı hem de Bluetooth Düşük Enerjili aksesuarlar için geçerlidir.
Yerel veri saklama
HomeKit, bir kullanıcının iOS aygıtındaki evler, aksesuarlar, sahneler ve kullanıcılar hakkındaki verileri saklar. Saklanan bu veriler, kullanıcının HomeKit kimlik anahtarlarından
türetilen anahtarların yanı sıra rasgele bir nonce kullanılarak şifrelenir. Ayrıca, HomeKit
verileri İlk Kullanıcı Kimlik Doğrulamasına Kadar Korumalı Veri Koruma sınıfı kullanılarak
saklanır. HomeKit verileri yalnızca şifreli yedeklemelerde yedeklenir; bu yüzden, örneğin
şifrelenmemiş iTunes yedeklemeleri HomeKit verilerini içermez.
Aygıtlarla kullanıcılar arasında veri eşzamanlama
HomeKit verileri, iCloud ve iCloud Anahtar Zinciri kullanılarak bir kullanıcının iOS aygıtları arasında eşzamanlanabilir. HomeKit verileri, eşzamanlama sırasında kullanıcının
HomeKit kimliği ve rasgele bir nonce ile türetilen anahtarları kullanarak şifrelenir. Veriler,
eşzamanlama sırasında opak ikili büyük nesne (blob) olarak işlenir. En son blob, eşzamanlamayı sağlamak için iCloud'da saklanır ancak başka herhangi bir amaç için kullanılmaz. Yalnızca kullanıcının iOS aygıtlarında kullanılabilen anahtarlarla şifrelendiği için,
aktarım ve iCloud'da saklanması sırasında içeriğine erişilemez.
iOS Güvenliği—Teknik Makale | Mayıs 2016
22
HomeKit verileri aynı evi kullanan birden fazla kullanıcı arasında da eşzamanlanır. Bu
işlem, iOS aygıtıyla HomeKit aksesuarı arasında kullanılanla aynı kimlik doğrulama ve
şifrelemeyi kullanır. Kimlik doğrulama, eve bir kullanıcı eklendiğinde aygıtlar arasında
alınıp verilen Ed25519 açık anahtarlarını taban alır. Bir eve yeni bir kullanıcı eklendikten
sonra, tüm iletişimin kimlik doğrulama ve şifreleme işlemleri Station-to-Station protokolü ve oturum için anahtarlar kullanılarak gerçekleştirilir.
Yalnızca HomeKit'te evi ilk yaratan kullanıcı yeni kullanıcılar ekleyebilir. Bu kullanıcının
aygıtı, yeni kullanıcının açık anahtarıyla aksesuarları yapılandırır, böylece aksesuar yeni
kullanıcıdan gelen komutların kimlik doğrulamasını yapabilir ve bu komutları kabul
edebilir. Apple TV'yi HomeKit ile kullanım için yapılandırma işleminde, ek kullanıcılar
eklerken kullanılan kimlik doğrulama ve şifreleme kullanılır, ancak evi yaratan kullanıcı
AppleTV'de iCloud'a giriş yapmışsa ve Apple TV evdeyse bu işlem otomatik olarak yapılır.
Kullanıcının birden çok aygıtı yoksa ve evine ek kullanıcıların erişmesine izin vermiyorsa,
HomeKit verileri iCloud ile eşzamanlanmaz.
Ev verileri ve uygulamalar
Ev verilerine uygulamaların erişimi, kullanıcının Gizlilik ayarlarıyla denetlenir.
Uygulamalar ev verilerini istediğinde, Kişiler, Fotoğraflar ve diğer iOS veri kaynaklarında
olduğu gibi, kullanıcıların erişime izin vermesi istenir. Kullanıcı onaylarsa, uygulamalar
odaların adlarına, aksesuar adlarına, her aksesuarın hani odada olduğuna ve HomeKit
geliştirici belgelerinde ayrıntılarıyla açıklanan diğer bilgilere erişebilir.
Siri
Aksesuarları sorgulamak, denetlemek ve sahneleri etkinleştirmek için Siri kullanılabilir. Bu makalenin Siri bölümünde açıklandığı gibi, Siri'ye ev konfigürasyonuna ilişkin
minimum bilgi (komut tanıma için gerekli olan odalar, aksesuarlar ve sahnelerin adları)
anonim olarak sağlanır.
HomeKit aksesuarları için iCloud uzaktan erişimi
Bluetooth veya Wi-Fi iletişimi kullanılamadığında, iOS aygıtlarını etkinleştirmek için
HomeKit aksesuarları doğrudan iCloud ile bağlantı kurabilir.
iCloud uzaktan erişimi, hangi aksesuarların kullanıldığı ya da hangi komutlar veya bildirimlerin gönderildiği Apple'a açıklanmadan aksesuarların denetlenebilmesi ve bildirim
gönderebilmesi için dikkatle tasarlanmıştır. HomeKit, iCloud uzaktan erişimi üzerinden
ev hakkında bilgi göndermez.
Bir kullanıcı iCloud uzaktan erişimini kullanarak bir komut gönderdiğinde, aksesuar ve
iOS aygıtının kimlik doğrulaması karşılıklı yapılır ve veriler, yerel bağlantılar için açıklanan yordam kullanılarak şifrelenir. İletişimlerin içeriği şifrelenir ve Apple tarafından
görülemez. iCloud üzerinden yapılan işlemler, ayarlama sırasında kaydettirilen iCloud
tanıtıcılarını taban alır.
iCloud uzaktan erişimini destekleyen aksesuarlar, aksesuarın ayarlanması sırasında hazırlanır. Hazırlık işlemi, kullanıcının iCloud'a giriş yapmasıyla başlar. Ardından, iOS aygıtı
aksesuarın tüm Built for HomeKit aksesuarlarında yerleşik olan Apple Kimlik Doğrulama
Ek İşlemcisini kullanarak kimlik sorgusunu imzalamasını ister. Aksesuar prime256v1 elips
eğri anahtarları da oluşturur ve imzalı kimlik sorgusu ve kimlik doğrulama ek işlemcisinin X.509 sertifikasıyla birlikte açık anahtar iOS aygıtına gönderilir. Bunlar, iCloud hazırlık sunucusundan aksesuar için bir sertifika istenmesinde kullanılır. Sertifika aksesuar
tarafından saklanır ancak aksesuar hakkında tanıtıcı herhangi bir bilgi içermez; yalnızca
aksesuara HomeKit iCloud uzaktan erişim izni verildiği bilgisini içerir. Hazırlığı yürüten
iOS aygıtı da aksesuara iCloud uzaktan erişim sunucusuna bağlanmak için gereken
URL'ler ve diğer bilgileri içeren bir çanta gönderir. Bu bilgiler herhangi bir kullanıcı ya
da aksesuara özgü değildir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
23
Her aksesuar, izin verilen kullanıcıların listesini iCloud uzaktan erişim sunucusuna kaydettirir. Aksesuarı eve ekleyen kişi tarafından bu kullanıcılara, aksesuarı denetleyebilme
izni verilmiştir. Kullanıcılara iCloud sunucusu tarafından bir tanıtıcı verilir ve aksesuarlardan bildirim mesajları ve yanıtları almaları için bu kullanıcılar bir iCloud hesabına eşlenebilir. Aynı şekilde, aksesuarların iCloud tarafından sağlanan tanıtıcıları bulunur; ancak
bu tanıtıcılar opaktır ve aksesuarın kendisi hakkında hiçbir bilgi vermez.
Bir aksesuar HomeKit iCloud uzaktan erişim sunucusuna bağlandığında sertifikasını ve
kartını sunar. Kart, farklı bir iCloud sunucusundan alınır ve her aksesuar için benzersiz
değildir. Bir aksesuar kart isteğinde bulunduğunda, isteğine üreticisi, modeli ve firmware sürümünü ekler. Bu istekte kullanıcıyı ya da evi tanıtan hiçbir bilgi gönderilmez.
Gizliliğin korunmasına yardımcı olmak için, kart sunucusuna bağlantıya kimlik doğrulaması yapılmaz.
Aksesuarlar iCloud uzaktan erişim sunucusuna AES-128-GCM ve SHA-256 ile TLS 1.2
kullanılarak güvence altına alınmış HTTP/2 ile bağlanır. Aksesuar, iCloud uzaktan erişim
sunucusuna bağlantısını açık tutar, böylece gelen mesajları alabilir ve iOS aygıtlarına
yanıtları ve giden bildirimleri gönderebilir.
HealthKit
HealthKit, kullanıcının izniyle sağlık ve fitness uygulamalarındaki verileri saklar
ve bir arada toplar. HealthKit; uyumlu Bluetooth LE kalp atış hızı monitörleri ve birçok
iOS aygıtında yerleşik bulunan hareket yardımcı işlemcisi gibi sağlık ve fitness aygıtlarıyla da doğrudan çalışır.
Sağlık verileri
HealthKit, kullanıcının boy, ağırlık, yürüdüğü mesafe, tansiyon vb. sağlık verilerini saklar
ve bir arada toplar. Bu veriler Veri Koruma’nın Tam Koruma sınıfında saklanır, dolayısıyla
yalnızca kullanıcı aygıtın kilidini açmak için Touch ID kullandıktan veya parolasını girdikten sonra verilere erişilebilir.
Başka bir veritabanı, uygulamalar için erişim tabloları, HealthKit'e bağlı aygıtların adları
ve yeni veriler kullanılabilir olduğunda uygulamaları başlatmak için kullanılan zamanlama bilgileri gibi işlem verilerini saklar. Bu veritabanı, İlk Kullanıcı Kimlik Doğrulamasına
Kadar Korumalı Veri Koruma sınıfında saklanır.
Geçici günlük dosyaları, aygıt kilitliyken (örneğin kullanıcı egzersiz yaparken) oluşturulan sağlık kayıtlarını saklar. Bunlar Açık Olmadığı Sürece Korumalı Veri Koruma sınıfında
saklanır. Aygıtın kilidi açıldığında, bu bilgiler birincil sağlık veritabanlarına aktarılır ve
birleştirme işlemi tamamlandığında silinir.
Sağlık verileri aygıtlar arasında eşzamanlanmaz. Sağlık verileri, iCloud’a yapılan aygıt
yedeklemelerine ve şifreli iTunes yedeklemelerine dahil edilir. Sağlık verileri, şifreli olmayan iTunes yedeklemelerine dahil edilmez.
Veri Bütünlüğü
Veritabanında saklanan veriler, her veri kaydının kaynağını izlemeye yönelik meta veriler içerir. Bu meta veriler, kaydı hangi uygulamanın sakladığını belirleyen bir uygulama
tanıtıcısı içerir. Ayrıca, isteğe bağlı bir meta veri öğesi kaydın dijital olarak imzalanmış
bir kopyasını içerebilir. Bu, güvenilen bir aygıt tarafından oluşturulan kayıtların veri
bütünlüğünü sağlamaya yöneliktir. Dijital imza için kullanılan biçim, IETF RFC 5652'de
belirtilen Şifreli İleti Sözdizimi'dir (CMS). iOS Güvenliği—Teknik Makale | Mayıs 2016
24
Üçüncü parti uygulamaları tarafından erişim
HealthKit API'ına erişim, yetki anahtarlarıyla denetlenir ve uygulamaların, verilerin nasıl
kullanılacağına ilişkin sınırlamalara uyması gerekir. Örneğin, uygulamaların sağlık verilerini reklam için kullanmasına izin verilmez. Uygulamaların kullanıcılara sağlık verilerinin
nasıl kullanılacağını ayrıntılarıyla belirten bir gizlilik politikası sağlaması da gerekir.
Uygulamaların sağlık verilerine erişimi, kullanıcının Gizlilik ayarlarıyla denetlenir.
Uygulamalar sağlık verilerine erişmek istediğinde, Kişiler, Fotoğraflar ve diğer iOS veri
kaynaklarında olduğu gibi, kullanıcıların erişime izin vermesi istenir. Ancak sağlık verileri
söz konusu olduğunda, uygulamalara verileri okuma ve yazma için ayrı erişimin yanı
sıra her sağlık verisi türüne de ayrı erişim izni verilir. Kullanıcılar, Sağlık uygulamasının
Kaynaklar sekmesinde sağlık verilerine erişim için verdikleri izinleri görüntüleyebilir ve
iptal edebilir.
Uygulamalara veri yazma izni verildiği takdirde, yazdıkları verileri okuyabilirler. Veri
okuma izni verilirse, tüm kaynaklar tarafından yazılan verileri okuyabilirler. Ancak uygulamalar diğer uygulamalara verilen erişim iznini belirleyemez. Ayrıca, uygulamalar kendilerine sağlık verilerini okuma erişim izni verildiğini de kesin olarak bilemez. Bir uygulamanın okuma erişimi olmadığında, tüm sorgular veri yok yanıtını döndürür; boş bir
veritabanı da bu yanıtı döndürür. Böylece uygulamaların kullanıcının hangi veri türlerini
takip ettiğini öğrenerek kullanıcının sağlık durumunu anlaması önlenir.
Tıbbi Kimlik
Sağlık uygulaması, kullanıcılara tıbbi acil durumda önemli olabilecek bilgilerle bir Tıbbi
Kimlik formu doldurma seçeneği sunar. Bilgiler elle girilir veya güncellenir ve sağlık veritabanlarındaki bilgilerle eşzamanlanmaz.
Tıbbi Kimlik bilgileri, Kilitli ekrandaki Acil Durum düğmesine dokunarak görüntülenir.
Bilgiler aygıtta Koruma Yok Veri Koruma sınıfı kullanılarak saklanır, böylece aygıt parolası
girilmeden bilgilere erişilebilir. Tıbbi Kimlik, kullanıcıların güvenlik ve gizlilikle ilgili endişelerini nasıl dengeleyeceğine karar vermesini sağlayan isteğe bağlı bir özelliktir.
Güvenli Notlar
Notlar uygulaması, kullanıcıların belirli notların içeriğini korumasına olanak tanıyan
Güvenli Notlar özelliğini içerir. Güvenli notlar kullanıcı tarafından sağlanan bir parolayla
şifrelenir ve notları iOS’te, OS X’de ve iCloud web sitesinde görüntülemek için bu parola
gerekir.
Kullanıcı bir notu güvenlik altına aldığında, PBKDF2 ve SHA256 kullanılarak kullanıcının
parolasından 16 baytlık bir anahtar elde edilir. Notun içeriği AES-GCM kullanılarak şifrelenir. Şifreli notu, etiketi ve başlatma vektörü saklamak için Core Data’da ve CloudKit’te
yeni kayıtlar yaratılır ve özgün not kayıtları silinir; şifreli veriler bunların yerine yazılmaz.
İlişikler de aynı şekilde şifrelenir. Desteklenen ilişikler arasında görüntüler, çizimler,
haritalar ve web siteleri sayılabilir. Diğer türlerde ilişikler içeren notlar şifrelenemez ve
desteklenmeyen ilişikler güvenli notlara eklenemez.
Kullanıcı güvenli bir not görüntülemek veya yaratmak için parolayı başarılı bir şekilde
girdiğinde, Notlar güvenli bir oturum açar. Açıkken kullanıcının diğer notları görüntülemesi veya güvenlik altına alması için parolayı girmesi veya Touch ID’yi kullanması
gerekmez. Ancak bazı notların parolaları farklıysa güvenli oturum yalnızca şu anki parolayla korunan notlar için geçerlidir. Güvenli oturum; kullanıcı Notlar’da Şimdi Kilitle’ye
dokunduğunda, Notlar üç dakikadan uzun süre arka plana alındığında veya aygıt kilitlendiğinde kapatılır.
Parolalarını unutan kullanıcılar, aygıtlarında Touch ID’yi etkinleştirmişlerse güvenli notları görüntülemeye veya başka notları güvenlik altına almaya devam edebilirler. Ayrıca
Notlar, üç başarısız parola girme girişiminden sonra kullanıcının girdiği bir ipucu gösterir. Kullanıcının, değiştirebilmesi için şu anki parolayı bilmesi gerekir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
25
Kullanıcılar, şu anki parolayı unuturlarsa sıfırlayabilirler. Bu özellik, kullanıcıların yeni bir
parolayla yeni güvenli notlar yaratmasını sağlar ama daha önce güvenlik altına alınmış
notları görmelerine izin vermez. Eski parola anımsanırsa daha önce güvenlik altına alınmış notlar görüntülenebilir. Parolayı sıfırlamak için kullanıcının iCloud hesabının parolası
gerekir.
Apple Watch
Apple Watch, aygıttaki verilerin yanı sıra eşlendiği iPhone'la ve İnternet'le iletişimlerinin
de korunmasına yardımcı olmak üzere iOS için oluşturulan güvenlik özellikleri ve teknolojisini kullanır. Buna Veri Koruma ve anahtar zinciri erişim denetimi gibi teknolojiler de
dahildir. Kullanıcının parolası da aygıt UID'siyle karıştırılarak şifreleme anahtarları yaratılır.
Apple Watch'un iPhone ile eşlenmesi, açık anahtar alışverişi için bant dışı (OOB) bir
işlem kullanılarak ve ardından BTLE bağlantısı gizli olarak paylaşılarak güvence altına
alınır. Apple Watch hareketli bir desen görüntüler ve bu desen iPhone'daki kamera tarafından yakalanır. Desen, BTLE 4.1 bant dışı eşleme için kullanılan kodlanmış bir sır içerir.
Gerekirse yedek eşleme yöntemi olarak Standart BTLE Parola Girişi kullanılır.
BTLE oturumu kurulduktan sonra, Apple Watch ve iPhone, bu makalenin iMessage
bölümünde açıklandığı gibi IDS'ten uyarlanan bir işlemi kullanarak anahtar alışverişi
yapar. Anahtar alışverişi tamamlandıktan sonra, Bluetooth oturum anahtarı atılır ve
Apple Watch ile iPhone arasındaki tüm iletişimler IDS kullanılarak şifrelenir; BTLE ve
Wi-Fi bağlantıları ikincil şifreleme katmanı sağlar. Trafiğin saldırıya uğraması olasılığına
karşı riski sınırlamak için 15 dakikalık aralıklarla anahtar kaydırma gerçekleştirilir.
Akış verilerine gereksinim duyan uygulamaları desteklemek için, eşlenen iPhone tarafından sağlanan IDS servisi üzerinden bu makalenin FaceTime bölümünde açıklanan
yöntemler kullanılarak şifreleme sağlanır.
Apple Watch, bu makalenin Veri Koruma bölümünde açıklandığı gibi dosyaları ve anahtar
zinciri öğeleri için donanım şifreli saklama ve sınıf tabanlı koruma sağlar. Anahtar zinciri
öğeleri için erişim denetimli anahtar çantaları da kullanılır. Apple Watch ile iPhone arasındaki iletişim için kullanılan anahtarlar, sınıf tabanlı koruma ile de güvence altına alınır.
Apple Watch Bluetooth kapsama alanında olmadığında, bunun yerine Wi-Fi kullanılabilir. Apple Watch, bilinen ağların listesini saate otomatik olarak sağlayan eşlenen
iPhone'da bunun için gerekli kimlik bilgileri olmadığı sürece Wi-Fi ağlarına katılmaz.
Apple Watch, yan düğmesi basılı tutularak elle kilitlenebilir. Ayrıca, aygıt bilekten çıkarıldıktan kısa süre sonra aygıtı otomatik olarak kilitlemeyi denemek için hareket bulma
yöntemleri kullanılır. Kilitliyken Apple Pay kullanılamaz. Bilek algılamanın sağladığı
otomatik kilitleme özelliği ayarlarda kapalıysa, Apple Pay etkisizleştirilir. Bilek algılama,
iPhone'da Apple Watch uygulaması kullanılarak kapatılır. Bu ayar mobil aygıt yönetimi
kullanılarak da uygulanabilir.
Eşlenen iPhone da saat bilekte takılı olduğu takdirde saatin kilidini açabilir. Bu, eşleme
sırasında belirlenen anahtarlar tarafından kimlik doğrulaması yapılan bir bağlantı kurularak gerçekleştirilir. iPhone anahtarı gönderir ve saat bunu Veri Koruma anahtarlarının
kilidini açmak için kullanır. Saatin parolası iPhone tarafından bilinmez ve aktarılmaz. Bu
özellik, iPhone'da Apple Watch uygulaması kullanılarak kapatılabilir.
Apple Watch bir seferde yalnızca bir iPhone ile eşlenebilir. Yeni bir iPhone ile eşlendiğinde, Apple Watch'taki tüm içerik ve veriler otomatik olarak silinir.
Eşlenen iPhone'da iPhone'umu Bul'un etkinleştirilmesi de Apple Watch'ta Etkinleştirme
Kilidi'ni etkinleştirir. Etkinleştirme Kilidi, kaybolmuş veya çalınmış bir Apple Watch'un
herhangi biri tarafından kullanılması veya satılmasını zorlaştırır. Etkinleştirme Kilidi, bir
Apple Watch'un eşlemesinin kaldırılması, silinmesi ya da yeniden etkinleştirilmesi için
kullanıcını Apple kimliği ve parolasını gerektirir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
26
Ağ Güvenliği
Apple'ın iOS'te saklanan verileri korumak için kullandığı yerleşik önlemlere ek olarak,
kuruluşların bir iOS aygıtına giden ve gelen bilgileri güvende tutmak için alabileceği
pek çok ağ güvenlik önlemleri bulunur.
Mobil kullanıcıların dünyanın her yerinden kurumsal ağlara erişebilmesi gerekir, bu
nedenle yetkilendirilmelerinin ve aktarım sırasında verilerinin korunmasının sağlanması önemlidir. iOS, kimliği doğrulanmış, yetkilendirilmiş ve şifrelenmiş iletişimler için
standart ağ protokolleri kullanır ve geliştiricilerin bunlara erişimini sağlar. Bu güvenlik
amaçlarını gerçekleştirmek üzere iOS, hem Wi-Fi hem de hücresel veri ağı bağlantıları
için kanıtlanmış teknolojileri ve en yeni standartları tümleştirir.
Diğer platformlarda, açık iletişim kapılarını izinsiz girişlerden korumak için güvenlik
duvarı yazılımı gerekir. iOS dinleyen kapıları sınırlayarak ve telnet, shell veya web sunucusu gibi gereksiz ağ izlencelerini kaldırarak saldırı alanını daraltmayı başardığı için, iOS
aygıtlarında ek güvenlik donanımı yazılımı gerekli değildir.
TLS
iOS, Aktarım Katmanı Güvenliği (TLS v1.0, TLS v1.1, TLS v1.2) ve DTLS'i destekler. Safari,
Takvim, Mail ve diğer İnternet uygulamaları, aygıtla ağ servisleri arasında bir şifreli iletişim kanalı sağlamak için otomatik olarak bu mekanizmaları kullanır. Üst düzey API'lar
(CFNetwork gibi), geliştiricilerin uygulamalarında TLS kullanmasını kolaylaştırırken,
düşük düzeydeki API'lar (SecureTransport) ayrıntılı denetim sağlar. Saptanmış olarak
CFNetwork SSLv3'e izin vermez ve WebKit kullanan uygulamaların (Safari gibi) SSLv3
bağlantısı kurması yasaktır.
Uygulama Aktarım Güvenliği
Uygulama Aktarım Güvenliği, uygulamaların NSURLConnection, CFURL veya
NSURLSession API'larını kullanırken güvenli bağlantılar için en iyi uygulamalara
bağlı kalması amacıyla saptanmış bağlantı gereksinimleri sağlar.
Sunucuların minimum TLS 1.2'yi ve iletim gizliliğini desteklemesi; sertifikaların geçerli ve
minimum 2048 bit RSA anahtarı veya 256 bit elips eğri anahtarı ile SHA-256 ya da daha
iyisi kullanılarak imzalanmış olması gerekir.
Bu gereksinimlere uymayan ağ bağlantıları, uygulama Uygulama Aktarım Güvenliğini
geçersiz kılmadığı sürece başarısız olur. Geçersiz sertifikalar her zaman kesin başarısızlıkla sonuçlanır ve bağlantı kurulmaz. Uygulama Aktarım Güvenliği, iOS 9 için derlenen
uygulamalara otomatik olarak uygulanır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
27
VPN
Sanal özel ağ (VPN) gibi güvenli ağ servislerinin iOS aygıtlarıyla çalışabilmesi için genellikle minimum ayarlama ve konfigürasyon gerekir. iOS aygıtları, aşağıdaki protokoller ve
kimlik doğrulama yöntemlerini destekleyen VPN sunucularla çalışır:
• Paylaşılan sırla kimlik doğrulamalı IKEv2/IPSec, RSA Sertifikaları, ECDSA Sertifikaları,
EAP-MSCHAPv2 veya EAP-TLS.
• App Store'dan uygun istemci uygulamasını kullanarak Pulse Secure, Cisco, Aruba
Networks, SonicWALL, Check Point, Palo Alto Networks, Open VPN, AirWatch,
MobileIron, NetMotion Wireless ve F5 Networks SSL-VPN.
• Parola, RSA SecurID veya CRYPTOCard kullanılarak kullanıcı kimlik doğrulamasıyla
Cisco IPSec ve paylaşılan sır ve sertifikalarla makine kimlik doğrulaması.
• MS-CHAPV2 Parolası, RSA SecurID veya CRYPTOCard kullanılarak kullanıcı kimlik doğrulamasıyla L2TP/IPSec ve paylaşılan sırla makine kimlik doğrulaması.
• MS-CHAPV2 Parolası ve RSA SecurID veya CRYPTOCard kullanılarak kimlik doğrulamasıyla PPTP desteklenir ancak önerilmez.
iOS, sertifika tabanlı kimlik doğrulama kullanan ağlar için İstendiğinde VPN'i destekler.
BT politikaları, hangi alanların VPN bağlantısı gerektirdiğini bir konfigürasyon profili
kullanarak belirtir.
iOS, çok daha ayrıntılı düzeyde VPN bağlantılarını kolaylaştıran Her Uygulama İçin VPN
desteğini de destekler. Mobil aygıt yönetimi (MDM), yönetilen her uygulama ve/veya
Safari'de belirli alanlar için bir bağlantı belirtebilir. Bu, kurumsal ağa gelen ve giden
verilerin her zaman güvenli veriler olmasını ve kullanıcının kişisel verilerinin iletilmemesini sağlamaya yardımcı olur.
iOS, MDM ile yönetilen ve Apple Configurator veya Aygıt Kayıt Programı'yla denetlenip
yönetilen Her Zaman Açık VPN'i destekler. Bu, kullanıcıların hücresel ağlara ve Wi-Fi
ağlarına bağlanırken koruma sağlamak için VPN'i etkinleştirme gereksinimini ortadan
kaldırır. Her Zaman Açık VPN, tüm IP trafiğini tekrar kuruluşa yönlendirerek kuruluşun
aygıt trafiği üzerinde tam denetim sahibi olmasını sağlar. Saptanmış tünel protokolü
IKEv2, trafik aktarımını veri şifrelemeyle güvence altına alır. Böylece kuruluş, aygıtlarına
gelip giden trafiği izleyebilir ve filtreleyebilir, ağındaki verileri güvence altına alabilir ve
İnternet'e aygıt erişimini sınırlar.
Wi-Fi
iOS, kablosuz kurumsal ağlara kimlik doğrulamalı erişim sağlamak için WPA2 Kurumsal
dahil olmak üzere sektör standardı Wi-Fi protokollerini destekler. WPA2 Kurumsal,
128 bit AES şifrelemesi kullanarak kullanıcılara, bir Wi-Fi ağ bağlantısı üzerinden iletişimde gönderilip alınan verilerin korunacağına ilişkin en üst düzeyde garanti sağlar. 802.1X
desteğiyle iOS aygıtları, geniş bir yelpazedeki RADIUS kimlik doğrulama ortamlarına
entegre olabilir. iPhone ve iPad üzerinde desteklenen 802.1X kablosuz kimlik doğrulama
yöntemleri arasında EAP-TLS, EAP-TTLS, EAP-FAST, EAP-SIM, PEAPv0, PEAPv1 ve LEAP
sayılabilir.
iOS, aygıt bir Wi-Fi ağıyla ilişkilendirilmediğinde ve işlemcisi uyku durumundayken
Tercih Edilen Ağ Boşaltma (PNO) taramaları gerçekleştirdiği sırada rasgele atanmış
bir Ortam Erişim Denetimi (MAC) adresi kullanır. Aygıtın işlemcisi, ekran kapatıldıktan
kısa süre sonra uyku durumuna geçer. PNO taramaları, kullanıcının iTunes ile kablosuz
olarak eşzamanlama gibi bir etkinliği gerçekleştirmek için tercih edilen bir Wi-Fi ağına
bağlanıp bağlanamayacağını belirlemek için çalıştırılır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
28
iOS, aygıt bir Wi-Fi ağıyla ilişkilendirilmediğinde ve işlemcisi uyku durumundayken
gelişmiş Tercih Edilen Ağ Boşaltma (ePNO) taramaları gerçekleştirdiği sırada da rasgele
atanmış bir MAC adresi kullanır. ePNO taramaları, aygıtın belirli bir konumun yakınında
olup olmadığını belirleyen konum tabanlı anımsatıcılar gibi coğrafi alan sınırlarını kullanan uygulamalar için aygıt Konum Servislerini kullandığında çalıştırılır.
Aygıtın MAC adresi Wi-Fi ağına bağlı değilken değiştiğinden, aygıt hücresel ağa bağlı
olsa bile Wi-Fi trafiğini pasif olarak gözlemleyenler tarafından bir aygıtı sürekli izlemek
için kullanılamaz.
Wi-Fi üreticileriyle birlikte çalışarak arka plan taramalarının rasgele dağıtılmış bir MAC
adresi kullandığını ve Apple'ın da üreticilerin de bu rasgele MAC adreslerini öngöremeyeceğini kendilerine bildirdik.
Wi-Fi MAC adresi rasgele atama özelliği iPhone 4s'te desteklenmez.
Bluetooth
iOS'te Bluetooth desteği, özel verilere gereksiz yere daha fazla erişim sağlamadan faydalı işlevler sağlayacak şekilde tasarlanmıştır. iOS aygıtları, Şifreleme Modu 3, Güvenlik
Modu 4 ve Servis Düzeyi 1 bağlantılarını destekler. iOS aşağıdaki Bluetooth profillerini
destekler:
• Eller Serbest Profili (HFP 1.5)
• Telefon Defteri Erişim Profili (PBAP)
• Gelişmiş Ses Dağıtımı Profili (A2DP)
• Uzaktan Ses/Görüntü Denetimi Profili (AVRCP)
• Kişisel Alan Ağı Profili (PAN)
• Kullanıcı Arayüzü Aygıt Profili (HID)
Bu profillere yönelik destek, aygıta göre değişir. Daha fazla bilgi için, bkz.
https://support.apple.com/tr-tr/HT3647.
Tekli Oturum Açma
iOS, kurumsal ağlarda Tekli Oturum Açma (SSO) aracılığıyla kimlik doğrulamayı destekler. SSO, kullanıcıların erişim yetkisine sahip olduğu servislerde kimlik doğrulamasını
yapmak için Kerberos tabanlı ağlarla çalışır. SSO, güvenli Safari oturumlarından üçüncü
parti uygulamalarına kadar çeşitli ağ etkinlikleri için kullanılabilir.
iOS SSO, Kerberos tabanlı kimlik doğrulama ağ geçitleri ve Kerberos çağrılarını destekleyen Windows Tümleşik Kimlik Doğrulama sistemleri ile çalışmak için SPNEGO jetonları
ve HTTP Anlaşma protokolünü kullanır. Sertifika tabanlı kimlik doğrulama da desteklenir. SSO desteği, açık kaynaklı Heimdal projesini taban alır.
Aşağıdaki şifreleme türleri desteklenir:
• AES128-CTS-HMAC-SHA1-96
• AES256-CTS-HMAC-SHA1-96
• DES3-CBC-SHA1
• ARCFOUR-HMAC-MD5
Safari SSO'yu destekler ve standart iOS ağ API'larını kullanan üçüncü parti uygulamaları
da bunu kullanacak şekilde yapılandırılabilir. SSO'yu yapılandırmak için iOS MDM sunucularının gerekli ayarları iletmesine izin veren bir konfigürasyon profili verisini destekler.
iOS Güvenliği—Teknik Makale | Mayıs 2016
29
Buna kullanıcı ana adının (Active Directory kullanıcı hesabı) ve Kerberos bölge ayarlarının ayarlanmasının yanı sıra hangi uygulamaların veya Safari web URL'lerinin SSO'yu
kullanacağının yapılandırılması dahildir.
AirDrop güvenliği
AirDrop'u destekleyen iOS aygıtları, OS X Yosemite veya daha yenisini çalıştıran AirDrop
özellikli Mac bilgisayarlar dahil yakındaki aygıtlara dosya ve bilgi göndermek için
Bluetooth Düşük Enerji (BLE) ve Apple tarafından yaratılan eşler arası Wi-Fi teknolojisini
kullanır. İnternet bağlantısı ya da Wi-Fi Erişim Noktası kullanmadan aygıtlar arasında
doğrudan iletişim sağlamak için Wi-Fi radyo kullanılır.
Kullanıcı AirDrop'u etkinleştirdiğinde, aygıtta bir 2048 bit RSA kimliği saklanır. Ayrıca,
kullanıcının Apple kimliğiyle ilişkili e-posta adresleri ve telefon numaralarını taban alarak bir AirDrop kimlik özeti yaratılır.
Kullanıcı bir öğeyi paylaşma yöntemi olarak AirDrop'u seçtiğinde, aygıt Bluetooth
Düşük Enerji üzerinden bir AirDrop sinyali yayar. Yakınlarda bulunan, AirDrop açık olan
ve uyanık durumdaki diğer aygıtlar, sinyali algılar ve kendi kullanıcılarının kimlik özetinin kısaltılmış bir sürümüyle yanıt verir.
AirDrop saptanmış olarak Yalnızca Kişiler'le paylaşmaya ayarlanmıştır. Kullanıcılar isterse Herkes ile paylaşmak için AirDrop'u kullanmayı veya özelliği tamamen kapatmayı
seçebilir. Yalnızca Kişiler modunda, alınan kimlik özetleri, işlemi başlatan kullanıcının
Kişiler uygulamasındaki kişilerin özetleriyle karşılaştırılır. Eşleşme bulunursa, gönderen
aygıt eşler arası Wi-Fi ağı yaratır ve Bonjour kullanarak bir AirDrop bağlantısı olduğunu
duyurur. Bu bağlantıyı kullanarak, alıcı aygıtlar başlatıcıya tam kimlik özetlerini gönderir.
Tam özet de Kişiler'le eşleşiyorsa, AirDrop paylaşım sayfasında alıcının adı ve fotoğrafı
(Kişiler'de varsa) görüntülenir.
AirDrop kullanırken, gönderen kullanıcı kiminle paylaşmak istediğini seçer. Gönderen
aygıt, alan aygıtla şifreli (TLS) bağlantı başlatır ve iCloud kimlik sertifikaları alışverişi
yapılır. Sertifikadaki kimlik, her kullanıcının Kişiler uygulamasına göre doğrulanır. Sonra
alıcı kullanıcının tanıtılan kişi veya aygıttan gelen aktarımı kabul etmesi istenir. Birden
fazla alıcı seçilmişse, her hedef için bu işlem yinelenir.
Herkes modunda, aynı işlem kullanılır ancak Kişiler'de eşleşme bulunmazsa, alıcı
aygıtlar AirDrop gönderme sayfasında aygıtın adıyla ve bir silüetle (Ayarlar > Genel >
Hakkında > Ad'da tanımlandığı gibi) gösterilir.
Kuruluşlar, mobil aygıt yönetimi çözümüyle yönetilen aygıtlar ve uygulamalar için
AirDrop kullanımını sınırlayabilir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
30
Apple Pay
Kullanıcılar, Apple Pay ile kolay, güvenli ve özel bir yöntemle ödeme yapmak için desteklenen iOS aygıtlarını ve Apple Watch'larını kullanabilir. Kullanıcılar açısından kullanımı çok basittir ve hem donanımda hem de yazılımda tümleşik güvenlik özellikleri içerir. Apple Pay, kullanıcının kişisel bilgilerini de koruyacak şekilde tasarlanmıştır. Apple Pay,
tekrar kullanıcıyla bağlantı kurulmasına yol açabilecek hiçbir işlem bilgisi toplamaz.
Ödeme işlemleri kullanıcı, satıcı ve kartı veren kuruluş arasında gerçekleşir.
Apple Pay bileşenleri
Secure Element: Secure Element, Java Card platformunda çalışan endüstri standardında, sertifikalı bir yongadır ve elektronik ödemeler için finans sektörünün gereksinimleriyle uyumludur.
NFC denetleyici: NFC denetleyici, Yakın Alan İletişim protokollerini işler ve uygulama
işlemcisiyle Secure Element arasındaki ve Secure Element ile satış noktası terminali arasındaki iletişimi yönlendirir.
Wallet: Wallet, kredi, banka, ödül ve mağaza kartlarını ekleyip yönetmek ve Apple Pay
ile ödeme yapmak için kullanılır. Kullanıcılar kartlarını ve kartı veren kuruluş hakkında
ek bilgileri, kartı veren kuruluşun gizlilik politikasını, son işlemleri ve daha fazlasını
Wallet'ta görüntüleyebilir. Kullanıcılar ayrıca Ayarlama Yardımcısı ve Ayarlar'da da
Apple Pay'e kart ekleyebilir.
Secure Enclave: iPhone ve iPad'de, Secure Enclave kimlik doğrulama işlemini yönetir ve
bir ödeme işleminin sürdürülmesini sağlar. Touch ID için parmak izi verilerini saklar.
Apple Watch'ta, aygıtın kilidinin açılmış olması ve kullanıcının yan düğmeyi çift tıklaması gerekir. Çift tıklama algılanır ve uygulama işlemcisinden geçmeden doğrudan Secure
Element'e iletilir.
Apple Pay Sunucuları: Apple Pay Sunucuları, Wallet'taki kredi ve banka kartlarının
durumunu ve Secure Element'te saklanan Aygıt Hesap Numaralarını yönetir. Bu sunucular hem aygıtla hem de ödeme ağı sunucularıyla iletişim kurar. Apple Pay Sunucuları,
uygulama içi ödemeler için ödeme kimlik bilgilerinin yeniden şifrelenmesinden
de sorumludur.
Apple Pay Secure Element'i nasıl kullanır?
Secure Element, Apple Pay'i yönetmek için özel olarak tasarlanmış bir küçük uygulama
barındırır. Ayrıca ödeme ağları tarafından onaylanmış ödeme küçük uygulamaları da
içerir. Kredi veya banka kartı verileri, yalnızca ödeme ağı ve ödeme küçük uygulamasının
güvenlik alanı tarafından bilinen anahtarlar kullanılarak ödeme ağından veya kartı veren
kuruluştan şifrelenmiş olarak bu ödeme küçük uygulamalarına gönderilir. Bu veriler bu
ödeme küçük uygulamalarında saklanır ve Secure Element'in güvenlik özellikleri kullanılarak korunur. İşlem sırasında terminal, Yakın Alan İletişimi (NFC) denetleyici aracılığıyla
adanmış bir donanım veri yolu üzerinden doğrudan Secure Element ile iletişim kurar.
iOS Güvenliği—Teknik Makale | Mayıs 2016
31
Apple Pay NFC denetleyiciyi nasıl kullanır?
Secure Element'e ağ geçidi olan NFC denetleyici, tüm temassız ödeme işlemlerinin aygıtın yakınındaki bir satış noktası terminali kullanılarak gerçekleştirilmesini sağlar. Yalnızca
alan içindeki bir terminalden gelen ödeme istekleri NFC denetleyici tarafından temassız
işlem olarak işaretlenir.
Kart sahibi ödemeyi Touch ID veya parola kullanarak ya da kilidi açılmış bir
Apple Watch'ta yan düğmeyi çift tıklayarak yetkilendirdikten sonra, Secure Element'te
ödeme küçük uygulamaları tarafından hazırlanan temassız yanıtlar denetleyici tarafından yalnızca NFC alanına yöneltilir. Böylelikle temassız işlemlerin ödeme yetkilendirme
ayrıntıları yerel NFC alanıyla sınırlandırılır ve asla uygulama işlemcisine gösterilmez.
Bunun aksine, uygulama içi ödemelerin ödeme yetkilendirme ayrıntıları ise uygulama
işlemcisine yöneltilir ve ancak Secure Element tarafından şifrelendikten sonra Apple Pay
Sunucusuna gönderilir.
Kredi ve banka kartı provizyonu
Kullanıcı Apple Pay'e bir kredi veya banka kartı (mağaza kartları dahil) eklediğinde,
Apple kart bilgilerini, kullanıcının hesabı ve aygıtıyla ilgili diğer bilgilerle birlikte kartı
veren kuruluşa güvenli bir şekilde gönderir. Kartı veren kuruluş, bu bilgileri kullanarak
kartın Apple Pay'e eklenmesini onaylayıp onaylamayacağını belirler.
Apple Pay, kart provizyon sürecinin parçası olarak ağ veya kartı veren kuruluşla iletişim
alışverişinde bulunmak için üç sunucu tarafı çağrısı kullanır: Zorunlu Alanlar, Kartı Denetle
ve Bağlantı ve Provizyon. Kartı veren kuruluş veya ağ, kartları doğrulamak, onaylamak ve
Apple Pay'e eklemek için bu çağrıları kullanır. Bu istemci-sunucu oturumları, SSL kullanılarak şifrelenir.
Tam kart numaraları aygıtta veya Apple sunucularında saklanmaz. Bunun yerine, benzersiz bir Aygıt Hesap Numarası yaratılır, şifrelenir ve sonra Secure Element'te saklanır. Bu
benzersiz Aygıt Hesap Numarası, Apple'ın erişemeyeceği şekilde şifrelenir. Aygıt Hesap
Numarası benzersizdir ve normal kredi ya da banka kartı numaralarından farklıdır; kartı
veren kuruluş bunun manyetik şeritli bir kartta, telefonla veya web sitelerinde kullanılmasını önleyebilir. Secure Element'teki Aygıt Hesap Numarası, iOS'ten ve WatchOS'tan
yalıtılmıştır, hiçbir zaman Apple Pay Sunucularında saklanmaz ve hiçbir zaman iCloud'a
yedeklenmez.
Apple Watch ile kullanıma yönelik kartların Apple Pay için provizyonu, iPhone'da
Apple Watch uygulaması kullanılarak gerçekleştirilir. Apple Watch için bir kartın provizyonu, saatin Bluetooth iletişim kapsama alanı içinde olmasını gerektirir. Kartlar
Apple Watch ile kullanılmak için özel olarak kaydettirilir ve kendi Aygıt Hesap
Numaralarına sahip olur; bu numaralar Apple Watch'ta Secure Element'te saklanır.
Bir kredi veya banka kartının Apple Pay’de provizyonunu gerçekleştirmenin üç yöntemi
vardır:
• Kredi veya banka kartını Apple Pay'e elle ekleme
• Kayıtlı kredi veya banka kartlarını iTunes Store hesabından Apple Pay'e ekleme
• Banka veya kredi kartlarını kartı veren kuruluşun uygulamasından ekleme
Kredi veya banka kartını Apple Pay'e elle ekleme
Mağaza kartları dahil olmak üzere bir kartı elle eklemek için, provizyon işlemini kolaylaştırmak üzere ad, kredi kartı numarası, son kullanma tarihi ve CVV kullanılır. Ayarlar'da,
Wallet uygulamasında veya Apple Watch uygulamasında kullanıcılar yazarak veya iSight
kamerasını kullanarak bu bilgileri girebilir. Kamera kart bilgilerini yakaladığında Apple;
adı, kart numarasını ve son kullanma tarihini doldurmaya çalışır. Fotoğraf hiçbir zaman
iOS Güvenliği—Teknik Makale | Mayıs 2016
32
aygıta kaydedilmez veya fotoğraf arşivinde saklanmaz. Tüm alanlar doldurulduktan
sonra, Kartı Denetle işlemi CVV dışındaki alanları doğrular. Bunlar şifrelenerek Apple Pay
sunucusuna gönderilir.
Kartı Denetle işlemiyle birlikte bir hüküm ve koşullar kimliği döndürülürse Apple, kartı
veren kuruluşun hüküm ve koşullarını indirerek kullanıcıya gösterir. Kullanıcı hüküm
ve koşulları kabul ederse, Apple kabul edilen hükümlerin kimliğinin yanı sıra CVV'yi
Bağlantı ve Provizyon işlemine gönderir. Ayrıca, Bağlantı ve Provizyon işleminin parçası
olarak Apple, iTunes ve App Store hesabınızın etkinliği (örneğin, iTunes ile işlem tarihçenizin uzun olup olmadığı) hakkındaki bilgiler, aygıtınız hakkındaki bilgiler (örneğin,
aygıtınızın ve Apple Pay'i kullanmak için gereken diğer yardımcı iOS aygıtlarının telefon numarası, adı ve modeli), ayrıca kartınızı eklediğiniz sıradaki yaklaşık konumunuz
(Konum Servisleri'ni etkinleştirdiyseniz) gibi aygıttaki bilgileri kartı veren kuruluş veya
ağla paylaşır. Kartı veren kuruluş, bu bilgileri kullanarak kartın Apple Pay'e eklenmesini
onaylayıp onaylamayacağını belirler.
Bağlantı ve Provizyon işleminin sonucunda iki işlem gerçekleşir:
• Aygıt, kredi veya banka kartını temsil eden Wallet kart dosyasını indirmeye başlar.
• Aygıt, kartı Secure Element'e bağlamaya başlar.
Kart dosyası, kart resimlerinin indirileceği URL'lerle kişi bilgileri, kartı veren ilgili kuruluşun uygulaması ve desteklenen özellikler gibi kart hakkındaki meta verileri içerir. Ayrıca
Secure Element'in kişiselleştirilmesinin tamamlanıp tamamlanmadığı, kartın şu anda
kartı veren kuruluş tarafından askıya alınmış olup olmadığı ya da kartın Apple Pay ile
ödeme yapabilmesi için önce ek doğrulama işlemlerinin gerekip gerekmediği gibi bilgilerin bulunduğu kart durumunu da içerir.
Kayıtlı kredi veya banka kartlarını iTunes Store hesabından Apple Pay'e
ekleme
iTunes'da kayıtlı bir kredi veya banka kartı için, kullanıcının Apple kimliği parolasını
yeniden girmesi gerekebilir. Kart numarası iTunes'dan alınır ve Kartı Denetle işlemi
başlatılır. Kart Apple Pay için uygunsa, aygıt hüküm ve koşulları indirip görüntüler, sonra
hükümlerin kimliği ve kartın güvenlik kodunu Bağlantı ve Provizyon işlemine gönderir.
Kayıtlı iTunes hesabı kartları için ek doğrulama gerçekleşebilir.
Kredi veya banka kartlarını kartı veren kuruluşun uygulamasından ekleme
Uygulama Apple Pay ile kullanım için kaydettirildiğinde, uygulama ve satıcının sunucusu için anahtarlar belirlenir. Bu anahtarlar, satıcıya gönderilen kart bilgilerini şifrelemek
için kullanılır ve böylece bilgilerin iOS aygıtı tarafından okunması önlenir. Provizyon
akışı, yukarıda açıklandığı şekilde elle eklenen kartlar için kullanılana benzer, ancak CVV
yerine tek kullanımlık parolalar kullanılır.
Ek doğrulama
Kartı veren kuruluş, kredi veya banka kartı için ek doğrulama gerekip gerekmediğine
karar verebilir. Kartı veren kuruluş tarafından sunulanlara bağlı olarak, kullanıcı ek doğrulama için SMS mesajı, e-posta, müşteri hizmetleri tarafından aranma veya onaylanmış
bir üçüncü parti uygulamasındaki bir yöntemle doğrulamayı tamamlamayı seçebilir.
SMS mesajları veya e-posta için, kullanıcı kartı veren kuruluşun kayıtlı iletişim bilgileri
arasından seçim yapar. Kullanıcının Wallet, Ayarlar veya Apple Watch uygulamasına
girmesi gereken bir kod gönderilir. Müşteri hizmetleri veya uygulama kullanarak doğrulama için, kartı veren kuruluş kendi iletişim sürecini yürütür.
iOS Güvenliği—Teknik Makale | Mayıs 2016
33
Ödeme yetkilendirmesi
Secure Element, yalnızca Secure Enclave'den kullanıcının Touch ID veya aygıt parolasıyla kimlik doğrulama gerçekleştirdiğini doğrulayan yetkiyi aldıktan sonra ödemenin
yapılmasına izin verir. Touch ID kullanılabiliyorsa saptanmış yöntemdir, ancak her zaman
Touch ID yerine parola kullanılabilir. Bir parmak izini eşleştirmeye yönelik üç başarısız
girişimden sonra otomatik olarak parola önerilir ve beş başarısız girişimden sonra
parola istenir. Touch ID yapılandırılmamışsa veya Apple Pay için etkinleştirilmemişse
de parola gerekir.
Secure Enclave ile Secure Element arasındaki iletişim, bir seri arayüz üzerinden gerçekleşir; Secure Element NFC denetleyiciye ve NFC denetleyici de uygulama işlemcisine
bağlanır. Secure Enclave ve Secure Element doğrudan bağlantılı olmadığı halde, üretim
sürecinde sağlanan paylaşılan bir eşleme anahtarını kullanarak güvenli şekilde iletişim
kurabilir. İletişimin şifreleme ve kimlik doğrulama işlemleri AES tabanlıdır; yeniden gönderme saldırılarından korunmak için iki taraf da şifreli nonce'lar kullanır. Eşleme anahtarı, Secure Enclave'de UID anahtarından ve Secure Element'in benzersiz tanıtıcısından
oluşturulur. Eşleme anahtarı daha sonra fabrikada Secure Enclave'den güvenli bir şekilde bir donanım güvenlik modülüne (HSM) aktarılır; bu modül eşleme anahtarını daha
sonra Secure Element'e eklemek için gerekli temel materyale sahiptir.
Kullanıcı bir işlemi yetkilendirdiğinde, Secure Enclave kimlik doğrulama türü hakkında imzalı verileri ve işlem türünün ayrıntılarını (temassız ya da uygulama içinden)
bir Yetkilendirme Rasgele (AR) değerine bağlı olarak Secure Element'e gönderir. AR,
kullanıcı bir kredi kartının provizyonunu ilk kez gerçekleştirdiğinde Secure Enclave'de
oluşturulur, Apple Pay etkin olduğu sürece tutulur ve Secure Enclave'in şifreleme ve
geri çağırmayı önleme mekanizmasıyla korunur. Eşleme anahtarı aracılığıyla Secure
Element'e güvenli şekilde iletilir. Yeni bir AR değeri alındığında, Secure Element daha
önce eklenen kartları silinmiş olarak işaretler.
Secure Element'e eklenen kredi ve banka kartları yalnızca Secure Element'e, kartın
eklenmesinde kullanılan aynı eşleme anahtarı ve AR değeri kullanılarak kimlik doğrulaması gönderildiğinde kullanılabilir. Böylece aşağıdaki senaryolarda, iOS Secure Enclave'e
AR kopyasını kullanılamaz olarak işaretleyip kartları kullanılamaz hale getirmesi komutunu verebilir:
• Parola etkisizleştirildiğinde.
• Kullanıcı iCloud'dan çıkış yaptığında.
• Kullanıcı Tüm İçerikleri ve Ayarları Sil'i seçtiğinde.
• Aygıt kurtarma modundan geri yüklendiğinde.
Apple Watch'ta kartlar aşağıdaki durumlarda geçersiz olarak işaretlenir:
• Saatin parolası etkisizleştirildiğinde.
• Saatin iPhone ile eşlemesi kaldırıldığında.
• Bilek algılama kapatıldığında.
Secure Element, ödeme küçük uygulamasının temassız ödeme işlemini etkinleştirmeden önce, eşleme anahtarını ve geçerli AR değeri kopyasını kullanarak, Secure
Enclave'den gelen yetkilendirmeyi doğrular. Bu işlem, uygulama içi işlemler için bir
ödeme küçük uygulamasından şifreli ödeme verileri alınırken de geçerlidir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
34
İşleme özel dinamik güvenlik kodu
Ödeme küçük uygulamalarından kaynaklanan tüm ödeme işlemleri, Aygıt Hesap
Numarası ile birlikte işleme özel bir dinamik güvenlik kodu içerir. Bu tek kullanımlık
kod, her yeni işlem için artırılan bir sayaç ve ödeme ağı ve/veya kartı veren kuruluş
tarafından bilinen, kişiselleştirme sırasında ödeme küçük uygulamasına sağlanan bir
anahtar kullanılarak hesaplanır. Ödeme düzenine bağlı olarak, bu kodların hesaplanmasında aşağıdakiler dahil başka veriler de kullanılabilir:
• Ödeme küçük uygulaması tarafından oluşturulan bir rasgele sayı
• NFC işlemi söz konusu olduğunda terminal tarafından yaratılan başka bir rasgele sayı
veya
• Uygulama içi işlemler söz konusu olduğunda sunucu tarafından yaratılan başka bir
rasgele sayı
Bu güvenlik kodları, ödeme ağına ve kartı veren kuruluşa iletilir ve böylece her işlemi
doğrulayabilirler. Bu güvenlik kodlarının uzunluğu, gerçekleştirilen işlem türüne göre
değişebilir.
Apple Pay ile temassız ödemeler
iPhone açıksa ve bir NFC alanı algılarsa, kullanıcıya ilgili kredi ya da banka kartını veya
Ayarlar'da yönetilen saptanmış kartı sunar. Kullanıcı Wallet uygulamasına gidip bir kredi
veya banka kartı da seçebilir ya da aygıt kilitliyken Ana Ekran düğmesini çift tıklayabilir.
Daha sonra kullanıcının ödeme bilgileri iletilmeden önce Touch ID veya parolasını kullanarak kimliğini doğrulaması gerekir. Apple Watch'un kilidi açıldığında, yan düğmenin
çift tıklanması ödeme için saptanmış kartı etkinleştirir. Kullanıcı kimlik doğrulaması
olmadan hiçbir ödeme bilgisi gönderilmez.
Kullanıcı kimliğini doğruladıktan sonra, ödeme işlenirken Aygıt Hesap Numarası ve işleme özel dinamik güvenlik kodu kullanılır. Apple ya da kullanıcının aygıtı, satıcılara tam
gerçek kredi veya banka kartı numaralarını göndermez. Apple, işlemin yaklaşık zamanı
ve konumu gibi işlem bilgilerini anonim olarak alabilir ve bu bilgiler Apple Pay ve diğer
Apple ürünleriyle servislerinin iyileştirilmesine yardımcı olur.
Uygulamaların içinden Apple Pay ile ödeme
Apple Pay, iOS uygulamalarının içinden ödeme yapmak için de kullanılabilir. Kullanıcılar
Apple Pay kullanarak uygulamaların içinden ödeme yaptığında, Apple şifreli işlem
bilgilerini alır ve satıcıya göndermeden önce satıcıya özel bir anahtarla onları yeniden
şifreler. Apple Pay, yaklaşık satın alma tutarı gibi işlem bilgilerini anonim olarak tutar.
Bu bilgiler tekrar kullanıcıyla bağlantılandırılamaz ve kullanıcının neyi satın aldığını asla
içermez.
Bir uygulama Apple Pay ödeme işlemi başlattığında, Apple Pay Sunucuları, şifreli işlemi
satıcıdan önce aygıttan alır. Apple Pay Sunucuları daha sonra işlemi satıcıya yöneltmeden önce satıcıya özel bir anahtarla yeniden şifreler.
Bir uygulama ödeme istediğinde, aygıtın Apple Pay'i destekleyip desteklemediğini
ve kullanıcının satıcı tarafından kabul edilen bir ödeme ağında ödeme yapabilecek
kredi veya banka kartlarına sahip olup olmadığını belirlemek için bir API'a çağrı yapar.
Uygulama, faturalandırma ve teslimat adresi ile kişi bilgileri gibi işlemi yürütmek ve
tamamlamak için gerekli bilgi parçalarını ister. Uygulama daha sonra iOS'ten kullanılacak kart gibi diğer gerekli bilgilerin yanı sıra uygulama için bilgi isteyen Apple Pay
sayfasını göstermesini ister.
iOS Güvenliği—Teknik Makale | Mayıs 2016
35
Bu sırada uygulamaya son gönderim maliyetini hesaplaması için şehir, ülke ve posta
kodu bilgileri verilir. İstenen bilgilerin tamamı, kullanıcı ödemeyi Touch ID veya aygıt
parolasıyla yetkilendirene kadar uygulamaya verilmez. Uygulama yetkilendirildikten
sonra, Apple Pay sayfasında sunulan bilgiler satıcıya aktarılır.
Kullanıcı ödemeyi yetkilendirdiğinde, mağaza içi işlemlerde kullanılan NFC terminali tarafından döndürülen değere benzer şifreli bir nonce almak için Apple Pay
Sunucularına çağrı yapılır. Diğer işlem verileriyle birlikte nonce da Apple anahtarıyla
şifrelenecek bir ödeme kimlik bilgisi oluşturmak üzere Secure Element'e iletilir. Şifreli
ödeme kimlik bilgisi Secure Element'ten çıktığında, Apple Pay Sunucularına iletilir ve
onlar da kimlik bilgisinin şifresini çözer, kimlik bilgisindeki nonce'ı Secure Element
tarafından gönderilen nonce ile karşılaştırarak doğrular ve Satıcı Kimliğiyle ilişkili satıcı
anahtarını kullanarak ödeme kimlik bilgisini yeniden şifreler. Ardından ödeme kimlik bilgisi aygıta döndürülür, aygıt da onu API üzerinden tekrar uygulamaya iletir. Uygulama
da işlenmek üzere onu satıcı sistemine iletir. Satıcı daha sonra işleme devam etmek için
kendi özel anahtarıyla ödeme kimlik bilgisinin şifresini çözebilir. Apple sunucularından
gelen imzayla birlikte bu, satıcının işlemin bu belirli satıcıya yönelik olduğunu doğrulamasını sağlar.
API'lar, desteklenen satıcı kimliklerini belirten bir yetki anahtarı gerektirir. Uygulama,
işlemin farklı bir müşteriye yönlendirilememesini sağlamak üzere sipariş numarası ya
da müşteri kimliği gibi ek verileri de Secure Element'e imzalanmak üzere gönderilecek
verilere ekleyebilir. Bu, uygulama geliştirici tarafından gerçekleştirilir. Uygulama geliştirici, PKPaymentRequest'te applicationData belirtebilir. Bu verilerin bir özeti şifreli ödeme
verilerine dahil edilir. Daha sonra satıcı, applicationData özetinin ödeme bilgilerine dahil
edilenlerle eşleştiğini doğrulamaktan sorumludur.
Ödül kartları
iOS 9'dan itibaren, Apple Pay satıcı ödül kartlarının uyumlu NFC terminallerine iletilmesi
için Katma Değerli Servis (VAS) protokolünü destekler. VAS protokolü, satıcı terminallerinde uygulanabilir ve desteklenen Apple aygıtlarıyla iletişim kurmak için NFC'yi kullanır.
VAS protokolü kısa mesafede çalışır ve bir Apple Pay işleminin parçası olarak ödül kartı
bilgilerinin iletilmesi gibi yardımcı servisler sağlamak için kullanılır.
NFC terminali bir kart için istek göndererek kart bilgilerinin alınması işlemini başlatır.
Kullanıcının mağazanın tanıtıcısına sahip bir kartı varsa, kullanıcıdan kartın kullanımını
yetkilendirmesi istenir. Satıcı şifrelemeyi destekliyorsa, kart bilgileri, zaman damgası ve
tek kullanımlık bir rasgele ECDH P-256 anahtarı, satıcının açık anahtarıyla birlikte kart
verileri için bir şifreleme anahtarı türetmek üzere kullanılır ve bu anahtar terminale
gönderilir. Satıcı şifrelemeyi desteklemiyorsa, ödül kartı bilgileri gönderilmeden önce
kullanıcının aygıtı terminale yeniden sunması istenir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
36
Kartları askıya alma, kaldırma ve silme
Kullanıcılar, aygıtlarını iPhone'umu Bul'u kullanarak Kayıp Modu'na geçirip iPhone ve
iPad'de Apple Pay'i askıya alabilir. Kullanıcılar ayrıca iPhone’umu Bul’u ya da iCloud
Ayarları’nı veya doğrudan kendi aygıtlarında Wallet’ı kullanarak kartlarını Apple Pay’den
silebilirler. Apple Watch’taki kartlar, iCloud ayarları veya iPhone’daki Apple Watch
uygulaması kullanılarak ya da doğrudan saat üzerinde silinebilir. Aygıt çevrimdışı
olsa ve hücresel bir ağa ya da Wi-Fi ağına bağlı olmasa da, kartı veren kuruluş veya
ilgili ödeme ağı tarafından aygıtta kartları kullanarak ödeme yapma olanağı Apple
Pay’den silinir veya askıya alınır. Kullanıcılar kartı veren kuruluşu arayarak da kartları
Apple Pay'den silmesini veya askıya almasını isteyebilir.
Bunlara ek olarak kullanıcı iPhone’umu Bul’daki "Tüm İçerikleri ve Ayarları Sil"i kullanarak tüm aygıtı sildiğinde iOS, Secure Element’e tüm kartları silinmiş olarak işaretlemesi
komutunu gönderir. Bunun sonucunda, Apple Pay sunucularıyla iletişim kurulup kartlar
Secure Element’ten tamamen silinene kadar kartların durumu anında kullanılamaz
olarak değiştirilir. Bundan bağımsız olarak Secure Enclave, AR’ı geçersiz olarak işaretler
ve böylece daha önce kaydettirilen kartlar için başka ödeme yetkilendirmesi yapılamaz.
Aygıt çevrimiçi olduğunda, Secure Element’teki tüm kartların silinmesini sağlamak için
Apple Pay sunucularıyla iletişim kurmaya çalışır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
37
İnternet Servisleri
Güçlü Apple kimliği parolaları yaratma
Apple kimlikleri; iCloud, Facetime ve iMessage
da dahil olmak üzere çeşitli servislere bağlanmak için kullanılır. Kullanıcıların güçlü parolalar yaratmasına yardımcı olması için, tüm
yeni hesapların aşağıdaki parola özelliklerini
içermesi gerekir:
• En az sekiz karakter
• En az bir harf
• En az bir büyük harf
• En az bir sayı
• Aynı karakterden art arda en fazla üç tane
içerebilir
• Hesap adıyla aynı olamaz
Apple, kullanıcıların aygıtlarından daha fazla verimlilik ve fayda elde etmelerine yardımcı olmak için, iMessage, FaceTime, Siri, Spotlight Önerileri, iCloud, iCloud Yedekleme ve
iCloud Anahtar Zinciri gibi güçlü bir grup servis oluşturmuştur.
Bu İnternet servisleri, iOS'in platformun tamamında desteklediği aynı güvenlik hedefleriyle oluşturulmuştur. Bu hedefler arasında aygıtta durağan veya kablosuz ağlar üzerinden iletilen verilerin güvenli bir şekilde işlenmesi, kullanıcıların kişisel bilgilerinin korunması, bilgi ve servislerin kötü niyetli veya yetkisiz erişime karşı tehditlerden korunması
sayılabilir. Her servis, iOS’in genel kullanım kolaylığından ödün vermeden kendi güçlü
güvenlik mimarisini kullanır.
Apple Kimliği
Apple kimliği; iCloud, iMessage, FaceTime, iTunes Store, iBooks Store, App Store vb.
Apple servislerine giriş yapmak için kullanılan kullanıcı adı ve paroladır. Kullanıcıların
hesaplarına yetkisiz erişimi önlemek için Apple kimliklerini güvenli tutmaları önemlidir.
Apple buna yardımcı olmak amacıyla, en az sekiz karakter uzunluğunda, hem harf hem
sayılardan oluşan, art arda üçten fazla aynı karakteri içermeyen ve çok kullanılan bir
parola olmayan güçlü parolaları zorunlu tutar. Kullanıcıların, parolalarını daha da güçlendirmek için ek karakterler ve noktalama işaretleri ekleyerek bu yönergeleri daha da
ilerletmeleri kesinlikle önerilir. Apple, kullanıcıların hesap bilgilerinde değişiklik yaparken veya unutulan parolayı sıfırlarken sahip kimliğini doğrulamaya yardımcı olmak için
kullanılabilecek üç güvenlik sorusu ayarlamalarını da ister.
Apple ayrıca hesaplarında önemli değişiklikler gerçekleştiğinde, örneğin parola veya
faturalandırma bilgileri değiştirildiğinde ya da Apple kimliği yeni bir aygıtta giriş yapmak için kullanıldığında, kullanıcılara e-posta ve anında iletme bildirimleri gönderir.
Emin olmadıkları herhangi bir şey varsa, kullanıcıların Apple kimliği parolalarını hemen
değiştirmeleri istenir.
Buna ek olarak Apple, kullanıcı hesaplarını korumak için tasarlanmış birçok politika ve
işlem kullanır. Bunlar arasında giriş yapma ve parola sıfırlama girişimleri için yeniden
deneme sayısını sınırlama, saldırıları anında belirlemeye yardımcı olmak için etkin
dolandırıcılık takibi ve müşteri güvenliğini etkileyebilecek yeni bilgilere uyulmasını
sağlayan düzenli politika gözden geçirmeleri sayılabilir.
İki faktörlü kimlik doğrulama
Apple, kullanıcıların hesaplarını daha da güvenli kılmalarına yardımcı olmak için iki
faktörlü kimlik doğrulamayı sunar. İki faktörlü kimlik doğrulama, Apple kimlikleri için
ek bir güvenlik katmanıdır. Başka biri parolayı bilse bile yalnızca hesap sahibinin hesaba
erişebilmesini sağlamak için tasarlanmıştır.
İki faktörlü kimlik doğrulamayla kullanıcı hesabına yalnızca kullanıcının iPhone’u, iPad’i
veya Mac’i gibi güvenilir aygıtlardan erişilebilir. Yeni bir aygıtta ilk kez giriş yapmak için
iki bilgi gereklidir: Apple kimliği parolası ve kullanıcının güvenilir aygıtlarında otomatik
olarak görüntülenen veya güvenilir bir telefon numarasına gönderilen altı basamaklı bir
doğrulama kodu. Kullanıcı, kodu girerek yeni aygıta güvendiğini ve güvenli bir şekilde
giriş yapılabileceğini doğrular. Kullanıcının hesabına erişmek için parola tek başına
artık yeterli olmadığı için, iki faktörlü kimlik doğrulama kullanıcının Apple kimliğinin
ve Apple’da sakladığı tüm kişisel bilgilerin güvenliğini artırır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
38
İki faktörlü kimlik doğrulama kullanıcıların Apple kimliklerinin ve Apple’da sakladıkları tüm kişisel bilgilerin güvenliğini artırır. Bu özellik doğrudan iOS’e, OS X’e, tvOS’e,
watchOS’e ve Apple’ın web siteleri tarafından kullanılan kimlik doğrulama sistemlerine
entegredir.
İki faktörlü kimlik doğrulama hakkında daha fazla bilgi için, support.apple.com/tr-tr/
HT204915 adresine bakın.
İki adımlı doğrulama
2013 yılından beri Apple, iki adımlı doğrulama adı verilen benzer bir güvenlik yöntemi
de sunmaktadır. İki adımlı doğrulama etkinken kullanıcının Apple kimliği hesap bilgilerinde değişikliğe izin verilmeden önce; iCloud, iMessage, FaceTime ve Game Center
servislerine giriş yapılmadan önce ve yeni bir aygıttan iTunes Store, iBooks Store veya
App Store alışverişi yapılmadan önce, kullanıcı kimliğinin kullanıcının güvenilir aygıtlarından birine gönderilen geçici bir kodla doğrulanması gerekir. Kullanıcılara, parolalarını
unuttukları veya güvenilir aygıtlarına erişimlerini kaybettikleri takdirde kullanmaları
için güvenli bir yerde saklanması gereken 14 karakterlik Kurtarma Anahtarı da sağlanır.
Apple kimliği için iki adımlı doğrulama hakkında daha fazla bilgi edinmek istiyorsanız,
https://support.apple.com/tr-tr/ht5570 adresine bakın.
Yönetilen Apple Kimlikleri
iOS 9.3 veya daha yenisinde Yönetilen Apple Kimlikleri bir Apple kimliğine benzer şekilde çalışır ama bunlar bir eğitim kurumuna aittir ve kurum tarafından denetlenir. Kurum;
parolaları sıfırlayabilir, satın almayı ve FaceTime ile Mesajlar gibi iletişimleri sınırlayabilir
ve personel, öğretmenler ve öğrenciler için rol tabanlı izinler ayarlayabilir.
Yönetilen Apple Kimlikleri için Touch ID, Apple Pay, iCloud Anahtar Zinciri, HomeKit ve
iPhone’umu Bul gibi bazı Apple servisleri etkisizleştirilir.
Yönetilen Apple Kimlikleri hakkında daha fazla bilgi için, Apple Okul Yönetimi Yardım’a
bakın.
Yönetilen Apple Kimlikleri’ni denetleme
Yönetilen Apple Kimlikleri, kurumların yasal düzenlemelere ve gizlilik düzenlemelerine
uymasını sağlayan denetlemeyi de destekler. Sistem yöneticisi, öğretmen veya yönetici hesaplarına belirli Yönetilen Apple Kimlikleri için denetleme ayrıcalığı verilebilir.
Denetleyiciler yalnızca okul hiyerarşisinde kendilerinden alt kademede bulunan hesapları izleyebilirler. Bir başka deyişle öğretmenler öğrencileri izleyebilir; yöneticiler öğretmenleri ve öğrencileri denetleyebilir, sistem yöneticileri de yöneticileri, öğretmenleri ve
öğrencileri denetleyebilir.
Apple Okul Yönetimi kullanılarak denetleme kimlik bilgileri istendiğinde, yalnızca
denetlenmesi istenen Yönetilen Apple Kimliği’ne erişimi olan özel bir hesap verilir.
Denetleme izninin süresi yedi gün sonra biter. Bu süre boyunca denetleyici, kullanıcının iCloud’da veya CloudKit özellikli uygulamalarda saklanan içeriklerini okuyabilir ve
değiştirebilir. Denetleme erişimi için yapılan her istek Apple Okul Yönetimi’nde günlüğe
alınır. Günlükler; denetleyicinin kim olduğunu, denetleyicinin erişim istediği Yönetilen
Apple Kimliğini, istek zamanını ve denetlemenin gerçekleştirilip gerçekleştirilmediğini
gösterir.
Yönetilen Apple Kimlikleri ve kişisel aygıtlar
Yönetilen Apple Kimlikleri, kişilerin sahip oldukları iOS aygıtlarıyla da kullanılabilir.
Öğrenciler, kurum tarafından verilen Yönetilen Apple Kimliği’ni ve Apple kimliği için
iki faktörlü kimlik doğrulama işleminin ikinci faktörü olarak görev yapan ek bir ev
iOS Güvenliği—Teknik Makale | Mayıs 2016
39
kullanımı parolasını kullanarak iCloud’a giriş yapar. Kişisel bir aygıtta Yönetilen Apple
Kimliği kullanılırken iCloud Anahtar Zinciri kullanılamaz ve kurum, FaceTime veya
Mesajlar gibi diğer özellikleri sınırlayabilir. Giriş yaptıklarında öğrenciler tarafından yaratılan iCloud belgeleri, daha önce açıklandığı şekilde denetime tabidir.
iMessage
Apple iMessage, iOS aygıtları ve Mac bilgisayarlar için bir mesajlaşma servisidir.
iMessage, metinleri ve fotoğraflar, kişiler, konumlar gibi ilişikleri destekler. Mesajlar kullanıcının kayıtlı tüm aygıtlarında görünür; böylece bir yazışma kullanıcının aygıtlarından
herhangi birinden sürdürülebilir. iMessage Apple Anında İletme Bildirim servisinden
(APNs) kapsamlı bir şekilde yararlanır. Apple mesajlar veya ilişiklerin günlüğünü tutmaz
ve bunların içeriği uçtan uca şifrelemeyle korunur, böylece gönderen ve alıcı dışında
kimse onlara erişemez. Apple verilerin şifresini çözemez.
Kullanıcı bir aygıtta iMessage'ı açtığında, aygıt servisle kullanılmak üzere iki anahtar çifti
oluşturur: şifreleme için bir RSA 1280 bit anahtarı ve imzalama için NIST P-256 eğrisindeki bir ECDSA 256 bit anahtarı. Her iki anahtar çifti için özel anahtarlar, aygıtın anahtar
zincirine kaydedilir ve açık anahtarlar Apple'ın dizin servisine (IDS) gönderilir; burada
aygıtın APNs adresiyle birlikte kullanıcının telefon numarası veya e-posta adresiyle ilişkilendirilir.
Kullanıcılar iMessage ile kullanım için ek aygıtları etkinleştirdiğinde, şifreleme ve imzalama açık anahtarları, APNs adresleri ve ilişkili telefon numaraları dizin servisine eklenir.
Kullanıcılar bir onay bağlantısı göndererek doğrulanacak başka e-posta adresleri de
ekleyebilir. Telefon numaraları, operatör ağı ve SIM ile doğrulanır. Ayrıca, kullanıcının
kayıtlı aygıtlarının tümü yeni bir aygıt, telefon numarası veya e-posta adresi eklendiğinde bir uyarı mesajı görüntüler.
iMessage mesajları nasıl alır ve gönderir?
Kullanıcılar, bir adres veya ad girerek yeni bir iMessage yazışması başlatır. Bir telefon
numarası veya e-posta adresi girerlerse, aygıt yazışmanın gönderildiği kişiyle ilişkili
tüm aygıtlar için açık anahtarları ve APNs adreslerini almak üzere IDS ile iletişim kurar.
Kullanıcı bir ad girerse, aygıt ilk önce kullanıcının Kişiler uygulamasını kullanarak bu
adla ilişkili telefon numaraları ve e-posta adreslerini toplar, sonra IDS'ten açık anahtarlar
ve APNs adreslerini alır.
Kullanıcının giden mesajı, alıcının aygıtlarından her biri için ayrıca şifrelenir. Alıcı aygıtların açık RSA şifreleme anahtarları IDS'ten alınır. Her alıcı aygıt için, gönderen aygıt bir
rasgele 128 bit anahtar oluşturur ve mesajı CTR modunda AES kullanarak bu anahtarla
şifreler. Bu mesaj için AES anahtarı, alıcı aygıtın açık anahtarına RSA-OAEP kullanarak
şifrelenir. Şifreli mesaj metniyle şifreli mesaj anahtarının birleşimi daha sonra SHA-1 ile
özetlenir ve özet, gönderen aygıtın özel imza anahtarı kullanılarak ECDSA ile imzalanır.
Sonuçta ortaya çıkan mesajlar, her alıcı aygıt için bir tane olmak üzere, şifreli mesaj
metni, şifreli mesaj anahtarı ve gönderenin dijital imzasından oluşur. Daha sonra bunların hepsi iletilmek üzere APNs'e gönderilir. Zaman damgası ve APNs'in yöneltme bilgileri gibi meta veriler şifrelenmez. APNs ile iletişim, bir gizli iletme TLS kanalı kullanılarak
şifrelenir.
APNs, yalnızca boyutu iOS sürümüne bağlı olarak en fazla 4 KB veya 16 KB olan mesajları iletebilir. Mesaj metni çok uzunsa ya da fotoğraf gibi bir ilişik eklenmişse, ilişik AES
kullanılarak CTR modunda rasgele üretilen bir 256 bit anahtar kullanılarak şifrelenir ve
iCloud'a yüklenir. Daha sonra ilişik için AES anahtarı, URI'yı (Tek Biçimli Kaynak Tanıtıcı)
ve şifrelenmiş biçiminin bir SHA-1 özeti, iMessage'ın içeriği olarak alıcıya gönderilir.
Bunların gizliliği ve bütünlüğü, aşağıda gösterildiği gibi normal iMessage şifrelemesiyle
korunur.
iOS Güvenliği—Teknik Makale | Mayıs 2016
40
İlişik şununla şifrelenmiş:
rasgele anahtar
iCloud
APNs
İmzalı ve şifreli kullanıcı
2 için mesaj şunu içerir:
URI ve ilişik anahtarı
Kullanıcı 1
Kullanıcı 2
Kullanıcı 1 için açık anahtar
ve APN jetonu
Kullanıcı 2 için açık
anahtar ve APN jetonu
IDS
Grup yazışmalarında, bu işlem her alıcı ve alıcıların aygıtları için tekrarlanır.
Alıcı tarafında, her aygıt APNs'ten kendi mesaj kopyasını ve gerekirse iCloud'dan ilişiği
alır. Gönderenin gelen telefon numarası veya e-posta adresi, alıcının kişileriyle eşleştirilir
ve böylece mümkünse bir ad görüntülenebilir.
Tüm anında bildirimlerde olduğu gibi, mesaj iletildiğinde APNs'ten silinir. Ancak diğer
APNs bildirimlerinin aksine, iMessage mesajları çevrimdışı aygıtlara iletilmek üzere sıraya alınır. Mesajlar şu anda en fazla 30 gün saklanmaktadır.
FaceTime
FaceTime Apple'ın görüntülü ve sesli arama servisidir. iMessage'a benzer şekilde,
FaceTime aramaları da kullanıcının kayıtlı aygıtlarıyla ilk başta bağlantı kurmak için
Apple Anında İletme Bildirim servisini kullanır. FaceTime'ın sesli/görüntülü içerikleri,
uçtan uca şifrelemeyle korunur, böylece gönderen ve alıcı dışında kimse onlara erişemez. Apple verilerin şifresini çözemez.
FaceTime, aygıtlar arasında eşler arası bağlantı kurmak için İnternet Bağlantısı Kurma'yı
(ICE) kullanır. Oturum Başlatma Protokolü (SIP) mesajlarını kullanarak aygıtlar kimlik
sertifikalarını doğrular ve her oturum için bir paylaşılan sır belirler. Her aygıt tarafından
sağlanan şifreli nonce'lar, ortam kanallarının her biri için salt anahtarlarında birleştirilir
ve bunlar AES-256 şifreleme kullanılarak Güvenli Gerçek Zamanlı Protokol (SRTP) ile
yayınlanır.
iCloud
iCloud, bir kullanıcının kişileri, takvimleri, fotoğrafları, belgeleri ve daha fazlasını saklar
ve bilgileri tüm aygıtlarında otomatik olarak güncel tutar. iCloud, üçüncü parti uygulamaları tarafından belgelerin yanı sıra geliştirici tarafından tanımlanan uygulama verilerine yönelik anahtar değerlerini saklamak ve eşzamanlamak için de kullanılır. Kullanıcılar
iCloud'u bir Apple kimliğiyle giriş yapıp hangi servisleri kullanmak istediklerini seçerek
ayarlar. Fotoğraf Yayınım, iCloud Drive ve Yedekleme gibi iCloud özellikleri, bir konfigürasyon profili aracılığıyla BT yöneticileri tarafından etkisizleştirilebilir. Servis, nelerin saklandığını bilmez ve tüm dosya içeriğini aynı şekilde, bir bayt koleksiyonu olarak işler. iOS Güvenliği—Teknik Makale | Mayıs 2016
41
Her dosya yığınlara ayrılır ve AES-128 ile her yığının içeriklerinden türetilen, SHA-256
kullanan bir anahtarla iCloud tarafından şifrelenir. Anahtarlar ve dosyanın meta verileri, Apple tarafından kullanıcının iCloud hesabında saklanır. Dosyanın şifreli yığınları,
kullanıcıyı tanıtan hiçbir bilgi içermeyecek şekilde, Amazon S3 ve Windows Azure gibi
üçüncü parti saklama alanı servisleri kullanılarak saklanır.
iCloud Drive
iCloud Drive, iCloud'da saklanan belgeleri korumak için hesap tabanlı anahtarlar ekler.
Var olan iCloud servislerinde olduğu gibi, dosya içeriklerini yığınlara ayırıp şifreler ve
şifreli yığınları üçüncü parti servislerini kullanarak saklar. Ancak, dosya içerik anahtarları,
iCloud Drive meta verileriyle saklanan kayıt anahtarlarına sarılır. Bu kayıt anahtarları da
kullanıcının iCloud Drive servis anahtarıyla korunur ve bu anahtar kullanıcının iCloud
hesabında saklanır. Kullanıcılar, iCloud belgelerinin meta verilerine iCloud kimlik doğrulamasıyla erişir, ancak iCloud Drive saklama alanının korumalı kısımlarını görmek için
iCloud Drive servis anahtarına da sahip olmaları gerekir.
CloudKit
CloudKit, uygulama geliştiricilerin anahtar-değer verilerini, yapılandırılmış verileri ve
varlıkları iCloud'da saklamasına izin verir. CloudKit'e erişim, uygulama yetki anahtarları
kullanılarak denetlenir. CloudKit, hem açık hem de özel veritabanlarını destekler. Açık
veritabanları, uygulamanın tüm kopyaları tarafından genellikle genel varlıklar için kullanılır ve şifrelenmez. Özel veritabanları kullanıcı verilerini saklar.
iCloud Drive'da olduğu gibi, CloudKit kullanıcının özel veritabanında saklanan bilgileri korumak için hesap tabanlı anahtarlar kullanır ve diğer iCloud servislerine benzer
şekilde, dosyalar yığınlara ayrılır, şifrelenir ve üçüncü parti servisleri kullanılarak saklanır.
CloudKit Veri Koruma'ya benzer şekilde bir anahtar hiyerarşisi kullanır. Dosyaya özel
anahtarlar, CloudKit Kayıt anahtarlarına sarılır. Kayıt anahtarları da bölge açık anahtarına
sarılır ve bu anahtar, kullanıcının CloudKit Servis anahtarıyla korunur. CloudKit Servis
anahtarı, kullanıcının iCloud hesabında saklanır ve yalnızca kullanıcı iCloud ile kimlik
doğrulaması yaptıktan sonra kullanılabilir.
CloudKit Servis
Anahtarı
CloudKit Bölge
Anahtarı
CloudKit Kayıt
Anahtarı
Dosya Meta
Verileri
Dosya Yığın
Listesi
Dosya
Yığını
Yakınsak Şifreleme
iCloud Yedekleme
iCloud aygıt ayarları, uygulama verileri, Film Rulosu'ndaki videolar ve fotoğraflarla
Mesajlar uygulamasındaki yazışmalar dahil bilgileri günlük olarak Wi-Fi üzerinden
yedekler. iCloud, içeriği İnternet üzerinden gönderilirken şifreleyerek, şifreli bir biçimde saklayarak ve kimlik doğrulama için güvenli jetonlar kullanarak güvence altına alır.
iCloud Yedekleme, yalnızca aygıt kilitliyken, bir güç kaynağına bağlıyken ve İnternet'e
Wi-Fi erişimi varken gerçekleşir. iOS'te kullanılan şifreleme sayesinde, sistem artımlı,
katılımsız yedekleme ve geri yüklemenin gerçekleşmesine izin verirken verileri güvende
tutacak şekilde tasarlanmıştır.
iCloud aşağıdakileri yedekler:
• Satın alınan müzikler, filmler, TV şovları, uygulamalar ve kitaplar hakkında bilgi (ancak
satın alınan içeriğin kendisini yedeklemez)
iOS Güvenliği—Teknik Makale | Mayıs 2016
42
• Film Rulosu'ndaki fotoğraf ve videolar
• Kişiler, takvim etkinlikleri, anımsatıcılar ve notlar
• Aygıt ayarları
• Uygulama verileri
• Satın alınmayan ancak iBooks'a eklenen PDF'ler ve kitaplar
• Arama tarihçesi
• Ana ekran ve uygulama düzeni
• iMessage, metin (SMS) ve MMS mesajları
• Zil sesleri
• HomeKit verileri
• HealthKit verileri
• Visual Voicemail
Aygıt kilitliyken erişilemeyen Veri Koruma sınıflarında dosyalar yaratıldığında, dosya için
anahtarları iCloud Yedekleme anahtar çantasından sınıf anahtarı kullanılarak şifrelenir.
Dosyalar özgün, şifreli durumlarında iCloud'a yedeklenir. Koruma Yok Veri Koruma sınıfındaki dosyalar, aktarım sırasında şifrelenir.
iCloud Yedekleme anahtar çantası, her Veri Koruma sınıfı için asimetrik (Curve25519)
anahtarları içerir ve bu anahtarlar dosyaya özel anahtarları şifrelemede kullanılır.
Yedekleme anahtar çantasının ve iCloud Yedekleme anahtar çantasının içeriği hakkında
daha fazla bilgi edinmek için, Şifreleme ve Veri Koruma bölümündeki "Anahtar Zinciri
Verilerini Koruma" başlığına bakın.
Yedekleme grubu, kullanıcının iCloud hesabında saklanır ve kullanıcının dosyalarının bir kopyasıyla iCloud Yedekleme anahtar çantasından oluşur. iCloud Yedekleme
anahtar çantası, yedekleme grubuyla birlikte saklanan bir rasgele anahtarla korunur.
(Kullanıcının iCloud parolası şifreleme için kullanılmaz; böylece iCloud şifresinin değiştirilmesi, var olan yedeklemeleri geçersiz kılmaz.)
Kullanıcının anahtar zinciri veritabanı iCloud'a yedeklenmekle birlikte, UID ile karıştırılmış bir anahtarla korunur. Bu, anahtar zincirinin yalnızca oluşturulduğu özgün aygıta
geri yüklenebilmesini sağlar ve Apple dahil başka hiç kimsenin kullanıcının anahtar
zinciri öğelerini okuyamayacağı anlamına gelir.
Geri yükleme sırasında, yedeklenen dosyalar, iCloud Yedekleme anahtar çantası ve
anahtar çantasının anahtarı, kullanıcının iCloud hesabından alınır. iCloud Yedekleme
anahtar çantasının şifresi, anahtarı kullanılarak çözülür, sonra anahtar çantasındaki dosyaya özel anahtarlar, yedekleme grubundaki dosyaların şifresini çözmek için kullanılır;
bunlar, dosya sistemine yeni dosyalar olarak yazılır ve böylece Veri Koruma sınıflarına
uygun şekilde yeniden şifrelenir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
43
iCloud Anahtar Zinciri ile Safari
entegrasyonu
Safari, web sitesi parolaları için şifreleme
bakımından güçlü rasgele dizeleri otomatik olarak oluşturabilir ve bunlar, Anahtar
Zinciri'nde saklanır ve diğer aygıtlarınızla
eşzamanlanır. Anahtar zinciri öğeleri, Apple
sunucularından geçerek aygıttan aygıta
aktarılır ancak Apple’ın ve diğer aygıtların
içeriklerini okuyamayacağı şekilde şifrelenir.
iCloud Anahtar Zinciri
iCloud Anahtar Zinciri, kullanıcıların bu bilgileri Apple'a göndermeden kendi parolalarını iOS aygıtlarıyla Mac bilgisayarlar arasında güvenli bir şekilde eşzamanlamasına
olanak tanır. Güçlü gizlilik ve güvenliğe ek olarak, iCloud Anahtar Zincirinin tasarımı ve
mimarisini önemli ölçüde etkileyen diğer hedefler, kullanım kolaylığı ve bir anahtar zincirini kurtarabilme olanağı olmuştur. iCloud Anahtar zinciri, iki servisten oluşur: anahtar
zinciri eşzamanlama ve anahtar zinciri kurtarma.
Apple, iCloud Anahtar Zinciri'ni ve anahtar zinciri kurtarmayı, kullanıcının parolalarının
aşağıdaki durumlarda korunmayı sürdüreceği şekilde tasarlamıştır:
• Kullanıcının iCloud hesabı saldırıya uğradığında.
• iCloud harici bir saldırgan veya çalışan tarafından saldırıya uğradığında.
• Kullanıcı hesaplarına üçüncü parti erişimi gerçekleştiğinde.
Anahtar zinciri eşzamanlama
Kullanıcı iCloud Anahtar Zinciri'ni ilk kez etkinleştirdiğinde, aygıt bir güven halkası
oluşturur ve kendisi için bir eşzamanlama kimliği yaratır. Eşzamanlama kimliği, bir özel
anahtarla bir açık anahtardan oluşur. Eşzamanlama kimliğinin açık anahtarı halkaya
eklenir ve halka, ilk önce eşzamanlama kimliğinin özel anahtarıyla, sonra kullanıcının
iCloud hesabı parolasından türetilen asimetrik bir elips anahtarla (P256 kullanılarak)
olmak üzere iki kez imzalanır. Halkayla birlikte, kullanıcının iCloud parolasını taban alan
anahtarı yaratmak için kullanılan parametreler de (rasgele salt ve yinelemeler) saklanır.
İmzalanan eşzamanlama halkası, kullanıcının iCloud anahtar değer saklama alanına
yerleştirilir. Kullanıcının iCloud parolası bilinmeden okunamaz ve üyesinin eşzamanlama
kimliğinin özel anahtarı olmaksızın geçerli şekilde değiştirilemez.
Kullanıcı başka bir aygıtta iCloud Anahtar Zinciri'ni açtığında, yeni aygıt iCloud'da
kullanıcının daha önce kendisinin üyesi olmadığı bir eşzamanlama halkası oluşturmuş
olduğunu fark eder. Aygıt, kendi eşzamanlama kimliği anahtar çiftini yaratır, sonra halkaya üye olmayı istemek için bir uygulama çağrısı yaratır. Çağrı, aygıtın eşzamanlama
kimliğinin açık anahtarından oluşur ve kullanıcının kendi iCloud parolasıyla kimliğini
doğrulaması istenir. Elips anahtar oluşturma parametreleri iCloud'dan alınır ve uygulama çağrısını imzalamak için kullanılan bir anahtar oluşturur. Son olarak, uygulama
çağrısı iCloud'a eklenir.
İlk aygıt bir uygulama çağrısının geldiğini gördüğünde, kullanıcıya yeni bir aygıtın
eşzamanlama halkasına katılmak istediğini bildiren bir uyarı görüntüler. Kullanıcı kendi
iCloud parolasını girer ve uygulama çağrısı, eşleşen bir özel anahtarla imzalanmış olarak
doğrulanır. Böylece, halkaya katılma isteğini oluşturan kişinin, istek yapıldığı sırada kullanıcının iCloud parolasını girdiği belirlenir.
Kullanıcının yeni aygıtı halkaya eklemeyi onaylamasından sonra, ilk aygıt yeni üyenin
açık anahtarını eşzamanlama halkasına ekler ve yeniden kendi eşzamanlama kimliği ve
kullanıcının iCloud parolasından türetilen anahtarla imzalar. Yeni eşzamanlama halkası
iCloud'a eklenir ve burada aynı şekilde halkanın yeni üyesi tarafından imzalanır.
Böylece imzalama halkasında artık iki üye vardır ve her üye, kendi eşinin açık anahtarına sahip olur. iCloud anahtar değer saklama alanı üzerinden tekil anahtar zinciri öğelerinin değiş tokuşuna başlarlar. Her iki halka üyesinde de aynı öğe varsa, en son değişiklik tarihine sahip öğe eşzamanlanır. Diğer üyede aynı öğe varsa ve değişiklik tarihleri
de aynıysa, öğeler atlanır. Eşzamanlanan her öğe, gönderildiği aygıt için özel olarak
şifrelenir. Diğer aygıtlar veya Apple tarafından şifresi çözülemez. Ayrıca, şifrelenen öğe
iCloud'da kısa ömürlüdür; eşzamanlanan her yeni öğe onun üzerine yazılır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
44
Eşzamanlama halkasına yeni aygıtlar katıldıkça bu işlem tekrarlanır. Örneğin, üçüncü bir
aygıt katıldığında, kullanıcının diğer aygıtlarının her ikisinde de onay görünür. Kullanıcı
yeni üyeyi bu aygıtların herhangi birinden onaylayabilir. Yeni eşler eklendikçe, her eş
tüm üyelerde aynı anahtar zinciri öğelerinin olmasını sağlamak için yeni üyeyle eşzamanlanır.
Ancak anahtar zincirinin tamamı eşzamanlanmaz. VPN kimlikleri gibi bazı öğeler aygıta
özgüdür ve aygıttan ayrılmamaları gerekir. Yalnızca kSecAttrSynchronizable
özelliğine sahip öğeler eşzamanlanır. Apple bu özelliği Safari kullanıcı verileri (kullanıcı
adları, parolalar ve kredi kartı numaraları dahil), Wi-Fi parolaları ve HomeKit şifreleme
anahtarları için ayarlamıştır.
Ayrıca üçüncü parti uygulamaları tarafından eklenen anahtar zinciri öğeleri saptanmış olarak eşzamanlanmaz. Geliştiricilerin anahtar zincirine öğe eklerken
kSecAttrSynchronizable özelliğini ayarlaması gerekir.
Anahtar zinciri kurtarma
Anahtar zinciri kurtarma, kullanıcıların Apple'ın parolaları ve içerdiği diğer verileri okumasına izin vermeden anahtar zincirlerini Apple'a emanet etmeleri için bir yöntem
sunar. Kullanıcının tek bir aygıtı olsa bile, anahtar zinciri kurtarma, veri kaybına karşı
bir güvenlik ağı sağlar. Bu özellikle Safari web hesapları için rasgele, güçlü parolalar
oluşturmak için kullanıldığında önemlidir çünkü bu parolalar yalnızca anahtar zincirine
kaydedilir.
Anahtar zinciri kurtarmanın köşe taşlarından biri, Apple tarafından bu özelliği desteklemek için özellikle yaratılan güvenli emanet servisi ve ikincil kimlik doğrulamadır.
Kullanıcının anahtar zinciri, güçlü bir parola kullanılarak şifrelenir ve emanet servisi,
anahtar zincirinin kopyasını yalnızca çok katı bir dizi koşul yerine getirildiğinde sağlar.
iCloud Anahtar Zinciri açıldığında, kullanıcının bir iCloud Güvenlik Kodu yaratması istenir. Bu kod, emanete verilen bir anahtar zincirinin kurtarılması için gereklidir. Saptanmış
olarak, kullanıcının güvenlik kodu için dört basamaklı basit bir değer sağlaması istenir.
Ancak kullanıcılar kendi daha uzun kodlarını belirtebilir veya kaydedip saklamak üzere
aygıtlarının şifreli bir rasgele kod yaratmasını isteyebilir.
Sonra, iOS aygıtı kullanıcının anahtar zincirinin bir kopyasını dışa aktarır, bunu asimetrik
bir anahtar çantasında anahtarlarla sararak şifreler ve kullanıcının iCloud anahtar değer
saklama alanına yerleştirir. Anahtar çantası, kullanıcının iCloud Güvenlik Koduna ve
emanet kaydını saklayacak olan HSM (donanım güvenlik modülü) kümesinin açık anahtarına sarılır. Bu kullanıcının iCloud Emanet Kaydı haline gelir.
Kullanıcı kendi güvenlik kodunu belirtmek veya dört basamaklı değeri kullanmak yerine
şifreli rasgele güvenlik kodunu kabul etmeye karar vermişse, emanet kaydı gerekmez.
Bunun yerine, rasgele anahtarı sarmak için doğrudan iCloud Güvenlik Kodu kullanılır.
Güvenlik kodu belirlemenin yanı sıra kullanıcının bir telefon numarası kaydettirmesi
gerekir. Bu, anahtar zinciri kurtarma sırasında ikincil kimlik doğrulama katmanı sağlamak için kullanılır. Kurtarmanın devam edebilmesi için kullanıcının bir SMS alması ve
buna yanıt vermesi gerekir.
Emanet güvenliği
iCloud, yalnızca yetkili kullanıcılar ve aygıtların kurtarma gerçekleştirebilmesini sağlamak için, anahtar zinciri emaneti için güvenli bir altyapı sağlar. Topografik olarak
iCloud'un arkasında donanım güvenlik modülleri (HSM) kümeleri bulunur. Bu kümeler,
emanet kayıtları korur. Her birinde, daha önce açıklanan şekilde gözetimleri altındaki
emanet kayıtları şifrelemek için kullanılan bir anahtar vardır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
45
Bir anahtar zincirini kurtarmak için, kullanıcıların iCloud hesabı ve parolasıyla kimlik
doğrulaması ve kayıtlı telefon numarasına gönderilen bir SMS'e yanıt vermesi gerekir.
Bu işlem bittikten sonra, kullanıcılar iCloud Güvenlik Kodunu girmelidir. HSM kümesi,
kullanıcının iCloud Güvenlik Kodunu bildiğini, Güvenli Uzak Parola protokolünü (SRP)
kullanarak doğrular; kodun kendisi Apple'a gönderilmez. Aşağıda anlatıldığı gibi, kümenin her üyesi bağımsız olarak kullanıcının kaydını geri almak için izin verilen maksimum
girişim sayısını aşmadığını doğrular. Çoğunluk uzlaşırsa, küme emanet kaydın sarımını
açarak kullanıcının aygıtına gönderir.
Sonra aygıt iCloud Güvenlik Kodunu kullanarak kullanıcının anahtar zincirini şifrelemek
için kullanılan rasgele anahtarın sarımını açar. Bu anahtarla, iCloud anahtar değer saklama alanından alınan anahtar zincirinin şifresi çözülür ve aygıta geri yüklenir. Emanet
kaydın kimliğini doğrulamak ve emanet kaydı geri almak için yalnızca 10 girişime izin
verilir. Birkaç başarısız girişimden sonra kayıt kilitlenir ve kullanıcının daha fazla girişim
izni almak için Apple Desteğini araması gerekir. 10. başarısız girişimden sonra, HSM
kümesi emanet kaydı yok eder ve anahtar zinciri geri dönülmez şekilde kaybolur. Bu,
kaydı zorla almaya yönelik bir girişime karşı, anahtar zinciri verilerini gözden çıkarma
pahasına koruma sağlar.
Bu politikalar HSM firmware'inde kodlanmıştır. Firmware'in değiştirilmesine izin veren
yönetici erişim kartları yok edilmiştir. Firmware'i değiştirmeye veya özel anahtara erişmeye yönelik her girişim, HSM kümesinin özel anahtarı silmesine yol açar. Bu durum
gerçekleşirse, kümenin koruduğu tüm anahtar zincirlerinin sahipleri, emanet kaydın
kaybedildiğini kendilerine bildiren bir mesaj alır. Sonra yeniden kaydolmayı seçebilirler.
Siri
Doğal bir şekilde konuşarak kullanıcılar mesaj göndermek, toplantı zamanlamak,
telefonla arama yapmak ve başka işlemler için Siri'yi kullanabilir. Siri konuşma tanıma,
metin okuma ve bir istemci-sunucu modeli kullanarak çeşitli istekleri yanıtlar. Siri'nin
desteklediği görevler, yalnızca mutlak minimum miktarda kişisel bilgilerin kullanılmasını
ve bunların tamamen korunmasını sağlayacak şekilde tasarlanmıştır.
Siri açıldığında, aygıt ses tanıma ve Siri sunucularıyla kullanılmak için rasgele tanıtıcılar
yaratır. Bu tanıtıcılar yalnızca Siri içinde kullanılır ve servisi iyileştirmeye yarar. Siri daha
sonra kapatılırsa, aygıt, Siri tekrar açıldığında kullanılmak üzere yeni bir rasgele tanıtıcı
oluşturur.
Siri'nin özelliklerini sağlayabilmek için, kullanıcının bazı bilgileri aygıttan sunucuya
gönderilir. Bu bilgiler arasında, müzik arşivi (parça adları, sanatçılar ve çalma listeleri), Anımsatıcılar listelerinin adları ve Kişiler'de tanımlanan adlar ve ilişkiler bulunur.
Sunucuyla tüm iletişim HTTPS üzerindendir.
Bir Siri oturumu başlatıldığında, kullanıcının adı ve soyadı (Kişiler'den) ile genel coğrafi
konumu sunucuya gönderilir. Böylece Siri adı kullanarak karşılık verebilir veya hava
durumuyla ilgili sorular gibi, yalnızca yaklaşık konum gerektiren soruları yanıtlayabilir.
Örneğin yakındaki sinemaların konumunu belirlemek için daha kesin konum bilgisi
gerekirse, sunucu aygıtın daha kesin konum bildirmesini ister. Bu, nasıl yalnızca kullanıcının isteğinin işlenmesi kesinlikle gerekli olduğunda bilgilerin sunucuya gönderildiğine dair bir örnektir. Her durumda, oturum bilgileri 10 dakika eylemsizlikten sonra atılır.
Siri Apple Watch'tan kullanıldığında, saat yukarıda açıklandığı gibi kendi rasgele benzersiz tanıcısını yaratır. Ancak, kullanıcının bilgilerini tekrar göndermek yerine, bu bilgilere referans sağlamak için eşleşen iPhone'un Siri tanıtıcısını da göndermeyi ister.
iOS Güvenliği—Teknik Makale | Mayıs 2016
46
Kullanıcının söylediği sözcüklerin kaydı, Apple'ın ses tanıma sunucusuna gönderilir.
Görev yalnızca dikteyi gerektiriyorsa, tanınan metin tekrar aygıta gönderilir. Aksi takdirde, Siri metni inceler ve gerekirse aygıtla ilişkili profilin bilgileriyle metni birleştirir.
Örneğin, istek "anneme mesaj gönder" ise, Kişiler'den yüklenen ilişkiler ve adlar kullanılır. Tanımlanan eylemin komutu daha sonra yürütülmek üzere aygıta geri gönderilir.
Pek çok Siri işlevi, aygıt tarafından sunucunun yönlendirmesiyle gerçekleştirilir. Örneğin,
kullanıcı Siri'nin gelen bir mesajı okumasını isterse, sunucu aygıttan yalnızca okunmamış mesajlarının içeriğini söylemesini ister. Mesajın içeriği ve göndereni sunucuya
gönderilmez.
Kullanıcının ses kayıtları, altı aylık bir süre boyunca saklanır, böylece tanıma sistemi
kullanıcının sesini daha iyi anlamak için bunları kullanabilir. Altı ay sonra, tanıtıcısı olmadan başka bir kopya kaydedilir ve bu kopya en fazla iki yıl boyunca Siri'yi iyileştirmek
ve geliştirmek için Apple tarafından kullanılır. Ayrıca, müzik, spor takımları ve oyuncular,
şirketler ya da ilgi alanlarına referans veren bazı kayıtlar da Siri'yi iyileştirme amacıyla
kaydedilir.
Siri sesle etkinleştirme yoluyla eller serbest olarak da çağrılabilir. Sesle başlatmayı algılama, aygıtta yerel olarak gerçekleştirilir. Bu modda, yalnızca gelen ses deseni belirtilen
başlatma aşamasının akustiğiyle yeterince eşleşiyorsa Siri etkinleştirilir. Başlatma algılandığında, sonraki Siri komutu dahil olmak üzere ilgili ses, işlenmek için Apple'ın ses
tanıma sunucusuna gönderilir ve kullanıcının Siri aracılığıyla yapılan diğer ses kayıtlarıyla aynı kurallar uygulanır.
Süreklilik
Süreklilik; iCloud, Bluetooth ve Wi-Fi gibi teknolojilerden yararlanarak kullanıcıların bir
aygıttan diğerine geçerek bir etkinliği sürdürebilmesini; telefonla arama yapmasını ve
aramaları yanıtlamasını; SMS mesajı alıp göndermesini ve hücresel İnternet bağlantısı
paylaşmasını sağlar.
Handoff
Handoff ile, kullanıcının Mac ve iOS aygıtı birbirinin yakınında olduğunda, kullanıcı üzerinde çalıştığı şeyi otomatik olarak bir aygıttan diğerine geçirebilir. Handoff, kullanıcının
aygıt değiştirmesine ve hemen çalışmayı sürdürmesine izin verir.
Kullanıcı Handoff özellikli ikinci bir aygıtta iCloud'a giriş yaptığında, iki aygıt Apple
Anında İletme Bildirim servisini (APNs) kullanarak bant dışı bir Bluetooth Düşük Enerji
4.0 eşlemesi kurar. Tekil mesajlar, iMessage'a benzer şekilde şifrelenir. Aygıtlar eşlendikten sonra her biri, aygıtın anahtar zincirinde saklanan simetrik bir 256 bit AES anahtarı
oluşturur. Bu anahtar, aygıtın o anki etkinliğini eşlenen diğer iCloud aygıtlarına ileten
Bluetooth Düşük Enerji duyurularının GCM modunda AES-256 ile, geri göndermeden
korunma önlemleri kullanılarak şifrelenmesi ve kimliğinin doğrulanması için kullanılır.
Bir aygıt yeni bir anahtardan ilk kez bir duyuru aldığında, kaynak aygıtla bir Bluetooth
Düşük Enerji bağlantısı kurar ve bir duyuru şifreleme anahtarı alışverişi gerçekleştirir. Bu
bağlantı, iMessage'ın şifrelenmesine benzer şekilde tekil mesajların şifrelenmesinin yanı
sıra, standart Bluetooth Düşük Enerji 4.0 şifreleme kullanılarak güvence altına alınır. Bazı
durumlarda, bu mesajlar Bluetooth Düşük Enerji yerine Apple Anında İletme Bildirim
servisi üzerinden gider. Etkinlik verisi, iMessage ile aynı şekilde korunur ve aktarılır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
47
Yerel uygulamalarla web siteleri arasında Handoff
Handoff, yerel bir iOS uygulamasının uygulama geliştirici tarafından yasal olarak denetlenen alanlardaki web sayfalarını sürdürmesine izin verir. Yerel uygulama kullanıcı etkinliğinin bir web tarayıcıda sürdürülmesine de izin verir.
Yerel uygulamaların geliştirici tarafından denetlenmeyen web sitelerini sürdürmek
istemesinin önlenmesi amacıyla, uygulamanın sürdürmek istediği web alanları üzerinde
yasal denetimi olduğunu kanıtlaması gerekir. Web sitesi alanı üzerinde denetim, paylaşılan web kimlik bilgileri için kullanılan mekanizma aracılığıyla sağlanır. Ayrıntılar için,
Şifreleme ve Veri Koruma bölümünde "Safari tarafından kaydedilen parolalara erişim"
başlığına bakın. Uygulamanın kullanıcı etkinliği Handoff'unu kabul etmesine izin verilmeden önce, uygulamanın alan adının sistem tarafından doğrulanması gerekir. Web sayfası Handoff'unun kaynağı, Handoff API'larını kullanan herhangi bir tarayıcı
olabilir. Kullanıcı bir web sayfasını görüntülediğinde, sistem şifreli Handoff duyuru baytlarında web sayfasının alan adını duyurur. Yalnızca kullanıcının diğer aygıtları duyuru
baytlarının şifresini çözebilir (yukarıdaki bölümde daha önce anlatıldığı gibi).
Alıcı aygıtta, sistem yüklü bir yerel uygulamanın duyurulan alan adından Handoff kabul
ettiğini algılar ve Handoff seçeneği olarak bu yerel uygulamanın simgesini görüntüler.
Yerel uygulama başlatıldığında web sayfasının tam URL ve başlığını alır. Tarayıcıdan
yerel uygulamaya başka hiçbir bilgi iletilmez.
Ters yönde, Handoff'u alan aygıtta aynı uygulama yüklü olmadığında yerel uygulama
bir yedek URL belirtebilir. Bu durumda, sistem Handoff uygulama seçeneği olarak kullanıcının saptanmış tarayıcısını görüntüler (bu tarayıcı Handoff API'larını kullanıyorsa).
Handoff istendiğinde, tarayıcı başlatılır ve kaynak uygulamanın sağladığı yedek URL
tarayıcıya verilir. Yedek URL'in yerel uygulama geliştirici tarafından denetlenen alan
adlarıyla sınırlı olması gerekmez.
Büyük verilerin Handoff ile iletilmesi
Temel Handoff özelliğine ek olarak, bazı uygulamalar Apple tarafından yaratılan eşler
arası Wi-Fi teknolojisi üzerinden (AirDrop'a benzer şekilde) büyük miktarda veri göndermeyi destekleyen API'ları kullanmayı seçebilir. Örneğin, Mail uygulaması büyük ilişikler
içerebilecek bir e-posta taslağının Handoff ile iletilmesini desteklemek için bu API'ları
kullanır.
Bir uygulama bu özelliği kullandığında, iki aygıt arasındaki alışveriş aynı Handoff'taki
gibi başlar (önceki bölümlere bakın). Ancak, Bluetooth Düşük Enerji kullanarak ilk veriyi
aldıktan sonra, alıcı aygıt Wi-Fi üzerinden yeni bir bağlantı başlatır. Bu bağlantı şifrelidir
(TLS) ve iCloud kimlik sertifikalarını alıp verir. Sertifikalardaki kimlik, kullanıcının kimliğiyle karşılaştırılarak doğrulanır. Aktarım tamamlanana kadar sonraki veriler bu şifreli
bağlantı üzerinden gönderilir.
iPhone Hücresel Arama Aktarması
Mac'iniz, iPad'iniz veya iPod'unuz iPhone'unuzla aynı Wi-Fi ağındayken, iPhone hücresel bağlantınızı kullanarak telefonla arama yapabilir ve aramaları yanıtlayabilirsiniz.
Konfigürasyon, aygıtlarınızın aynı Apple kimliği hesabını kullanarak hem iCloud'a hem
de FaceTime'a giriş yapmış olmasını gerektirir.
Gelen bir arama ulaştığında, yapılandırılmış tüm aygıtlara Apple Anında İletme Bildirim
servisi (APNs) üzerinden bildirim gönderilir ve her bildirim iMessage tarafından kullanılan uçtan uca şifrelemeyi kullanır. Aynı ağda bulunan aygıtlar, gelen arama bildirimi
kullanıcı arayüzünü gösterir. Arama yanıtlandığında, iki aygıt arasında güvenli bir eşler
arası bağlantı kullanılarak ses iPhone'unuzdan kesintisiz olarak aktarılır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
48
Bir arama bir aygıtta cevaplandığında, Bluetooth Düşük Enerji 4.0 aracılığıyla yapılan kısa bir duyuruyla yakındaki eşlenmiş iCloud aygıtlarında zil çalması sonlandırılır.
Duyuru baytları, Handoff duyurularıyla aynı yöntem kullanılarak şifrelenir.
Giden aramalar da Apple Anında İletme Bildirim servisi aracılığıyla iPhone'a iletilir ve
ses aynı şekilde aygıtlar arasında güvenli eşler arası bağlantı üzerinden iletilir.
Kullanıcılar bir aygıtta telefonla arama iletmeyi, FaceTime'da iPhone Hücresel
Aramaları'nı kapatarak etkisizleştirebilir.
iPhone Mesaj İletme
Mesaj İletme, iPhone'da alınan SMS mesajlarını otomatik olarak kullanıcının kayıtlı iPad,
iPod touch veya Mac'ine gönderir. Her aygıt, aynı Apple kimliği hesabını kullanarak
iMessage servisine giriş yapmış olmalıdır. SMS Mesajı İletme açıkken, her aygıtta kayıt
işlemi, iPhone tarafından oluşturulan rasgele bir altı basamaklı sayısal kodun girilmesiyle doğrulanır.
Aygıtlar bağlandıktan sonra, iPhone bu belgenin iMessage bölümünde anlatılan yöntemleri kullanarak gelen SMS mesajlarını şifreleyip her aygıta iletir. Yanıtlar da aynı
yöntemle iPhone'a gönderilir ve sonra iPhone yanıtı şebekenin SMS iletme mekanizmasını kullanarak mesaj olarak gönderir. Mesaj İletme, Mesajlar ayarlarında açılabilir veya
kapatılabilir.
Instant Hotspot
Instant Hotspot'u destekleyen iOS aygıtları, aynı iCloud hesabına giriş yapmış aygıtları
bulmak ve onlarla iletişim kurmak için Bluetooth Düşük Enerji kullanır. OS X Yosemite
veya daha yenisini çalıştıran uyumlu Mac bilgisayarlar, Instant Hotspot iOS aygıtlarını
bulmak ve onlarla iletişim kurmak için aynı teknolojiyi kullanır.
Kullanıcı, iOS aygıtında Wi-Fi Ayarlarına girdiğinde; aygıt tarafından aynı iCloud hesabına giriş yapmış tüm aygıtların kabul ettiği bir tanıtıcıyı içeren bir Bluetooth Düşük
Enerji sinyali gönderilir. Tanıtıcı, iCloud hesabına bağlı olan ve düzenli olarak döndürülen bir DSID'den (Hedef Sinyal Tanıtıcısı) oluşturulur. Aynı iCloud hesabına giriş yapmış
diğer aygıtlar yakında olduğunda ve kişisel erişim noktasını desteklediğinde, sinyali
algılar ve yanıtlayarak uygun olduğunu belirtir.
Kullanıcı kişisel erişim noktası için uygun bir aygıtı seçtiğinde, o aygıta Kişisel Erişim
Noktası'nı açması isteği gönderilir. İstek, standart Bluetooth Düşük Enerji şifrelemesi
kullanılarak şifrelenen bir bağlantıyla gönderilir ve iMessage şifrelemesine benzer bir
şekilde şifrelenir. Daha sonra aygıt aynı Bluetooth Düşük Enerji bağlantısı üzerinden
aynı mesaj için şifrelemeyi kullanarak kişisel erişim noktası bağlantı bilgileriyle yanıt
verir.
Spotlight Önerileri
Safari araması ve Spotlight araması, İnternet, uygulamalar, iTunes, App Store, film seansları, yakındaki yerler ve diğer kaynaklardan arama önerileri içerir.
Önerilerin kullanıcılarla daha ilgili olmasını sağlamak için, kullanıcı bağlamı ve arama
geribildirimi, arama sorgu istekleriyle birlikte Apple'a gönderilir. Arama sorgularıyla
gönderilen bağlam, Apple'a i) aygıtın yaklaşık konumunu; ii) aygıt türünü (örn. Mac,
iPhone, iPad veya iPod); iii) istemci uygulamasının Spotlight mı yoksa Safari mi olduğunu; iv) aygıtın saptanmış dil ve bölge ayarlarını; v) aygıtta en son kullanılan üç uygulamayı ve vi) anonim bir oturum kimliği sağlar. Sunucuyla tüm iletişim HTTPS üzerinden
şifrelidir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
49
Kullanıcı gizliliğinin korunmasına yardımcı olmak için, Spotlight Önerileri hiçbir zaman
kesin konumu göndermez, bunun yerine konumu göndermeden istemcide bulanıklaştırır. Bulanıklaştırma düzeyi, aygıtın konumundaki tahmini nüfus yoğunluğunu taban
alır; örneğin, kırsal alanda daha fazla bulanıklaştırma kullanılırken, kullanıcıların genellikle birbirine daha yakın olduğu bir şehir merkezinde daha az bulanıklaştırma kullanılır.
Ayrıca, kullanıcılar Apple'a tüm konum bilgilerinin gönderilmesini Ayarlar'da Spotlight
Önerileri için Konum Servisleri'ni kapatarak etkisizleştirebilir. Konum Bilgileri etkisizleştirilirse, Apple yaklaşık konumu belirlemek için istemcinin IP adresini kullanabilir.
Anonim oturum kimliği, Apple'ın 15 dakikalık bir sürede yürütülen sorgular arasındaki
düzeni incelemesine olanak verir. Örneğin, kullanıcılar "Kafe" araması yaptıktan sonra sık
sık "Kafe telefon numarası"nı arıyorsa, Apple sonuçlarda telefon numarasını daha fazla
görüntülemeyi öğrenebilir. Ancak çoğu arama motorunun aksine, Apple'ın arama servisi, sorguları bir kullanıcıya veya aygıta bağlamak için kullanıcının arama tarihçesinde
kalıcı bir kişisel tanıtıcı kullanmaz; bunun yerine Apple aygıtları en fazla 15 dakikalık bir
süre boyunca geçici bir anonim oturum kimliği kullanır ve sonra bu kimliği atar.
Aygıtta son kullanılan üç uygulamaya ilişkin bilgiler, ek arama bağlamı olarak eklenir.
Kullanıcıların gizliliğini korumak için, yalnızca Apple tarafından tutulan popüler uygulama beyaz listesinde yer alan ve son üç saat içinde erişilmiş olan uygulamalar dahil
edilir.
Apple'a gönderilen arama geribildirimi, Apple'a i) tuşlara basma ve sonuç seçme gibi
kullanıcı eylemleri arasındaki zamanlamaları; ii) varsa seçilen Spotlight Önerilerini ve iii)
seçilen yerel sonuç türünü (ör. "Yer İmi" veya "Kişi") sağlar. Arama bağlamında olduğu
gibi, arama geribildirimi de herhangi bir kişi veya aygıtla bağlantılı değildir.
Apple; sorgular, bağlam ve geribildirim içeren Spotlight Önerileri günlüklerini en fazla
18 ay saklar. Sorgu, ülke, dil, tarih (saate kadar) ve aygıt türünü içeren azaltılmış günlükler en fazla iki yıl saklanır. Sorgu günlükleriyle birlikte IP adresleri tutulmaz.
Bazı durumlarda, Spotlight Önerileri yaygın sözcükler ve ifadeler için sorguları, iş ortağının arama sonuçlarını almak ve görüntülemek için nitelikli bir iş ortağına iletebilir. Bu
sorgular, nitelikli iş ortağı tarafından saklanmaz ve iş ortakları arama geribildirimi almaz.
İş ortakları kullanıcıların IP adreslerini de almaz. İş ortağıyla iletişim HTTPS üzerinden
şifrelidir. Apple, hangi konumlar, aygıt türleri ve dillerden yinelenen sorgular gördüğüne
bağlı olarak, şehir düzeyinde konum, aygıt türü ve istemci dilini arama bağlamı olarak iş
ortağına sağlar.
Spotlight Önerileri Ayarlar'da Spotlight için, Safari için veya her ikisi için kapatılabilir.
Spotlight için kapatılırsa Spotlight Apple'a bilgi iletmeyen, yalnızca aygıtta çalışan bir
yerel arama istemcisi haline gelir. Safari için kapatılırsa, kullanıcının arama sorguları,
arama bağlamı ve arama geribildirimi Apple'a gönderilmez.
Spotlight ayrıca yerel, aygıt üzerindeki içeriği de aranabilir hale getiren mekanizmalar
içerir:
• CoreSpotlight API'ı, Apple ve üçüncü parti uygulamalarının Spotlight'a dizinlenebilir
içerik iletmesine izin verir.
• NSUserActivity API'ı, Apple ve üçüncü parti uygulamalarının kullanıcının ziyaret ettiği
uygulama sayfalarına ilişkin bilgileri Spotlight'a iletmesine izin verir.
Spotlight bu iki yöntemi kullanarak aldığı bilgilerin aygıtta bir dizinini tutar, dolayısıyla
bu verilerden gelen sonuçlar, Spotlight başlatıldığında otomatik olarak veya kullanıcının
aramasına karşılık olarak gösterilebilir. Ayrıca yalnızca Apple tarafından sağlanan uygulamaların kullanabildiği, aygıtta yerleşik bir birleştirilmiş arama API'ı bulunur. Bu API,
Spotlight'ın arama sorgularını işlenmek üzere uygulamalara iletmesine ve bu işlemin
sonuçlarını almasına izin verir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
50
Aygıt Denetimleri
iOS, uygulanması ve yönetilmesi kolay, esnek güvenlik politikaları ve konfigürasyonlarını destekler. Bu, kuruluşların kurumsal bilgileri korumasını ve çalışanlarının, örneğin bir
"kendi aygıtını getir" (BYOD) kampanyasının parçası olarak kendi aygıtlarını kullanıyor
olsalar bile kurumsal gereksinimlere uymasını sağlar.
Kuruluşlar, parola koruması, konfigürasyon profilleri, uzaktan silme ve üçüncü parti
MDM çözümleri gibi kaynakları, aygıt gruplarını yönetmek ve kullanıcılar kurumsal
verilere kendi kişisel iOS aygıtlarında eriştiğinde bile bu verilerin güvende tutulmasını
sağlamak için kullanabilir.
Parola koruması
Saptanmış olarak, kullanıcı parolası sayısal bir PIN olarak tanımlanabilir. Touch ID bulunan aygıtlarda, minimum parola uzunluğu altı basamaktır. Diğer aygıtlarda, minimum
uzunluk dört basamaktır. Kullanıcılar Ayarlar > Parola'da Parola Seçenekleri'nde Özel
Alfasayısal Kod'u seçerek daha uzun bir alfasayısal parola belirleyebilir. Daha uzun ve
karmaşık parolaların tahmin edilmesi veya saldırıya uğraması daha zordur ve kurumsal
kullanım için bunlar önerilir.
Yöneticiler karmaşık parola gereksinimleri ve diğer politikaları, MDM veya Exchange
ActiveSync kullanarak ya da kullanıcıların elle konfigürasyon profilleri yüklemesini
gerekli tutarak uygulayabilir. Aşağıdaki parola politikaları kullanılabilir:
• Basit değere izin ver
• Alfasayısal değer gereksin
• Minimum parola uzunluğu
• Minimum karmaşık karakter sayısı
• Maksimum parola yaşı
• Parola tarihçesi
• Otomatik kilit zaman aşımı
• Aygıt kilidi için vade
• Maksimum başarısız girişim sayısı
• Touch ID'ye izin ver
Her politika hakkında ayrıntılar için, https://developer.apple.com/library/ios/
featuredarticles/iPhoneConfigurationProfileRef/ adresindeki Konfigürasyon
Profili Temel Başvuru Kılavuzu'na bakın.
iOS eşleme modeli
iOS, ana bilgisayardan aygıta erişimi denetlemek için bir eşleme modeli kullanır. Eşleme,
aygıtla bağlantılı ana bilgisayar arasında açık anahtar alışverişiyle gösterilen bir güven
ilişkisi kurar. iOS, bu güven işaretini, bağlanılan ana bilgisayarla veri eşzamanlama gibi
ek işlevleri etkinleştirmek için kullanılır. iOS 9'da, eşleme gerektiren servisler, aygıtın kilidi kullanıcı tarafından açılana kadar başlatılamaz.
Eşleme işlemi, kullanıcının aygıtın kilidini açmasını ve ana bilgisayardan gelen eşleme
isteğini kabul etmesini gerektirir. Kullanıcı bunu yaptıktan sonra, ana bilgisayar ve aygıt
2048 bit RSA açık anahtarlarını alıp verir ve kaydeder. Ardından ana bilgisayara, aygıtiOS Güvenliği—Teknik Makale | Mayıs 2016
51
ta saklanan bir emanet anahtar çantasının kilidini açabilen bir 256 bit anahtar verilir
(Anahtar Çantaları bölümünde Emanet anahtar çantalarına bakın). Alınıp verilen anahtarlar, şifreli bir SSL oturumu başlatmak için kullanılır; aygıt, ana bilgisayara korumalı
verileri göndermeden ya da bir servisi başlatmadan (iTunes, eşzamanlama, dosya aktarımları, Xcode geliştirme, vb.) önce bunu gerekli tutar. Aygıt, tüm iletişim için bu şifreli
oturumu kullanmak üzere bir ana bilgisayardan Wi-Fi üzerinden bağlantılara gereksinim
duyar, dolayısıyla daha önce USB üzerinden eşlenmiş olması gerekir. Eşleme, çeşitli tanı
özelliklerini de etkinleştirir. iOS 9'da, bir eşleme kaydı altı aydan uzun süreyle kullanılmamışsa, kaydın zamanı dolar. Daha fazla bilgi için, bkz. https://support.apple.com/
tr-tr/HT6331.
com.apple.pcapd gibi bazı servisler yalnızca USB üzerinden çalışacak şekilde sınırlanmıştır. Ayrıca, com.apple.file_relay servisi için Apple tarafından imzalanmış bir konfigürasyon profilinin yüklenmesi gerekir.
Kullanıcı, "Ağ Ayarlarını Sıfırla" veya "Konum ve Gizliliği Sıfırla" seçeneklerini
kullanarak güvenilen ana bilgisayar listesini silebilir. Daha fazla bilgi için, bkz.
https://support.apple.com/tr-tr/HT5868.
Konfigürasyonu uygulama
Konfigürasyon profili, bir yöneticinin iOS aygıtlarına konfigürasyon bilgilerini dağıtabilmesini sağlayan bir XML dosyasıdır. Yüklü bir konfigürasyon profili tarafından tanımlanan ayarlar, kullanıcı tarafından değiştirilemez. Kullanıcı bir konfigürasyon profilini
silerse, profilin tanımladığı tüm ayarlar da silinir. Bu durumda, yöneticiler erişime politikalar bağlayarak ayarları uygulayabilir. Örneğin, bir e-posta konfigürasyonu sağlayan
bir konfigürasyon profili, aynı zamanda bir aygıt parola politikası belirtebilir. Kullanıcılar,
parolaları yöneticinin gereksinimlerine uygun olmadığı sürece e-postalarına erişemez.
iOS konfigürasyon profili, aşağıdakiler dahil olmak üzere belirtilebilen bir dizi ayar içerir:
• Parola politikaları
• Aygıt özelliklerine yönelik sınırlamalar (örneğin, kamerayı etkisizleştirme)
• Wi-Fi ayarları
• VPN ayarları
• Posta sunucusu ayarları
• Exchange ayarları
• LDAP dizin servisi ayarları
• CalDAV takvim servisi ayarları
• Web klipleri
• Kimlik bilgileri ve anahtarlar
• Gelişmiş hücresel ağ ayarları
Konfigürasyon profilleri, kaynaklarını doğrulamak, bütünlüklerini sağlamak ve içeriklerini korumak için imzalanabilir ve şifrelenebilir. Konfigürasyon profilleri, CMS (RFC 3852)
kullanılarak şifrelenir, 3DES ve AES-128'i destekler.
Konfigürasyon profilleri, silinmelerini tamamen önlemek için ya da yalnızca bir parolayla silinmelerine izin vermek için aygıta kilitlenebilir. Pek çok kurumsal kullanıcı kendi
iOS aygıtlarını kullandığından, bir aygıtı bir MDM sunucusuna bağlayan konfigürasyon
profilleri silinebilir, ancak böyle yapıldığında tüm yönetilen konfigürasyon bilgileri, veriler ve uygulamalar da silinir.
Kullanıcılar, konfigürasyon profillerini Apple Configurator kullanarak doğrudan aygıtlarına yükleyebilir veya Safari üzerinden indirebilir, bir e-posta iletisi ile ya da MDM sunucusu kullanılarak kablosuz olarak alabilir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
52
Mobil aygıt yönetimi (MDM)
MDM için iOS desteği, şirketlerin kuruluşlarında ölçeklendirilmiş iPhone ve iPad dağıtımlarını güvenli bir şekilde yapılandırmalarını ve yönetmelerini sağlar. MDM özellikleri;
konfigürasyon profilleri, kablosuz kaydettirme ve Apple Anında İletme Bildirim servisi
(APNs) gibi var olan iOS teknolojilerinden yararlanır. Örneğin, aygıtı uyandırmak için
APNs kullanılır, böylece MDM sunucusuyla güvenli bir bağlantı üzerinden doğrudan iletişim kurabilmesi sağlanır. APNs üzerinden hiçbir gizli veya özel bilgi iletilmez.
BT bölümleri, MDM'i kullanarak iOS aygıtlarını kurumsal ortamda kullanabilir, ayarları
kablosuz olarak yapılandırabilir ve güncelleyebilir, kurumsal politikalara uyumu izleyebilir ve hatta yönetilen aygıtları uzaktan silebilir veya kilitleyebilir. Mobil aygıt yönetimi
hakkında daha fazla bilgi için, bkz. www.apple.com/iphone/business/it/management.
html.
Paylaşılan iPad
Paylaşılan iPad, eğitimdeki iPad dağıtımlarında kullanılabilecek çok kullanıcılı bir moddur. Bu mod, öğrencilerin belgelerini ve verilerini paylaşmadan bir iPad’i paylaşmasını sağlar. Paylaşılan iPad, okul tarafından verilen ve okula ait olan Yönetilen Apple
Kimliği’nin kullanılmasını gerektirir. Paylaşılan iPad, bir öğrencinin birden fazla öğrenci
tarafından kullanılacak şekilde ayarlanmış, kuruma ait herhangi bir aygıtta giriş yapabilmesini sağlar.
Öğrenci verileri, her biri UNIX izinleri ve koruma katmanlarıyla korunan ayrı ana klasörlere bölüntülenir. Bir öğrenci giriş yaptığında, Yönetilen Apple Kimliği Apple’ın kimlik
sunucularında SRP protokolü kullanılarak doğrulanır. Kimlik doğrulama başarılı olursa,
aygıta özel kısa ömürlü bir erişim jetonu verilir. Öğrenci aygıtı daha önce kullanmışsa
kilidi açılmış yerel bir kullanıcı hesabına zaten sahiptir. Öğrenci aygıtı daha önce hiç
kullanmamışsa yeni bir UNIX kullanıcı kimliği, ana klasör ve anahtar zinciri verilir. (Aygıt
İnternet’e bağlı değilse yalnızca daha önceden var olan yerel hesaplara sahip kullanıcılar giriş yapabilir.)
Öğrencinin yerel hesabı yaratıldıktan veya hesabın kilidi açıldıktan sonra, kimlik uzaktan
doğrulanmışsa Apple sunucuları tarafından verilmiş kısa ömürlü jeton iCloud’a giriş yapmaya izin veren iCloud jetonuna dönüştürülür. Ardından öğrencinin ayarları iCloud’dan
geri yüklenir ve belgeleri ile verileri eşzamanlanır.
Öğrenci oturumu etkinken aygıt da çevrimiçiyse belgeler ve veriler yaratıldıkça veya
değiştirildikçe iCloud’a yüklenir. Buna ek olarak, arka planda eşzamanlama mekanizması
öğrenci çıkış yaptıktan sonra değişikliklerin iCloud’a iletilmesini sağlar.
Apple Okul Yönetimi
Apple Okul Yönetimi; eğitim kurumlarının içerik satın almasını, mobil aygıt yönetimi
(MDM) çözümlerine otomatik aygıt kaydını ayarlamasını, öğrenciler ve personel için
hesaplar yaratmasını ve iTunes U derslerini ayarlamasını sağlayan bir servistir. Web üzerinden erişilebilen Apple Okul Yönetimi; teknoloji yöneticileri ve BT yöneticileri, personel
ve öğretmenler için tasarlanmıştır.
iOS Güvenliği—Teknik Makale | Mayıs 2016
53
Aygıt Kaydı
Aygıt Kayıt Programı (DEP), bir kuruluşun doğrudan Apple'dan veya programa katılan
Apple Yetkili Satıcıları ve operatörleri üzerinden satın aldığı iOS aygıtlarını dağıtmak
için hızlı ve verimli bir yöntem sunar. Aygıt kaydı da eğitim kurumları için Apple Okul
Yönetimi’nin bütünleşik bir özelliğidir.
Kuruluşlar, aygıtlar kullanıcıların eline geçmeden önce fiziksel olarak onları kullanmak
veya hazırlamak zorunda kalmadan aygıtları MDM’ye otomatik olarak kaydettirebilir.
Programa kaydolduktan sonra, sistem yöneticileri programın web sitesinde oturum
açar ve programla kendi MDM sunucuları arasında bağlantı kurar. Böylece satın aldıkları
aygıtlar MDM üzerinden kullanıcılara atanabilir. Bir kullanıcı atandıktan sonra, MDM
tarafından belirtilen konfigürasyonlar, sınırlamalar ve denetimlerin tümü otomatik olarak
yüklenir. Aygıtlarla Apple sunucuları arasındaki tüm iletişim aktarım sırasında HTTPS
(SSL) yoluyla şifrelenir.
Kullanıcılar için ayarlama işlemi, Ayarlama Yardımcısı'nda belirli adımların kaldırılmasıyla
daha da basitleştirilebilir; böylece kullanıcılar aygıtlarını hızla kullanmaya başlayabilir.
Yöneticiler, kullanıcının MDM profilini aygıttan silip silemeyeceğini de denetleyebilir ve
en başından itibaren aygıt sınırlamalarının uygulanmasını sağlayabilir. Aygıt kutudan
çıkarılıp etkinleştirildikten sonra, kuruluşun MDM’sine kaydettirilir; tüm yönetim ayarları,
uygulamalar ve kitaplar yüklüdür.
Daha fazla bilgi için, Aygıt Kayıt Programı Yardım’a veya eğitim kurumları için Apple
Okul Yönetimi Yardım’a bakın.
Not: Aygıt kaydı bazı ülkelerde veya bölgelerde kullanılamayabilir.
Apple Configurator 2
MDM’ye ek olarak, OS X için Apple Configurator, aygıtları kullanıcılara vermeden
kurmayı ve önceden ayarlamayı kolaylaştırır. Apple Configurator, aygıtları uygulamalar,
veriler, sınırlamalar ve ayarlar ile önceden hızlı bir şekilde ayarlamak için kullanılabilir.
Apple Configurator 2, kullanıcıların Ayarlama Yardımcısı’nı kullanmalarına gerek kalmadan aygıtları bir mobil aygıt yönetimi (MDM) çözümüne kaydettirmek için Apple Okul
Yönetimi’ni (eğitim için) veya Aygıt Kayıt Programı’nı (işletme için) kullanmanızı sağlar.
Denetleyip yönetme
Aygıtın ayarlanması sırasında, kuruluş aygıtı denetlenip yönetilecek şekilde yapılandırabilir. Denetleyip yönetme, aygıtın sahibinin kurum olduğunu belirtir ve konfigürasyonlarıyla sınırlamaları üzerinde ek denetim sağlar. Aygıtlar; Apple Okul Yönetimi, Aygıt Kayıt
Programı veya Apple Configurator aracılığıyla ayarlama sırasında denetlenip yönetilebilir.
MDM veya Apple Configurator kullanarak aygıtları ayarlama ve yönetme hakkında daha
fazla bilgi için, iOS Dağıtım Başvuru Kılavuzu’na bakın.
Sınırlamalar
Yöneticiler, bir konfigürasyon profili yükleyerek aygıt özelliklerini sınırlayabilir.
Kullanılabilir sınırlamalardan bazıları şunlardır:
• Uygulama yüklemelerine izin ver
• Kurumsal uygulamalara güvenilmesine izin ver
• Kamera kullanımına izin ver
• FaceTime'a izin ver
• Ekran resimlerine izin ver
iOS Güvenliği—Teknik Makale | Mayıs 2016
54
• Kilitliyken sesli aramaya izin ver
• Dolaşımdayken otomatik eşzamanlamaya izin ver
• Uygulama içi satın almalara izin ver
• Son e-postaların eşzamanlanmasına izin ver
• Kullanıcıyı tüm satın almalar için mağaza parolasını girmeye zorla
• Aygıt kilitliyken Siri'ye izin ver
• iTunes Store kullanımına izin ver
• Yönetilen kaynaklardan gelen belgelere yönetilmeyen hedeflerde izin ver
• Yönetilmeyen kaynaklardan gelen belgelere yönetilen hedeflerde izin ver
• iCloud Anahtar Zinciri eşzamanlamaya izin ver
• Sertifika güven veritabanının kablosuz güncellenmesine izin ver
• Kilitli ekranda bildirimlerin gösterilmesine izin ver
• AirPlay bağlantılarını eşleme parolaları kullanmaya zorla
• Spotlight'ın İnternet'ten kullanıcı tarafından oluşturulmuş içerikleri göstermesine izin ver
• Spotlight'ta Spotlight Önerileri'ne izin ver
• Handoff'a izin ver
• AirDrop'u yönetilmeyen hedef olarak kabul et
• Kurumsal kitapların yedeklenmesine izin ver
• Kurumsal kitaplardaki notlar ve yer imlerinin kullanıcının aygıtlarında
eşzamanlanmasına izin ver
• Safari kullanımına izin ver
• Safari'de otomatik doldurmaya izin ver
• Sahte Web Sitesi Uyarısını zorla
• JavaScript'i etkinleştir
• Safari'de reklam izlemeyi sınırla
• Pencereleri engelle
• Çerezleri kabul et
• iCloud yedeklemesine izin ver
• iCloud belge ve anahtar-değer eşzamanlamasına izin ver
• iCloud Fotoğraf Paylaşma'ya izin ver
• Tanıların Apple'a gönderilmesine izin ver
• Kullanıcının güvenilmeyen TLS sertifikalarını kabul etmesine izin ver
• Şifreli yedeklemeleri zorla
• Touch ID'ye izin ver
• Kilitli ekrandan Denetim Merkezi'ne erişime izin ver
• Kilitli ekranda Bugün görüntüsüne izin ver
• Apple Watch bilek algılama gereksin
• Ekran, Derslik tarafından izlenebilsin
• Yönetilen bir uygulamada AirDrop’u kullan
• Yeni kurumsal uygulama geliştiricisine güven
• iCloud Fotoğraf Arşivi’ni kullan
Yalnızca denetlenip yönetilen sınırlamalar
• iMessage'a izin ver
• Uygulamaların silinmesine izin ver
• Konfigürasyon profillerinin elle yüklenmesine izin ver
• HTTP için genel ağ proxy'si
• İçerik eşzamanlama için bilgisayarlarla eşlemeye izin ver
• AirPlay bağlantılarını beyaz liste ve isteğe bağlı bağlantı parolalarıyla sınırla
• AirDrop'a izin ver
• Arkadaşlarımı Bul'un değiştirilmesine izin ver
• Yönetilen belirli uygulamalar için otonom Tek Uygulama Moduna izin ver
iOS Güvenliği—Teknik Makale | Mayıs 2016
55
• Hesabın değiştirilmesine izin ver
• Hücresel verilerin değiştirilmesine izin ver
• Ana bilgisayarla eşlemeye izin ver (iTunes)
• Etkinleştirme Kilidi'ne izin ver
• Tüm İçerikleri ve Ayarları Silmeyi önle
• Sınırlamaları etkinleştirmeyi önle
• Üçüncü parti içerik filtresi
• Tek Uygulama modu
• Her zaman açık VPN
• Parolanın değiştirilmesine izin ver
• Apple Watch eşlemeye izin ver
• Otomatik uygulama indirmelerine izin ver
• Klavye tahmini, otomatik düzeltme, yazım denetimi ve kestirmelere izin ver
• Apple Music’e izin ver
• Radyo’ya izin ver
• Derslik ile ekran izleme
• Bildirim ayarlarında değişiklikler
• Ana Ekran’da belirli uygulamaları göster veya gizle
• App Store’u kullanarak uygulamaları yükle
• Otomatik uygulama indirmeleri
• Klavye kestirmeleri
• Tanımla’ya izin ver
• Aygıt adını değiştir
• Duvar kâğıdını değiştir
• News uygulamasını gizle
• Apple Watch ile eşle
Denetlenip yönetilen aygıtlara yönelik ek denetimler hakkında bilgi için, Konfigürasyon
Profili Başvuru Kılavuzu’na bakın.
Uzaktan Silme
iOS aygıtları, bir yönetici veya kullanıcı tarafından uzaktan silinebilir. Anında uzaktan
silme, Temizlenebilir Saklama Alanından blok saklama şifreleme anahtarının güvenli bir
şekilde atılmasıyla tüm verileri okunamaz hale getirerek gerçekleştirilir. Uzaktan silme
komutu; MDM, Exchange veya iCloud tarafından başlatılabilir.
MDM veya iCloud tarafından bir uzaktan silme komutu başlatıldığında, aygıt bir onay
gönderir ve silme işlemini gerçekleştirir. Exchange üzerinden uzaktan silme için, aygıt
silme işlemini gerçekleştirmeden önce Exchange Server'ı denetler.
Kullanıcılar sahip oldukları aygıtları Ayarlar uygulamasını kullanarak da silebilir. Daha
önce belirtildiği gibi, aygıtlar bir dizi başarısız parola girişiminden sonra otomatik olarak
silinecek şekilde ayarlanabilir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
56
Kayıp Modu
Aygıt kaybolursa veya çalınırsa, MDM yöneticisi iOS 9.3 veya daha yenisine sahip denetlenip yönetilen bir aygıtta Kayıp Modu’nu uzaktan etkinleştirebilir. Kayıp Modu etkinleştirildiğinde mevcut kullanıcının oturumu kapatılır ve aygıtın kilidi açılamaz. Ekran,
sistem yöneticisi tarafından özelleştirilebilen bir mesaj görüntüler (aygıt bulunursa
aranacak bir telefon numarası görüntüleme gibi). Aygıt Kayıp Modu’na geçirildiğinde,
sistem yöneticisi aygıtın o anki konumunu göndermesini isteyebilir. Sistem yöneticisi
Kayıp Modu’nu kapattığında (moddan çıkmanın tek yolu budur), kullanıcı kilitli ekrandaki bir mesaj ve Ana Ekran’daki bir uyarı ile bu eylemden haberdar edilir.
Etkinleştirme Kilidi
iPhone’umu Bul açıldığında, aygıt sahibinin Apple kimlik bilgileri girilmeden aygıt yeniden etkinleştirilemez.
Kuruluşa ait aygıtlarda aygıtların denetlenip yönetilmesi iyi bir fikir olabilir; böylece
aygıtların yeniden etkinleştirilmesi için her bir kullanıcının kendi Apple kimlik bilgilerini
girmesine bağımlı olmak yerine Etkinleştirme Kilidi kuruluş tarafından yönetilebilir.
Denetlenip yönetilen aygıtlarda uyumlu bir MDM çözümü, Etkinleştirme Kilidi etkinleştirildiğinde bir atlama kodu saklayabilir ve bu kodu daha sonra aygıtın silinmesi ve yeni
bir kullanıcıya atanması gerektiğinde Etkinleştirme Kilidi’ni otomatik olarak kaldırmak
için kullanabilir. Ayrıntılar için MDM çözümü belgelerinize bakın.
Saptanmış olarak, denetlenip yönetilen aygıtlarda Etkinleştirme Kilidi, kullanıcı
iPhone’umu Bul’u açsa bile hiçbir zaman etkin değildir. Ancak bir MDM sunucusu,
bir atlama kodu alarak aygıtta Etkinleştirme Kilidi’nin açılmasına izin verebilir. MDM
sunucusu Etkinleştirme Kilidi'ni etkinleştirdiğinde iPhone'umu Bul açıksa, bu noktada
etkinleştirilir. MDM sunucusu Etkinleştirme Kilidi’ni açtığında iPhone’umu Bul kapalıysa,
Etkinleştirme Kilidi kullanıcının iPhone’umu Bul’u bir sonraki etkinleştirişinde açılır.
Eğitim ortamlarında kullanılan ve Apple Okul Yönetimi aracılığıyla yaratılmış Yönetilen
Apple Kimliği’ne sahip aygıtlar için, Etkinleştirme Kilidi kullanıcıların Apple kimliğine
bağlanmak yerine sistem yöneticisinin Apple kimliğine bağlanabilir veya aygıtın atlama
kodu kullanılarak kapatılabilir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
57
Gizlilik Denetimleri
Apple, müşteri gizliliğine önem verir ve iOS kullanıcılarının uygulamaların bilgilerini
nasıl ve ne zaman kullanacağına ve hangi bilgilerin kullanılacağına karar vermesini
sağlayan pek çok yerleşik denetim ve seçenekler sunar.
Konum Servisleri
Konum Servisleri, kullanıcının yaklaşık konumunu belirlemek için GPS, Bluetooth
ve kitle kaynaklı Wi-Fi erişim noktası ve baz istasyonu konumlarını kullanır. Konum
Servisleri, Ayarlar'da tek bir anahtar kullanılarak kapatılabilir ya da kullanıcılar, servisi
kullanan her uygulamanın erişimini ayrıca onaylayabilir. Uygulamalar yalnızca uygulama kullanılırken veya her zaman konum verilerini almayı isteyebilir. Kullanıcılar bu
erişime izin vermemeyi seçebilir ve seçimini istediği zaman Ayarlar'da değiştirebilir.
Ayarlar'da, uygulamanın istediği konum kullanımına bağlı olarak erişim, asla izin
verme, yalnızca uygulamayı kullanırken ya da her zaman olarak ayarlanabilir. Ayrıca,
konumu her zaman kullanmak için erişim izni verilmiş uygulamalar arka plan modunda bu izinden yararlanırsa, kullanıcılara onayları anımsatılır ve kullanıcılar uygulamanın
erişimini değiştirebilir.
Bunlara ek olarak, kullanıcılara sistem servislerinin konum bilgilerini kullanımı üzerinde ayrıntılı denetim verilir. Bunlar arasında, Apple tarafından iOS’i geliştirmek için
kullanılan tanı ve kullanım servislerinin topladığı bilgilere konum bilgilerinin dahil
edilmesini, konum tabanlı Siri bilgilerini, Spotlight Önerileri aramalarında konuma
dayalı içerikleri, seyahat sürelerini tahmin etmek için kullanılan yerel trafik koşullarını
ve sık ziyaret edilen konumları kapatma olanağı sayılabilir.
Kişisel verilere erişim
iOS, uygulamaların bir kullanıcının kişisel bilgilerine izinsiz erişmesini önlemeye yardımcı olur. Ayrıca, Ayarlar'da, kullanıcılar hangi uygulamalara belirli bilgilere erişim izni
verdiğini görebilir ve ileriye dönük erişim izni verebilir veya erişim iznini iptal edebilir.
Buna şu erişim izinleri dahildir:
• Kişiler
• Mikrofon
• Takvimler
• Kamera
• Anımsatıcılar
• HomeKit
• Fotoğraflar
• HealthKit
• iPhone 5s veya daha yenisinde
hareket etkinliği
• Bluetooth paylaşımı
• Ortam Arşivi
• Twitter ve Facebook gibi sosyal
medya hesapları
Kullanıcı iCloud'a giriş yaparsa, uygulamalara saptanmış olarak iCloud Drive erişim izni
verilir. Kullanıcılar, Ayarlar'da iCloud altında her uygulamanın erişimini denetleyebilir.
Ayrıca iOS, MDM tarafından yüklenen uygulamalar ve hesaplarla kullanıcı tarafından
yüklenenler arasında veri taşımayı önleyen sınırlamalar da sağlar.
Gizlilik politikası
Apple gizlilik politikasına şu adresten çevrimiçi ulaşılabilir: https://www.apple.com/tr/
legal/privacy.
iOS Güvenliği—Teknik Makale | Mayıs 2016
58
Sonuç
Güvenlik taahhüdü
Apple, kişisel bilgileri korumak için tasarlanmış önde gelen gizlilik ve güvenlik teknolojilerinin yanı sıra, kurumsal ortamda kurumsal verilerin korunmasına yardımcı olmaya
yönelik kapsamlı yöntemlerle müşterilerin korunmasına yardım etmeye büyük önem
verir.
Güvenlik iOS'te yerleşiktir. Platformdan ağa ve uygulamalara kadar, bir şirketin gereksinim duyduğu her şey iOS platformunda mevcuttur. Bu bileşenler bir araya geldiğinde,
kullanıcı deneyiminden ödün vermeden iOS'e sektörünün önde gelen güvenlik özelliğini sağlar.
Apple, iOS'te ve iOS uygulama ekosisteminde tutarlı, tümleşik bir güvenlik altyapısı kullanır. Donanım tabanlı saklama şifreleme, aygıt kaybolduğunda uzaktan silme olanağı
sağlar ve aygıt satıldığında ya da başka bir kullanıcıya aktarıldığında, kullanıcıların tüm
kurumsal ve kişisel bilgileri tamamıyla silebilmesini sağlar. Tanı bilgileri de anonim olarak toplanır.
Apple tarafından tasarlanan iOS uygulamaları, gelişmiş güvenlik yaklaşımıyla üretilir.
Safari, Çevrimiçi Sertifika Durumu Protokolü (OCSP), EV sertifikaları için destek ve sertifika doğrulama uyarılarıyla güvenli dolaşma sağlar. Mail, her ileti için S/MIME'ye izin
veren S/MIME'yi destekleyerek, kimlik doğrulamalı ve şifreli posta için sertifikalardan
yararlanır. Böylece S/MIME kullanıcıları her zaman saptanmış olarak imzalama ve şifrelemeyi seçebilir ya da tekil mesajların nasıl korunacağını seçerek denetleyebilir. iMessage
ve FaceTime da istemciler arası şifreleme sağlar.
Üçüncü parti uygulamaları için, gerekli kod imzalama, koruma ve yetki anahtarlarının
birleşimi, kullanıcılara virüsler, kötü amaçlı yazılımlar ve diğer platformların güvenliğini
tehlikeye atan diğer zayıflıklara karşı sağlam koruma sağlar. App Store gönderme işlemi
de her iOS uygulamasını satışa sunulmadan önce inceleyerek kullanıcıları bu risklerden
daha fazla korur.
iOS'te yerleşik kapsamlı güvenlik özelliklerinden en iyi şekilde yararlanmak için, şirketlerin BT ve güvenlik politikalarını gözden geçirerek bu platformun sunduğu güvenlik teknolojisi katmanlarından tamamen yararlandıklarından emin olmaları kesinlikle önerilir.
Apple, tüm Apple ürünlerini desteklemek için özel bir güvenlik takımına sahiptir. Takım,
piyasaya sürülmüş ürünlerin yanı sıra geliştirilmekte olan ürünler için de güvenlik denetimi ve testleri sağlar. Apple takımı ayrıca güvenlik araçları ve eğitimi sağlar ve yeni
güvenlik sorunları ve tehditlerine ilişkin raporları izler. Apple, Olay Yanıt ve Güvenlik
Takımları Forumu'nun (FIRST) üyesidir. Apple'a sorunları bildirme ve güvenlik bildirimlerine abone olma hakkında daha fazla bilgi için, apple.com/tr/support/security adresine
gidin.
iOS Güvenliği—Teknik Makale | Mayis 2016
59
Sözlükçe
Adres alanı yerleşimi
rasgele dağıtımı (ASLR)
iOS tarafından, bir yazılım hatasının başarılı şekilde kötüye kullanımını zorlaştırmak amacıyla
kullanılan bir teknik. Bellek adresleri ve ofsetlerinin tahmin edilemez olmasını sağlar; kötü amaçlı
kod bu değerleri doğrudan programın içine gömemez. iOS 5 ve daha yenisinde, tüm sistem uygulamaları ve kitaplıklarının konumu rasgele dağıtılır; tüm üçüncü parti uygulamaları konumdan
bağımsız çalıştırılabilir öğeler olarak derlenir.
Akıllı kart
Güvenli tanımlama, kimlik doğrulama ve veri saklamayı sağlayan tümleşik, yerleşik bir devre.
Anahtar çantası
Sınıf anahtarlarından oluşan bir koleksiyonu saklamak için kullanılan veri yapısı. Her tür (kullanıcı,
aygıt, sistem, yedekleme, emanet veya iCloud Yedekleme) aynı biçime sahiptir:
• Aşağıdakileri içeren bir başlık:
– Sürüm (iOS 5’te 3 olarak ayarlanmıştır)
– Tür (sistem, yedekleme, emanet veya iCloud Yedekleme)
– Anahtar çantası UUID’si
– Anahtar çantası imzalanmışsa bir HMAC
– Sınıf anahtarlarını sarmak için kullanılan yöntem: PBKDF2 veya UID ile karıştırma, ayrıca
salt ve yineleme sayısı
• Sınıf anahtarlarının listesi:
– Anahtar UUID’si
– Sınıf (hangi dosya veya anahtar zinciri Veri Koruma sınıfı olduğu)
– Sarma türü (yalnızca UID’den türetilen anahtar; UID’den türetilen anahtar ve paroladan
türetilen anahtar)
– Sarılan sınıf anahtarı
– Asimetrik sınıflar için açık anahtar
Anahtar sarma
Bir anahtarı başka bir anahtarla şifreleme. iOS, RFC 3394’ye uygun olarak NIST AES anahtar
sarmayı kullanır.
Anahtar Zinciri
iOS ve üçüncü parti uygulamaları tarafından parolalar, anahtarlar ve diğer hassas kimlik bilgilerini saklamak ve almak için kullanılan altyapı ve API grubu.
Apple Anında İletme Bildirim servisi (APNs)
Apple tarafından sağlanan, iOS aygıtlarına anında iletme bildirimleri gönderen dünya çapında
bir servis.
Aygıt Firmware Yükseltmesi (DFU)
Aygıtın Boot ROM kodunun USB üzerinden kurtarılmak istediği mod. DFU modundayken ekran
siyahtır, ancak iTunes çalıştıran bir bilgisayara bağlandığında, sonraki komut görüntülenir:
“iTunes kurtarma modunda bir iPad algıladı. iTunes ile kullanılabilmesi için önce bu iPad’i geri
yüklemeniz gerekiyor.”
Benzersiz Kimlik (UID)
Üretim sırasında her işlemciye kazınan 256 bit AES anahtarı. Firmware veya yazılım tarafından
okunamaz ve yalnızca işlemcinin donanım AES motoru tarafından kullanılır. Gerçek anahtara
ulaşmak için, saldırganın işlemcinin silikonuna son derece karmaşık ve pahalı bir fiziksel saldırı
gerçekleştirmesi gerekir. UID, aygıtta UDID dahil ancak bununla sınırlı olmamak üzere başka
hiçbir tanıtıcıyla ilişkili değildir.
Boot ROM
Aygıt ilk kez başlatıldığında aygıtın işlemcisi tarafından çalıştırılan ilk kod. İşlemcinin tümleşik
parçası olarak Apple tarafından ya da bir saldırgan tarafından değiştirilemez.
Çizgi akış açısı eşleme
Bir parmak izinin bir kısmından seçilip çıkarılan çizgilerin yönü ve genişliğinin matematiksel
bir ifadesi.
Donanım güvenlik modülü (HSM)
Dijital anahtarları koruyan ve yöneten, değiştirilmeye dayanıklı özel bir bilgisayar.
Dosya sistem anahtarı
Sınıf anahtarı dahil olmak üzere her dosyanın meta verilerini şifreleyen anahtar. Bu anahtar,
gizlilik sağlamak için değil ama hızlı silmeyi kolaylaştırmak için Temizlenebilir Saklama Alanı’nda
tutulur.
iOS Güvenliği—Teknik Makale | Mayıs 2016
60
Dosyaya özel anahtar
Dosya sisteminde bir dosyayı şifrelemek için kullanılan AES 256 bit anahtar. Dosyaya özel anahtar, bir sınıf anahtarıyla sarılır ve dosyanın meta verilerinde saklanır.
Düşük Düzeyli Başlatma Yükleyicisi (LLB)
Boot ROM tarafından çağrılan kod; LLB de güvenli başlatma zincirinin parçası olarak iBoot’u
yükler.
ECID
Her iOS aygıtında işlemci için benzersiz olan 64 bit tanıtıcı. Kişiselleştirme işleminin bir parçası
olarak kabul edilir; sır olarak kabul edilmez.
Grup kimliği (GID)
UID’ye benzer ancak bir sınıftaki her işlemcide ortaktır.
Hazırlık Profili
Apple tarafından imzalanan özellik listesi; uygulamaların bir iOS aygıtında yüklenmesine ve
test edilmesine izin veren bir dizi varlık ve yetki anahtarını içerir. Geliştirme Hazırlık Profili, bir
geliştiricinin özel dağıtım için seçtiği aygıtları listeler; dağıtım Hazırlık Profili ise kurum tarafından
geliştirilen bir uygulamanın uygulama kimliğini içerir.
iBoot
LLB tarafından yüklenen kod; iBoot da güvenli başlatma zincirinin parçası olarak XNU’yu yükler.
Karıştırma
Kullanıcının parolasının bir şifre anahtarına dönüştürülüp aygıtın UID’siyle güçlendirilmesi işlemi.
Bu, belirli bir aygıtta ancak zorla saldırı gerçekleştirilebilmesine yol açar ve dolayısıyla saldırı hızını sınırlar ve paralel olarak gerçekleştirilemez. Karıştırma algoritması PBKDF2’dir; her yineleme
için sözde rasgele fonksiyon (PRF) olarak aygıt UID’siyle anahtarlanmış AES kullanır.
Kimlik Servisi (IDS)
Apple’ın iMessage açık anahtarları, APNs adresleri ve anahtarlarla aygıt adreslerini aramak için
kullanılan telefon numaraları ve e-posta adreslerini içeren dizini.
Ortak Test Eylem Grubu (JTAG)
Programlayıcılar ve devre geliştiriciler tarafından kullanılan standart donanım hatası giderme
aracı.
Tek Biçimli Kaynak Tanıtıcı (URI)
Web tabanlı bir kaynağı tanımlayan bir karakter dizesi.
Temizlenebilir Saklama Alanı
NAND saklama alanının ayrılmış bir alanı; şifre anahtarlarını saklamak için kullanılır; doğrudan
işlem yapılabilir ve güvenli bir şekilde silinebilir. Bir saldırgan aygıtı fiziksel olarak ele geçirmişse
koruma sağlamaz, ancak Temizlenebilir Saklama Alanı’nda tutulan anahtarlar, hızlı silme ve daha
fazla güvenlik sağlamak için anahtar hiyerarşisinin bir parçası olarak kullanılabilir.
Tümleşik devre (IC)
Mikro yonga olarak da bilinir.
Veri Koruma
iOS için dosya ve anahtar zinciri koruma mekanizması. Uygulamaların dosyalar ve anahtar zinciri
öğelerini kullanmak için kullandığı API'ları da belirtebilir.
XNU
iOS ve OS X işletim sistemlerinin kalbindeki çekirdek. Güvenilir olduğu kabul edilir ve kod imzalama, koruma, yetki anahtarı denetleme ve ASLR gibi güvenlik önlemlerini uygular.
Yongadaki sistem (SoC)
Birden fazla bileşeni tek bir yongada birleştiren tümleşik bir devre (IC) Secure Enclave, Apple’ın
A7 veya daha yeni merkezi işlemcisinde bulunan bir SoC’dur.
iOS Güvenliği—Teknik Makale | Mayıs 2016
61
Belge Gözden Geçirme Tarihçesi
Tarih
Özet
Mayıs 2016
iOS 9.3 için güncellenmiştir
•Paylaşılan iPad
•Yönetilen Apple Kimliği
•Apple Kimliği İçin İki Faktörlü Kimlik Doğrulama
•Anahtar Çantaları
•Güvenlik Sertifikaları
•Etkinleştirme Kilidi
•Güvenli Notlar
•Apple Okul Yönetimi
•Kayıp Modu
•iOS 9.3’ün güvenlik içeriği hakkında daha fazla bilgi için, bakınız:
support.apple.com/tr-tr/HT206166
Eylül 2015
iOS 9 için güncellenmiştir
•Apple Watch etkinleştirme kilidi
•Parola politikaları
•Touch ID API desteği
•A8'de Veri Koruma AES-XTS kullanır
•Katılımsız yazılım güncelleme için anahtar çantaları
•Sertifika güncellemeleri
•Kurumsal uygulama güven modeli
•Safari yer imleri için veri koruma
•Uygulama Aktarım Güvenliği
•VPN özellikleri
•HomeKit için iCloud Uzaktan Erişimi
•Apple Pay Ödül kartları
•Apple Pay kartı veren kuruluşun uygulaması
•Spotlight aygıtta dizin oluşturma
•iOS Eşleme Modeli
•Apple Configurator
•Sınırlamalar
•iOS 9’un güvenlik içeriği hakkında daha fazla bilgi için, bakınız:
support.apple.com/tr-tr/HT205212
© 2016 Apple Inc. Tüm hakları saklıdır. Apple, Apple logosu, AirDrop, AirPlay, Apple TV, Apple Watch, Bonjour, FaceTime, iBooks, iMessage, iPad, iPhone, iPod,
iPod touch, iTunes, Anahtar Zinciri (Keychain), Mac, OS X, Safari, Siri, Spotlight ve Xcode Apple Inc.’in ABD ve diğer ülkelerde kayıtlı ticari markalarıdır. Apple Pay,
CarPlay Lightning ve Touch ID Apple Inc.’in ticari markalarıdır. iCloud ve iTunes Store Apple Inc.’in ABD ve diğer ülkelerde kayıtlı servis markalarıdır. App Store ve
iBooks Store, Apple Inc.'nin servis markalarıdır. iOS, Cisco'nun ABD ve diğer ülkelerde ticari markası veya kayıtlı ticari markasıdır ve lisanslı kullanılır. Bluetooth®
sözcüğü markası ve logoları, Bluetooth SIG, Inc. şirketinin sahip olduğu kayıtlı ticari markalardır ve söz konusu markaların Apple Inc. tarafından tüm kullanımı
lisanslıdır. Java, Oracle ve/veya bağlı kuruluşlarının kayıtlı ticari markasıdır. Burada bahsedilen diğer ürün ve şirket adları, ait oldukları şirketlerin ticari markaları
olabilirler. Ürün özellikleri bildirilmeksizin değiştirilebilir.
iOS Güvenliği—Teknik Makale | Mayıs 2016
62

Benzer belgeler