iOS

Безпека та шифрування

Розширений Keychain, CryptoKit, SSL Pinning, біометрична автентифікація, secure coding, ATS

20 питань зі співбесід·
Senior
1

Який механізм iOS слід використовувати для безпечного зберігання конфіденційних токенів автентифікації?

Відповідь

Keychain — це власна система безпечного зберігання iOS, розроблена спеціально для конфіденційних даних. Вона автоматично шифрує дані та керує доступом відповідно до визначених політик контролю. UserDefaults ніколи не слід використовувати для секретів, оскільки він зберігає дані у відкритому вигляді. Keychain також пропонує розширені функції, такі як біометричний доступ і безпечна синхронізація з iCloud.

2

Який атрибут Keychain гарантує, що дані залишаються недоступними, поки пристрій заблоковано?

Відповідь

kSecAttrAccessibleWhenUnlocked гарантує, що доступ до даних можливий лише тоді, коли пристрій розблоковано. Це забезпечує захист, навіть якщо до Keychain звертається фоновий процес. Apple рекомендує це значення для конфіденційних токенів. Інші варіанти, як-от WhenUnlockedThisDeviceOnly, забезпечують додатковий захист, запобігаючи синхронізації з iCloud.

3

Який клас CryptoKit слід використовувати для симетричного шифрування AES-256?

Відповідь

SymmetricKey у CryptoKit керує симетричними ключами, тоді як AES.GCM (Galois/Counter Mode) виконує автентифіковане шифрування. GCM є кращим, оскільки він забезпечує і конфіденційність, і автентифікацію, запобігаючи атакам маніпуляції. Цей підхід безпечніший за ChaCha20Poly1305 у контекстах, що не вимагають екстремальної продуктивності на старих пристроях.

4

Яка головна перевага асиметричного шифрування над симетричним?

5

Яка фундаментальна різниця між хешуванням і шифруванням з точки зору безпеки?

+17 питань зі співбесід

Інші теми співбесід iOS

Основи Swift

Junior
25 запитань

Основи мови Swift

Junior
15 запитань

Основи UIKit

Junior
18 запитань

Життєвий цикл UIViewController

Junior
20 запитань

UserDefaults & Keychain

Junior
20 запитань

Життєвий цикл застосунку

Junior
20 запитань

Auto Layout & Constraints

Mid-Level
24 запитань

UITableView & UICollectionView

Mid-Level
25 запитань

Основи SwiftUI

Mid-Level
18 запитань

Керування станом у SwiftUI

Mid-Level
22 запитань

Навігація SwiftUI

Mid-Level
18 запитань

Networking & URLSession

Mid-Level
20 запитань

Codable та парсинг JSON

Mid-Level
20 запитань

Core Data

Mid-Level
22 запитань

Протоколо-орієнтоване програмування

Mid-Level
20 запитань

Архітектура MVVM

Mid-Level
20 запитань

Push-сповіщення

Mid-Level
18 запитань

Модульне тестування та XCTest

Mid-Level
20 запитань

Тестування інтерфейсу користувача

Mid-Level
18 запитань

Xcode і система збірки

Mid-Level
16 запитань

Swift Package Manager

Mid-Level
16 запитань

Memory Management & ARC

Senior
22 запитань

Combine Framework

Senior
24 запитань

Concurrency & async/await

Senior
26 запитань

iOS Design Patterns

Senior
24 запитань

Оптимізація продуктивності

Senior
22 запитань

SwiftUI Advanced

Senior
22 запитань

Архітектура застосунків iOS

Senior
22 запитань

Опануй iOS для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно