Java Secure Socket Extension (JSSE) библиотеки являются частью стандартной версии платформы J2SE 1.4. Предыдущие версии необходима установка расширением стандартной библиотеки, либо из эталонной реализации вс или с третьей стороной. Поддержка библиотеки предлагают для безопасной обработке HTTP просьб и ответов, также известного как HTTP или HTTPS над SSL. Более конкретно, JSSE библиотеки предоставляют функции, необходимые для аутентификации, шифрования и целостности. Эта поддержка гарантирует, что данные передаются по сети является частным и не передается в открытом виде (то есть, текст, который доступен для всеобщего просмотра и понятно).
Javax.net.ssl пакет содержит API для общения через Secure Sockets Layer (SSL) и Transport Layer Security (TLS) протоколы. SSL и TLS это две тесно связанные протоколов для обеспечения сетевого трафика. Аутентификация осуществляется через использование сертификатов X.509 — это аутентификация доступна как для клиента и сервера, а не только на сервере. Кроме того, предложение JSSE библиотек кодирования посредством секретного ключа и сертификата обмен открытыми ключами. Шифрование гарантирует целостность сообщения, предотвращение лицом в середине связи от перехвата сообщений, изменяя его, и передать его как если бы она не менялась.
Если вы не заинтересованы в прямом использовании сокетов и отправки HTTP самих команд, вы можете использовать HttpsURLConnection классов, которая была продемонстрирована на 10 февраля 2004 Технология Совет HttpURLConnection Использование веб-страниц. HttpsURLConnection класс включает в себя полную поддержку таких функций, как переадресация, подключение попыток, прокси переговоров, и (в J2SE V5) Cookies.
Если Вы заинтересованы в работе с сокетами напрямую, либо для HTTP / HTTPS сделок или для пользовательских приложений уровня использования, вы можете объединить javax.net.ssl пакет с заводов в javax.net. Это позволяет связываться через защищенное соединение HTTPS, над которым работает. Если вы знакомы с общения через соединение HTTP сокета, вы увидите, что работать с SSL-сокет основаны не на много отличается. Вы просто рассуждают над другой порт, 443 вместо 80, для нормального движения Сети.
Чтобы обеспечить защищенную связь, нужно сначала приобрести Socket завода. С завода, вы создаете сокет для конкретного хоста и порт. Вместо вызова конструктора сокета, вы спросите SocketFactory для сокета. SocketFactory вы используете версию по умолчанию SSL завода, javax.net.ssl.SSLSocketFactory:
|
После этого процесс по существу такой же, как использование HTTP основе сокета. Вы посылаете запрос на сервер, а также прослушивать для ответа:
|
Вот программа, SSLClient, что ставит все куски вместе:
|
При запуске программы, можно передать имя хоста вы хотите общаться. Рассмотрим Tomcat Бег на месте, либо подключиться к sun.com. Обратите внимание, что в порту постоянный SSLClient является 443. Вы можете изменить порт HTTPS постоянной в программе, если вам нужно, или вы можете изменить программу таким образом, что постоянное указан в командной строке.
Результаты общения через порт HTTPS могут отличаться от результатов, которые выдаются при обмене данными по регулярному порта HTTP. Рассмотрим сохранении объема производства и его просмотра в вашем браузере. Вы должны обрезать стандартных значений заголовков, таких как дата и время и сервер. Конечно, вы должны оставить на сервере значения, если вы заинтересованы в том, что сервер сайта использует. Например, подключение к www.sun.com через SSLClient программы:
java SSLClient www.sun.com
раскрывает использование SunONE WebServer 6.0 в различных областях заголовок:
HTTP/1.1 200 OK Server: SunONE WebServer 6.0 Date: Tue, 03 Aug 2004 22:30:32 GMT P3p: policyref="http://www.sun.com/p3p/Sun_P3P_Policy.xml", ...
Клиенты должны проверить полномочия получил, чтобы убедиться, что они говорили принимающей они думают они. Использование socket.getSession (), getPeerCertificates () или getPeerPrincipal (). Это нетривиальное для кого-то перенаправить соединение с вредоносными хозяин, и это является одним из способов, чтобы проверить против этого. Вы можете использовать интерфейс HostnameVerifier проверить имя хоста.
Заботятся о безопасности разработчиков (и пользователей) следует рассмотреть возможность загрузки неограниченного Java Cryptography Extension (ОКО) политика файлы с J2SE 1.4.2 страница загрузки. Версия ОКО, которая поставляется с J2SE 1.4 является сильным, но ограниченным. При условии, что вы живете в одной из подходящих стран, добавил keysize поддержки обеспечивает гораздо более сильный уровень криптографии JSSE возможностей, чем в одиночку.
Чтобы узнать больше о ОКО см. ОКО справочник.
Чтобы узнать больше о JSSE см. JSSE справочник.
Copyright (C) 2004-2005 Sun Microsystems, Inc
Все права защищены.