8.18M
Категория: ИнтернетИнтернет

Криптографические протоколы. Протоколы TLS и SSH

1.

Академия ФСО России
Кафедра № 11
семинар
по учебной дисциплине
«Методы и средства криптографической
защиты информации»

2.

Тема 6. Криптографические протоколы
Занятие 6. Протоколы TLS и SSH
Учебные вопросы:
Вопрос 1. Протоколы туннелирования.
Вопрос 2. Общие сведения о протоколах SSL/TLS.
Вопрос 3. Порядок организации защищенного соединения.
Вопрос 4. Общие сведения о протоколе SSH.
Вопрос 5. Организация защищенного удаленного доступа.
Литература:
1. Олифер В. Г. Компьютерные сети. Принципы, технологии, протоколы : юбилейное издание /
В. Г. Олифер, Н. А. Олифер. – СПб. : Издательский дом «Питер», 2021. – 1008 с.
2. Таненбаум Э. Компьютерные сети, 5-е изд. / Эндрю Таненбаум, Девид Уэзеролл : пер. с англ.
А. Гребеньков. – СПб. : Издательский дом «Питер», 2020. – 960 с.
2/49

3.

Вопрос 1. Протоколы туннелирования
Уровни TCP/IP
Прикладной
Транспортный
Сетевой
Канальный
Уровни OSI
Протоколы защищенного обмена Шифрование
SSH, OpenVPN, WireGuard
Прикладной
Представительский TLS
Сеансовый
TLS, SSTP, L2TP
Сквозное
Транспортный
Сетевой
Канальный
Физический
Канальное
SRTP, TCPCrypt
GRE, IPsec
L2F, PPTP
Интернет
открытая информация
варианты использования IPsec
Сеть А
Сеть Б
3/49

4.

Архитектура IPsec
Security Association
Протокол ESP
Управления ключами
(протокол IKE)
Алгоритм
шифрования
Протокол AH
Алгоритм
аутентификации
Область интерпретации
(DOI)
4/49

5.

Режимы работы IPsec
IP-пакет
Заголовок IP
Данные
Новый
заголовок IP Заголовок IP
Данные
Новый
Заголовок AH
Заголовок IP
заголовок IP и/или ESP
Данные
Трейлер
ESP
Данные
аутентификации ESP
5/49

6.

