보안 및 암호화
고급 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개 질문