Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа? |
Безопасное сетевое взаимодействие (часть 2)
Протокол Рукопожатия TLS
Протокол Рукопожатия состоит из трех протоколов, использование которых позволяет участникам согласовать параметры безопасности для протокола Записи, аутентифицировать друг друга, договориться о параметрах безопасности и сообщить друг другу о возникновении тех или иных ошибок.
В результате выполнения протокола Рукопожатия будут созданы элементы сессии показанные в таблице 21.3.
Протокол изменения шифрования
Протокол состоит из единственного сообщения, которое зашифровано и сжато, как определено в текущем (не ожидаемом) состоянии соединения.
Сообщение об изменении шифрования может посылаться как клиентом, так и сервером для уведомления получающей стороны о том, что следующие записи будут защищены алгоритмами и ключами, о которых стороны только что договорились. При поступлении данного сообщения получатель должен информировать протокол Записи о немедленном копировании ожидаемого состояния чтения в текущее состояние чтения. Сразу после посылки данного сообщения отправитель должен информировать протокол Записи на своем конце соединения о немедленном копировании ожидаемого состояния записи в текущее состояние записи. Сообщение об изменении шифрования посылается при Рукопожатии после того, как параметры безопасности согласованы, но перед тем как посылается заключительное верифицирующее сообщение.
Alert протокол
Одним из протоколов, лежащих выше протокола Записи, является протокол Аlert. Содержимым протокола является либо фатальное, либо предупреждающее сообщение. Фатальное сообщение должно приводить к немедленному разрыву данного соединения. В этом случае другие соединения, соответствующие данной сессии, могут быть продолжены, но идентификатор сессии должен быть сделан недействительным для предотвращения использования данной сессии для установления новых соединений. Подобно другим сообщениям, сообщения Alert зашифрованы и сжаты, как определено в текущем состоянии соединения.
Сообщения закрытия
Клиент и сервер должны оба узнать о том, что соединение завершается. Каждый участник может инициировать обмен сообщениями закрытия.
Сообщение close_notify уведомляет получателя о том, что отправитель не будет больше посылать никаких сообщений по данному соединению. Сессия становится невозобновляемой, если хотя бы одно соединение завершено без соответствующего предупреждающего сообщения close_notify.
Каждый участник может инициировать закрытие посылкой сообщения Alert типа close_notify. Любые данные, отправленные после Alert-закрытия, игнорируются.
Требуется, чтобы каждый участник посылал close_notify Alert перед закрытием стороны записи соединения. Это означает, что при получении ответа другого участника с Alert типа close_notify соединение немедленно закрывается и все ожидаемые состояния сбрасываются. Инициатору закрытия не обязательно ждать ответного close_notify Alert перед закрытием стороны чтения соединения.
Если прикладной протокол, использующий TLS, предполагает, что какие-либо данные могут передаваться нижележащим транспортом после того как соединение TLS закрыто, реализация TLS должна получать ответный Alert типа close_notify перед тем как сообщать прикладному уровню, что соединение TLS завершено. Если прикладной протокол не будет передавать никаких дополнительных данных, а будет только закрывать нижележащее транспортное соединение, реализация может закрыть соединение без ожидания ответного close_notify. В стандарте TLS не определен способ, которым управляются данные транспорта, включая открытие и закрытие соединений.
Замечание: предполагается, что при закрытии соединения ожидающие доставки данные надежно доставляются перед разрушением транспорта.
Alerts ошибок
Ошибки обрабатываются в протоколе Рукопожатия следующим образом. Когда один из участников соединения обнаруживает ошибку, он посылает соответствующее сообщение другому участнику. При передаче или получении сообщения фатального Alert оба участника немедленно закрывают соединение. Сервер и клиент должны сбросить все идентификаторы сессии, ключи и секреты, связанные с этим соединением.
Для всех ошибок, у которых уровень Alert явно не задан, посылающая сторона сама может определять, является ошибка фатальной или нет. Если получен Alert с уровнем предупреждения, получающая сторона может решать, интерпретировать ли сообщение как фатальное.
Unexpected_message | Получено неожидаемое сообщение. Этот Alert всегда фатальный и никогда не должен возникать во взаимодействии корректных реализаций |
Bad_record_mac | Данный Alert возвращается, если полученная запись имеет некорректный МАС. Данное сообщение всегда фатально |
Decryption_failed | TLSCiphertext дешифрован недопустимым способом: некратная длина блока или недопустимые добавленные значения. Данное сообщение всегда фатально |
Record_overflow | Полученная TLSCiphertext запись имеет длину больше 214 + 2048 байт, или дешифрованная TLSCompressed запись имеет длину больше 214 + 1024 байт. Данное сообщение всегда фатально |
Decompression_failure | Функция декомпрессии получила неправильные входные данные. Данное сообщение всегда фатально |
Handshake_failure | Получение сообщения handshake_failure Alert говорит о том, что отправитель не смог договориться о приемлемом наборе параметров безопасности. Данное сообщение всегда фатально |
Bad_certificate | Сертификат испорчен, например содержит некорректную подпись |
Unsupported_certificate | Сертификат неподдерживаемого типа |
Certificate_revoked | Сертификат отменен тем, кто его подписал |
Certificate_expired | Срок действия сертификата истек и в настоящее время он недействителен |
Certificate_unknown | Другой результат (неопределенный), полученный в результате обработки сертификата, сертификат не принимается |
Illegal_parameter | Некоторое поле находится вне диапазона или не согласуется с другими полями. Данное сообщение всегда фатально |
Unknown_ca | Получена цепочка законных сертификатов или некоторая часть цепочки, но сертификат не принимается, потому что сертификат СА не соответствует известному СА, с которым установлены доверительные отношения. Данное сообщение всегда фатально |
Access_denied | Получен законный сертификат, но при применении контроля доступа отправитель решил не продолжать переговоры. Данное сообщение всегда фатально |
Decode_error | Сообщение не может быть декодировано, потому что некоторое поле находится вне специфицированного диапазона или некорректна длина сообщения. Данное сообщение всегда фатально |
Decrypt_error | Не выполнена криптографическая операция Рукопожатия, которая включает проверку подписи, дешифрование обмена ключа и проверку правильности завершающего сообщения |
Export_restriction | Переговоры не выполнены из-за экспортных ограничений; например, попытка передать 1024-битный ключ RSA для метода Рукопожатия RSA_EXPORT. Данное сообщение всегда фатально |
Protocol_version | Версия протокола, с которой клиент пытается вести переговоры, распознана, но не поддерживается. Например, старая версия протокола не должна использоваться по причинам безопасности. Данное сообщение всегда фатально |
Insufficient_security | Возвращается вместо handshake_failure, когда переговоры прекращаются из-за того, что сервер требует более безопасных алгоритмов, чем предложены клиентом. Данное сообщение всегда фатально |
Internal_error | Внутренняя ошибка, не относящаяся к участникам, но делающая невозможным дальнейшее ведение переговоров (например, невозможность распределения памяти). Данное сообщение всегда фатально |
User_canceled | Данное Рукопожатие прервано по некоторой причине, не относящейся к падению протокола. Если пользователь прервал операцию после завершения Рукопожатия, то для закрытия соединения больше подходит сообщение close_notify. Данное сообщение обычно является предупреждающим |
No_renegotiation | Посылается клиентом в ответ на запрос Hello или сервером в ответ на Hello клиента после начала Рукопожатия. Это приводит к невозможности вести новые переговоры; в этой точке тот, кто осуществил первоначальный запрос, может решить продолжать ли использовать данное соединение. Одним из случаев, который может соответствовать данной ситуации, может быть порождение сервером нового процесса для удовлетворения запроса; процесс должен при старте получить параметры безопасности (длину ключа, аутентификацию и т.д.), и возможности внести изменения в параметры после этой точки быть не должно. Данное сообщение всегда является предупреждающим |