Первая фаза IKE
Клиент
Незащищенный канал
Сервер
SAK
SAC
DHK, kК
DHC, kС
SKeyID = PRF(kС || kК, KDH)
SKeyID = PRF(kС || kК, KDH)
HК = PRF(SKeyID, DHK, DHC, SAK, К)
Шифрование на SKeyID
HС = PRF(SKeyID, DHС, DHК, SAС, С)
Pseudo Random Function
[К, certК, HK, sigК(HK)]
[С, certС, HС, sigС(HС)]
Вторая фаза IKE
Клиент
Незащищенный канал
Сервер
Шифрование на SKeyID'
[H'K, SA'K, k'K, К, С]
[H'С, SA'С, k'С, С, К]
[H]
SKeyID' = PRF(SKeyID)
H'К = PRF(SA'K, k'K, К, С)
H = PRF(k'K, k'С, К, С)
SKeyID' = PRF(SKeyID)
H'С = PRF(SA'С, k'С, С, К)
6/49

7.

Вопрос 2. Общие сведения о протоколах SSL/TLS
SSL (Secure Sockets Layer – уровень защищенных сокетов) –
криптографический протокол, обеспечивающий установление безопасного
соединения между клиентом и сервером.
Основное назначение
к Web-серверам.
SSL

обеспечение
защищенного
доступа
Частое использование протокола SSL привело к формированию протокола
HTTPS.
HTTPS (англ. HyperText Transfer Protocol Secure) – расширение протокола
HTTP для поддержки шифрования в целях повышения безопасности.
Данные, которые передаются по протоколу HTTP, упаковываются в
криптографический протокол SSL.
7/49

8.

Пример организации защищенного соединения
Модель OSI
Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
Заголовок
Данные
Заголовок
Данные
HTML Ответ HTML
HTTP
SSL
TCP
IP
Ethernet
Wire
HTML Запрос HTML
HTML-пакет
HTTP
HTTP-пакет
SSL
SSL-пакет
TCP
TCP-пакет
IP
IP-пакет
Ethernet
01010…..0111
HTML-пакет
HTTP-пакет
SSL-пакет
TCP-пакет
IP-пакет
Wire
01010…..0111
Общедоступная сеть
https://gosuslugi.ru
ПК
8/49

9.

История развития протоколов защищенного соединения
В 1994 г. компания «Netscape» разработала протокол SSL 1.0, предлагаемый для
использования в браузере Mosaic 1.0 (первый популярный веб-браузер).
Недостатки SSL 1.0:
– отсутствие проверки целостности передаваемых данных;
– использование поточного шифра RC4;
– уязвим к навязыванию старого сеанса связи.
Филлип Халлам-Бейкер (ученый-компьютерщик, в основном известный своим
вкладом в интернет-безопасность, начиная с разработки HTTP в CERN) написал:
«Реальная история SSL заключалась в том, что SSL 1.0 был настолько плох, что
мы с Аланом Шиффманом взломали его за десять минут, когда Марк Андрессен
представил его на собрании MIT»
В 1995 г. компания «Netscape Communications» выпустила SSL 2.0 для устранения
недостатков SSL 1.0.
Недостатки SSL 2.0:
– для проверки целостности сообщений используется MD5;
– сообщения процедуры рукопожатия передаются в открытом виде;
– для аутентификации и шифрования сообщений используется один и тот же ключ;
– атака MITM позволяет завершить соединение (вставка TCP FIN).
9/49

10.

В 1996 г. появился протокол SSL 3.0, который претерпел значительные изменения
по сравнению с SSL 2.0, однако также имеет множественные недостатки.
Недостатки SSL 3.0:
– для проверки целостности сообщений используется MD5 или SHA-1;
– использование ненадежных алгоритмов шифрования RC2, IDEA, DES, RC4;
– уязвимость к атакам POODLE и MITM.
POODLE (Padding Oracle On Downgraded Legacy Encryption) вызывает намеренное
понижение характеристик безопасности соединения (например, до SSL 2.0),
используя уязвимость шифрования в режиме CBC.
TLS 1.2
TLS 1.1
TLS 1.0
SSL 3.0
https://gosuslugi.ru
Visa, Master Card, American Express имеют лицензию на использование SSL.
10/49

11.

В 1999 г. на основе протокола SSL 3.0 организацией IETF
(Internet Engineering Task Force – Инженерный совет,
занимающийся развитием протоколов и архитектуры
Интернета) был разработан и принят стандарт TLS 1.0.
Год
Поддержка
сайтами (2023),
%
Уровень
безопасности
SSL 1.0
1994–1995
0
Низкий
SSL 2.0
1995–2011
0
Низкий
SSL 3.0
1996–2015
0,002
Низкий
Протокол,
версия
SSL 3.0 ≈ TLS 1.0
TLS (Transport Layer Security) – криптопротокол, обеспечивающий
защищенную передачу данных между узлами в сети Интернет.
Недостатки TLS 1.0:
– слабые алгоритмы хеширования MD5 и SHA-1;
– ненадежные алгоритмы шифрования (DES, 3DES);
– аутентификация одноранговых узлов зависит от подписей SHA-1;
– уязвимость к атаке BEAST (Browser Exploit Against SSL/TLS).
11/49

12.

Атака BEAST
В 2002 г. была обнаружена теоретическая уязвимость TLS 1.0.
В 2011 г. атака BEAST была реализована учеными в области безопасности Тхай
Дуонгом и Джулиано Риццо.
3. Прослушивание соединения
6. Получение cookie
2. Отправка модифицированных данных
по протоколу TLS
5. Получение обновленных
модифицированных данных
https://gosuslugi.ru
На момент практической реализации атаки BEAST 30,7 % веб-серверов использовали
TLS 1.0 как основной протокол для безопасного соединения.
12/49

13.

Протокол TLS 1.1 вышел в качестве обновления TLS 1.0 в 2006 году. Сегодня
обе этих версии являются устаревшими и уже не обеспечивают должный
уровень безопасности.
В TLS 1.1 также есть ряд известных уязвимостей, которые могут быть
использованы злоумышленниками:
– POODLE (Padding Oracle On Downgraded Legacy Encryption): атака на основе
уязвимости шифрования в режиме CBC, позволяющая понизить версию
исользуемого криптопротокола;
– CRIME (Compression Ratio Info-leak Made Easy): атака на основе
использования утечки информации, полученной из различных степеней сжатия
данных, в сочетании с атаками на зашифрованные байты в режиме ECB;
– FREAK (Factoring Attack on RSA-EXPORT Keys): атака на основе
использования недостаточной проверки при выполнении процедуры
рукопожатия на стороне клиента, что приводит к возможности понижения
стойкости шифрования во время выполнения атаки «человек посередине» до
использования 512-битных ключей RSA;
– LOGJAM (Diffie-Hellman Key Exchange Weakness): атака на основе
манипулирования списком наборов шифров, отправляемых клиентом во время
процедуры рукопожатия с целью удаления всех «сильных» наборов шифров.
TLS 1.0 и TLS 1.1 признаны полностью устаревшими в 2020 г.
13/49

14.

В 2008 г. был представлен протокол TLS 1.2.
Основные изменения в TLS 1.2:
– добавлен алгоритм хеширования SHA-256;
– добавлены алгоритмы HMAC-SHA-256;
– добавлена поддержка аутентифицированного шифрования (AEAD-режимы);
– шифрнабор TLS_RSA_WITH_AES_128_CBC_SHA является обязательным (37);
– удалены наборы с шифрами IDEA и DES.
Недостатки протокола TLS 1.2:
– требуется много сообщений, что влияет на время установления соединения;
– практически все сообщения процесса рукопожатия пересылаются в
открытом виде;
– уязвим к серии атак SLOTH (при использовании подписи RSA-MD5).
14/49

15.

В марте 2018 г. опубликован TLS 1.3, однако еще несколько месяцев
проводились дополнительные проверки.
TLS 1.3 – более безопасный и производительный, закрыты все известные
уязвимости TLS 1.2, а процесс рукопожатия происходит быстрее.
Основные изменения в TLS 1.3:
– включает только набор симметричных алгоритмов AEAD:
TLS_AES_128_GCM_SHA256,
TLS_AES_256_GCM_SHA384,
TLS_CHACHA20_POLY1305_SHA256,
TLS_AES_128_CCM_SHA256,
TLS_AES_128_CCM_8_SHA256;
– все согласующие сообщения после Server_Hello шифруются;
– алгоритмы на основе ЭК входят в базовую спецификацию (добавлен EdDSA);
– применяется один набор параметров для каждой ЭК;
– новый обмен PSK (Pre-Shared Key – ключ предварительного шифрования).
Протокол,
версия
Год
Поддержка
сайтами (2023), %
Уровень
безопасности
TLS 1.0
1999–2020
0,4
Низкий
TLS 1.1
2006–2020
0,4
Низкий
TLS 1.2
2008
83,0
TLS 1.3
2018
63,0
Зависит от
применяемых
криптоалгоритмов
15/49

16.

Цифровые сертификаты
Цифровой сертификат – выпущенный удостоверяющим центром (УЦ,
третьей стороной) электронный (и/или печатный) документ, подтверждающий
принадлежность открытого ключа владельцу (и каких-либо других атрибутов).
Для работы протокола TLS требуется, чтобы на сервере имелся
SSL-сертификат. Процедура шифрования не зависит от сертификатов, но они
необходимы для аутентификации взаимодействующих узлов.
Цифровой сертификат, подписанный УЦ (например: GlobalSign, Symantec,
МS, DigiCert Group (GeoTrust, Thawte, VerySign) подтверждает, что:
– данный сайт действительно принадлежит компании, за которую себя выдает;
– компания, которую представляет сайт, действительно существует;
– данные компании проверены и зарегистрированы центром сертификации.
Сертификат веб-ресурса
Имя владельца
ЦП УЦ
Запрос
на подтверждение
Сертификат УЦ
Имя УЦ
Проверка и
подтверждение
Сертификат КУЦ
Открытый ключ
УЦ
Имя КУЦ
Запрос
на подтверждение
ЦП КУЦ
Проверка и
подтверждение
Имя КУЦ
Открытый ключ
КУЦ
Секретный ключ
КУЦ
ЦП КУЦ
Самоподписанный
сертификат
Открытый ключ
владельца
Имя УЦ
16/49

17.

Пример применения протокола TLS 1.2
Банк «Авангард»
17/49

18.

Пример применения протокола TLS 1.3
Яндекс-почта
18/49

19.

Пример незащищенного соединения http
19/49

20.

Выводы по третьему учебному вопросу
Браузер, версия
Платформа
TLS 1.0
TLS 1.1
TLS 1.2
TLS 1.3
Windows (7+), OS X (10.9+), Linux,
Android (4.1+), iOS (9.0+),
Chrome OS
+



+
+


+
+
+
+
Android OS
Browser
Android 1.0–4.0
+



Android 4.1–7.1
+
+
+

Firefox 1–27
+



+
+
+

Firefox 54+
Windows (XP+), OS X (10.9+),
Linux, Android (4.0.3+), iOS (8.2+),
Firefox OS
+
+
+
+
IE 7–10
Windows XP+
+



IE 11+
Windows 7+
+
+
+

+



+
+


Opera 44+
+
+
+
+
Safari 1–6
+



+
+
+

Chrome 0–21
Chrome 29–53
Chrome 58+
Firefox 27–53
Opera 5–7
Opera 9, 14–16
Safari 7–10
Linux, Windows,
Android
Mac OS X, iOS
Mac
OS
X,
20/49

21.

Вопрос 3. Порядок организации защищенного соединения
В протоколах TLS применяются:
1) асимметричные криптоалгоритмы для аутентификации;
2) симметричное шифрование;
3) имитовставки для проверки целостности сообщений (MAC – Message
Authentication Code, или КАС – код аутентичности сообщений).
TLS включает в себя три основных фазы:
1. Диалог между сторонами с целью выбора криптоалгоритмов.
2. Обмен ключами на основе криптосистем с открытым ключом и
аутентификацию на основе сертификатов, причем поддерживается 3 типа
аутентификации:
– аутентификация обеих сторон (клиент – сервер);
– аутентификация только сервера (анонимный клиент);
– полная анонимность (кроме TLS 1.3).
3. Передача данных, зашифрованных симметричным криптоалгоритмом.
21/49

