Исследование сетевого протокола прикладного уровня Secure Shell
о
CS
о
CS <0
о ш m
X
<
m О X X
Ворожейкин Дмитрий Сергеевич,
магистрант, ФГБОУ ВО «Кубанский ГАУ имени И.Т. Труби-лина»,
sldi96@mail.ru
Кондратьев Валерий Юрьевич,
к. э. н., доцент, ФГБОУ ВО «Кубанский ГАУ имени И.Т. Труби-лина», kvlvs@mail.ru
В данной статье рассмотрены основные спецификации протокола удаленного доступа SSH. Обосновывается актуальность и безопасность данного протокола как средства удаленного сетевого доступа.Рассматриваются основные возможности secureshell, используемые в сетевом администрировании, а также этапы его развития. Указаны особенности протокола SSH, его назначение и существующие версии. Перечислены основные компоненты и раскрыта их роль в структуре протокола. В статье также можно найти информацию о надежности протокола с точки зрения криптоанализа, об используемых принципах шифрования и о выборе ключей. Рассмотрена процедура аутентификации сервера, указаны угрозы, которые могут возникнуть при отключении проверки соответствия сервера и используемого ключа. Приведены способы аутентификации клиентов: аутентификация с использованием открытых ключей, парольная аутентификация и аутентификация по хостам. У каждого способа рассмотрены существующие недостатки.Опи-саны способы туннелирования через протокол SHH. Ключевые слова: сетевой протокол, удаленное администрирование, удаленный доступ, криптография.
В связи с увеличением пропускной способности каналов связи, появилась возможность удаленного доступа к серверам и персональным компьютерам. Вследствие чего было разработано большое количество способов удаленного управления, например RSH, Telnet, RLogin и другие.
Из-за отсутствия шифрования передаваемых данных по этим протоколам возникала вероятность утечки конфиденциальных данных злоумышленникам. Это сводило на нет все плюсы удаленного администрирования. Для устранения этого недостатка был разработан протокол SSH.
SSH (SecureShell) - сетевой протокол прикладного уровня модели OSI, позволяющий производить защищенное удаленное управление операционной системой клиента и туннелирование, например, для передачи файлов. Главным отличием SSH от предшествующих ему протоколов является шифрация всего трафика, включая передаваемые пароли. SSH позволяет безопасно передавать в незащищённой среде практически любой другой сетевой протокол
SSH (или SecureSHell) — это протокол, который обеспечивает безопасную связь между двумя системами с использованием архитектуры клиент/сервер и позволяет пользователям удаленно входить в серверные хост-системы. Но в отличие от других протоколов удаленного взаимодействия, таких как fTp или Telnet, sSh шифрует сеанс входа в систему, делая невозможным для злоумышленников сбор незашифрованных паролей.
SSH предназначен для замены старых, менее защищенных терминальных приложений, используемых для входа в удаленные хосты, такие как telnet или rsh. Родственная программа под названием scp заменяет старые программы, предназначенные для копирования файлов между хостами, например rcp. Поскольку эти старые приложения не шифруют пароли, передаваемые между клиентом и сервером, избегайте их, когда это возможно. Использование безопасных методов для входа в удаленные системы снижает риски как для клиентской системы, так и для удаленного хоста.
Протокол SSH обеспечивает следующие гарантии:
После первоначального подключения клиент может проверить, что он подключается к тому же серверу, к которому он подключался ранее.
Клиент передает свою аутентификационную информацию на сервер, используя сильное 128-битное шифрование.
Все данные, отправленные и полученные во время сеанса, передаются с использованием 128-битного шифрования, что делает перехваченные передачи чрезвычайно трудными для расшифровки и чтения.
Клиент может пересылать приложения X11 с сервера. Этот метод, называемый переадресацией X11, обеспечивает безопасное использование графических приложений по сети. Программы и приложения с графическим интерфейсом в unix-подобных системах используют X-сервер для отрисовки своего интерфейса. Это означает, что при использовании сервера без графического интерфейса есть возможность выводить интерфейс программ с удаленного сервера на локальном рабочем столе. При этом использование SSH в данном случае не только обезопасит
такое подключение, но и снизит задержки и количество отправляемой и принимаемой информации путем сжатия трафика. Это будет полезно в ситуациях, когда сетевой канал перегружен или изначально имеет малую пропускную способность.
Поскольку протокол SSH шифрует все, что он отправляет и получает, его можно использовать для защиты небезопасных протоколов. Используя технику, называемую переадресацией портов, SSH-сервер может стать каналом для защиты небезопасных протоколов, таких как POP и RDP, и повышения общей безопасности системы и данных. Таким образом, с помощью простых манипуляций возможно получить удаленный доступ с возможностью управления рабочим столом Windowsинкапсулированный протоколом SSH, а это значит мы получаем зашифрованное соединение, с виду не отличающееся от обычного трафика SSH.
Нечестивые пользователи компьютеров имеют в своем распоряжении множество инструментов, позволяющих им нарушать, перехватывать и перенаправлять сетевой трафик в попытке получить доступ к системе. В общих чертах эти угрозы можно классифицировать следующим образом:
Перехват связи между двумя системами - в этом сценарии злоумышленник может находиться где-то в сети между общающимися сущностями, копируя любую информацию, передаваемую между ними. Злоумышленник может перехватить и сохранить информацию, либо изменить информацию и отправить ее предполагаемому получателю.
Эта атака может быть смонтирована с помощью сниффера пакетов-обычной сетевой утилиты.
Олицетворение конкретного хоста - используя эту стратегию, система злоумышленника настраивается на выдачу себя за предполагаемого получателя передачи. Если эта стратегия работает, система пользователя будет оставаться в неведении, что она связывается с неправильным хостом.
Эта атака может быть смонтирована с помощью методов, известных как отравление DNS или IP-подмена.
Оба метода перехвата потенциально конфиденциальной информации, и если перехват производится по враждебным причинам, результаты могут быть катастрофическими.
Если SSH используется для удаленного входа в оболочку и копирования файлов, эти угрозы безопасности могут быть значительно уменьшены. Это происходит потому, что SSH-клиент и сервер используют цифровые подписи для проверки своей личности. Кроме того, все коммуникации между клиентской и серверной системами шифруются. Попытки подделать идентичность любой из сторон связи не будут работать, так как каждый пакет шифруется с использованием ключа, известного только локальной и удаленной системам.
SSH относится к протоколу, с помощью которого сетевые коммуникации могут осуществляться безопасно и удаленно через незащищенную сеть. SSH обеспечивает множество важных функций: защищенную передачу файлов, автоматизированные процессы, выполнение команд и удаленный доступ к частным сетевым системам, устройствам и приложениям.
Когда он был впервые разработан, SSH стремился решить проблемы безопасности Telnet, протокола, который позволяет одному компьютеру войти в другой в той же открытой сети. В своем первоначальном виде, отли-
чающемся как SSH-1, протокол secureshell сделал большие скачки в безопасности сетевых операций, но имел несколько заметных уязвимостей дизайна. Обнаружение этих уязвимостей привело к версии SSH-2.
Сегодня большинство систем, использующих SSH, поддерживают SSH-2. Обновления этой версии усилили протокол и сделали его надежным криптографическим методом удаленного сетевого взаимодействия. Аутен-тифицируя и шифруя каждый сеанс, SSH в сети защищает данные от явных форм кибератак, совершаемых системными угонщиками, а также от более тонких форм кражи информации, таких как обнюхивание пакетов.
Понимание того, как протокол secureshell облегчает и защищает сетевые операции, означает, что вы можете настроить решения удаленного администрирования, которые наилучшим образом подходят для бизнеса ваших клиентов.
SSH работает в сети через архитектуру клиент / сервер. SSH-клиент-это программа, которая запускает протокол SSH с определенного устройства для доступа к удаленным машинам, автоматизации передачи данных, выдачи команд и даже управления сетевой инфраструктурой. Модель клиент / сервер означает, что компоненты сетевой системы, используемые для установления безопасного соединения SSH, должны быть включены для SSH. Это может означать установку соответствующего программного обеспечения или просто использование программы SSH services, встроенной в компьютер.
Далее, очень важно понять слои внутри и вокруг SSH, называемые стеком протоколов. sSh состоит из трех компонентов: протокола транспортного уровня (TLP), протокола аутентификации пользователя и протокола подключения. Три слоя делают следующее:
Протокол транспортного уровня: TLP служит для аутентификации сервера и установления конфиденциальности и целостности. Согласно меморандуму 4251 "запрос на комментарии" (RFC), TLP следует придерживаться стандарта абсолютной секретности. По существу, даже если компромисс произойдет в ходе одной сессии, он не повлияет на безопасность предыдущих сессий. PerfectforwardSecretary (PFS) представляет собой значительный прогресс в протоколе передачи данных, поскольку это означает, что даже если закрытый ключ сервера попадет в чужие руки, хакер не сможет ретроактивно получить доступ к ранее переданным данным. С помощью PFS каждый новый сеанс является независимым и безопасным, гарантируя полную конфиденциальность предыдущих сеансов.
Протокол аутентификации пользователя: как указано в его названии, протокол аутентификации пользователя аутентифицирует пользователя на сервере, подтверждая личность агента, работающего в качестве клиента.
Протокол соединения: протокол соединения mutiplexes туннель SSH. Другими словами, протокол соединения создает отдельные потоки данных, или логические каналы, из одного соединения клиент / сервер.
Последовательные действия этих трех уровней протокола позволяют протоколу SSH успешно защищать соединения, шифровать данные и передавать данные по различным каналам.
SSH, также известный как SecureShell или SecureSocketShell, представляет собой сетевой протокол, который предоставляет пользователям, особенно системным администраторам, безопасный способ доступа к компьютеру через незащищенную сеть. SSH
X X
о
го А с.
X
го m
о
2 О
м о
о сч о сч
<в
о ш m
X
<
m о х
X
также относится к набору утилит, реализующих протокол SSH. SecureShell обеспечивает надежную аутентификацию и шифрованную передачу данных между двумя компьютерами, подключенными через открытую сеть, такую как интернет. SSH широко используется сетевыми администраторами для удаленного управления системами и приложениями, позволяя им входить на другой компьютер по сети, выполнять команды и перемещать файлы с одного компьютера на другой.
Передача файлов между удаленными системами.
Протокол SSH позволяет копировать файлы и целые папки между локальной и удаленной машиной. Это возможно реализовать с помощью команды SCP.
Для доступа к фалам удаленного узла необходимо прописать путь к файлу на удаленной системе в виде host:file, где host - имя удаленной системы, а file - путь до требуемого файла. При этом, если требуется скопировать целую директорию с удаленной системы не нужно будет копировать каждый файл отдельно. Для этого необходимо воспользоваться специальным параметром -r, означающим, что все файлы и директории будут скопированы рекурсивно.
Например, команда вида: scp -r remsys:default_directory будет означать, что с удаленной системы под именем «remsys» будут рекурсивно скопированы все файлы и директории из директории «default_directory». При этом можно использовать еще несколько полезных ключей. Так, например, при использовании ключа -С будет осуществлено копирование с применением компрессии передаваемых файлов. Стоит отметить, что использование компрессии будет неэффективно при копировании уже сжатых файлов и может только замедлить процесс передачи данных. Использование ключа -v служит для вывода отладочной информации. Это может пригодиться, если во время передачи данных возникают непредвиденные ошибки, и отладочная информация поможет найти причину сбоя.
Передачу файлов можно организовать и с помощью технологии sshfs.
Этот метод позволяет реализовывать виртуальные файловые системы. Это значит, что есть возможность предоставления доступа к удаленной файловой системе таким образом, что программы на локальной машине не заметят разницы между данными, расположенными локально и удаленно. При таком подходе желательно использовать авторизацию по ключу, в ином случае при каждой попытке подключения придется вводить пароль, что не всегда удобно.
SSH относится как к криптографическому сетевому протоколу, так и к набору утилит, реализующих этот протокол. SSH использует модель клиент-сервер, соединяя клиентское приложение secureshell, конец, в котором отображается сеанс, с сервером SSH, конец, в котором выполняется сеанс. Реализации SSH часто включают поддержку прикладных протоколов, используемых для эмуляции терминалов или передачи файлов. SSH также можно использовать для создания защищенных туннелей для других прикладных протоколов, например, для безопасного удаленного запуска графических сеансов X WindowSystem. SSH-сервер по умолчанию прослушивает стандартный порт 22 протокола управления передачей (TCP).
В то время как можно использовать SSH с обычным идентификатором пользователя и паролем в качестве учетных данных, SSH чаще всего полагается на пары открытых ключей для аутентификации хостов друг для друга. Отдельные пользователи по-прежнему должны
использовать свой идентификатор пользователя и пароль (или другие методы аутентификации) для подключения к самому удаленному хосту, но локальная машина и удаленная машина аутентифицируются отдельно друг от друга. Это достигается путем создания уникальной пары открытых ключей для каждого узла связи.; для одного сеанса требуется две пары открытых ключей: одна пара открытых ключей для аутентификации удаленного компьютера на локальном компьютере и вторая пара открытых ключей для аутентификации локального компьютера на удаленном компьютере.
Шифрование методом публичных ключей.
Криптография с помощью публичного ключа использует Публичный ключ (publickey) для шифрования и Частный ключ (privatekey) для дешифрования данных. Публичный ключ назван так, потому что использовать его можно не боясь за сохранность данных или криптографических ключей, так как они не передаются при использовании этой технологии. Это значит, что публичный ключ можно передавать в незашифрованном виде с помощью электронной почты или общедоступных ссылок для его размещения на удаленных серверах или компьютерах. Если злоумышленник попытается воспользоваться публичным ключом для авторизации на удаленной машине, то ему сначала потребуется получить доступ к частному ключу и расшифровать его.
Поэтому, для большей степени защиты частного ключа, созданного при помощи программы sshkeygen, нужно создать контрольное слово, или парольную фразу, для шифрования содержимого файла при записи в файловую систему. Это поможет предотвратить несанкционированный доступ злоумышленников к частному ключу.
Использование авторизации с помощью ключей значительно облегчает доступ к удаленным объектам, так как имея публичные ключи на удаленном сервере или компьютере нет необходимости каждый раз вводить пароль для авторизации, что значительно повышает безопасность таких соединений. Пароль придется ввести всего один раз при сохранении ключей.
SSH-соединения используются для обеспечения различных типов связи между локальной машиной и удаленным хостом, включая безопасный удаленный доступ к ресурсам, удаленное выполнение команд, доставку исправлений и обновлений программного обеспечения и другие административные или управленческие задачи.
Литература
1. В. Олифер, Н. Олифер "Компьютерные сети. Принципы, технологии, протоколы. Учебник",Учебник для вузов. 5-е изд. — СПб.: Питер, 2016. — 944 с.
2. Дж.Эделман, С. С. Лоу, М.Осуолт. Автоматизация программируемых сетей. ДМК Пресс - 2019 - 617 с.
3. Букатов А. А., Гуда С. А. Компьютерные сети. Расширенный начальный курс, СПб.: Питер - 2019 — 496 с.
4. Венбо Мао. Современная криптография: теория и практика.: Пер. с англ. - М.: Издательский дом «Виль-ямс», 2015. - 768 с.
5. Робачевский А. Интернет изнутри. Экосистема глобальной Сети. - 2-е изд., перераб. и доп. - М.: Аль-пина Паблишер, 2017 - 271 с.
6. О. Уэнделл. Официальное руководство Cisco по подготовке к сертификационным экзаменам CCENT/CCNA ICNDl 100-101, акад. изд. : Пер. с англ. -М. : ООО "И.Д. Вильямс", 2015. - 912 с.
7. С. Вильямс. Криптография и защита сетей: принципы, практика. Пер с англ.- М.: Издательский дом "Вильямс", 2013.- 672с
Research secure shell application network protocol Vorozheykin D.S., Kondratyev V.Yu.
Kuban State Agrarian University
This article discusses the main specifications of the SSH remote access Protocol. The relevance and security of this Protocol as a means of remote network access is justified. The main features of secure shell used in network administration, as well as the stages of its development, are considered. The features of the SSH Protocol, its purpose, and existing versions are specified. The main components are listed and their role in the Protocol structure is disclosed. The article also contains information about the reliability of the Protocol from the point of view of cryptanalysis, the encryption principles used, and the choice of keys. The server authentication procedure is reviewed, and the threats that can occur when the server and the used key match verification are disabled are specified. The methods of client authentication are described: authentication using public keys, password authentication, and host authentication. Each method has its own disadvantages. Methods of tunneling through the SHH Protocol are described. Keywords: network protocol, remote administration, remote access, cryptography.
References
1. V. Olifer, N. Olifer " Computer networks. Principles, technologies,
and protocols. Textbook", a Textbook for universities. 5th ed. -Saint Petersburg: Piter, 2016. - 944 p.
2. J. Edelman, S. S. Lowe, M. Oswalt. Network Programmability and
Automation. DMK Press-2019 - 617 p.
3. Bukatov A. A., Guda S. A. Computer networks. Advanced basic
course, SPb.: Peter - 2019 — 496 p.
4. Wenbo Mao. Modern Cryptography: Theory and Practice.: Trans.
from English - M.: Publishing house "Williams", 2015. - 768 p.
5. Robachevsky A. Internet from the inside. Global Network
ecosystem. - 2nd ed., reprint. and extra - M.: AlpinaPublisher, 2017 - 271 p.
6. O. Wendell. CCENT/CCNA ICND1 100-101 Official Cert Guide,
Academic Edition: Trans. from English-M.: LLC Publishing house "Williams", 2015. - 912 p.
7. S. Williams. Cryptography and Network Security: Principles and
Practice. Per s Engl. - M.: Publishing house "Williams", 2013. -672 p.
X X О го А С.
X
го m
о
2 О M
о