iOS & Swift

[iOS] Key-Chain이란?

석지한 2022. 3. 26. 17:42
반응형

 프로젝트를 진행하며 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

https://mini-min-dev.tistory.com/114#--%--Keychain%--item%--class%EC%--%--%--Attributes%EC%--%--%--%EB%-C%--%ED%--%B-%--%EB%-D%--%--%EA%B-%B-%EB%B-%--%ED%--%B-%EB%B-%B-%EC%-E%--

반응형