Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

initWithTarget: self

selector:@selector(threadEntryPoint)

object: nil];

[self performSelector:@selector(stopThread)

withObject: nil

afterDelay:3.0f];

[self.myThread start];

self.window = [[UIWindow alloc] initWithFrame:

[[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

[self.window makeKeyAndVisible];

return YES;

}

Глава 8. Безопасность

8.0. Введение

Безопасность — центральный элемент операционных систем iOS и OS X. Можно пользоваться функциями безопасности в iOS, чтобы без опасений хранить файлы на различных накопителях. Например, можно приказать iOS заблокировать и защитить на диске файлы с информацией из вашего приложения, если пользователь активизировал на устройстве защиту с применением пароля, а устройство перешло в режим блокировки. Если вы явно этого не затребуете, iOS не будет использовать с вашим приложением какого-либо защищенного хранилища данных. В таком случае ваши данные будут открыты для считывания любому процессу, имеющему доступ на считывание файловой системы вашего устройства. Существуют разнообразные приложения Mac, способные исследовать файловую систему устройства с iOS, не вызывая при этом джейлбрейка.

Джейлбрейк — это процесс предоставления доступа с правами администратора и снятия многих уровней защиты, действующих над операционной системой — например, над iOS. В частности, если устройство подверглось джейлбрейку, приложение может выполнить на нем неподписанный двоичный код. Но на обычном устройстве iOS приложение сможет быть выполнено на устройстве, лишь если оно имеет подпись Apple, полученную через App Store или верифицированный портал для разработки под iOS.

В Mac OS X Apple уже давно используется программа Keychain Access. Это инструмент, обеспечивающий пользователям iOS безопасное хранение данных на компьютере. Разработчики могут пользоваться программой Keychain Access, а также другими функциями обеспечения безопасности, выстроенными на базе общей архитектуры защиты данных (CDSA). Keychain Access может управлять различными связками ключей. Каждая связка ключей, в свою очередь, может содержать защищенные данные, например пароли. Если на машине с операционной системой OS X вы заходите под своим именем на сайт через браузер Safari, то вам будут предложены две возможности: приказать Safari запомнить ваш пароль либо отклонить этот запрос. Если вы прикажете Safari запомнить пароль, то браузер сохранит указанный пароль в заданной по умолчанию связке ключей.

Связки ключей в OS X и iOS различаются во многих отношениях. В OS X:

• у пользователя может быть много связок ключей, в iOS же действует всего одна глобальная связка ключей;

• пользователь может блокировать связку ключей. В iOS та связка ключей, которая используется по умолчанию, блокируется и разблокируется вместе с самим устройством;

• существует концепция стандартной связки ключей (default keychain), которая автоматически разблокируется операционной системой, когда пользователь входит в эту систему. Дело в том, что пароль стандартной связки ключей совпадает с паролем к пользовательской учетной записи. Как было указано ранее, в iOS есть всего одна связка ключей и она разблокируется iOS по умолчанию.

Чтобы помочь вам лучше понять природу связки ключей в OS X, прежде чем углубиться в изучение концепций iOS, связанных со связкой ключей и безопасностью, я хотел бы привести один пример. Откройте окно терминала на компьютере с Mac, введите следующую команду и нажмите Enter:

security list-keychains

В зависимости от настроек машины и имени пользователя вы получите примерно такой вывод:

«/Users/vandadnp/Library/Keychains/login.keychain»

«/Library/Keychains/System.keychain»

Как видите, здесь у меня две связки ключей: регистрационная и системная. Чтобы выяснить, какая связка ключей используется по умолчанию, введите следующую команду в окно терминала, а затем нажмите Enter:

security default-keychain

В типичной установке OS X эта команда вернет примерно такой результат:

«/Users/vandadnp/Library/Keychains/login.keychain»

Вывод свидетельствует, что у меня на машине по умолчанию используется регистрационная связка ключей. Поэтому по умолчанию все пароли, которые я приказываю запомнить различным программам в системе OS X, будут сохраняться именно в этой связке ключей, если конкретное приложение не решит, что пароль должен быть сохранен в другой связке ключей. Если нужной связки ключей пока не существует, приложению потребуется ее создать.

А теперь давайте попробуем кое-что интересное. Попытаемся узнать, какие пароли уже сохранены в нашей стандартной связке ключей. При этом будем исходить из того, что по умолчанию на машине используется связка ключей login.keychain, как мы определили ранее. Введите в окне терминала следующую команду и нажмите Enter:

security dump-keychain login.keychain | grep «password» — i

Аргумент dump-keychain для команды security в окне терминала дампирует все содержимое связки ключей в стандартный вывод. Для поиска паролей мы применили команду grep. Вывод этой команды может получиться примерно таким, как в следующем примере, в зависимости от того, какие пароли запомнил ваш компьютер:

«desc»<blob>="AirPort network password"

«desc»<blob>="AirPort network password"

«desc»<blob>="AirPort network password"

«desc»<blob>="AirPort network password"

«desc»<blob>="AirPort network password"

«desc»<blob>="AirPort network password"

«desc»<blob>="AirPort network password"

«desc»<blob>="AirPort network password"

«desc»<blob>="Web form password"

«desc»<blob>="Web form password"

«desc»<blob>="Web form password"

«desc»<blob>="Web form password"

Хорошо, все это очень интересно, но зачем я об этом рассказываю, как все это связано с iOS? Оказывается, что в архитектурном отношении связка ключей в iOS очень похожа на связку ключей в OS X, так как операционная система iOS создавалась на основе исходного кода OS X. Многие концепции iOS похожи на соответствующие элементы OS X, это касается и связки ключей. Необходимо отметить ряд очень важных аспектов, связанных со связками ключей в iOS, — в частности, поговорить о группах доступа и сервисах. Чтобы упростить вам изучение этой темы, я объясню, как эти концепции реализуются в OS X, а потом мы подробнее рассмотрим вариант связки ключей, применяемый в iOS.

Поделиться:
Популярные книги

Государь

Мазин Александр Владимирович
7. Варяг
Фантастика:
альтернативная история
8.93
рейтинг книги
Государь

Инженер Петра Великого 4

Гросов Виктор
4. Инженер Петра Великого
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Инженер Петра Великого 4

Бродяга. Книга вторая

Первухин Андрей Евгеньевич
2. Бродяга
Фантастика:
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Бродяга. Книга вторая

Древесный маг Орловского княжества 4

Павлов Игорь Васильевич
4. Орловское княжество
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества 4

Наследие Маозари 5

Панежин Евгений
5. Наследие Маозари
Фантастика:
фэнтези
юмористическое фэнтези
5.00
рейтинг книги
Наследие Маозари 5

Кодекс Охотника. Книга XVI

Винокуров Юрий
16. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVI

Наследник

Шимохин Дмитрий
1. Старицкий
Приключения:
исторические приключения
5.00
рейтинг книги
Наследник

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Имперец. Том 4

Романов Михаил Яковлевич
3. Имперец
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Имперец. Том 4

Ермак. Регент

Валериев Игорь
10. Ермак
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ермак. Регент

Зодчий. Книга IV

Погуляй Юрий Александрович
4. Зодчий Империи
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Зодчий. Книга IV

Gloster Gladiator

Иванов С. В.
72. Война в воздухе
Научно-образовательная:
история
военная техника и вооружение
военная история
5.00
рейтинг книги
Gloster Gladiator

Андер Арес

Грехов Тимофей
1. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Андер Арес

РАЗОБЛАЧЕНИЕ МАГИИ, или Настольная книга шарлатана

Гагин Тимур Владимирович
Научно-образовательная:
культурология
5.00
рейтинг книги
РАЗОБЛАЧЕНИЕ МАГИИ, или Настольная книга шарлатана