The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Настройка SSH для использования наиболее защищённых алгоритмов шифрования
В свете появления сведений об организации АНБ атак, направленных на
получение контроля над SSH-соединениями, подготовлено руководство с
рекомендациями по усилению защищённости SSH. АНБ может получить контроль за
SSH-соединением  в случае использования уязвимых методов шифрования или в
результате захвата приватных ключей. Ниже представлены советы по отключению
потенциально проблемных алгоритмов и усилению защиты.


Обмен ключами.

Применяемые в SSH методы обмена ключей  DH (Diffie-Hellman) и ECDH (Elliptic
Curve Diffie-Hellman) можно считать безопасными. Из 8 поддерживаемых в SSH
протоколов обмена ключами вызывают подозрения три,  основанные на рекомендациях
NIST: ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521. Не
заслуживающими полного доверия также можно считать протоколы, использующие
потенциально проблемный SHA1. Протоколы curve25519-sha256 и diffie-hellman-group-exchange-sha256
 пока не вызывают сомнений в безопасности.

Для использования только заслуживающих доверия протоколов обмена ключами в
/etc/ssh/sshd_config  для сервера следует указать:

    KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

Аналогичные настройки для клиента, в /etc/ssh/ssh_config:

   Host *
      KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256

В /etc/ssh/moduli можно указать (или удалить строки с размером ключа, менее 2048):

   ssh-keygen -G /tmp/moduli -b 4096
   ssh-keygen -T /etc/ssh/moduli -f /tmp/moduli


Аутентификация.

В SSH поддерживается четыре алгоритма аутентификации по открытым ключам: DSA,
ECDSA,  Ed25519 и RSA. ECDSA завязан на технологиях NIST и должен быть
отключен. К сожалению, если просто удалить ключ ECDSA, он будет повторно
сгенерирован, поэтому можно воспользоваться обходным путём с создать заведомо
нерабочую символическую ссылку, которая помешает сгенерировать и использовать ключ:

   cd /etc/ssh
   rm ssh_host_ecdsa_key*
   rm ssh_host_key*
   ln -s ssh_host_ecdsa_key ssh_host_ecdsa_key
   ln -s ssh_host_key ssh_host_key

Так как размер ключей DSA  не может превышать 1024, его тоже следует отключить тем же способом:

   cd /etc/ssh
   rm ssh_host_dsa_key*
   ln -s ssh_host_dsa_key ssh_host_dsa_key

Далее, следует позаботиться о RSA, сгенерировав ключ большего размера:

   cd /etc/ssh
   rm ssh_host_rsa_key*
   ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key < /dev/null

Для создания клиентских ключей лучше использовать команды:

   ssh-keygen -t ed25519
   ssh-keygen -t rsa -b 4096


Симметричные шифры.

Из 15 поддерживаемых в SSH алгоритмов симметричного шифрования, используемых
для организации защиты установленного канала связи, безопасными можно считать
chacha20-poly1305, aes*-ctr и aes*-gcm. Шифры 3des-cbc и arcfour потенциально
уязвимы в силу использования DES и RC4, cast128-cbc применяет слишком короткий
размер блока (64 бит).

В итоге, в /etc/ssh/sshd_config рекомендуется добавить:

   Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

В /etc/ssh/ssh_config:

   Host *
      Ciphers aes256-gcm@openssh.com,aes128-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr

Код аутентичности сообщения (MAC).

Для шифров в режиме  CTR для гарантирования  целостности передаваемых блоков
доверия заслуживает только метод Encrypt-then-MAC ("*-etm", MAC добавляется  к
уже зашифрованному блоку). Методы MAC-then-encrypt и Encrypt-and-MAC
потенциально подвержены атакам. Из 18 доступных в SSH алгоритмов MAC  сразу
следует отбросить основанные на хэшах  MD5 и SHA1, не стойких к выявлению
коллизий, а также алгоритмы использующие размеры ключей менее 128 бит и размеры
тегов менее 256 бит. В итоге, наиболее безопасными MAC  можно считать
hmac-sha2-512-etm и hmac-sha2-256-etm.

В /etc/ssh/sshd_config:

   MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com

В /etc/ssh/ssh_config:

   # Для GitHub в качестве исключения добавляем mac-sha2-512, так как он не поддерживает Encrypt-then-MAC.
   Host github.com
       MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512

   Host *
      MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com


Защита от утечки ключей.

Наиболее простым способом получения контроля за SSH-соединением является захват
ключей на стороне клиента или сервера. Рекомендации сводятся к соблюдению
типовых правил поддержания безопасности системы: оперативная установка
обновлений, установка программ только из надёжных источников, установка только
действительно необходимых программ и сервисов, использование программ для
которых доступны исходные тексты, включение дополнительных механизмов защиты
(Grsecurity, сборка с флагом -fstack-protector).