22.

TLS представляет собой два уровня протоколов
Передача данных
Извещения
Изменение
криптопараметров
Рукопожатие
Протокол
записи
Протокол TLS
Прикладной
Представления
Сеансовый
Транспортный
Сетевой
Канальный
Физический
Фрагментация
Сжатие
Целостность
Аутентификация
Шифрование
Стек протоколов TLS
Протокол
рукопожатия TLS
(TLS Handshake
Protocol)
Протокол изменения
криптопараметров
(TLS Change Cipher
Spec Protocol)
Протокол
извещения
(TLS Alert
Protocol)
Протокол
передачи данных HTTP
(TLS Application
Data Protocol)
FTP
Telnet
...
Протокол записи TLS
(TLS Record Protocol)
TCP
IP
22/49

23.

Протокол записи TLS 1.2
Протокол записи обеспечивает базовый набор средств защиты, применяемых
протоколами более высоких уровней (HTTP, FTP и др.).
Данные приложения
Фрагментация
Данные
Фрагмент
данных 1
Фрагмент
данных 2
...
Фрагмент
данных N
...
...
...
Сжатие
Формирование КАС
доп.
Дополнение
Шифрование
Добавление заголовка
доп.
Заг.
TCP-пакет
При формировании MAC кроме фрагмента данных также участвуют:
– порядковые номера пакетов (защита от атак повторной передачи);
– идентификатор исходного протокола;
– длина сообщения (усиление Меркла–Дамгарда).
23/49

