프로젝트를 진행하며 accessToken을 안전하게 처리하는 방법에 대해서 찾아보던 도중, userDefaults로는 안전하게 처리할 수 없겠다고 판단했고, 실제로도 그랬다. 따라서 Key-Chain을 사용해야하는 상황인데, 블로그에 정리하며 알아보겠다.
키체인이란 ?
- 애플이 제공하는 사용자를 대신하여 소규모 데이터들을 안전하게 저장해주는 저장소
위와 같은 과정들은, 애플에서 처리해주기 때문에 우리는 어떻게 사용할 수 있는지 알아보면 된다.
키체인의 특징
- 애플리케이션은 자기 자신의 키체인에만 접근할 수 있다.
- 앱을 삭제해도 키체인에 저장된 정보는 삭제되지 않는다.
- 키체인 그룹을 사용하여 서로 다른 앱에서도 저장된 데이터를 공유할 수 있다.
- 비밀번호, 개인키 등 보호가 필요한 정보는 암호화되어 키체인에 저장된다.
키체인의 구성요소
- 키 체인 아이템 : key-chain에 저장되는 데이터
- 아이템 클래스 : key-chain item에 저장되는 데이터 종류를 지정 가능
- 어트리뷰트 : 아이템 클래스에 대한 속성을 저장
데이터의 종류에 따라 구현할 수 있는 Item Class들
- kSecClassGenericPassword : 일반 암호 저장에 사용
- kSecClassInternetPassword : 인터넷에서 불러온 암호 저장에 사용
- kSecClassCertificate : 인증서 저장에 사용
- kSecClassKey : 암호화 키 항목 저장에 사용
- kSecClassIdentity : ID 항목 저장에 사용
참고 자료
https://velog.io/@rose6649/IOS-Keychain-%ED%82%A4%EC%B2%B4%EC%9D%B8-%EC%82%AC%EC%9A%A9%EB%B2%95
https://velog.io/@cooo002/ios%ED%82%A4%EC%B2%B4%EC%9D%B8Key-Chain
'iOS & Swift' 카테고리의 다른 글
[Swift] Swift 공식문서 정리 - 4(열거형) (0) | 2022.04.06 |
---|---|
[Swift] Swift 공식문서 정리 - 3(클래스 & 구조체) (0) | 2022.04.04 |
[Swift] Swift 공식문서 정리 - 2(제어문, 함수) (0) | 2022.03.29 |
[Swift] Swift 공식문서 정리 - 1(기본연산자, 문자열, 콜렉션 타입) (0) | 2022.03.29 |
[iOS] AppDelegate란 ? (0) | 2022.03.24 |