Для защиты ключей следует выбрать надёжный пароль доступа к клиентским файлам
ключей. При формировании ключа для увеличения числа итераций хэширования можно
использовать опцию "ssh-keygen -o -a число", что  усложнит подбор пароля. Также
можно сохранить ключи только на внешнем носителе, подключая его только во время
соединения по SSH.

Защита от анализа транзитного трафика.

SSH-сервер можно настроить в виде скрытого сервиса Tor, что скроет IP, а также
добавит дополнительный слой шифрования и аутентификации.

Для приема соединений только через скрытый сервис Tor можно использовать следующие настройки:

В /etc/ssh/sshd_config (для приема соединений из LAN следует вместо привязки к
127.0.0.1 использовать для ограничения доступа межетевой экран):

   ListenAddress 127.0.0.1:22

В /etc/tor/torrc добавим:

   HiddenServiceDir /var/lib/tor/hidden_service/ssh
   HiddenServicePort 22 127.0.0.1:22

Имя скрытого хоста для подключения можно найти в файле /var/lib/tor/hidden_service/ssh/hostname. 

Для настройки подключения клиента к скрытому сервису Tor в  /etc/ssh/ssh_config можно добавить:

   Host *.onion
       ProxyCommand socat - SOCKS4A:localhost:%h:%p,socksport=9050
 
