Закрити оголошення

Надсилання повідомлень через iMessage є популярним способом спілкування між пристроями iOS і комп’ютерами Mac. Сервери Apple щодня обробляють десятки мільйонів повідомлень, і в міру того, як зростають продажі пристроїв Apple, зростає популярність iMessage. Але чи замислювалися ви коли-небудь про те, як ваші повідомлення захищені від потенційних зловмисників?

Apple нещодавно випустила dokument опис безпеки iOS. Він чудово описує механізми безпеки, які використовуються в iOS – систему, шифрування та захист даних, безпеку програм, мережевий зв’язок, Інтернет-сервіси та безпеку пристрою. Якщо ви трохи розумієтеся на безпеці та не маєте проблем з англійською, ви можете знайти iMessage на сторінці номер 20. Якщо ні, я спробую якомога чіткіше описати принцип безпеки iMessage.

Основою відправки повідомлень є їх шифрування. Для неспеціалістів це часто асоціюється з процедурою, коли ви шифруєте повідомлення ключем, а одержувач розшифровує його цим ключем. Такий ключ називається симетричним. Критичним моментом у цьому процесі є передача ключа одержувачу. Якщо зловмисник отримав його, він міг просто розшифрувати ваші повідомлення та видати себе за одержувача. Для спрощення уявіть собі ящик із замком, в який поміщається лише один ключ, і цим ключем можна вставляти та витягувати вміст ящика.

На щастя, існує асиметрична криптографія з використанням двох ключів - відкритого і закритого. Принцип полягає в тому, що кожен може знати ваш відкритий ключ, звичайно, тільки ви знаєте свій закритий ключ. Якщо хтось хоче надіслати вам повідомлення, він зашифрує його за допомогою вашого відкритого ключа. Тоді зашифроване повідомлення можна буде розшифрувати лише за допомогою вашого закритого ключа. Якщо ще раз уявити поштову скриньку спрощено, то цього разу вона матиме два замки. За допомогою відкритого ключа будь-хто може розблокувати його, щоб вставити вміст, але вибрати його можете лише ви зі своїм закритим ключем. Для впевненості додам, що повідомлення, зашифроване відкритим ключем, не можна розшифрувати цим відкритим ключем.

Як працює безпека в iMessage:

  • Коли iMessage активовано, на пристрої генеруються дві пари ключів – 1280b RSA для шифрування даних і 256b ECDSA для перевірки того, що дані не були підроблені під час передачі.
  • Два відкритих ключа надсилаються до Apple Directory Service (IDS). Звичайно, два закриті ключі зберігаються лише на пристрої.
  • В IDS відкриті ключі пов’язані з вашим номером телефону, електронною поштою та адресою пристрою в службі Apple Push Notification (APN).
  • Якщо хтось хоче надіслати вам повідомлення, його пристрій дізнається ваш відкритий ключ (або кілька відкритих ключів, якщо iMessage використовується на кількох пристроях) і адреси APN ваших пристроїв у IDS.
  • Він шифрує повідомлення за допомогою 128b AES і підписує його своїм закритим ключем. Якщо повідомлення має надійти до вас на кількох пристроях, воно зберігається та шифрується на серверах Apple окремо для кожного з них.
  • Деякі дані, як-от мітки часу, взагалі не зашифровані.
  • Весь зв'язок здійснюється через TLS.
  • Довші повідомлення та вкладення шифруються за допомогою випадкового ключа в iCloud. Кожен такий об’єкт має власний URI (адресу чогось на сервері).
  • Коли повідомлення буде доставлено на всі ваші пристрої, воно буде видалено. Якщо він не доставлений хоча б на один із ваших пристроїв, він залишається на серверах протягом 7 днів, а потім видаляється.

Цей опис може здатися вам складним, але якщо ви подивіться на картинку вище, ви напевно зрозумієте принцип. Перевагою такої системи безпеки є те, що її можна атакувати ззовні лише грубою силою. Ну, поки що, бо зловмисники стають розумнішими.

Потенційна загроза полягає в самій Apple. Це пояснюється тим, що він керує всією інфраструктурою ключів, тож теоретично він міг би призначити інший пристрій (ще одну пару відкритого та закритого ключів) вашому обліковому запису, наприклад, за рішенням суду, на якому вхідні повідомлення можна було б розшифровувати. Однак тут Apple заявила, що не робить і не буде робити нічого подібного.

Ресурси: TechCrunch, Безпека iOS (лютий 2014 р.)
.