130 likes | 338 Views
SSL/TLS: история.
E N D
SSL/TLS: история Secure Sockets Layer (SSL) – протокол защищённых сокетов первоначально разрабатывался Netscape. Версия 2.0 была опубликована в 1994 г. Однако из-за обнаруженных уязвимостей в 1996 г. была разработана модификация SSLv3. Эта версия была взята за основу IETF для разработки свободного протокола Transport Layer Security (TLS) – протокол безопасности транспортного уровня. TLS v.1.0 – RFC 2246 – 1999 г. TLS v.1.1 – RFC 4346 – 2006 г. Основное назначение: аутентификация сервера (+клиента) и защищённая передача данных (предотвращение подслушивания, подмены данных при передаче, контроль целостности данных) на основе криптоалгоритмов. Rev. 1.00 / 26.11.2007 Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
SSL/TLS и OSI RM Layer 7 Layer 6 Layer 5 Layer 4 Layer 3 Layer 2 Layer 1 APPLICATION TCP IP Physical SSL/TLS PRESENTATION SESSION TRANSPORT NETWORK DATA LINK PHYSICAL TCP/IP OSI/RM Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
SSL/TLS: первая фаза • Согласование алгоритмов • клиент сообщает версию протокола, случайное число и список поддерживаемых алгоритмов – ClientHello • сервер сообщает выбранную версию протокола, своё случайное число и выбранные алгоритмы – ServerHello клиент сервер RNc RNs ClientHello ServerHello RNc RNs Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
SSL/TLS: вторая фаза • Аутентификация сервера • сервер высылает свой сертификат (X.509 или OpenPGP) • сервер может запросить сертификат клиента, чтобы аутентифицировать его • клиент проверяет сертификат сервера, используя PKI клиент сервер RNc RNs RNc RNs Server’s Certificate Demand Client Certificate Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
SSL/TLS: вторая фаза (доп) • Аутентификация клиента (опционально) • клиент может предоставить свой сертификат, тогда сервер, используя PKI, проверяет аутентичность клиента – так обеспечивается взаимная аутентификация • фаза аутентификации заканчивается сообщ. ServerHelloDone клиент сервер RNc RNs RNc RNs Client’s Certificate ServerHelloDone Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
SSL/TLS: третья фаза • Генерация ключа сессии • клиент генерирует Pre-Master-Secret и пересылает его серверу в сообщении ClientKeyExchange • клиент и сервер на основе RNc, RNs и PMS генерируют ключ для симметричного криптоалгоритма клиент сервер RNc RNs PMS RNc RNs ClientKeyExchange PMS PMS Master-Secret Master-Secret Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
SSL/TLS: четвертая фаза • Завершение квитирования • клиент посылает сообщение о переходе в режим шифрования ChangeCipherSpec и посылает зашифрованное сообщение о завершении квитирования с хэшем всех сообщений • сервер посылает ChangeCipherSpec и зашифрованное сообщение о завершении квитирования с хэшем всех сообщений клиент сервер ChangeCipherSpec Master-Secret Master-Secret Finished ChangeCipherSpec Finished Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
SSL/TLS: алгоритмы • Алгоритмы обмена ключами: • RSA (Ron Rivest, Adi Shamir, Leonard Adleman – MIT, 1977) • Diffie-Hellman (Whitfield Diffie, Martin Hellman / Ralph Merkle – 1976) • DSA (Digital Signature Algorithm / David W. Kravitz – 1991) • SRP (Secure Remote Password Protocol) • PSK (Pre-shared key) • Симметричные криптоалгоритмы: • RC4TM (Ron Rivest/RSA Security – 1987) или ARCFOUR (1994) • 3DES (Triple Data Encryption Standard – IBM, 1973-74) • AES (Advanced Encryption Standard AKA “Rijndael” – Joan Daemen and Vincent Rijmen ~1997) • Camellia (European Union's NESSIE project, Japanese CRYPTREC project – Mitsubishi & NTT, 2000) • IDEATM (International Data Encryption Algorithm – Xuejia Lai&James Massey/ ETH Zurich, 1991) • Алгоритмы хэширования: • HMAC-MD5 (Message-Digest algorithm 5 – Ron Rivest, 1991) • HMAC-SHA (Secure Hash Algorithm, 1993) Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Public Key Infrastructure • Задачи: определение политики выпуска цифровых сертификатов, выдача их и аннулирование, хранение информации, необходимой для последующей проверки правильности сертификатов. • Центр сертификации (Certification Authority) является основной структурой, формирующей цифровые сертификаты подчиненных центров сертификации и конечных пользователей. Центр сертификации сам генерирует собственный секретный ключ и сертификат, содержащий открытый ключ данного центра. • Удостоверяет аутентичность открытого ключа пользователя своей электронно-цифровой подписью. • Формирует список отозванных сертификатов. • Ведет базы всех изготовленных сертификатов и списков отозванных сертификатов. Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Сертификат X.509 • ITU-T/CCITT X.509, RFC 3280 • Сертификат привязывается к Distinguished Name (отличительное имя): • C=RU, ST=Karelia, L=Petrozavodsk, O=Petrozavodsk State University, OU=DIMS,CN=afs.dims.prv/emailAddress=root@mx.dims.prv • Структура сертификата: • версия, серийный номер, ID алгоритма, издатель, срок действия, субъект, публичный ключ субъекта, ID алгоритма подписи сертификата, подпись сертификата • Популярные Интернет-центры сертификации: • Verisign - http://www.verisign.com/ • Thawte - http://www.thawte.com/ • Правила безопасности SSL/TLS • Клиент проверяет ЭЦП сертификата сервера при помощи публичного ключа доверенного центра сертификации. • Клиент проверяет срок действия сертификата. • Клиент проверяет, что доменное имя сервера совпадает с именем в сертификате. Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Приложения SSL/TLS • HTTPS • POP3S, IMAPS • ESMTP • stunnel В стандартных приложениях возможно выделение отдельного порта для организации защищённого соединения SSL/TLS (например, POP3S – 995, IMAPS – 993), так и использование того же порта с возможностью переключения на защищённое соединение посредством команды START TLS (например, ESMTP) Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ
Средства разработки OpenSSL – http://www.openssl.org/ лицензия типа Apache GnuTLS – http://www.gnu.org/software/gnutls/ лицензия GPL/LGPL Петрозаводский госуниверситет, А. В. Соловьев, 2007 СЕТЕВЫЕ ТЕХНОЛОГИИ