24.

Стек протоколов TLS
Протокол
рукопожатия TLS
(TLS Handshake
Protocol)
Протокол изменения
криптопараметров
(TLS Change Cipher
Spec Protocol)
Протокол
извещения
(TLS Alert
Protocol)
Протокол
передачи данных HTTP
(TLS Application
Data Protocol)
FTP
Telnet
...
Протокол записи TLS
(TLS Record Protocol)
TCP
IP
Протокол рукопожатия – наиболее распространенная последовательность
включает обмен сертификатами и обмен ключами по протоколу Диффи–
Хеллмана с целью формирования ключа для симметричного шифрования.
Протокол изменения параметров шифрования – для сигнализации перехода
в режим шифрования.
Протокол извещения (тревоги) – уведомление о проблемах в сообщениях при
передаче/приеме с их описанием. При возникновении проблем данное
соединение незамедлительно разрывается (другие соединения сессии могут
быть продолжены, но идентификатор сессии признается недействительным).
Протокол передачи данных – передача полезной нагрузки.
Сообщения от протоколов изменения криптопараметров и тревоги также
зашифрованы и сжаты.
24/49

25.

Порядок защищенного соединения по протоколу TLS 1.2
25/49

26.

Порядок защищенного соединения по протоколу TLS 1.2
https:...
Клиент
(0 мс)
Web-сервер
Ключевой обмен: RSA или DH?
К, SAК, kК
С, SAС, kС
RSA:
certС
eС – открытый ключ сервера
PMS – PreMasterSecret
Протокол изменения
криптопараметров
(TLS Change Cipher
Spec Protocol)
certК (опционально)
[PMS]_eС
(50 мс)
PMS
(100 мс)
Key = PRF(PMS, kK, kС)
HК = H(все сообщения + LabelК)
[HК]_Key
[HС]_Key
(200 мс)
(250 мс)
(150 мс)
HС = H(все сообщения + LabelС)
[Безопасное соединение TLS]
26/49

27.

Порядок защищенного соединения по протоколу TLS 1.2
https:...
Клиент
Web-сервер
Ключевой обмен: RSA или DH?
К, SAК, kК
С, SAС, kС
DH:
a , sigК(axк), certК



a , sigС(a ), certС
a
ax к

или RSA
certК = (К, axк, sigК)
PMS = axк·xс
Протокол изменения
криптопараметров
HК = H(все сообщения + LabelК)
certС = (С, axс, sigС)
Key = PRF(PMS, kK, kС)
PMS = axс·xк
(TLS Change Cipher
Spec Protocol)
[HК]_Key
[HС]_Key
HС = H(все сообщения + LabelС)
[Безопасное соединение TLS]
27/49

