Как удалить многие системные корни из Apple System Keychain?

14

Приложение Apple связки ключей не позволит вам удалить системные корни, оно только позволит вам отключить их. Это позволит вам отключить их только по одному. Для каждого из них вам нужно пройти через 3 панели пользовательского интерфейса и ввести свой пароль. Есть ли способ автоматизировать это или сделать все сразу? Мне не нравится нынешний выбор системных корней Apple.

vy32
источник
Я не могу дать вам ответ / решение, но могу предложить вам переосмыслить это. Чего вы надеетесь достичь / какова ваша цель? Каковы преимущества этого? Каковы недостатки этого? Если это просто вопрос о том, чтобы почистить брелок, я бы забыл об этом. Изменение НИЧЕГО, связанного с «системой», может привести к проблемам, и, как правило, не рекомендуется. Это одна из тех ситуаций, «если она не сломана, не чини».
modelamac
5
Моя цель - удалить доверенные корни из организаций, которым я не доверяю. Я не доверяю правительству Китая. Я не доверяю скомпрометированным сертификатам из Нидерландов. Я не доверяю сертификатам из целого ряда других организаций. Я не хочу их. Почему я должен доверять всем этим организациям? Я не.
vy32
3
Я ищу, чтобы найти / разработать хороший список сертификатов, которым нельзя доверять, и их хэшей, которые были бы полезны для их недоверия. Мне кажется хорошей идеей не доверять тем, кого не видели регулярно за пределами специализированных ниш. Возможно, у netcraft есть список широко используемых ЦС, разработанных с помощью их опроса, чтобы определить, какие из них широко используются. Держу пари, что с дюжиной центров сертификации у меня будет 500 лучших сайтов и все сайты, которые я посещаю, регулярно освещаются. vy32, мне любопытно, есть ли у вас список сертификатов, которые вы решили не доверять, и почему вы их выбрали. Можешь поделиться? Кроме того,
MrE
Как узнать, какой сертификат принадлежит какому приложению?
Рускес
Сертификаты не принадлежат приложениям. Они принадлежат к системе.
vy32

Ответы:

13

Резервное копирование брелка, прежде чем пытаться что-либо

Список корневых сертификатов:

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

Просто найдите в дампе имена или хэш-значения сертификатов SHA-1, от которых вы хотите избавиться, и запишите их.

Теперь вы можете удалить эти корневые сертификаты с помощью security delete-certificateкоманды.

Использование: delete-certificate [-c name] [-Z hash] [-t] [цепочка для ключей ...]

-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 открытым с этим сертификатом, вы заметите, что он немедленно удаляется при выполнении команды в терминале.

Bolle
источник
0

Недоверие к корню с помощью delete-сертификата с помощью хэша сломано: sudo security delete- certificate -Z 8250BED5A214433A66377CBC10EF83F669DA3A67 / System/Library/Keychains/SystemRootCertificates.keychainвсегда происходит сбой с: «security: SecKeychainItemDelete: UNIX [Операция не разрешена]», даже если этот ссылочный сертификат присутствует.

Вот обходной путь из выступления на DEFCON24.

Вместо этого сохраните корневой сертификат как файл cer и используйте: security add-trusted-cert -d -r deny -k "/Library/Keychains/System.keychain" certname.cer

cl0kd
источник
0
  1. Откройте приложение Keychain Access (/ Приложения / Утилиты / Keychain Access.app)
  2. Выберите системные корни в цепочках ключей
  3. Выберите Сертификаты в категории
  4. Поиск по названию сертификата с истекшим сроком действия
  5. Щелкните правой кнопкой мыши на сертификате, затем выберите «Удалить»
  6. Введите пароль системного администратора
P Anandhakumar
источник
Это больше не работает, так как el capitan из-за защиты целостности системы. Однако вы можете не доверять.
Анци