В настоящей статье описан алгоритм настройки SSH-клиента Putty для ОС Windows для работы с JaCarta PKI.
JaCarta PKI – токены производства компании «Аладдин Р.Д.» для строгой двухфакторной аутентификации пользователей при доступе к защищённым информационным ресурсам предприятия, безопасного хранения ключей и ключевых контейнеров программных СКЗИ.
SSH — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений. Шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.
SSH поддерживает возможность аутентификации по RSA-ключу, что обеспечивает максимальный уровень безопасности для канала передачи данных, а также двухфакторную аутентификацию удалённых пользователей.
Для настройки работы SSH по RSA-сертификатам необходимо настроить SSH-сервер, а также SSH-клиента на клиентской машине. В данном документе описан алгоритм настройки работы SSH с использованием смарт-карты, либо токена JaCarta PKI для целей аутентификации и шифрования установленного канала.
Необходимо перенести сертификат на смарт-карту. Для переноса необходимо собрать все необходимые объекты в зашифрованный контейнер и записать его на смарт-карту.
ssh -I /usr/lib/x86-athena/libASEP11.so 127.0.0.1
Для работы требуется версия putty-cac 0.62
В общем случае сертификат появляется в хранилище сертификатов автоматически, но в некоторых случаях может потребоваться его добавление вручную.
Вкладка Connection/SSH/CAPI
После ввода PIN-кода пользователя будет установлена сессия SSH.
JaCarta PKI – токены производства компании «Аладдин Р.Д.» для строгой двухфакторной аутентификации пользователей при доступе к защищённым информационным ресурсам предприятия, безопасного хранения ключей и ключевых контейнеров программных СКЗИ.
Общие сведения
SSH
SSH — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений. Шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.
SSH поддерживает возможность аутентификации по RSA-ключу, что обеспечивает максимальный уровень безопасности для канала передачи данных, а также двухфакторную аутентификацию удалённых пользователей.
Аутентификация по сертификату
Для настройки работы SSH по RSA-сертификатам необходимо настроить SSH-сервер, а также SSH-клиента на клиентской машине. В данном документе описан алгоритм настройки работы SSH с использованием смарт-карты, либо токена JaCarta PKI для целей аутентификации и шифрования установленного канала.
Настройка смарт-карт для SSH-клиента
Порядок настройки серверной части на примере Ubuntu
Генерация ключевой пары утилитой ssh-keygen
- Перейти в директорию /home/user/.ssh
- ssh-keygen -t rsa
- Задать имя ключа, например, key
- Задать пароль ключа (для шифрования закрытого ключа), например, 12345678
- На выходе получаем два файла, например, key и key.pub
Генерация запроса на сертификат с ключами из п. 1
- openssl req -new -out user.req -key key
Выпуск сертификата в CA openssl
- Настройка openssl CA
- cd /etc/ssl
- sudo -i
- echo “01” > serial
- cp /dev/null index.txt
- Редактируем /etc/ssl/openssl.cnf nano openssl.cnf
- dir = ./
- certs = $dir/certs
- crl_dir = $dir/crl
- database = $dir/index.txt
- new_certs_dir = $dir/certs
- certificate = $dir/ca.crt
- serial = $dir/serial
- crl = $dir/crl.pem
- private_key = $dir/ca.key
- dir = ./
- openssl req -new -x509 -keyout ca.key -out ca.crt -days 3650
- mkdir crl
- Скачать
- Запуск makehashlink
- chmod +x make_hash_link.sh
- ./make_hash_link.sh /etc/ssl
- ./make_hash_link.sh /etc/ssl/crl
- cd /etc/ssl
- Подписание сертификата пользователя (выпуск)
- sudo -i
- cd /home/user/.ssh
- openssl ca -out user.crt -infiles user.req
- sudo -i
Импорт открытого ключа в Autorized_keys
- В директории /home/user/.ssh должен находиться файл открытого ключа, содержащий ssh-rsa {KEY}. В примере мы создали файл с именем key.pub
- Импортируем данный ключ в файл authorized_keys
- echo key.pub > authorized_keys
Донастройка серверной части
- chmod 700 authorized_keys
- Настройки openssh. В /etc/ssh/sshd.conf редактируем конфигурацию аутентификации
- RSAAuthentication yes
- PubkeyAuthentication yes
- PasswordAuthentication no — отказ от аутентификации по паролю (опционально)
- RSAAuthentication yes
Запись сертификата на смарт-карту
Необходимо перенести сертификат на смарт-карту. Для переноса необходимо собрать все необходимые объекты в зашифрованный контейнер и записать его на смарт-карту.
- openssl pkcs12 -export -in user.crt -inkey key -certfile ca.crt -name «user» -out user.pfx
- Перенос файла user.pfx на Windows систему с установленным ПО «Единый Клиент JaCarta», либо JC Client
- Ввод PIN-кода пользователя
- Импортировать сертификат на токен
- Выбрать файл user.pfx и нажать «Импорт»
Проверка работоспособности сертификата
ssh -I /usr/lib/x86-athena/libASEP11.so 127.0.0.1
Настройка SSH-клиента Putty на ОС Windows
Запуск утилит из дистрибутива putty-cac\executables
- pageant.exe
- putty.exe
Для работы требуется версия putty-cac 0.62
Выбор сертификата в pageant
В общем случае сертификат появляется в хранилище сертификатов автоматически, но в некоторых случаях может потребоваться его добавление вручную.
Запуск и настройка Putty
Вкладка Connection/SSH/CAPI
Вход в сессию SSH по сертификату
После ввода PIN-кода пользователя будет установлена сессия SSH.
Поделиться с друзьями
rlepricon
Подскажите, пожалуйста,
1. Зачем импортировать ключ в токен предварительно сгенерив его программно и сохранив в pfx? Это же прямой путь к утечке и/или подмене сертификата.
2. Почему Pkcs11 библиотека работающая с «полностью российской разработкой» токеном Jacartaподписана компанией Athena?
P.S. Спасибо за статью!
AladdinRD
Потому что другого пути генерации ключевой пары для SSH нет. Соответственно приходится часть шагов производить «вручную». Конечно, это несколько менее безопасный путь, чем если бы ключи генерировались прямо в смарт-карте. Но все равно, это гораздо надежнее, чем парольная аутентификация.
rlepricon
Допустим.
А что по поводу второго вопроса:
2. Почему Pkcs11 библиотека работающая с «полностью российской разработкой» токеном Jacartaподписана компанией Athena?
rlepricon
Другой путь генерации ключевой пары для SSH есть — вот он — https://geektimes.ru/post/88540/ — описан аж в 2010 году.
doctorblack
Спасибо Вам! Действительно существует способ генерации ключевой пары непосредственно на устройстве, но в статье мы не рассмотрели этих способов, наше упущение. В скором времени дополним статью альтернативным вариантом генерации КП на устройстве JaCarta PKI.
rlepricon
Так а что по поводу второго вопроса:
2. Почему Pkcs11 библиотека работающая с «полностью российской разработкой» токеном Jacarta подписана компанией Athena?
Вы упорно игнорируете этот вопрос — это становится подозрительным.