Замените запрос пароля на Touch ID, чтобы прочитать пароль связки ключей

14

Я использую следующую команду для получения пароля из связки ключей в сценарии оболочки: security find-generic-password -w -s "MyServiceName"

Это работает, но показывает всплывающее окно, запрашивающее у меня пароль для входа в систему:

securityхочет использовать вашу конфиденциальную информацию, хранящуюся в «MyServiceName» в вашей цепочке для ключей. Чтобы разрешить это, введите пароль для входа в систему.

С вариантами Deny, AllowилиAlways Allow

Но я не хочу каждый раз вводить пароль для своей цепочки для ключей, поэтому я не могу использовать «Разрешить» и предпочел бы не «Всегда разрешать», чтобы сохранить некоторый уровень безопасности здесь.

В идеале я хотел бы получить приглашение Touch ID. Есть какой-либо способ сделать это ?

Coyotwill
источник
Это было бы прекрасно ! Вы нашли что-нибудь?
ZedTuX
Я не уверен, что это отвечает на ваш вопрос, но вы можете сделать так, чтобы sudo использовал TouchID вместо диалогового окна пароля, см. Здесь: osxdaily.com/2017/11/22/use-touch-id-sudo-mac
Harv

Ответы:

3

Исследуя это, я не смог найти никакого метода, который позволял бы securityкоманде использовать Touch ID. Эта статья под названием: « Как использовать Touch ID для аутентификации sudo в Mac OS» , упомянутая в комментарии, касающемся, sudoа затем использования Touch ID, не будет работать, поскольку в ней используется добавление этой строки:

auth sufficient pam_tid.so

в sudoфайл PAM /etc/pam.d/sudo. Нет ничего эквивалентного securityкоманде, так как она не использует sudo.

Поэтому вам остается использовать один из 2 методов, упомянутых в диалоговом окне при запуске securityкоманды:

  • Всегда позволяют
  • Позволять

ss1

Если вы выберете «Всегда разрешать», это даст неограниченный доступ только к securityкоманде. Если вы выберете «Разрешить», он даст securityдоступ к связке ключей только один раз.

пример

Здесь я создал элемент пароля приложения в связке ключей с именем TestPassword.

ss2

Мы можем видеть, что ничто не было предоставлено доступ к нему, глядя на вкладку ACL этого диалога.

ss3

Если я запускаю эту securityкоманду:

$ security find-generic-password -w -s "TestPassword"

И навсегда «Всегда разрешать» мне будет дан пароль для этого элемента из цепочки для ключей:

TestPassword123

Но что более важно, я добавлю securityв ACL для этого элемента в Keychain.

ss4

ОДС
источник