28.

Основные отличия протокола TLS 1.3
Протокол изменения параметров шифрования не используется, но может
повлиять на процесс обработки соединения в конкретной реализации TLS.
В TLS 1.2 протокол CCS играет важную роль, обозначая момент перехода к
защищённому обмену сообщениями.
В протоколе записи не применяется сжатие фрагментов данных.
Для протокола передачи данных трактовка Application Data существенно
отличается:
– в предыдущих версиях:
1) при передаче информации основные преобразования с шифрами и кодами
аутентификации как происходят в блоке данных записи с Application Data;
2) записи, отличные от Application Data, обычно передаются в открытом виде,
но тем не менее могут быть зашифрованы, в зависимости от конкретной
реализации;
– в TLS 1.3 шифрование информации начинается существенно раньше:
зашифрованы все сообщения Handshake, начиная с ServerHello.
28/49

29.

Порядок защищенного соединения по протоколу TLS 1.3
Full Handshake
One Round-Trip Time
Quick Handshake
Zero Round-Trip Time
29/49

30.

Порядок защищенного соединения по протоколу TLS 1.3
Клиент
Web-сервер
https:...
(0 мс)
PSK
PSK
SAК, KК
(68 мс)
SAС, KC, [certC, H1]HTS
HTS
АTS
MS
(102 мс)
HTS
[certK(опц), H2]ATS
АTS
(168 мс)
[Безопасное соединение TLS]MS
(178 мс)
(178 мс)
MS
HTS = HKDF (H1(все сообщения), (EC)DHE, HKDF(PSK))
АTS = HKDF (H2(все сообщения), HTS)
MS = HKDF (H3(все сообщения), ATS)
PSK (Pre-Shared Key) – ключ предварительного шифрования;
HTS (Handshake Traffic Secret) – наборы ключей для защиты сообщений на этапе Handshake;
ATS (Application Traffic Secret) – первый набор ключей для защиты трафика приложений;
MS (Master Secret) – набор ключей для защиты трафика приложений;
HKDF (HMAC-based Extract-and-Expand Key Derivation Function) – функция извлечения и
расширения ключа на основе HMAC.
30/49

31.

Отличия защищенного соединения по протоколам TLS 1.2 и TLS 1.3
31/49

32.

Шифрование
Тип
Алгоритм
Версия протокола
Длина
ключа, бит
SSL 2.0
SSL 3.0
TLS 1.0
TLS 1.1
TLS 1.2
TLS 1.3






Camellia GCM












Зависит от
параметров

Зависит от
параметров

Зависит от
параметров
Зависит от
параметров
Безопасно
Безопасно
Зависит от
параметров
Безопасно
Зависит от
параметров
Безопасно
Зависит от
параметров
Зависит от
параметров
Безопасно
Безопасно
AES CBC


Зависит от
параметров

Зависит от
параметров

Зависит от
параметров
Зависит от
параметров
AES GCM
AES CCM
Camellia CBC
256, 128
256, 128
ARIA GCM
ARIA CBC
Блочный шифр
SEED CBC
и
режим работы 3DES EDE CBC
256, 128
128
112
Небезопасно Небезопасно Небезопасно






GOST 28147-89
CNT
256
IDEA CBC
128
Небезопасно Небезопасно
Небезопасно Небезопасно


56
Небезопасно Небезопасно
Небезопасно Небезопасно


40
Небезопасно Небезопасно
Небезопасно



RC2 CBC
40
Небезопасно Небезопасно
Небезопасно



ChaCha20Poly1305
256


Безопасно
Безопасно
DES CBC
Поточный
шифр
Небезопасно Небезопасно





Небезопасно Небезопасно Небезопасно Безопасно
128
Небезопасно Небезопасно
Небезопасно Небезопасно Небезопасно

40
Небезопасно Небезопасно
Небезопасно

RC4


32/49

33.

Алгоритмы хеширования SSL 2.0
SSL 3.0
TLS 1.0
TLS 1.1
TLS 1.2
TLS 1.3
HMAC-MD5
+
+
+
+
+

HMAC-SHA1

+
+
+
+

HMAC-SHA256/384




+

AEAD




+
+
GOST28147IMIT


+
+
+
+
GOSTR34.11


+
+
+
+
При использовании TLS, злоумышленнику будет доступна информация о подключении
(хост, порт, тип используемого шифрования), частоте и количестве передаваемой
информации. Кроме того, он может разорвать соединение, но обе стороны будут знать,
что соединение было прервано третьей стороной.
Например, шифронабор TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 имеет
идентификатор 0xc02b: обмен ключами по протоколу Диффи–Хеллмана на ЭК с
эфемерными ключами, цифровая подпись – DSA на ЭК, шифрование – AES
c 256-битным ключом в режиме аутентифицированного шифрования GCM,
хеш-функция – SHA384.
33/49

34.

HTTP, FTP,
DHCP, SNMP,
XMPP …
34/49

35.

Выводы по третьему учебному вопросу
Аксиома:
– актуализация электронной коммерции, электронного документооборота.
Проблема:
– угрозы информационной безопасности со стороны злоумышленников (хакеры,
кракеры и др.).
Решение:
– реализации протоколов TLS и SSH.
Назначение TLS:
– обеспечение криптографической защиты данных, передаваемых через интернет.
Функции и возможности TLS:
– асимметричная криптография для аутентификации;
– симметричное шифрование;
– имитовставки для проверки целостности сообщений.
Факт:
– частое использование протокола SSL привело к формированию протокола HTTPS.
Нюансы:
– TLS обеспечивает защищенную передачу данных между узлами в сети Интернет,
обладающих SSL-сертификатами.
35/49

36.

Вопрос 4. Общие сведения о протоколе SSH
SSH (англ. «Secure Shell» – безопасная оболочка) – сетевой протокол
прикладного уровня, позволяющий производить защищенный доступ по
открытому каналу к приложениям удаленного узла.
Протокол SSH обеспечивает:
– шифрование с помощью симметричных алгоритмов;
– аутентификацию;
– сжатие данных.
SSH не требует системы управления ключами и инфраструктуры
сертификатов, но поддерживает ее (например, DNSSEC).
Обмен ключами производится с помощью асимметричных криптосистем
Диффи–Хеллмана или RSA.
1995 г.: SSH-1 – Тату Улёнен из Технологического университета
Хельсинки (Финляндия).
1996 г.: SSH-2.
2006 г.: протокол SSH утвержден рабочей группой IETF в качестве
Интернет‐стандарта.
Распространены две реализации SSH: коммерческая и бесплатная
свободная.
Тату Улёнен
36/49

37.

SSH был разработан для Unix-подобных ОС как замена Telnet и других
незащищенных протоколов удаленной оболочки Unix (Berkeley (rsh), rlogin,
rexec), которые используют открытую передачу токенов аутентификации.
RFC (Request for Comments) – пронумерованные информационные документы
Интернета, содержащие технические спецификации и стандарты
RFC 4250 – The Secure Shell (SSH) Protocol Assigned Numbers
RFC 4251 – The Secure Shell (SSH) Protocol Architecture
RFC 4252 – The Secure Shell (SSH) Authentication Protocol
RFC 4253 – The Secure Shell (SSH) Transport Layer Protocol
RFC 4254 – The Secure Shell (SSH) Connection Protocol
RFC 4255 – Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints
RFC 4256 – Generic Message Exchange Authentication for the Secure Shell Protocol (SSH)
RFC 4335 – The Secure Shell (SSH) Session Channel Break Extension
RFC 4344 – The Secure Shell (SSH) Transport Layer Encryption Modes
RFC 4345 – Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol
RFC 4419 – Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer
Protocol
RFC 4432 – RSA Key Exchange for the Secure Shell (SSH) Transport Layer Protocol
RFC 4716 – The Secure Shell (SSH) Public Key File Format
37/49

38.

Стек протоколов SSH
Протокол аутентификации
пользователя
(SSH User Authenticates Protocol)
Протокол соединения
(SSH Connection Protocol)
FTP
...
Протокол транспортного уровня
(SSH Transport Layer Protocol)
TCP
IP
Протокол SSH состоит из трех основных компонентов:
1. Протокол транспортного уровня – обеспечивает аутентификацию сервера,
шифрование, целостность и сжатие (опционально) данных;
2. Протокол аутентификации пользователя – обеспечивает аутентификацию
клиента сервером.
3. Протокол соединения – создает зашифрованный туннель, мультиплексируя в
нем несколько логических каналов.
38/49

39.

Стек протоколов SSH
Протокол аутентификации
пользователя
(SSH User Authenticates Protocol)
Протокол соединения
(SSH Connection Protocol)
FTP
...
Протокол транспортного уровня
(SSH Transport Layer Protocol)
TCP
IP
Протоколы SSH используются в нескольких механизмах передачи файлов:
scp – защищенное копирование (scp), модификация протокола RCP для SSH;
rsync – синхронизация, обычно выполняемая через SSH-соединение (более
эффективна, чем scp);
SFTP – протокол передачи файлов через SSH-соединение;
FISH – протокол передачи файлов по протоколу shell через SSH-соединение;
FASP (или Aspera) – быстрый и безопасный протокол, использующий SSH для
управления и UDP для передачи данных.
39/49

