HTML Diff
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