Технологии безопасности

Сайт посвященный вопросам безопасности

Аутентификация в OpenSSH Putty по JaCarta PKI

(adsbygoogle = window.adsbygoogle || []).push({});

В настоящей статье описан алгоритм настройки SSH-клиента Putty для ОС Windows для работы с JaCarta PKI.

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

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

Подписание сертификата пользователя (выпуск)

sudo -i

cd /home/user/.ssh

openssl ca -out user.crt -infiles user.req

Импорт открытого ключа в 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 — отказ от аутентификации по паролю (опционально)

Запись сертификата на смарт-карту

Необходимо перенести сертификат на смарт-карту. Для переноса необходимо собрать все необходимые объекты в зашифрованный контейнер и записать его на смарт-карту.

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-cacexecutables

pageant.exe

putty.exe

Для работы требуется версия putty-cac 0.62

Выбор сертификата в pageant

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

Запуск и настройка Putty

Вкладка Connection/SSH/CAPI

Вход в сессию SSH по сертификату

После ввода PIN-кода пользователя будет установлена сессия SSH.