티스토리 뷰
안녕하세요.
요즘 일때문에 KeyChain부분을 집중적으로 공부중인데
정말 속성이 너무 다양해서 제가 헷갈리더라고요;;;;;
그래서 이 포스트는 제가 공부할겸 각 속성별 간단한 설명을 써두려고 합니다.
(아마 업데이트가 당분간 계속될 수 도 있을 것 같네요.)
속성 이름 | 의미 |
kSecClass | 키체인 데이터 종류를 설정합니다. (비밀번호, 인증서 등...) |
kSecAttrKeyClass | 키의 클래스를 지정합니다.(공개키/대칭키등) |
kSecAttrAccessGroup |
키체인 그룹을 설정합니다. (KeyChain sharing 과 연관되있음) |
kSecAttrService | 서비스 이름을 설정합니다. |
kSecAttrKeyType | 키의 유형을 지정합니다(알고리즘) |
kSecValueData | 저장할 데이터 값을 설정합니다. (NSData/Data타입) |
kSecAttrApplicationLabel | 사용자 정의 라벨을 설정합니다 (식별할때 사용) (쉽게 말하면 이름표) |
kSecAttrIsPermanent | 키체인에 영구 저장할것인가 (true 시 영구 저장) |
kSecAttrSynchronizable kSecAttrAccessible |
키체인 항목에 접근할수있는 시점을 지정 * 둘이 의미는 비슷하지만 하는 일이 다름 kSecAttrSynchronizable : 접근 가능 여부 kSecAttrAccessible: 접근 가능 시점 제어 |
kSecAttrAccessControl | 접근 제어 규칙 설정 (TouchID 나 FaceID 같은 인증 요구 가능) |
kSecAttrApplicationTag | 키체인 항목에 태그를 생성 (항목식별을 위해 사용) |
kSecAttrSynchronizableAny | 키체인 항목의 동기화 가능 여부와 관계없이 검색되도록 함 동기화 불가능 항목도 검색이 가능하게 할때 씀 |
kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly | 디바이스에 패스코드(?) 가 설정된 상태에만 접근 가능 잠금이 해제된 상태에서만 접근이 가능 |
kSecAttrKeySizeInBits | 키체인항목의 키 크기를 비트단위로 지정 |
kSecAttrEffectiveKeySize |
실제 사용된 키의 크기를 비트단위로 지정 |
kSecAttrCreationDate | 키체인 항목이 생성된 날짜 |
kSecAttrModificationDate | 키체인이 수정된 최종 날짜 |
kSecAttrCreator | 작성자를 나타내는 값을 갖는 키 |
kSecAttrType | 키체인 항목의 유형을 나타내는 값을 갖는 키 |
kSecAttrComment | 키체인에 대한 사용자 정의 코멘트 |
kSecAttrDescription | 키체인 항목에 대한 설명 |
kSecAttrSynchronizable | iCloud를 통해 동기화 할수있는지 |
kSecAttrGeneric | 해당 키체인에 대한 임의 데이터 |
kSecAttrTokenID | 하드웨어 보안토큰에 저장되어 있는지 여부 |
kSecAttrIsInvisible | 사용자 인터페이스에 안보이게 설정 |
kSecAttrIsNegative | 키체인항목이 부정적인 결과를 나타내는지 * 키체인 항목이 검색 결과가 없음을 나타내거나, 특정 조건을 만족하지 않음을 표시하기 위해 설정 |
kSecAttrCanEncrypt | 암호화에 사용이 가능한지 설정 |
kSecAttrCanDecrypt | 복호화에 사용될수있는지 설정 |
kSecAttrCanWrap | 래핑을 하는데 사용이 가능한지 |
kSecAttrCanUnwrap | 래핑을 해제하는데 사용이 가능한지 |
kSecAttrCanSign | 데이터 서명에 이용이 가능한지 |
kSecAttrCanVerify | 데이터 서명 검증에 사용될수 있는지 |
kSecAttrCanDerive | 다른키를 도출하는데 사용될수있는지 |
kSecReturnPersistentRef | 영구적인 참조를 반환할것인지 (SecItemAdd 할때 보통 두번째에 Null 넣은데 이걸 설정해서 값을 받으면 해당 값으로 쉽게 해당 키체인을 찾을 수 있다고함 ) |
kSecMatchLimit | 검색시 해당 속성을 설정하면 결과값을 단일 / 배열(다수의 값)으로 받을수있습니다. |
왜 이리 많지?

참고로 대부분의 내용은 우리 모두의 친구 GPT 씨가 많이 도와주셨습니다.
근데 일단 찾아서 적어두긴 했는데 제가 의미를 모르는게 많네요;;;
(키의 비트 크기라던가 래핑이라던가 서명이라던가)
음 저 말고도 헷갈리실분들을 위해 같이 올려봅니다.
일단 제가 찾은건 이정도인데 더 있는것같아서
발견되는대로 추가할것같네요.
오늘도 힘내세요~
'iOS개발 > Swift 기본' 카테고리의 다른 글
Swift 암호화 소금(salt) & Hash 만들어보기 (with. CryptoKit) (0) | 2025.04.18 |
---|---|
Swift public / private 외 다른 접근 제어자 (0) | 2024.08.29 |
App Groups 에 대해 알아보자 (0) | 2024.07.19 |
iOS 13 미만 AppDelegate / SceneDelegate 설정 (0) | 2024.06.27 |
Swift 생체인식(ex. Face ID) 알아보기 (0) | 2024.04.26 |
댓글