티스토리 뷰

안녕하세요. 

요즘 일때문에 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 씨가 많이 도와주셨습니다.

 

근데 일단 찾아서 적어두긴 했는데 제가 의미를 모르는게 많네요;;;

(키의 비트 크기라던가 래핑이라던가 서명이라던가) 

 

음 저 말고도 헷갈리실분들을 위해 같이 올려봅니다.

 

일단 제가 찾은건 이정도인데 더 있는것같아서 

발견되는대로 추가할것같네요.

오늘도 힘내세요~

댓글