07.01.2015 , Источник: https://stribika.github.io/2015/01/...
Ключи: ssh, crypt, setup, security, nsa / Лицензия: CC-BY
Раздел:    Корень / Безопасность / Шифрование, PGP

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 21:54, 07/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1) Хотелось бы видеть какие-то более разумные основания для выбора тех или иных алгоритмов чем "мы считаем что это небезопасно".
    2) Если уж мы про билдовку программ - ключи компиляции можно и посильнее затянуть, один только stack protector - это полумеры, мягко говоря.
     
     
  • 2.12, charon (ok), 18:45, 13/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Разумные основания есть в полной версии статьи: https://stribika.github.io/2015/01/04/secure-secure-shell.html
    Комментарии к статье: http://www.cypherpunks.ru/articles/securing_ssh.html
     
     
  • 3.17, Аноним (-), 23:04, 13/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Степень их разумности подвергается ряду сомнений.

    Например, автор не в курсе что например на VDS/VM/прочих облаках AES - большие грабли в плане спирания ключей теми кто пристроился на тот же CPU.

     
     
  • 4.19, charon (ok), 15:19, 14/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Степень их разумности подвергается ряду сомнений.
    > Например, автор не в курсе что например на VDS/VM/прочих облаках AES -
    > большие грабли в плане спирания ключей теми кто пристроился на тот
    > же CPU.

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

     

  • 1.2, Аноним (-), 23:26, 07/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Настраивать клиент обязательно? Клиент с сервером же договариваются при подключении?
    Про тор не понял. Ну сделал это, а как я в тор найду свой сервер? Ни адреса ни ключа специального чтоб его идентифицировать... (ни разу не пользовался, если честно)
     
     
  • 2.3, Аноним (-), 05:24, 08/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Тоже не пользовался, но думаю это поможет:
    Имя скрытого хоста для подключения можно найти в файле /var/lib/tor/hidden_service/ssh/hostname.
     
  • 2.5, Аноним (-), 17:26, 09/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну сделал это, а как я в тор найду свой сервер?

    Посмотришь адрес hidden сервиса в файле - и все, можно ходить по нему. Он уникально адресует сервер (ssh бонусом перепроверит что это именно тот сервер по fingerprint своего ключа). Выглядит как <набор букв и цифр>.onion. Например, 3g2upl4pq6kufc4m.onion - duckduckgo в виде hidden service в tor (доступен только при использовании Tor разумеется).

     
  • 2.13, charon (ok), 18:47, 13/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Настраивать клиент обязательно? Клиент с сервером же договариваются при подключении?

    конечно, обязательно. Предполагается, что вы будете своим клиентом лазить на сервера не под вашим контролем, неоптимизированные. Вообще безопасность клиента и безопасность сервера - это не одно и то же, одно другое не заменяет, а дополняет

     

  • 1.4, Hammer (ok), 11:24, 08/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это паранойя, господа.
    https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80
     
     
  • 2.6, Аноним (-), 17:27, 09/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не, не так. "А с пустою головою легче прыгать по земле".
     
  • 2.14, charon (ok), 18:48, 13/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это паранойя, господа.
    > https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80

    ну да, Сноуден параноик, Брюс Шнайер - параноик. А можно поинтересоваться вашей компетенцией? Эксперт по информационной безопасности?

     
     
  • 3.16, Hammer (ok), 22:09, 13/01/2015 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >> Это паранойя, господа.
    >> https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80
    > ну да, Сноуден параноик, Брюс Шнайер - параноик. А можно поинтересоваться вашей
    > компетенцией? Эксперт по информационной безопасности?

    Не вижу связи между ssh, Сноуденом и Шнайером. Вы сами то, собственно говоря, кто?

     
     
  • 4.18, charon (ok), 15:17, 14/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >>> Это паранойя, господа.
    >>> https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80
    >> ну да, Сноуден параноик, Брюс Шнайер - параноик. А можно поинтересоваться вашей
    >> компетенцией? Эксперт по информационной безопасности?
    > Не вижу связи между ssh, Сноуденом и Шнайером. Вы сами то, собственно
    > говоря, кто?

    Связь между Сноуденом, Шнайером и ssh прямая, потому что эта вся затея с оптимизацией ssh появилась как следствие разоблачений Сноудена, в которых он сообщил, что АНБ имеет возможность в некоторых случаях расшифровывать SSH-трафик.
    А на вопрос кто я евреям отвечать не буду - сначала вы на мой ответьте.

     
     
  • 5.20, Hammer (ok), 02:26, 17/01/2015 [^] [^^] [^^^] [ответить]  
  • +/

    > А на вопрос кто я евреям отвечать не буду

    Поведайте не евреям.

    > сначала вы на мой ответьте.

    Я не эксперт по формационной безопасности, как не эксперт спрашиваю - какая связь между
    Сноуденом, Шнайером и ssh?
    Вы, видимо, весьма компетентны в этом вопросе?
    Прошу.

     
  • 2.21, Protector (??), 22:25, 19/01/2015 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Это паранойя, господа.
    > https://ru.wikipedia.org/wiki/п÷п╟я─п╟п╫п╬п╧я▐

    Вы перед тем как такие заключения делать, изучите тему. Желательно включив перед этим мозг.

     
     
  • 3.24, Hammer (ok), 01:32, 30/01/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Это паранойя, господа.
    >> https://ru.wikipedia.org/wiki/п÷п╟я─п╟п╫п╬п╧я▐
    > Вы перед тем как такие заключения делать, изучите тему. Желательно включив перед
    > этим мозг.

    Еще один. Может я не теми буквами пишу? Поясните мне, связь то какая?

     
     
  • 4.26, Аноним (-), 18:18, 04/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Может я не теми буквами пишу?

    ты не тем местом делаешь то, что в иной ситуациии, с большими натяжками, можно было бы назвать "думаешь"

     
     
  • 5.28, Hammer (ok), 03:15, 14/03/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Может я не теми буквами пишу?
    > ты не тем местом делаешь то, что в иной ситуациии, с большими
    > натяжками, можно было бы назвать "думаешь"

    Вы это, видимо, про себя? К то му же Вы хам.
    Послушайте Вы, "ехсьперт", вы на вопрос ответ дайте, прежде чем хамить.

     

  • 1.7, Аноним (-), 22:06, 09/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А почему у меня в файле /etc/ssh/moduli только последние несколько байт модуля(одного размера) являются случайными? И вообще откуда берется этот файл? Если даже несколько строк с параметрами указаными в посте (4096) генерируются несколько часов(на i3-2100(только на одном ядре)).
     
  • 1.8, Hmmmmm (?), 12:58, 10/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а потом люди попытаются подключится через распространенного клиента Putty и что же они увидят?
     
     
  • 2.9, Аноним (-), 14:40, 10/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Putty пользователи, должны страдать!
     
  • 2.11, Аноним (-), 13:25, 13/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    http://ttssh2.sourceforge.jp/
     
  • 2.15, charon (ok), 18:51, 13/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > а потом люди попытаются подключится через распространенного клиента Putty и что же
    > они увидят?

    я даже проверил - я вчера оптимизировал свой сервер с учётом части рекомендаций. Только что зашел путти - всё сработало, всё отлично.

     
     
  • 3.22, pavlinux (ok), 18:04, 20/01/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> а потом люди попытаются подключится через распространенного клиента Putty и что же
    >> они увидят?
    > я даже проверил - я вчера оптимизировал свой сервер с учётом части
    > рекомендаций. Только что зашел путти - всё сработало, всё отлично.

    Низдипи hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com пуття не умеет

     

  • 1.10, pavlinux (ok), 16:39, 11/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ой, тут косяк в тексте про файлик moduli
     
  • 1.23, Аноним (-), 10:39, 23/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ЕС алгоритмы я бы не выбрасывал.
     
  • 1.25, Аноним (-), 11:45, 31/01/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Большинство этих параметров ssh не переваривает и не запускается. ВИдать скомпилирован без этих алгоритмов. Будьте осторожны.
     
  • 1.29, anon2112 (?), 14:52, 17/12/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://cipherli.st/
     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру