Sicurezza e crittografia
Keychain avanzato, CryptoKit, SSL Pinning, autenticazione biometrica, secure coding, ATS
1Quale meccanismo di iOS dovrebbe essere utilizzato per archiviare in modo sicuro i token di autenticazione sensibili?
Quale meccanismo di iOS dovrebbe essere utilizzato per archiviare in modo sicuro i token di autenticazione sensibili?
Risposta
Keychain è il sistema di archiviazione sicura nativo di iOS, progettato specificamente per i dati sensibili. Cifra automaticamente i dati e gestisce l'accesso secondo le politiche di controllo definite. UserDefaults non dovrebbe mai essere utilizzato per i segreti poiché memorizza i dati in chiaro. Keychain offre anche funzionalità avanzate come l'accesso biometrico e la sincronizzazione sicura con iCloud.
2Quale attributo Keychain garantisce che i dati rimangano inaccessibili mentre il dispositivo è bloccato?
Quale attributo Keychain garantisce che i dati rimangano inaccessibili mentre il dispositivo è bloccato?
Risposta
kSecAttrAccessibleWhenUnlocked garantisce che ai dati si possa accedere solo quando il dispositivo è sbloccato. Ciò offre protezione anche se il Keychain viene consultato tramite un processo in background. Questo valore è raccomandato da Apple per i token sensibili. Altre opzioni come WhenUnlockedThisDeviceOnly offrono protezione aggiuntiva impedendo la sincronizzazione con iCloud.
3Quale classe di CryptoKit dovrebbe essere utilizzata per eseguire la cifratura simmetrica AES-256?
Quale classe di CryptoKit dovrebbe essere utilizzata per eseguire la cifratura simmetrica AES-256?
Risposta
SymmetricKey in CryptoKit gestisce le chiavi simmetriche mentre AES.GCM (Galois/Counter Mode) esegue la cifratura autenticata. GCM è preferito perché fornisce sia riservatezza che autenticazione, prevenendo gli attacchi di manipolazione. Questo approccio è più sicuro di ChaCha20Poly1305 in contesti che non richiedono prestazioni estreme su dispositivi più vecchi.
Qual è il principale vantaggio della cifratura asimmetrica rispetto a quella simmetrica?
Qual è la differenza fondamentale tra hashing e cifratura in termini di sicurezza?
+17 domande da colloquio
Altri argomenti di colloquio iOS
Fondamenti di Swift
Fondamenti del linguaggio Swift
Fondamenti di UIKit
Ciclo di vita di UIViewController
UserDefaults & Keychain
Ciclo di vita dell'applicazione
Auto Layout & Constraints
UITableView & UICollectionView
Fondamenti di SwiftUI
Gestione dello stato in SwiftUI
Navigazione SwiftUI
Networking & URLSession
Codable e parsing JSON
Core Data
Programmazione orientata ai protocolli
Architettura MVVM
Notifiche Push
Test unitari & XCTest
Test dell'interfaccia utente
Xcode e sistema di build
Swift Package Manager
Memory Management & ARC
Combine Framework
Concurrency & async/await
iOS Design Patterns
Ottimizzazione delle prestazioni
SwiftUI Advanced
Architettura delle applicazioni iOS
Padroneggia iOS per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis