Методы аутентификации в OpenBSD


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

Для использования дополнительных методов регистрации в системе необходимо изменить имя пользователя и OpenBSD проведет фоновую аутентификацию. По умолчанию, единственными способами аутентификации являются простой пароль и S/Key. Для определения другого метода аутентификации необходимо после имени пользователя поставить двоеточие и определить этот метод.

login: bpalmer:skey
otp-md5 95 psid06473
S/Key Password:

passwd

Стандартным метод является passwd. Этот метод требует ввода имени пользователя, после чего он находит хешированное значение пароля в файле /etc/master.passwd и сравнивает это значение с паролем предоставленным пользователем.

S/Key

В некоторых конфигурациях S/Key является наиболее часто используемым методом входа в систему. Он используется в том случае, когда нет никакого другого безопасного способа входа в систему и пароль вводиться в виде открытого текста. Примером могут являться протоколы FTP и Telnet в которых пароли вообще незашифрованны. OpenBSD поддерживает метод S/Key для различных служб, включая ftpd, telnetd. и sshd. Проблема с Telnet и FTP заключается в том, что они используют аутентификацию с помощью незашифрованного текста и легко могут быть проснифены. Напротив, службы типа sshd, используют шифрование для безопасной передачи данных. Вместо использования открытого текста, S/Key посылает запрос, а удаленный пользователь отсылает назад ответ. Эту информацию посылают в открытом виде, но это разовая информация и она не содержит паролей, и поэтому не представляет опасности.

Для использования метода S/Key, пользователь сначала должен настроить его у принимающего лица. Это можно сделать следующим образом:

# skeyinit bpalmer
Reminder -Only use this method if you are directly connected
or have an encrypted channel. If you are using telnet
or rlogin, hit return now and use skeyinit -s.

[Adding bpalmer with md5]
Enter secret passphrase:
ERROR: Your passphrase must be at least 10 characters long.
Enter secret passphrase:
Again secret passphrase:

ID bpalmer skey is otp-md5 99 orio71643
Next login password: WAD GALA FLAT ARTS SHOD LIEU

В указанном выше примере пользователя сначала попросили указать пароль (нормальный пароль для входа в систему), а затем S/Key пароль. Это делается для того чтобы S/Key пароль отличался от системного пароля и пользователь мог пользоваться только S/Key паролем (в случае если не определен ни один системный пароль). Число 99 указывает на то, что есть 99 доступных ключей, до того момента как пользователю придется повторить процесс skeyinit.

Если утилита skeyinit запущена как root, то установить пароль возможно для любого пользователя:

root@orion:/root# skeyinit brandon

Reminder -Only use this method if you are directly connected
or have an encrypted channel. If you are using telnet
or rlogin, hit return now and use skeyinit -s.

[Updating brandon with md5]
Old seed: [md5] orio87272
Enter secret passphrase:
Again secret passphrase:

ID brandon skey is otp-md5 99 orio87273
Next login password: DEAR ALSO MONK GINA FRET STOW

Получение парольных фраз

После установки ключей существует два основных способа использования S/Key. Или пользователь имеет доступ S/Key генератору или может вывести следующие 10 значений ключа в последовательности. Для генерирования следующих 10 значений ключа пользователю необходимо использовать следующие команды:

$ skeyinfo
98 orio87273
$ skey -n 10 98 orio87273
Reminder -Do not use this program while logged in via telnet or
rlogin.
Enter secret password:

89: OH BUFF FOUL LAMB INK BALD
90: NILE FROG GRIM HANS NON ANTI
91: LEOBESS ELK NASH COIN SUNK
92: MARS HUH AMMOFAST MUCK DEAL
93: BUST ROVE AWN FRET FED BERN
94: ANTI LOVEAL HOWE BUCK RANK
95: ADDS AWRY BOCK SUIT SUN JUNO
96: CRAY SOY DOT WAST SELF SOB
97: ABEL LORD CHIN JANE TUBA SEEN
98: CASE GRIN ROOK TWIN BOG LAW

Первая команда опрашивает у пользователя, каков будет следующий ключ. После чего система показала, что это будут номер 98 и ключ orio87273. Это означает, что пользователю для подключения к Telnet можно использовать пароль CASE GRIN ROOK TWIN BOG LAW.

$ telnet orion
Trying 192.168.1.3...
Connected to orion.
Escape character is '^]'.

login: brandon:skey
otp-md5 98 orio87273
S/Key Password:
S/Key Password [echo on]: CASE GRIN ROOK TWIN BOG LAW
OpenBSD 3.3 (GENERIC) #2: Fri Feb 21 13:16:59 MST 2003

Welcome to OpenBSD: The proactively secure UNIX-like operating system.

После запроса имени пользователя мы ввели это имя, а через двоеточие ввели нужный нам метод входа в систему - S/Key. После чего последовал запрос и последовательность. FTP протокол работал бы точно также.

