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

AES-256 대칭 암호화를 수행하려면 어떤 CryptoKit 클래스를 사용해야 합니까?

답변

CryptoKit의 SymmetricKey는 대칭 키를 관리하고, AES.GCM(Galois/Counter Mode)은 인증된 암호화를 수행합니다. GCM은 기밀성과 인증을 모두 제공하여 변조 공격을 방지하므로 선호됩니다. 이 접근 방식은 구형 기기에서 극단적인 성능이 필요하지 않은 상황에서는 ChaCha20Poly1305보다 안전합니다.

4

대칭 암호화에 비해 비대칭 암호화의 주요 장점은 무엇입니까?

5

보안 측면에서 해싱과 암호화의 근본적인 차이는 무엇입니까?

+17 면접 질문

다음 면접을 위해 iOS을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기