Помогите разобраться с HTTP/HTTPS, FTP/SFTP, SSH и SSL
HTTP/HTTPS и FTP/SFTP – это одно и то же? Также, помогите пожалуйста разобраться с SSH и SSL, для чего они нужны?
Ответы (1 шт):
Протокол SSL (Secure Sockets Layer) и его дальнейшее развитие в виде протокола TLS (Transport Layer Security) предназначены для установки соединения по шифрованому каналу, данные, проходящие по которому, не будут доступны для просмотра и анализа третьей стороной, которая может слушать канал связи. В сами криптографические алгоритмы мы сейчас углубляться не будем, соответствующую информацию несложно найти в интернете. Главное то, что для большинства программ протокол общения с сервером (HTTP, FTP и т.д.) практически не меняется, просто само общение с сервером до того происходило поверх транспортного протокола TCP, а теперь происходит по шифрованному каналу (который работает поверх всё того же TCP-соединения). Вот такие версии протоколов обычно и называются так же, как их нешифрованные аналоги, но с буквочкой S (secure) в конце. HTTPS означает HTTP over SSL, FTPS, соответственно, FTP over SSL и т.д.
Соединение по протоколу HTTPS всегда начинается с т.н. рукопожатия (handshake) и создания шифрованного канала; соединения по протоколам FTPS и SMTPS/POP3S/IMAPS (последние три - это "шифрованные" версии почтовых протоколов SMTP/POP3/IMAP) могут быть начаты в нешифрованном режиме, а переход к шифрованному соединению будет выполнен позже (что не отменяет возможности изначальной установки шифрованного соединения, хотя для этого обычно используются другие номера портов).
Собственно SSL на данный момент считается устаревшим, ненадёжным и в настоящее время практически не используется; дальнейшим развитием этого протокола является протокол TLS.
SSH (Secure SHell) является отдельным криптографическим протоколом и предназначен для установки безопасного соединения с сервером (как правило в терминальном режиме) со взаимной аутентификацией как клиента, так и сервера. Хотя и SSH, и SSL/TLS - безопасные протоколы, основанные на криптографии, это разные протоколы, использующие разную инфраструктуру ключей, алгоритмы рукопожатия и т.д. На самом деле возможностей у протокола SSH значительно больше, и перечисление даже самых полезных выходит за рамки данного ответа. Одной из таких дополнительных возможностей является поддержка протоколов передачи файлов SCP (Secure CoPy) и SFTP (Secure FTP, не путать с FTPS), которые работают поверх соединения SSH. Как протокол, SFTP сильно отличается от FTP(S), хотя оба они разработаны для одной и той же цели, двунаправленной передачи файлов от клиента на сервер и обратно.