iOS 키 체인 보안
iPhone의 인증서를 사용하여 MS Exchange Sync를 인증하려고합니다. 이 인증서를 보호하기 위해 보안 개념이 어떻게 구현되었는지 확신 할 수 없습니다.
예를 들어 ScreenLock이 활성화되지 않은 경우 iPhone에서 "전체"키 체인 액세스를 얻을 수 있습니까? (또는 Jailbroken iPhone 사용시).
아무도 이것에 대한 링크가 있습니까?
iOS 키 체인 보안에 대한 Fraunhofer의 연구 :
- http://sit.sit.fraunhofer.de/studies/en/sc-iphone-passwords.pdf
- http://sit.sit.fraunhofer.de/studies/en/sc-iphone-passwords-faq.pdf
내가 알 수 있듯이 iOS 키 체인이 사용하는 두 가지 수준의 암호화가 있습니다. 첫 번째 수준은 잠금 화면 암호를 암호화 키로 사용합니다. 두 번째 수준은 장치에서 생성하고 저장 한 키를 사용합니다.
Fraunhofer의 연구자들은 두 번째 수준으로 이동하는 방법을 알아 냈습니다. 암호화 키가 장치에 저장되어 있기 때문에이 수준이 "쉽게"돌아 다니는 수준입니다. 따라서 iOS4에서 해당 방법은 kSecAttrAccessibleWhenUnlocked 또는 kSecAttrAccessibleWhenUnlockedThisDeviceOnly를 사용하지 않는 키 체인 항목에서만 작동합니다. 왜냐하면 해당 항목은 전화가 잠겨있을 때도 첫 번째 수준의 암호가 해독 된 메모리에 있기 때문입니다.
- iOS 4부터 kSecAttrAccessibleWhenUnlocked 및 kSecAttrAccessibleWhenUnlockedThisDeviceOnly가있는 키는 추가 암호화 수준으로 보호됩니다.
- iOS 3.x 및 이전 버전에서는 사용 된 접근성 속성에 관계없이 Fraunhofer의 방법을 사용하여 모든 키를 해독 할 수 있습니다.
- 암호가 전혀없는 장치는 여전히 취약합니다.
- 약한 암호 (6 자리 미만)를 가진 장치는 여전히 다소 취약합니다.
암호 시도당 ≈50ms; → 초당 20 회 시도 → 기본 36 인 6 자리 영숫자 코드의 올바른 암호를 추측하는 50 % 변경에 약 1.7 년. 4 자리 숫자의 표준 단순 코드는 9 분 이내에 무차별 대입됩니다. 하드웨어 기반이 아니기 때문에 iOS에서 잘못된 시도에 대한 카운터를 우회 할 수 있다는 가정을 기반으로합니다.
Apple Inc. WWDC 2010, 핵심 OS, 세션 209 "애플리케이션 데이터 보안", 슬라이드 24
결론 : 중요한 데이터를 저장해야하는 경우 자체 암호화를 사용하는 것이 좋습니다. 그리고 장치에 키를 저장하지 마십시오.
편집 : Fraunhofer 연구를 인용 한 수많은 뉴스 기사 가 있으며이 공격은 장치에 대한 물리적 액세스를 통해서만 수행 될 수 있기 때문에 장치를 도난 당하지 않는 한 독자가 걱정하지 않아도됩니다.
나는 왠지 의심 스럽다. 연구원들이 휴대 전화에 물리적으로 접근하여 테스트를 수행했다는 사실은 제한이 아니라 문제를 단순화하는 방법 인 것 같습니다. 다음은 키 체인 항목을 해독하기 위해 수행 한 작업에 대한 설명입니다.
탈옥 도구를 사용한 후 명령 셸에 액세스하기 위해 작은 스크립트를 실행하여 키 체인에있는 암호에 액세스하고 암호를 해독합니다. 암호 해독은 운영 체제 자체에서 제공하는 기능을 사용하여 수행됩니다.
jailbreak.me를 사용해 본 사람이라면 누구나 알고 있듯이 탈옥에는 장치에 대한 물리적 액세스가 필요하지 않습니다 . 이론적으로 jailbreak.me 코드를 수정하고 다음을 자동화하는 것은 간단해야합니다.
- 탈옥을 정상적으로 수행합니다 (사용자가 악의적으로 제작 된 PDF를 여는 것입니다).
- 탈옥이 완료된 후 Fraunhofer의 스크립트 실행
- 공격자가 읽을 수있는 위치로 네트워크를 통해 암호를 보냅니다.
따라서 다시 한 번 키 체인에 무엇을 넣을지주의하십시오.
일반적으로 키 체인은 이러한 인증서를 저장하는 데 권장되는 방법입니다. 그러나 탈옥은 키 체인의 보안을 우회하는 데 사용될 수 있음이 발견되었습니다 ( 기사 ).
Franhofer는 iPhone 키 체인의 안전성에 대한 연구를 수행했습니다.
http://www.sit.fraunhofer.de/Images/sc_iPhone%20Passwords_tcm501-80443.pdf
질문의 일부에 답변 할 수 있지만 다른 부분은 아직 알려지지 않았기 때문에 답변을 알고 싶어서 투표하고 있습니다.
제가 대답 할 수있는 부분은 '화면 잠금이 활성화되지 않은 경우 앱이 전체 키 체인 액세스 권한을 얻을 수 있나요?'입니다. 아니요, 모든 앱에는 iPhone에 고유 한 키 체인 영역이 있습니다. 즉, 앱은 자체 비밀에만 액세스 할 수 있습니다. 이러한 비밀은 앱 자체에 대해 잠기지 않으므로 앱 자체에서 키 체인 항목을 숨길 방법이 없습니다. 요약하면 앱은 자체 항목을 읽을 수 있으며 다른 항목은 읽을 수 없습니다.
내가 알고 싶은 것은 탈옥 장치에서 일어나는 일입니다. 장치가 탈옥되면 모든 앱의 키 체인이 노출됩니까?
참조 URL : https://stackoverflow.com/questions/3558252/ios-keychain-security
'programing' 카테고리의 다른 글
TimerTask 대 Thread.sleep 대 핸들러 postDelayed-N 밀리 초마다 함수를 호출하는 것이 가장 정확합니까? (0) | 2021.01.15 |
---|---|
Linux에서 파일 확장자 / MIME 유형 등록 (0) | 2021.01.15 |
워크 시트 데이터에 대해 SQL과 유사한 쿼리를 만드는 Excel 기능? (0) | 2021.01.15 |
오픈 그래프는 상대 URL을 확인할 수 있습니까? (0) | 2021.01.15 |
std :: ostream을 이동할 수없는 이유는 무엇입니까? (0) | 2021.01.15 |