effugas@OTHERSHOE ~
$ cat ~/.ssh/identity.pub | ssh -1 effugas@10.0.1.10 “cd ~
&& umask 077&& mkdir -p .ssh && cat >> ~/.ssh/
authorized_keys”
effugas@10.0.1.10’s password:
Мама моя родная, никакого пароля не требуется:
effugas@OTHERSHOE ~
$ ssh -1 effugas@10.0.1.10
Last login: Mon Jan 14 05:44:22 2002 from 10.0.1.56
[effugas@localhost effugas]$
Эквивалентным процессом для SSH2, который для пакета OpenSSH является протоколом по умолчанию, является следующий:
effugas@OTHERSHOE ~
$ cat ~/.ssh/id_dsa.pub | ssh effugas@10.0.1.10 “cd ~ &&
umask 077 &&mkdir -p .ssh && cat >> ~/.ssh/
authorized_keys2”
effugas@10.0.1.10’s password:
effugas@OTHERSHOE ~
$ ssh effugas@10.0.1.10
Last login: Mon Jan 14 05:47:30 2002 from 10.0.1.56
[effugas@localhost effugas]$
...
Инструментарий и ловушки
Много пользователей, одна учетная запись: предотвращение утечки сведений о пароле
При реализации следует учитывать одну важную вещь: содержимое каждого пользовательского файла учетных записей может состоять из многих компонент, к каждой из которых предусмотрен независимый доступ путем предоставления ей своего указателя входа в файл. Если у пользователя много учетных записей, то часто он может воспользоваться этим для подтверждения серверу своей подлинности. К счастью, многие описываемые в этой главе сквозные методы ограничивают использование такой небезопасной методики. (Чем больше хостов могут подключиться к системе, тем больший ущерб может нанести ей компрометация подключившихся хостов.)
Однако до сих пор успешно используется тот факт, что пользовательские файлы учетных записей authorized_keys и authorized_keys2 состоят из нескольких компонент. Благодаря этому группе пользователей может быть предоставлен коллективный доступ к учетной записи без знания ее долгосрочного пароля. Новые члены группы добавляют к учетной записи свои общедоступные компоненты с необходимыми им разрешениями. После этого их личные ключи учитывают добавленные компоненты. При исключении пользователей из группы их общедоступные компоненты удаляются из списка авторизованных ключей. Никто из исключенных пользователей не должен помнить новый пароль!
Необходимо сделать следующее пояснение: постепенно от файлов known_hosts2 и authorized_keys2 отказываются, преобразуя их в файлы known_hosts и authorized_keys. Сервера, которым не нужны специфические файлы протокола SSH2, обращаются к новым файлам, отбрасывая 2 в конце имени файла.
Из-за недоверия к серверам остерегаются использовать пароли, но кто говорит, что клиент намного лучше? Хорошая криптография – это прекрасно, но по существу берется нечто, что запоминается в памяти пользователя и помещается на жесткий диск клиента. А ведь это нечто может быть перехвачено. Помните, что нет безопасного способа запомнить пароль клиента без использования другого пароля, защищающего запомненный пароль. Решений этой проблемы не так много. В одной из реализаций протокола SSH для ее решения используются идентификационные фразы (passwords). Они позволяют расшифровать личный ключ, с помощью которого удаленный сервер проверяет знание клиентом секрета. Идентификационная фраза состоит из анализируемых клиентом паролей. Читатель может добавить идентификационные фразы к обоим ключам протокола SSH2:
# add passphrase to SSH1 key
effugas@OTHERSHOE ~
$ ssh-keygen.exe -p
Enter file in which the key is (/home/effugas/.ssh/
identity):
Key has comment “effugas@OTHERSHOE”
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
# add passphrase to SSH2 key
effugas@OTHERSHOE ~
$ ssh-keygen.exe -t dsa -p
Enter file in which the key is (/home/effugas/.ssh/id_dsa):
Key has comment “/home/effugas/.ssh/id_dsa”
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
# Note the new request for passphrases
effugas@OTHERSHOE ~
$ ssh effugas@10.0.1.11
Enter passphrase for key “/home/effugas/.ssh/id_dsa”:
FreeBSD 4.3-RELEASE (CURRENT-12-2-01) #1: Mon Dec 3
13:44:59 GMT 2001
$
Конечно, это возврат туда, откуда все начиналось. Читатель должен будет вводить пароль каждый раз, когда он захочет подключиться к удаленному хосту! Что теперь?
Умалчиваемая правда заключается в том, что большинство людей продолжает доверять своим клиентам и полностью отказываются от идентификационных фраз. Это сильно раздражает администраторов информационных технологий, которые, отключая возможность использования паролей, думают, что тем самым они подталкивают людей к действительно хорошим криптографическим решениям, у которых нет огромных, настежь раскрытых дыр в системе защиты. На самом деле идентификационные фразы ничуть не лучше паролей. В протоколе SSH предусмотрены улучшенные варианты использования идентификационных фраз, которые позволяют распространить один-единственный ввод идентификационной фразы на сравнительно большое число попыток идентификации. Осуществляется это при помощи агента, который может быть размещен где угодно и который занят вычислением личного ключа для выполняющихся под его управлением клиентов SSH. (Это означает, и это важно, что только SSH-клиенты, выполняющиеся под управлением агента, получают доступ к его ключу.) Идентификационная фраза передается агенту, который расшифровывает личный ключ и позволяет клиентам получить доступ без фактического знания пароля. Ниже приведен пример простой реализации сказанного, в котором предполагается, что ключ создается так же, как и в предыдущем примере. Сгенерированный ключ действителен как при обращении к адресу 10.0.1.11, так и к адресу 10.0.1.10.
Читать дальше
Конец ознакомительного отрывка
Купить книгу