0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>В этой заметке мы расскажем, как работает SSH, каким образом он применяется для создания безопасной связи с удалёнными компьютерами, и как именно ПК устанавливают и настраивают сеанс.</p>
1
<p>В этой заметке мы расскажем, как работает SSH, каким образом он применяется для создания безопасной связи с удалёнными компьютерами, и как именно ПК устанавливают и настраивают сеанс.</p>
2
<h2>SSH - что это?</h2>
2
<h2>SSH - что это?</h2>
3
<p>SSH представляет собой сокращение от<strong>"secure shell"</strong>, что переводится как безопасная оболочка. А ещё это протокол, который всё чаще применяют в целях управления удалёнными персональными компьютерами по сети.</p>
3
<p>SSH представляет собой сокращение от<strong>"secure shell"</strong>, что переводится как безопасная оболочка. А ещё это протокол, который всё чаще применяют в целях управления удалёнными персональными компьютерами по сети.</p>
4
<h2>Как установить SSH-сессию?</h2>
4
<h2>Как установить SSH-сессию?</h2>
5
<p>Дабы начать SSH-сеанс между компьютерами, вам следует пройти ряд шагов: 1. Обеспечьте безопасный способ обмена сообщениями, что делается путём настройки зашифрованного канала. 2. Проверьте целостность данных, которые отправляет клиент. 3. Проверьте подлинность клиента.</p>
5
<p>Дабы начать SSH-сеанс между компьютерами, вам следует пройти ряд шагов: 1. Обеспечьте безопасный способ обмена сообщениями, что делается путём настройки зашифрованного канала. 2. Проверьте целостность данных, которые отправляет клиент. 3. Проверьте подлинность клиента.</p>
6
<p>Выполнив эти 3 шага, можно общаться с удалённым ПК безопасно и делиться конфиденциальной информацией. Давайте подробно опишем каждый из вышеописанных этапов.</p>
6
<p>Выполнив эти 3 шага, можно общаться с удалённым ПК безопасно и делиться конфиденциальной информацией. Давайте подробно опишем каждый из вышеописанных этапов.</p>
7
<h2>Настраиваем зашифрованный канал</h2>
7
<h2>Настраиваем зашифрованный канал</h2>
8
<p>Все данные, которые отправляются с помощью протокола SSH, зашифрованы. Следовательно, обе стороны должны знать и понимать метод шифрования.</p>
8
<p>Все данные, которые отправляются с помощью протокола SSH, зашифрованы. Следовательно, обе стороны должны знать и понимать метод шифрования.</p>
9
<p>Как правило, здесь применяется<strong>симметричное шифрование</strong>. Суть проста: оба компьютера имеют один и тот же ключ шифрования, называемый симметричным.</p>
9
<p>Как правило, здесь применяется<strong>симметричное шифрование</strong>. Суть проста: оба компьютера имеют один и тот же ключ шифрования, называемый симметричным.</p>
10
<p>Само по себе такое шифрование работает хорошо, но лишь пока посторонние не имеют доступа к этому ключу. Дело в том, что один компьютер может создать ключ, а потом отправить его в виде сообщения, используя глобальную сеть. Но так как сообщение ещё не будет зашифровано, каждый, кто его перехватит, сразу сможет расшифровать и все последующие сообщения.</p>
10
<p>Само по себе такое шифрование работает хорошо, но лишь пока посторонние не имеют доступа к этому ключу. Дело в том, что один компьютер может создать ключ, а потом отправить его в виде сообщения, используя глобальную сеть. Но так как сообщение ещё не будет зашифровано, каждый, кто его перехватит, сразу сможет расшифровать и все последующие сообщения.</p>
11
<p>Проблема решается с помощью протокола обмена ключами<strong>Диффи-Хеллмана</strong>. Два компьютера создают свой открытый и закрытый ключ, образуя вместе пару ключей. Далее компьютеры делятся открытыми ключами друг с другом посредством интернета. В результате, применяя свой закрытый и чужой открытый ключи, обе стороны смогут независимо друг от друга сгенерировать одинаковый симметричный ключ.</p>
11
<p>Проблема решается с помощью протокола обмена ключами<strong>Диффи-Хеллмана</strong>. Два компьютера создают свой открытый и закрытый ключ, образуя вместе пару ключей. Далее компьютеры делятся открытыми ключами друг с другом посредством интернета. В результате, применяя свой закрытый и чужой открытый ключи, обе стороны смогут независимо друг от друга сгенерировать одинаковый симметричный ключ.</p>
12
<h2>Верификация данных</h2>
12
<h2>Верификация данных</h2>
13
<p>Следующий этап установки SSH-сеанса - проверка, что данные не были подделаны в процессе их передачи, а также проверка, что другой компьютер действительно тот, за кого себя выдаёт.</p>
13
<p>Следующий этап установки SSH-сеанса - проверка, что данные не были подделаны в процессе их передачи, а также проверка, что другой компьютер действительно тот, за кого себя выдаёт.</p>
14
<p>Чтобы выполнить верификацию, используется хеш-функция - математическая функция, принимающая входные данные и создающая строку фиксированного размера. Особенность функции заключается в том, что почти нереально определить входные данные, зная только результат её работы.</p>
14
<p>Чтобы выполнить верификацию, используется хеш-функция - математическая функция, принимающая входные данные и создающая строку фиксированного размера. Особенность функции заключается в том, что почти нереально определить входные данные, зная только результат её работы.</p>
15
<p>После того, как хост и клиент сгенерируют свои симметричные ключи, клиент применит хеш-функцию для генерации HMAC ("код аутентификации сообщений, применяющий хеширование") с последующей отправкой этого HMAC на сервер для верификации.</p>
15
<p>После того, как хост и клиент сгенерируют свои симметричные ключи, клиент применит хеш-функцию для генерации HMAC ("код аутентификации сообщений, применяющий хеширование") с последующей отправкой этого HMAC на сервер для верификации.</p>
16
<p>Что использует функция хеширования: • порядковый номер пакета; • симметричный ключ клиента, • зашифрованное содержимое сообщения.</p>
16
<p>Что использует функция хеширования: • порядковый номер пакета; • симметричный ключ клиента, • зашифрованное содержимое сообщения.</p>
17
<p>В тот момент, когда хост получит HMAC, он сможет использовать ту же хеш-функцию со следующими тремя компонентами: • свой симметричный ключ, идентичный клиентскому; • зашифрованное сообщение; • порядковый номер пакета.</p>
17
<p>В тот момент, когда хост получит HMAC, он сможет использовать ту же хеш-функцию со следующими тремя компонентами: • свой симметричный ключ, идентичный клиентскому; • зашифрованное сообщение; • порядковый номер пакета.</p>
18
<p>Если сформированный хеш будет совпадать с HMAC, полученным от клиента, мы будем уверены, что подключаемый компьютер является ПК с симметричным ключом, так как только клиент и хост знают симметричный ключ.</p>
18
<p>Если сформированный хеш будет совпадать с HMAC, полученным от клиента, мы будем уверены, что подключаемый компьютер является ПК с симметричным ключом, так как только клиент и хост знают симметричный ключ.</p>
19
<p>Плюс подхода - мы не только проверили личность клиента и убедились, что данные не подделаны, но и выполнили это без передачи какой-нибудь конфиденциальной информации.</p>
19
<p>Плюс подхода - мы не только проверили личность клиента и убедились, что данные не подделаны, но и выполнили это без передачи какой-нибудь конфиденциальной информации.</p>
20
<h2>Аутентификация</h2>
20
<h2>Аутентификация</h2>
21
<p>Даже используя симметричные ключи, мы точно не знаем, есть ли у подключающегося компьютера разрешение на доступ к содержимому хоста. Для проверки этого и нужна аутентификация.</p>
21
<p>Даже используя симметричные ключи, мы точно не знаем, есть ли у подключающегося компьютера разрешение на доступ к содержимому хоста. Для проверки этого и нужна аутентификация.</p>
22
<p>Большинство выполняют аутентификацию по паролю, когда клиент отправляет хосту сообщение, содержащее пароль (сообщение, разумеется, зашифровано). Хост расшифровывает сообщение, а потом ищет пароль в БД, дабы убедиться, существует ли у клиента разрешение на доступ. Применение пароля для аутентификации в принципе допустимо, однако имеет минусы, ведь нужно хранить все пароли на сервере.</p>
22
<p>Большинство выполняют аутентификацию по паролю, когда клиент отправляет хосту сообщение, содержащее пароль (сообщение, разумеется, зашифровано). Хост расшифровывает сообщение, а потом ищет пароль в БД, дабы убедиться, существует ли у клиента разрешение на доступ. Применение пароля для аутентификации в принципе допустимо, однако имеет минусы, ведь нужно хранить все пароли на сервере.</p>
23
<p>Лучший вариант -<strong>аутентификация по сертификату</strong>. Сформировав сертификат, клиент всего один раз вводит пароль, необходимый для доступа к серверу, с отправкой ему открытой части сертификата. Далее ввод пароля не потребуется. Этот метод считают более безопасным, ведь хранить секреты пользователя на хосте не потребуется.</p>
23
<p>Лучший вариант -<strong>аутентификация по сертификату</strong>. Сформировав сертификат, клиент всего один раз вводит пароль, необходимый для доступа к серверу, с отправкой ему открытой части сертификата. Далее ввод пароля не потребуется. Этот метод считают более безопасным, ведь хранить секреты пользователя на хосте не потребуется.</p>
24
<p><em>Источник: "<a>A top-down introduction to SSH and how it enables secure data-sharing</a>".</em></p>
24
<p><em>Источник: "<a>A top-down introduction to SSH and how it enables secure data-sharing</a>".</em></p>
25
25