セキュリティと暗号化
高度なKeychain、CryptoKit、SSL Pinning、生体認証、secure coding、ATS
20 面接問題·
Senior
1機密性の高い認証トークンを安全に保存するには、どのiOSのメカニズムを使用すべきですか?
1
機密性の高い認証トークンを安全に保存するには、どのiOSのメカニズムを使用すべきですか?
回答
Keychainは、機密データ専用に設計されたiOSのネイティブなセキュアストレージシステムです。データを自動的に暗号化し、定義された制御ポリシーに従ってアクセスを管理します。UserDefaultsはデータを平文で保存するため、秘密情報には決して使用すべきではありません。Keychainは、生体認証によるアクセスや安全なiCloud同期などの高度な機能も提供します。
2デバイスがロックされている間、データにアクセスできないようにするには、どのKeychain属性を指定しますか?
2
デバイスがロックされている間、データにアクセスできないようにするには、どのKeychain属性を指定しますか?
回答
kSecAttrAccessibleWhenUnlockedは、デバイスがロック解除されているときのみデータにアクセスできるようにします。これにより、バックグラウンドプロセスを通じてKeychainが参照された場合でも保護されます。この値はAppleが機密トークンに推奨しています。WhenUnlockedThisDeviceOnlyなどの他のオプションは、iCloud同期を防ぐことで追加の保護を提供します。
3AES-256の対称暗号化を行うには、どのCryptoKitクラスを使用すべきですか?
3
AES-256の対称暗号化を行うには、どのCryptoKitクラスを使用すべきですか?
回答
CryptoKitのSymmetricKeyは対称鍵を管理し、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問プッシュ通知
Mid-Level
18問ユニットテストとXCTest
Mid-Level
20問UIテスト
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問