GOOGLE ADS

понедельник, 25 апреля 2022 г.

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

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

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

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

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

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

Однако это решение по-прежнему предполагает необходимость подтверждать доступ к каждому ключу, нажимая OK в диалоговом окне. Это намного лучше, чем каждый раз вводить пароль от связки ключей, но все равно раздражает. Кроме того, вы должны подтверждать доступ дважды для каждого ключа; один раз для редактора сценариев (или самого сценария, если он работает как приложение) и один раз для сценариев цепочки ключей. Таким образом, если вы обрабатываете связку ключей со 100 ключами, вам нужно вручную нажимать «ОК» в 200 диалогах.

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

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


Решение проблемы

Ладно, я тупой. Есть инструмент командной строки, 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>"

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...