Jeśli chcecie mnie wesprzeć to zapraszam do kupna mojego poradnika "Jakim jesteś Makiem?".

iOS 7 – iMessage i iCloud Keychain bezpieczne przed NSA

· Wojtek Pietrusiewicz · 12 komentarzy

Wiadomości w iOS do niedawna służyły tylko do przesyłania SMSów i MMSów. Jakiś czas temu wprowadzono nowy rodzaj wiadomości – iMessage – które są przysyłane przez internet, dzięki czemu nie musimy płacić operatorom za te pierwsze. W praktyce jest to znacznie wygodniejsze rozwiązanie, które sprawuje się zaskakująco dobrze. Dzisiaj większość moich wiadomości jest niebieskich… czasami z zaskakującymi osobami… ponieważ iOS nawiązując połączenie z nowym numerem automatycznie sprawdza, czy adresat używa iOS i jest obecnie w zasięgu sieci.

Z kolei iCloud Keychain to ciekawe i proste rozwiązanie na przetrzymywanie bezpiecznych i długich haseł w iCloud, tak aby synchronizowały się one pomiędzy naszymi urządzeniami. Dzięki niemu możemy mieć skomplikowane hasła typu drIs,af&amp ;pAt$ nEr#wu$ weB&am zamiast alamakota kotmaale ipolicjama pale1.

iMessage

Apple niedawno opublikował ciekawy dokument o bezpieczeństwie. Znajdziecie go tutaj [bezpośredni link do PDF]. Warto go przeczytać w całości, ale mnie najbardziej zainteresował fragment właśnie o iMessages:

  • Apple nie loguje wiadomości ani zdjęć czy załączników na swoich serwerach; ich zawartość jest zaszyfrowana i nikt poza nadawcą oraz odbiorcą nie ma do nich dostępu; Apple nie może ich rozszyfrować;
  • Każde nasze urządzenie, korzystające z naszego konta iCloud z aktywnym iMessage, generuje osobną parę kluczy, więc de facto jak ktoś wysyła nam wiadomość i dostajemy ją na iPada, iPhone’a i pod OS X to w rzeczywistości są to trzy różne wiadomości obsługiwane przez trzy pary publicznych i prywatnych kluczy;
  • Metadane dołączone do iMessage nie są szyfrowane, takie jak data wysłania i otrzymania;
  • Powiadomienia push są kasowane z serwera Apple, gdy wiadomość zostanie dostarczona; wyjątkiem są wiadomości oczekujące, bo odbiorca jest poza zasięgiem internetu – te są przetrzymywane w kolejce do 7 dni i potem kasowane.

To wszystko wydaje się bardzo bezpieczne i w praktyce zapewne takie się okaże. Teoretycznie jednak, dlatego że Apple zarządza kluczami, mogliby stworzyć kolejny klucz, na przykład pod przymusem nakazu sądowego, dzięki czemu osoba trzecia mogłaby mieć dostęp do naszych danych. Przykład skrajny, ale teoretycznie możliwy.

iCloud Keychain

Sam iCloud posiada jedynie nasz publiczny klucz, ale nie hasła i loginy.

Wbrew nazwie, nasze hasła wcale nie są przetrzymywane w chmurze Apple, czyli na ich serwerach. Przy pierwszym uruchomieniu zostaje utworzone syncing circle i jak dodajemy do niego kolejne urządzenia, to synchronizują się one między sobą, po potwierdzeniu przez użytkownika, że ufa dodawanemu urządzeniu. Sam iCloud posiada jedynie nasz publiczny klucz, ale nie hasła i loginy. Co ciekawe, synchronizowane są tylko różnice pomiędzy urządzeniami; jeśli dodam na iPhonie nowy login i hasło, to jest on szyfrowany osobno dla każdego innego urządzenia podłączonego do tego konta iCloud i przesyłane pojedynczo do nich. A kiedy dodamy kolejne urządzenie do wspomnianego syncing circle to na wcześniej dodanych urządzeniach pojawi się komunikat proszący o potwierdzenie, że chcemy to zrobić; możemy zaakceptować nowe urządzenie z któregokolwiek z nich.

Istnieje też iCloud Keychain Recovery, gdybyście przypadkiem chcieli odzyskać wszystkie swoje dane, na przykład w przypadku utraty wszystkich Maków oraz iUrządzeń. W praktyce wygląda to tak, że włączając iCloud Keychain, system prosi nas o utworzenie hasła bezpieczeństwa (lub kodu PIN). Po jego podaniu, exportowany jest pęk kluczy z loginami i hasłami, który jest przy okazji szyfrowany przypadkowym kluczem. Dodatkowo jest rejestrowany numer telefonu użytkownika, na który wysyłany jest obowiązkowy SMS przy odzyskiwaniu danych.


To wszystko razem wzięte w teorii powinno zabezpieczać nas przed NSA i innymi włamaniami do bazy danych Apple oraz do naszych iUrządzeń. Jednak teoria to jedno, a praktyka, jak widać po fuckupie z SSL, to co innego. Tutaj akurat podobny scenariusz nie powinien wystąpić, ale w końcu to wszystko tworzą ludzie, a ci się mylą. Jeśli jednak nie trzymacie tam danych, które mogą zainteresować Interpol, FBI, CIA oraz KGB, to raczej nie powinniście się tym specjalnie przejmować. Ja tego nie robię, a jestem skrzywiony na tym punkcie…

  1. Spacje w hasłach dodane dla estetyki akapitu.

Chcesz zwrócić mi na coś uwagę lub skomentować? Zapraszam na @morid1n lub na forum.

  • Czy na pewno hasło typu fWl:>@0*kA!! jest bezpieczniejsze, czyli trudniejsze do złamania niż odpowiednio długie słowne?

    Zewnętrzny

  • wojtekoz

    Czy na pewno hasło typu fWl:>@0*kA!! jest bezpieczniejsze, czyli trudniejsze do złamania niż odpowiednio długie słowne? Na pewno to pierwsze jest trudniejsze do zapamiętania. Pytam całkowicie serio bo zastanawiam się nad tym od pewnego czasu.

  • Długie przede wszystkim. Potem trudne.

  • wojtekoz

    Takie też są te, które muszę pamiętać. Resztę załatwia 1P :)

  • http://xkcd.com/936/ tutaj jest dość dobrze wyjaśnione :)

  • wojtekoz

    Faktycznie, bardzo dobrze :)

  • anommal

    To wyjaśnienie jest błędne. Ataki słownikowe powodują że takie hasła łatwo złamać.

  • wojtekoz

    Wydaje mi się (podkreślam „wydaje”), że hasło składające się z kilku słów pisanych ciągiem i w dodatku nie w mianowniku jest dość odporne na atak słownikowy.

  • BGN

    @Moridin:disqus Ok, czyli jeśli, przypuśćmy, tracę wszystkie swoje urządzenia, które korzystały z iCloud Keychain, kupię nowego maka i wybiorę opcję iCloud Keychain Recovery, to skąd pochodzą loginy i hasła (pęk), który odzyskałem?

  • Z iCloud Keychain Recovery. To odrębny twór.

  • BGN

    Czyli Keychain Recovery przechowuje na serwerach loginy i hasła?

  • Tak.