40.

Преимущества и недостатки протокола SSH
Использование протокола SSH имеет ряд преимуществ:
− безопасная работа на удаленном сервере с использованием командной оболочки;
− использование разных алгоритмов шифрования (симметричного, асимметричного и
хеширования);
− возможность безопасного использования любого сетевого протокола, что позволяет
передавать по защищенному каналу файлы любого размера;
Использование протокола SSH имеет свой недостаток:
− протокол SSH не имеет средств защиты от действий злоумышленника, получившего
root-доступ.
Одной из мер защиты является ограничение использования режима root.
40/49

41.

Платформы, поддерживающие протокол SSH
Имя
macOS
Windows
Linux
Solaris
OpenVMS
iOS
Android
Windows
Phone
Absolute Telnet
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
?
SSH-клиент
Bitvise
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
ConnectBot
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
ДА
НЕТ
Dropbear
ДА
НЕТ
ДА
ДА
?
ДА
НЕТ
?
eSSH Client
ДА
ДА
ДА
ДА
?
НЕТ
НЕТ
?
Lsh
ДА
НЕТ
ДА
ДА
?
НЕТ
НЕТ
?
OpenSSH
Включено
Включено
Включено
ДА
ДА
ДА
ДА
?
PuTTY
Частичное
ДА
ДА
ДА
?
НЕТ
НЕТ
Бета
SecureCRT
ДА
ДА
ДА
НЕТ
НЕТ
ДА
НЕТ
?
SmartFTP
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
?
TeraTerm
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
?
TN3270 Plus
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
?
TtyEmulator
НЕТ
ДА
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
?
WinSCP
НЕТ
ДА
НЕТ
НЕТ
НЕТ
ДА
НЕТ
?
wolfSSH
ДА
ДА
ДА
ДА
НЕТ
НЕТ
НЕТ
НЕТ
ZOC
ДА
ДА
НЕТ
НЕТ
НЕТ
НЕТ
НЕТ
?
41/49

42.

Ключевые алгоритмы аутентификации
RSA с SHA-2
ECDSA с SHA-2
Формирование ключей
EdDSA
Имя
Ssh-dss
Ssh-rsa
Absolute Telnet
?
?
?
?
?
?
?
?
?
SSH-клиент
Bitvise
?
?
?
?
?
?
?
?
?
Dropbear
ДА
ДА
ДА
НЕТ
ДА
ДА
ДА
ДА
?
Lsh
?
?
?
?
?
?
?
?
?
OpenSSH
ДА
ДА
ДА
ДА
ДА
ДА
ДА
ДА
PuTTY
ДА
ДА
ДА
ДА
ДА
ДА
ДА
SecureCRT
ДА
ДА
ДА
ДА
ДА
ДА
SmartFTP
?
?
?
?
?
TeraTerm
?
?
?
?
TN3270 plus
?
?
?
TtyEmulator
?
?
WinSCP
НЕТ
WolfSSH
НЕТ
sk-ecdsasha2nistp256
sk-sshed25519
НЕТ
ДА
ДА
ДА
ДА
НЕТ
НЕТ
ДА
ДА
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
ДА
ДА
ДА
ДА
ДА
ДА
?
?
ДА
ДА
ДА
ДА
ДА
ДА
НЕТ
НЕТ
НЕТ
НЕТ
rsa-sha2256
rsa-sha2- ecdsa-sha2- ecdsa-sha2- ecdsa-sha2ssh-ed25519 ssh-ed448
512
nistp256
nistp384
nistp521
42/49

43.

Выводы по четвертому учебному вопросу
SSH: сетевой протокол прикладного уровня, позволяющий производить защищенный
доступ по открытому каналу к приложениям удаленного узла.
Протокол SSH обеспечивает:
– шифрование с помощью симметричных алгоритмов;
– аутентификацию (асимметричная криптография, DH или RSA);
– сжатие данных (алгоритм LempelZiv:zlib, или LZ77 ).
Факт:
распространены две реализации SSH: коммерческая и бесплатная свободная.
Примеры использования протокола SSH и его аналоги:
– протоколы Telnet и rlogin, функции SSH SOCKS-Proxy;
– клиенты Windows: PuTTY, TeamViewer, KiTTY, MobaXterm, Solar-PUTTY, SmartTTY,
Xshell, TeraTerm, Dameware SSH, mRemoteNG и др.;
– клиенты Linux: Terminal (OpenSSH), Asbru Connection Manager, Muonи др.
43/49

44.

