(Стандартыdraft-ietf-secsh-architecture-05, draft-ietf-secsh-userauth-07, draft-ietf-secsh-transport-07, draft-ietf-secsh-connect-07.)
Secure Shell (SSH) - это протокол, обеспечивающий безопасную работу различных сетевых сервисов (таких как login) на незащищенной сети. Он состоит из трех подпротоколов.
- Протокол транспортного уровня (SSH-TRANS) обеспечивает аутентификацию сервера, конфиденциальность и целостность данных. Опционально может производить компрессию данных. Обычно работает поверх TCP/IP, но может быть использован и с любым надежным потоком данных (8-битовый двоичный транспорт с коррекцией ошибок).
- Протокол аутентификации пользователя (SSH-USERAUTH) аутентифицирует клиента перед сервером. Функционирует поверх протокола транспортного уровня.
- Протокол соединения (SSH-CONN) совмещает (мультиплексирует) различные логические каналы в единый шифрованный канал. Функционирует поверх протокола аутентификации пользователя.
Рассмотрим общую архитектуру протокола и коснемся трех его составляющих. Одним из наиболее важных элементов схемы является требование аутентификации, которая производится на основе алгоритмов шифрования с открытым ключом. Это означает, что каждый участник взаимодействия (хост) должен иметь соответствующий ключ. Модель протокола допускает как вариант, когда один хост имеет множество ключей, так и вариант, когда множество хостов пользуются одним ключом. Для каждого из используемых алгоритмов хост должен иметь отдельный ключ (в качестве стандартного Указан алгоритм DSS — Digital Signature Standard).