iOS에 인증 토큰 저장-NSUserDefaults 대 키 체인?
사용자가 서비스에 로그인 할 때 토큰을 저장해야하는 장소는 어디입니까? 암호를 저장하는 것이 아니라 (분명히 키 체인을 사용할 위치) 토큰 만 저장합니다. 많은 곳에서 NSUserDefaults 만 사용한다고 말하지만 StackOverflow의 일부 사람들은 키 체인에 정말 관심이있는 것 같습니다.
NSUserDefaults가 괜찮습니까?
키 체인을 사용하는 것이 좋습니다. 바로 Facebook이 세션 토큰을 저장하기 위해하는 일입니다.
NSUserDefaults
안전하지 않거나 암호화되지 않았습니다. 기기에서 그리고 Mac에 동기화 할 때 쉽게 열고 읽을 수 있습니다. 따라서 사용자 기본값은 환경 설정 및 구성 정보와 같은 항목에 적합한 장소이지만 암호와 같은 민감한 항목에는 적합하지 않습니다.
세션 토큰은 거의 항상 암호와 동일하게 취급되어야하므로 암호화 될 키 체인에 안전하게 저장해야합니다. Apple에는 기본 구현을 보여주는 일부 샘플 코드 ( GenericKeychain )가 있으며 StackOverflow를 검색하여 다른 예제를 찾을 수 있습니다. 도움이 되었기를 바랍니다.
NSUserDefaults는 문제없이 사용할 수 있습니다. https://developer.apple.com/documentation/security/keychain_services 문서를 확인 하십시오.
키 체인 서비스는 사용자가 명시 적으로 염려하는 "비밀"(예 : 암호, 개인 키 또는 보안 메모, 즉 명확한 자격 증명)을 위해 고안되었습니다. 그러나 액세스 토큰은 사용자가 비밀번호를 입력 한 후 생성되는 임시 해시이며 시간이 제한되어 있습니다. 그리고 도난 당하더라도 악의적 인 사람은 계정을 완전히 도용 할 수 없습니다. 소유자는 다른 장치에서 로그인 할 수 있으며 이전 액세스 토큰이 재설정됩니다. 따라서 공식적으로 UserDefaults에 액세스 토큰을 저장하는 것은 금지되어 있지 않습니다.
UserDefaults의 데이터는 장치 자체를 도난 당했을 때만 도난 당할 수 있지만 콘텐츠의 보안 수준은 물리적 장치 자체보다 훨씬 낮다고 생각합니다. 이 경우 사용자는 토큰에 대해 걱정하지 않고 장치에 대해 걱정할 것이라고 생각합니다.
그러나 키 체인에 저장하는 것이 좋지만 과도한 (!) 보안 사용이며 일반적으로 인터넷의 임의 사용자가 권장하며 Apple에서 요구하지 않습니다. Apple에서 토큰을 키 체인에 저장해야한다고 말하는 문서가 없습니다 (찾을 수있는 경우 아래에 주석을 추가하십시오).
따라서 대답은-둘 다 사용할 수 있습니다. 그러나 앱이 도난당한 iPhone과 달리 비용이 많이 드는 콘텐츠로 작동하는 경우 키 체인을 사용하는 것이 좋지만 권장 사항 일뿐입니다.
'IT TIP' 카테고리의 다른 글
Firefox 개발자 도구에서 코드 글꼴 크기 늘리기 (0) | 2020.11.25 |
---|---|
Ruby에서 정수 배열을 문자열 배열로 변환 하시겠습니까? (0) | 2020.11.25 |
C #의 변수에 액세스하는 것은 원자 적 작업입니까? (0) | 2020.11.24 |
누군가 Erlang에서 Pid의 구조를 설명 할 수 있습니까? (0) | 2020.11.24 |
생성자에서 추가 매개 변수와 함께 Ninject를 사용하여 인스턴스 만들기 (0) | 2020.11.24 |