SSL это протокол, а не шифр или система шифрования. Синхронизация ключей шифрования происходит благодаря системе открытого ключа шифрования. Сертификат применяется для аутентификации и обмена ключами. Сертификат как раз и говорит, что я "тот кто я есть" и вот тебе мой открытый ключ, который ты можешь использовать для синхронизации со мной ключа шифрованния данных, а у меня есть закрытый ключ, которым я расшифрую этот трафик, но я его не скажу. Потом ты отправляешь зашифрованный открытым ключем - ключ шифрования (к примеру ключ блочного алгоритма шифрования - aes). Сервак его получил и расшифровал закрытым ключем. Дальше ты шифруешь отправляемые данные ключем шифрования блочного (или потокового) шифра свои персональные данные и пересылаешь по "открытому" каналу. Сервак уже может расшифровать данные ключем блочного (или потокового) шифра - ибо ты его передал с помощью открытого ключа. Блочный или потоковый шифр используется, т.к. для системы открытого ключа требуется существенно больше вычислительных мощностей, при достижении такой же надежности, как у блочного или потокового алгоритма шифрования.Понятно от куда у сервера расшифрованные данные? Иначе не обработать данные не расшифровав их. Данные в основном в сетях должны шифроваться только для защиты их от извлечения по "открытому" каналу связи и в местах длительного хранения (ПЗУ). А теперь, кто осилил то, что я написал, то что будет, если кто-то получит фиктивный сертификат с открытым ключем?
|