Вопрос 5. Организация защищенного удаленного доступа
Сокет ПО
SSH-агент
Локльный
TCP-порт
MUX
Программная
оболочка
Сжатие
Целостность
Шифрование
Шифрование
Сжатие
MUX
Терминал
пользователя
Целостность
Схема применения протокола SSH

Ш
K
(IV)
Ш
K
(IV)
TCPсоединение

Необязательные
ssh -v -p 22 -C username@remoteserver
Сжатие данных
Доменное имя или IP-адрес
Порт для подключения к удаленному серверу
Вывод отладочной информации
44/49

45.

Протокол транспортного уровня
SSH-сервер
SSH-клиент
Установка соединения
Списки поддерживаемых
алгоритмов
DH:
minp || np || maxp
p || a
yК = axк (mod p)

e, yС, sigd(H)
K = (axс)xк (mod p)
K = (axк)xс (mod p)
H(IК||IС||minp||np||maxp||p||a||yК||yС||K)
H(IК||IС||minp||np||maxp||p||a||yК||yС||K)
e → sigd(H)
IVК→С: Hash(K || H || «A» || session_id)
IVС→К: Hash(K || H || «B» || session_id)
KШК→С: Hash(K || H || «C» || session_id)
KШС→К: Hash(K || H || «D» || session_id)
KАК→С: Hash(K || H || «E» || session_id)
KАС→К: Hash(K || H || «F» || session_id)
Этапы протокола транспортного уровня :
1) обмен идентификационными строками;
2) этап переговоров о поддерживаемых алгоритмах;
3) обмен ключами;
4) запрос на обслуживание.
45/49

46.

Протокол транспортного уровня
(формирование SSH-пакета)
Данные
Сжатие
Порядковый
номер
Длина
пакета
Длина
дополнения
Данные
Дополнение
Шифрование
Вычисление MAC
Шифртекст
MAC
SSH-пакет
46/49

47.

Протокол аутентификации пользователей
SSH-клиент
SSH-сервер
Login
Имя службы (ПО)
Метод аутентификации
Ответ
1
ssh [email protected]
passwords: …

/etc/ssh/sshd_config
Host *
HostBasedAuthintication yes
2
msg, sigdк(msg), eК
3
DNSК, IP К, usernameК
?
eК → ~/.ssh/authorized_keys
/etc/ssh/sshd_config
HostBasedAuthintication yes
UseDNS yes
~/.ssh/ssh_know_hosts
Методы аутентификации клиента SSH-сервером:
1. Аутентификация по паролю – сервер проверяет имя пользователя и пароль.
2. Аутентификация с открытым ключом (PublicKey) – клиент генерирует пару
ключей, открытый ключ загружается на сервер, закрытый остается у клиента.
3. Аутентификация на основе идентификатора узла (Hostbased).
4. Аутентификация на основе протокола Kerberos (KerberosAuthentication). 47/49

48.

Протокол соединений
SSH-клиент
Открытие канала
SSH-сервер
– приложение
– № логического канала
– размер окна
– размер пакета
– тип данных
Подтверждение открытия
канала
Логический канал
Передача
данных
...
Закрытие канала
Трафик SSH
(SSH-туннель)
Логические
каналы
48/49

49.

Выводы по пятому учебному вопросу
Стек протоколов SSH
Протокол аутентификации
пользователя
(SSH User Authenticates Protocol)
Протокол соединения
(SSH Connection Protocol)
FTP
...
Протокол транспортного уровня
(SSH Transport Layer Protocol)
TCP
IP
SSH-сервер поддерживает 4 метода аутентификации:
PublicKey – криптоалгоритм с открытым (общим) ключом;
Пароль – шифрование симметричным алгоритмом транспортного уровня;
Hostbased – проверка подлинности клиентского узла.
KerberosAuthentication – на основе протокола Kerberos.
Преимущества и недостатки применения протокола SSH
49/49

50.

Тема 6. Криптографические протоколы
Занятие 6. Протоколы TLS и SSH
Учебные вопросы:
Вопрос 1. Протоколы туннелирования.
Вопрос 2. Общие сведения о протоколах SSL/TLS.
Вопрос 3. Порядок организации защищенного соединения.
Вопрос 4. Общие сведения о протоколе SSH.
Вопрос 5. Организация защищенного удаленного доступа.
Литература:
1. Олифер В. Г. Компьютерные сети. Принципы, технологии, протоколы : юбилейное издание /
В. Г. Олифер, Н. А. Олифер. – СПб. : Издательский дом «Питер», 2021. – 1008 с.
2. Таненбаум Э. Компьютерные сети, 5-е изд. / Эндрю Таненбаум, Девид Уэзеролл : пер. с англ. А.
Гребеньков. – СПб. : Издательский дом «Питер», 2020. – 960 с.
50/49
English     Русский Правила