$ ftp orion
Connected to orion..
220 orion. FTP server (Version 6.5/OpenBSD) ready.
Name (orion:jose): jose:skey
331-otp-md5 96 orio87273
331 S/Key Password:
Password:
230-OpenBSD 3.3 (GENERIC) #2: Fri Feb 21 13:16:59 MST 2003
230-
230-Welcome to OpenBSD: The proactively secure UNIX-like operating
230-system.
230
?230 User jose logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
Ftp>

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

OpenBSD. Используется программа skey:

$ skey 97 orio87273
Reminder -Do not use this program while logged in via telnet or
rlogin.
Enter secret password:

ABEL LORD CHIN JANE TUBA SEEN

Palm OS Может использоваться программа Pilot/OTP

Windows Программа Winkey.exe - простой инструмент для генерирования S/Key парольных фраз.

Установка Sshd и его использование вместе с S/Key

В дополнение к Telnet и FTP, S/Key может использоваться с sshd. Но зачем использовать S/Key, если SSH итак зашифрован? Потому что удаленному клиенту не всегда доверяют.

Единственное отличие при использовании метода S/Key заключается в включении опции UseLogin в файле конфигурации /etc/sshd и перезапуске sshd.

UseLogin yes

Для ssh c S/Key используйте следующий код:


hacker@unsafe:/home/hacker$ ssh brandon:skey@server
otp-md5 97 serv87273
S/Key Password:
Last login: Sun Apr 3 20:58:14 on ttyp1 from client.
OpenBSD 3.3 (GENERIC) #44: Sat Mar 29 13:22:05 MST 2003

Welcome to OpenBSD: The proactively secure UNIX-like operating system.

Система OpenSSH аккуратно работает с описанными в этой статье методами аутентификации, если они были настроены должным образом.

Дополнительные классы аутентификации

Дополнительные классы аутентификации могут быть определены в файле конфигурации /etc/login.conf. В этом файле описаны определения классов и опции для них. Ниже будут описаны переменные для ключевого слова auth, которое определяет тип аутентификации. Поддержка S/Key появилась бы при 0использовании параметра auth=skey.

Классы аутентификации определяются или как значения по умолчанию или некоторый указанный класс. Это указано в файле /etc/master.passwd, в поле после кода группы. Например, пользователь friend, которым мы хотели управлять в классе visitors, будет иметь следующий элемент в файле паролей:

jose:$2a$06$shki2fo4.t2e7mtSAGQwoejga7rm2lb6RkjahhfCmiFysXj0CXiDi:
1000:1000:visitors:0:0:jose:/home/jose:/bin/ksh

После этого определяется пользовательский класс visitors. Теперь класс аутентификации visitors может быть определен в файле login.conf:

visitors:
:datasize-cur=64M:
:datasize-max=infinity:
:maxproc-max=256:
:maxproc-cur=128:
:auth=skey,radius,passwd:

Все это позволяет классу visitors подтверждать подлинность через S/Key, radius или локальный пароль. В этом разделе будут обсуждены данные методы.

lchpass

OpenBSD позволяет пользователю изменять свой пароль, используя несколько методов аутентификации. Первая методика должна изменить пароль пользователя на локальной машине.

$ login
login: bpalmer:lchpass
Changing local password for bpalmer.
Old Password:
New password:
Retype new password:

Метод lchpass работает почти также как локальное изменение пароля на системе пользователя.

chpass

Следующий метод, chpass, используется для изменения главной системы паролей для пользователя. Он отличается от lchpass, тем, что с помощью этого метода можно изменить Kerberos пароль, если пользователь обычно аутентифицируется через Kerberos.

Методы аутентификации на основе маркеров

В OpenBSD существуют различные уровни поддержки аутентификации на основе маркеров. Мы упомянем некоторые из программ, поддерживающих такой вид идентификации, но из-за недостатка необходимых аппаратных средств мы не будем давать никаких подробностей относительно использования таких методов. Все эти методы используют одну общую деталь: команду tokeninit для инициализации системы, добавления и удаления пользователей.

ActivCard идентификация

Метод activ работает с ActivCard лексемами. Когда пользователь входит в систему при помощи этого метода он ищется в файле /etc/active.db. Все это управляется командой activadm.

SecureNet идентификация

Другой метод аутентификации на основе маркеров использует ключевые маркеры SecureNet. Этот метод управляется с помощью команды snk.

CRYPTOCard идентификация

Метод crypto использует CRYPTOCard маркеры для проверки подлинности. Он работает через использование команды login crypto. Данный метод управляется командой cryptoadm, которая является практически идентичной командам snkadm и activadm.

krb-or-pwd


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

radius method

Если сервер OpenBSD сконфигурировн как сервер radiusd, то пользователь может зарегистрироваться в системе используя этот метод.

http://www.inattack.ru/article/metodyi-autentifikatsii-v-openbsd/208.html

Обновлено: 13.03.2015