Существует ли быстрый и простой способ вывести содержание MacOS X связок ключей?

Я быстро проверил источник createCustomToken в Admin SDK, и кажется, что время истечения одного часа (exp) там жестко запрограммировано. Поэтому, если вы хотите изменить это, вам придется создать свой собственный форк Admin SDK.

Альтернативой может быть создание собственного пользовательского токена, как показано в . Создание пользовательских токенов с помощью сторонней библиотеки JWT . Таким образом, вы можете установить требование exp на желаемое значение.

Третий вариант - использовать сеансовые куки , которые позволяют вам установить собственный интервал истечения срока действия.

И последний вариант, который я могу придумать, - это подать запрос функции в Admin SDK .

35
задан AstroCB 30 August 2014 в 21:07
поделиться

1 ответ

Allright, я глуп. Существует названный инструмент командной строки 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>"
34
ответ дан Niels Heidenreich 27 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: