Подтвердить что ты не робот

Есть ли быстрый и простой способ сбросить содержимое брелка MacOS X?

Я ищу способ сбрасывать (экспортировать) содержимое ключа Keychain OS X в файл, который я могу легко обрабатывать в другом месте, например открытый текст с разделителями табуляции или что-то в этом роде.

Приложение Keychain Access не предлагает таких функций, и получение ключевых данных включает в себя открытие каждого по очереди и необходимость вводить пароль keychain для просмотра пароля, хранящегося с помощью ключа, каждый раз.

После небольшого копания я нашел какое-то решение, используя AppleScript и приложение для скриптинга Keychain для доступа к цепочкам ключей (не может ссылаться на отдельные сообщения, прокрутите вниз примерно на две трети до конца страницы):

http://discussions.apple.com/thread.jspa?threadID=1398759

Используя скрипты Keychain, вы можете получить доступ ко всем полям данных всех ключей, включая пароль открытого текста! - и довольно легко сбрасывать эти данные в текстовый файл и т.д. Я тестировал его, и он работает хорошо.

Однако это решение по-прежнему требует подтверждения доступа к каждому ключу, нажав кнопку "ОК" в диалоговом окне. Это намного лучше, чем каждый раз вводить пароль keychain, но он все еще раздражает. Кроме того, вы должны подтвердить доступ дважды для каждого ключа; один раз для редактора Script (или самого Script, если он работает как приложение) и один раз для скрипта для ключей. Итак, если вы обрабатываете брелок с 100 ключами, вам нужно вручную щелкнуть ОК на 200 диалоговых окнах.

Теперь я ищу решение, чтобы обойти это. Я понимаю, что, поскольку цель цепочки ключей для защиты конфиденциальных данных и предотвращения именно того, что я пытаюсь сделать, любое такое решение, вероятно, связано с каким-то взломом.

Меня очень интересовали бы ваши идеи!

4b9b3361

Ответ 1

Хорошо, я глуп. Там используется инструмент командной строки security, который делает именно это (и множество других действий на связках ключей).

Пример использования:

security dump-keychain -d login.keychain

Это приведет к удалению всех данных в login.keychain(ключевой брелок по умолчанию для пользователя) в виде открытого текста, включая пароли. Вы еще должны подтвердить доступ, но только один раз для каждого ключа, и он намного быстрее (и не бросает странные ошибки при попытке доступа к определенным полям) с использованием AppleScript. И это не взломать.

Без параметра -d он выгрузит все поля, кроме пароля.

Сбрасываемые данные для ключа выглядят так (для интернет-ключа, у программных ключей и сертификатов есть другие поля, но формат один и тот же):

keychain: "/Users/<username>/Library/Keychains/login.keychain"
class: "inet"
attributes:
    0x00000007 <blob>="tech.slashdot.org (<username for this web login>)"
    0x00000008 <blob>=<NULL>
    "acct"<blob>="<username for this web login>"
    "atyp"<blob>="form"
    "cdat"<timedate>=0x32303038303432333038323730355A00  "20080423082705Z\000"
    "crtr"<uint32>=<NULL>
    "cusi"<sint32>=<NULL>
    "desc"<blob>="Kennwort des Web-Formulars"
    "icmt"<blob>="default"
    "invi"<sint32>=<NULL>
    "mdat"<timedate>=0x32303038303432333038323730355A00  "20080423082705Z\000"
    "nega"<sint32>=<NULL>
    "path"<blob>=<NULL>
    "port"<uint32>=0x00000000 
    "prot"<blob>=<NULL>
    "ptcl"<uint32>="http"
    "scrp"<sint32>=<NULL>
    "sdmn"<blob>=<NULL>
    "srvr"<blob>="tech.slashdot.org"
    "type"<uint32>=<NULL>
data:
"<the plaintext password for this key>"

Ответ 2

Пожалуйста, прочтите следующее: https://gist.github.com/rmondello/b933231b1fcc83a7db0b

Игнорировать: -----

Я нашел решение для диалога "Всегда разрешать" в каждом ключе!

Просто запустите предыдущую команду с помощью sudo.

sudo security dump-keychain -d login.keychain

Таким образом вам нужно будет ввести пароль дважды. Один на Терминале sudo и другой, чтобы разблокировать брелок!;)

Приятного дня!

Ответ 3

Обновление, теперь есть инструмент, который делает это красиво:

Keychaindump - это инструмент доказательной концепции для чтения паролей ключей OS X с правами root. Он охотится за разблокированными главными ключами keychain, расположенными в пространстве памяти процесса securityd, и использует их для дешифрования файлов ключей.

Источник: https://github.com/juuso/keychaindump

Ответ 4

Я нашел решение для того, чтобы не нажимать "Разрешить" несколько раз

sudo su
security dump-keychain -d /Users/YourUsername/Library/Keychains/login.keychain