Безопасное хранение паролей в связке ключей на Mac

2411
sam

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

Я рассматривал использование приложения цепочки для ключей, которое идет в комплекте с OSX, для хранения, это хорошая идея, это безопасно?

Я знаю, что он показывает вам пароль в виде простого текста, если A) имеет доступ к машине и B), если вы вводите пароль для входа в систему на своих машинах - так что с внешнего интерфейса это выглядит нормально, но безопасно ли это на сервере?

3
Межсайтовый дубликат [Насколько безопасен Keychain в OS X?] (Http://security.stackexchange.com/questions/756/how-secure-is-keychain-on-os-x) slhck 11 лет назад 0

2 ответа на вопрос

4
user495470

I know that it only shows you the password in plain text if A) have access to the machine and B) if you enter your machines user login password

B is true for Keychain Access but not for the security system in general. If the login keychain is unlocked, like it is by default when you are logged in, you can use security to see all passwords in the login keychain without having to enter any password:

security dump-keychain -d ~/Library/Keychains/login.keychain security find-internet-password -s accounts.google.com -w 

You only have to press an allow button and the password is shown in plain text. Actually it's weird (and misleading) that Keychain Access and Safari do require entering the password of the keychain when you try to show a password.

There are at least three ways to reset the login password in single user mode or from the recovery partition. None of them reset the password of the login keychain though. If you try to log in after resetting the login password, you can't see any passwords in the login keychain, use auto-fill in Safari, or log in automatically in Mail. But if for example you use a Gmail address for your Apple ID, you have enabled automatic login in Gmail's web interface, and you don't use two-step verification for the Apple ID, an attacker could use the Gmail account to reset the Apple ID password. If the "Allow user to reset password using Apple ID" option in the Users & Groups preference pane is enabled, the attacker could then use the Apple ID to reset the password of the login keychain.

The hash of the login password is stored in /var/db/dslocal/nodes/Default/users/username.plist in 10.7 and 10.8. If your login password (which is usually also the password of the login keychain) is simple enough, the hash can be cracked in a practical amount of time with DaveGrohl:

$ sudo dave -u $USER -- Loaded PBKDF2 (Salted SHA512) hash... -- Starting attack -- Found password : 'y8d' -- (incremental attack) Finished in 879.274 seconds / 31,385 guesses... 35 guesses per second. 

10.7 used a weaker key derivation function, which made it easy to crack even relatively complex passwords. 10.8 switched to PBKDF2, which limits cracking tools to about 10 guesses per second per core.

If you have enabled automatic login, the password of the login keychain is stored in /etc/kcpassword in an easy to decrypt form as of 10.8.

If you want to allow someone to use your account but not see passwords with security, you can lock the login keychain from Keychain Access or with security lock-keychain.

When you are away from the computer, you can lock it by for example checking "Require password immediately when after sleep or screensaver begins" from the Security preference pane and pressing control-shift-eject to turn off displays.

You can also enable locking the login keychain automatically from Keychain Access.

If you want to prevent people who have physical access to your computer from starting up in single user mode (and resetting the login password or seeing the hash of the login password), enable FileVault 2.

Кто-то с физическим доступом также должен иметь возможность войти в свою учетную запись и / или учетную запись администратора, хотя и правильно? Вы не можете просто открыть гостевую учетную запись и сбросить связку ключей без пароля sudo. Это похоже на уязвимость [герметичный люк] (http://blogs.msdn.com/b/oldnewthing/archive/2010/09/02/10057047.aspx). - Нил Нейман 1 час назад Neil Neyman 11 лет назад 0
@NeilNeyman Да, они должны будут войти в систему, и если пароль цепочки для ключей входа в систему отличается от пароля для входа в систему, им также придется разблокировать цепочку для ключей входа в систему. Я не говорил, что это уязвимость, но Keychain Access и Safari требуют ввода пароля цепочки для ключей, когда вы пытаетесь показать пароль, поэтому может быть удивительно, что «безопасность» этого не делает, даже если так работает система цепочки для ключей. работает в общем. user495470 11 лет назад 0
1
ernie

Any kind of datastore that allows you to get the plain-text representation of a password will be vulnerable. If it's reversible, it means it's brute-force reversible as well.

That said, Apple Keychain uses Triple DES, which is not likely to be brute-forced. Note that only the password and Secure Notes are encrypted.

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