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