Рекомендуем:

первоклассный dvd проигрыватель сейчас у нас. .

сумки coco chanel.
сокеты ssl как использовать как происходит шифорвание в SSL

Защищенные сокеты SSL

SSL (англ. Secure Sockets Layer — уровень защищённых сокетов) — криптографический протокол, который обеспечивает установление безопасного соединения между клиентом и сервером. SSL изначально разработан компанией Netscape Communications. Впоследствии на основании протокола SSL 3.0 был разработан и принят стандарт RFC, получивший имя TLS.

Протокол обеспечивает конфиденциальность обмена данными между клиентом и сервером, использующими TCP/IP, причем для шифрования используется асимметричный алгоритм с открытым ключом. При шифровании с открытым ключом используется два ключа, причем любой из них может использоваться для шифрования сообщения. Тем самым, если мы используем один ключ для шифрования, то соответственно для расшифровки нужно использовать другой ключ. В такой ситуации мы можем получать защищенные сообщения, публикуя открытый ключ, и храня в тайне секретный ключ. Протокол SSL состоит из двух под-протоколов: протокол SSL записи и рукопожатия. Протокол SSL записи определяет формат, используемый для передачи данных. Протокол SSL включает рукопожатие с использованием протокола SSL записи для обмена сериями сообщений между сервером и клиентом, во время установления первого соединения. Для работы SSL требуется, чтобы на сервере имелся SSL-сертификат.

SSL предоставляет канал, имеющий 3 основные свойства:
-Аутентификация. Сервер всегда аутентифицируется, в то время как клиент аутентифицируется в зависимости от алгоритма.
-Надежность. Обмен сообщениями включает в себя проверку целостности.
-Частность канала. Шифрование используется после установления соединения и используется для всех последующих сообщений.

В протоколе SSL все данные передаются в виде записей, объектов, состоящих из заголовка и передаваемых данных. Передача начинается с заголовка. Заголовок содержит либо два, либо три байта кода длины. Причем, если старший бит в первом байте кода равен единице, то запись не имеет заполнителя и полная длина заголовка равна двум байтам, иначе запись содержит заполнитель и полная длина заголовка равна трем байтам. Код длины записи не включает в себя число байт заголовка. Длина записи 2х байтового заголовка:

Протокол был разработан для передачи только текста в кодировке ASCII, кроме того, первые спецификации требовали обнуления старшего бита каждого передаваемого байта. Это не даёт возможности отсылать текст на национальных языках (например, кириллице), а также отправлять двоичные файлы (такие как изображения, видеофайлы, программы или архивы). Для снятия этого ограничения был разработан стандарт MIME, который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME, позволяющий отправлять двоичные файлы так же просто, как текст.
RecLength=(byte[0] & 0x7F<<8) | byte[1];
Здесь byte[0] и byte[1] первый и второй полученные байты.
Длина записи 3х байтового заголовка:
RecLength = (byte[0] & 0x3F<<8)|byte[1]; Escape = (byte[0] & 0x40)!=0; Padding = byte[2];
Здесь Padding определяет число байтов добавленных отправителем к исходному тексту, для того чтобы сделать длину записи кратной размеру блока шифра, при использовании блочного шифра

Теперь отправитель «заполненной» записи добавляет заполнитель после имеющихся данных, и шифрует это все. Причем содержимое заполнителя никакой роли не играет. Из-за того что известен объем передаваемых данных, то заголовок может быть сформирован с учетом Padding.
В свою очередь получатель записи дешифрует все поле данных и получает полную исходную информацию. Затем производится вычисление значение RecLength по известному Padding, и заполнитель из поля данных удаляется.
Данные записи SSL состоят из 3х компонент:
MAC_Data[Mac_Size] — (Message Authentication Code) — код аутентификации сообщения
Padding_Data[Padding] — данные заполнителя
Actual_Data[N] — реальные данные

Когда записи посылаются открытым текстом, очевидно, что никакие шифры не используются. Тогда длина Padding_Data и MAC_Data равны нулю. При использовании шифрования, Padding_Data зависит от размера блока шифра, а MAC_Data зависит от выбора шифра.
Пример вычисления MAC_Data:
MacData = Hash(Secret, Actual_Data, Padding_Data, Sequence_Number);

Значение Secret зависит оттого, кто (клиент или сервер) посылает сообщение. Sequence_Number — счетчик, который инкрементируется как сервером, так и клиентом. Здесь Sequence_Number представляет собой 32х битовый код, передаваемый хэш-функции в виде 4х байт, причем первым передается старший байт. Для MD2, MD5 MAC_Size равен 16 байтам (128 битам). Для 2х байтового заголовка максимальная длина записи равна 32767 байтов, а для 3х байтного заголовка 16383 байтов. Значительноe использование протокола SSL привело к формированию протокола HTTPS (Hypertext Transfer Protocol Secure), поддерживающего шифрование. Данные, которые передаются по протоколу HTTPS «упаковываются» в криптографический протокол SSL или TLS, тем самым обеспечивая защиту этих данных. Такой способ защиты широко используется в мире Веб для приложений, в которых важна безопасность соединения, например в платежных системах. В настоящее время HTTPS поддерживается наиболее популярными браузерами. В отличие от HTTP, для HTTPS по умолчанию используется TCP-порт 443.

Изначально виртуальные частные сети (VPN) на основе SSL разрабатывались как дополнительная и альтернативная технология удаленного доступа на основе IPsec VPN. Но в виду ряда факторов: достаточная надежность и недороговизна — сделали эту технологию привлекательной для организации VPN. Также SSL получил широкое применение в электронной почте.

| ADSL | BitTorrent | Dial-Up | DNS | DNSSEC | FTP | Gnutella | Gopher | HTTP | IMAP | IPv6 | IRC | MMORPG | POP3 | Skype | SMTP | SSH | SSL | TLS | TCP IP | UseNET | VoIP | WAIS | WAP | I-радио | I-TV | Мессенджеры | SPDY и ISDN | Оптоволокно | Эл.Платежи |



| Главная | Контакт |

© 2006 - 05.2012 WebTag.ru

Rambler's Top100