Видео: What’s In Your Apple iPhone (Ноември 2024)
Досега чухте, че Apple обяви нова програма за борба с бъгове на неотдавнашната конференция на Black Hat. В необичаен външен вид Иван Кръстич, ръководител на отдела за сигурност и архитектура на Apple, направи съобщението сам. Но това бяха само последните 10 минути от 50-минутно представяне. За първите 40 минути Krstic направи безпрецедентно дълбоко гмуркане в три компонента на сигурността на iOS. И под дълбоко, имам предвид батисферик.
Цялостното ми поемане беше чувство на страхопочитание доколко старателно тези системи защитават потребителските данни, дори от самия Apple. Ще се опитам да предам казаното, без да получавам твърде технически.
Втвърдено картографиране на JIT от WebKit
За съжаление така се казва. JIT означава Just In Time и се отнася до начина, по който Javascript кодът е компилиран точно навреме за неговото изпълнение. "Това е необходимо за високоефективен JavaScript", обясни Krstic. "Но политиката за подписване на код трябва да бъде облекчена. Компилаторът JIT излъчва нов неподписан код. Нападателят, който управлява атака за запис навсякъде, може да даде възможност за изпълнение на произволен код."
За малко фон области от паметта могат да бъдат маркирани с разрешения за четене, запис и изпълнение. Това разграничение, въведено преди векове, потуши атаките, които изпълниха код в области, посветени на данните. Накратко, решението на Apple включва техника, която поставя компилирания JavaScript в област от паметта, която позволява само изпълнение. Процесите не могат да четат какво има или да пишат нови данни. Има малко повече от това, но тази промяна, специфична за iOS 10, заличава цяла гама от възможни атаки.
Безопасен Enclave процесор
Приложенията на Apple устройство работят в процесор, наречен Application Processor или AP. Съвременните устройства на Apple имат напълно отделен процесор, наречен Secure Enclave Processor, или SEP. „SEP е защитен от силен криптографски главен ключ от парола на потребителя“, каза Кръстич. „Офлайн атаката не е възможна. Тя заобикаля повърхността на атака на AP, дори когато AP е компрометиран. Той арбитрира целия потребителски достъп и управлява собствената си криптирана памет. При първа инициализация използва истински генератор на случайни числа, за да създаде уникален ключ на устройството в процесора. Това не е за износ и се съхранява в неизменна защитена ROM."
Krstic продължи да обяснява как устройството използва четири типа вътрешни защитни ключове с различни характеристики. Тип А съществува само когато устройството е отключено. Тип B е винаги присъстващ публичен ключ, плюс частен ключ, който съществува, когато устройството е отключено. Тип C възниква първия път, когато устройството се отключи след стартиране. И тип D винаги е наличен.
Презентацията премина към редица сериозно сложни диаграми. Човек премина през процеса на зареждане и отключване на устройството, показвайки как се създава и съхранява всеки тип ключ. Всеки файл на вашето устройство има свой уникален ключ за криптиране; друга диаграма показа сложния танц, който позволява на SEP да удостоверява и дешифрира този файл, като същевременно запазва основните ключове за сигурност вътре в себе си. Друг обясни сложния процес, който ви позволява да изберете „Актуализиране по-късно“. И още един път премина през процеса, който позволява отключване чрез touch ID, без да се поддържа главният ключ видим по никакъв начин.
Основното извличане от тази част на разговора е, че Apple наистина, наистина е обмислила какво е необходимо, за да управлява криптирането изцяло в процесора за сигурно анклавиране, без изобщо да принуждава потребителя да изпитва много проблеми. Ако искате да видите тези диаграми за себе си, разгледайте пълната презентация на Krstic.
Синхронизиране на тайните
Страхотно е удобно, че можете да синхронизирате данните си между множество устройства на Apple. HomeKit ви позволява да управлявате IoT устройства, AutoUnlock ви отключва Mac, когато вашият Apple Watch е наблизо, вашите снимки се синхронизират чрез iCloud и т.н. Но по отношение на сигурността синхронизирането е проблем.
"Традиционните подходи не са добри", каза Кръстич. "Един от начините е да накарате потребителя да въведе силен" ключ за чекмедже на чорап "на всички устройства; изгубете го и достъпът до тайните се загуби. Другият начин е да увиете данните в производен ключ, който оставя данните изложени на доставчик на акаунт."
„Имахме редица цели тук“, продължи Кръстич. "Тайните трябва да са на разположение на всички устройства, защитени от силна криптовалута. Потребителите могат да възстановяват тайни, дори ако загубят всички свързани устройства. Данните не са изложени на Apple и няма възможност за груба атака."
Удостоверяването в основната система iCloud Keychain е проста. Всяко устройство има собствена двойка ключове и за да добавите ново устройство в кръга за синхронизиране, трябва да го одобрите от едно от съществуващите си устройства. Входът на Apple не участва; тя няма привилегия. Ако потребителят загуби достъп до всички устройства, достъпът може да бъде възстановен с помощта на iCloud Security Key и паролата iCloud.
Krstic обясни много подробно как Apple управлява тази система, без да оставя отворена и най-малката възможност всеки, включително някой в Apple, да има достъп до данни от задния край. Системата включва така наречените административни карти, създадени по времето, когато бъде пуснат в експлоатация нов флот от крипто сървъри. „Административните карти се създават при сигурна церемония, когато флотът е пуснат в експлоатация, и се съхраняват в отделни физически сейфове под стража на три различни организации в Apple, в торбички с доказателства за подправяне“, каза Кристич.
Тази ситуация трае само докато флотът действително бъде пуснат в експлоатация. По това време, каза Кръстич, „Ние поставяме администраторските карти чрез нова еднопосочна хеш функция“. Изваждайки ясно използвания блендер изпод подиума, той продължи: „Да, пътуване през блендера“. След като флотът от крипто сървъри е активен, той не може да бъде актуализиран или модифициран по никакъв начин, дори и от Apple, тъй като администраторските карти са унищожени. Ако се случи, че наистина е необходима актуализация, Apple трябва да активира нов флот и да изпрати актуализация на софтуера, която кара потребителските устройства да се свързват с новия флот.
"Защо правим това", каза Кръстич. "Защо предприемаме тази последна стъпка, която е изключително необичайна? Ние се стараем да проектираме системите за сигурност, за да осигурим доверие. Когато данните напуснат устройството, залозите са още по-големи. Трябва да поддържаме това доверие. Ако запазим притежание на тези администраторски карти, има вероятност това да не е вярно. Ето защо сериозно приемаме мисията си относно потребителските данни."
На въпрос: „Направихте ли това заради исканията на ФБР за информация?“ Кристик отговори: "Аз съм инженер. Мога да отговарям само на въпроси защо се представих днес." Добре, честно. Но мисля, че питащият е бил прав. Направата на самостоятелна система, която дори не можете да модифицирате, е доста добър начин да попречите на някой друг да прави нежелани промени.
Надявам се, че съм ви предал нивото на детайлност в беседата на Кристик, без да накарате очите ви да остъклят. Съдейки по бърборенето, докато групата се разпръсна, истинските шейни на ниво ниво на сигурност в стаята бяха силно впечатлени.