Security & Encryption
Keychain avancé, CryptoKit, SSL Pinning, biometric auth, secure coding, ATS
1Quel mécanisme iOS utiliser pour stocker de manière sécurisée les tokens d'authentification sensibles ?
Quel mécanisme iOS utiliser pour stocker de manière sécurisée les tokens d'authentification sensibles ?
Réponse
Le Keychain est le système de stockage sécurisé natif d'iOS, conçu spécifiquement pour les données sensibles. Il chiffre automatiquement les données et gère l'accès selon des politiques de contrôle définies. UserDefaults ne doit jamais être utilisé pour les secrets car il stocke les données en clair. Le Keychain offre également des fonctionnalités avancées comme l'accès avec biométrie et la synchronisation iCloud sécurisée.
2Quel attribut Keychain spécifier pour que les données restent inaccessibles tant que l'appareil est verrouillé ?
Quel attribut Keychain spécifier pour que les données restent inaccessibles tant que l'appareil est verrouillé ?
Réponse
kSecAttrAccessibleWhenUnlocked garantit que les données ne peuvent être accédées que lorsque l'appareil est déverrouillé. Cela offre une protection même si le Keychain est consulté via un processus en arrière-plan. Cette valeur est recommandée par Apple pour les tokens sensibles. Les autres options comme WhenUnlockedThisDeviceOnly offrent une protection supplémentaire en empêchant la synchronisation iCloud.
3Quelle classe CryptoKit utiliser pour effectuer un chiffrement AES-256 symétrique ?
Quelle classe CryptoKit utiliser pour effectuer un chiffrement AES-256 symétrique ?
Réponse
SymmetricKey dans CryptoKit gère les clés symétriques tandis que AES.GCM (Galois/Counter Mode) effectue le chiffrement authentifié. GCM est préféré car il fournit à la fois confidentialité et authentification, prévenant les attaques de manipulation. Cette approche est plus sûre que ChaCha20Poly1305 dans des contextes ne nécessitant pas une performance extrême sur dispositifs anciens.
Quel est l'avantage principal du chiffrement asymétrique par rapport au chiffrement symétrique ?
Quelle différence fondamentale existe entre hachage et chiffrement en matière de sécurité ?
+17 questions d'entretien
Autres sujets d'entretien iOS
Les bases de Swift
Essentiels du langage Swift
Fondamentaux UIKit
Cycle de vie UIViewController
UserDefaults & Keychain
Cycle de vie de l'application
Auto Layout & Constraints
UITableView & UICollectionView
Les bases de SwiftUI
Gestion d'état SwiftUI
Navigation SwiftUI
Networking & URLSession
Codable & Parsing JSON
Core Data
Programmation orientée protocoles
Architecture MVVM
Notifications Push
Tests unitaires & XCTest
Tests d'interface utilisateur
Xcode & Système de build
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
Performance Optimization
SwiftUI Advanced
iOS Application Architecture
Maîtrise iOS pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement