Apple System Keychain에서 많은 시스템 루트를 제거하려면 어떻게합니까?


14

Apple 키 체인 응용 프로그램은 시스템 루트를 제거 할 수 없으며 비활성화 할 수만 있습니다. 한 번에 하나씩 만 비활성화 할 수 있습니다. 각각에 대해 3 개의 UI 패널을 통해 암호를 입력해야합니다. 이것을 자동화하거나 한꺼번에 수행하는 방법이 있습니까? 나는 애플이 현재 선택한 시스템 루트를 좋아하지 않는다.


나는 당신에게 대답 / 해결책을 줄 수는 없지만 이것을 다시 생각할 것을 제안 할 수 있습니다. 무엇을 성취하고 싶습니까 / 목표는 무엇입니까? 이 작업의 장점은 무엇입니까? 이 작업의 단점은 무엇입니까? Keychain을 정리하고 싶을 경우 잊어 버릴 것입니다. "시스템"을 다루는 것을 변경하면 문제가 발생할 수 있으며 일반적으로 권장하지 않습니다. "파산하지 않으면 해결하지 마십시오"상황 중 하나입니다.
modelamac

5
내 목표는 내가 신뢰할 수없는 조직에서 신뢰할 수있는 뿌리를 제거하는 것입니다. 나는 중국 정부를 믿지 않습니다. 네덜란드의 손상된 인증서를 신뢰하지 않습니다. 나는 다른 많은 조직의 인증서를 신뢰하지 않습니다. 나는 그들을 원하지 않습니다. 왜 모든 조직을 신뢰해야합니까? 난 아니야
vy32

3
나는 신뢰할 수없는 좋은 인증서 목록과 해시를 찾고 개발하려고합니다. 전문 틈새 시장 밖에서 정기적으로 보지 않는 사람들을 불신하는 것이 좋은 생각 인 것 같습니다. netcraft는 설문 조사 를 통해 개발 된 CA 중 널리 사용되는 CA 목록을 가지고있을 수 있습니다. 약 12 개의 CA를 사용하여 상위 500 개의 사이트와 정기적으로 방문하는 모든 사이트를 보유 할 것이라고 확신합니다. vy32, 신뢰하지 않기로 결정한 인증서 목록이 있고 선택한 이유가 궁금합니다. 공유 할 수 있습니까? 또한,
MRE

어떤 응용 프로그램에 어떤 인증서가 속하는지 어떻게 알 수 있습니까?
Ruskes

인증서는 응용 프로그램에 속하지 않습니다. 그들은 시스템에 속합니다.
vy32

답변:


13

시도하기 전에 키 체인을 백업하십시오.

루트 인증서 나열 :

sudo security dump-keychain /System/Library/Keychains/SystemRootCertificates.keychain

덤프에서 제거하려는 인증서의 이름 또는 SHA-1 해시 값을 찾아서 적어 두십시오.

이제 security delete-certificate명령을 사용하여 해당 루트 인증서를 삭제할 수 있습니다 .

사용법 : delete-certificate [-c name] [-Z hash] [-t] [keychain ...]

-c  Specify certificate to delete by its common name
-Z  Specify certificate to delete by its SHA-1 hash value
-t  Also delete user trust settings for this certificate The certificate to be deleted must be uniquely specified either by a

공통 이름 또는 SHA-1 해시로 찾은 문자열 검색 할 키 체인을 지정하지 않으면 기본 검색 목록이 사용됩니다.

예를 들어 다음 명령을 사용하여 중국어 루트 인증서를 삭제할 수 있습니다.

sudo security delete-certificate -Z 8BAF4C9B1DF02A92F7DA128EB91BACF498604B6F /System/Library/Keychains/SystemRootCertificates.keychain

3
루트 인증서 목록이 어떤 속성으로 덤프되면 SHA-1 해시 값을 찾을 수 있습니까?
BrightIntelDusk

1
@BrightIntelDusk 다음 명령을 사용할 수 있습니다 :sudo security find-certificate -a -c startcom -Z /System/Library/Keychains/SystemRootCertificates.keychain
lifeofguenter

1

감사합니다! -c 옵션으로 저를 위해 일했습니다. Keychain.app에서 루트 인증서의 이름을 찾은 다음 sudo security delete -c "CERTNAME" /System/Library/Keychains/SystemRootCertificates.keychain 해당 인증서를 사용하여 Keychain.app를 열어 놓으면 터미널에서 명령을 실행할 때 즉시 삭제됩니다.


0

해시에 의한 삭제 인증서를 가진 루트의 불신이 끊어졌습니다. sudo security delete- certificate -Z 8250BED5A214433A66377CBC10EF83F669DA3A67 / System/Library/Keychains/SystemRootCertificates.keychain이 참조 인증서가 존재하더라도“보안 : SecKeychainItemDelete : UNIX [작업이 허용되지 않음]”으로 항상 실패합니다.

다음은 DEFCON24의 연설에서 해결 방법입니다.

대신 루트 인증서를 cer 파일로 저장하고 다음을 사용하십시오. security add-trusted-cert -d -r deny -k "/Library/Keychains/System.keychain" certname.cer


0
  1. Open Keychain Access 앱 (/ Applications / Utilities / Keychain Access.app)
  2. 키 체인에서 시스템 루트 선택
  3. 카테고리에서 인증서 선택
  4. 만료 된 인증서 이름을 검색하십시오.
  5. 인증서를 마우스 오른쪽 버튼으로 클릭 한 후 "삭제"를 선택하십시오.
  6. 시스템 관리자 비밀번호를 입력하십시오

시스템 무결성 보호로 인해 el capitan 이후로는 더 이상 작동하지 않습니다. 그러나 신뢰하지 않도록 선택할 수 있습니다.
Antzi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.