Приймаємо замовлення на контрольні, курсові, дипломні.
Виконання та супровід до захисту.
Всі міста України.
8 (044) 537-22-28
8 (093) 290-55-01


Назва: Протокол SSL
Тип: Реферати
Мова: Українська
Розмiр: 840,86 KB
Скачувань: 25


Скачати реферат українською    

1 2 3 4 5 6 7 8 9 10 11 12 13

Схема работы приложения очень проста: я создаю серверный сокет ServerSocket и жду входящих соединений на определенный порт, номер которого указывается в файле конфигурации. Затем после поступления запроса создается соответствующий клиентский сокет для чтения запросов от инициирующей связь стороны и сразу же создается сокетное соединение с тем хостом и портом на который входящий запрос должен быть перенаправлен. Дальнейшие действия просты и очевидны: необходимо каждый байт приходящий от стороны инициирующей соединение, (давайте для определенности будем называть ее сторона “A”) перенаправлять к стороне “B” (информация о ней находится в файле конфигурации)) и соответственно каждый байт который посылает нам сторона “B” должна быть направлена стороне “A”. Разумеется что данные действия должны выполняться асинхронно и независимо друг от друга, поэтому лучшего решения чем создать два класса потока, класса производных от Thread и перекрыть в нем метод run так чтобы в цикле читать байт из входного потока и писать в выходной поток. И цикл должен будет продолжаться до тех пор пока сокетное соединение не будет закрыто.

Следующим шагом будет добавление защиты пересылаемой информации, для этого на обоих сторонах соединения необходимо будет пользоваться для пересылки информации не обычными сокетами, а сокетами SSL и, внимание, нам необходимо будет затребовать аутентификацию клиента делающего соединение к серверу. Однако это будет после а пока я привожу файл конфигурации необходимый для работы просто "Redirector"-а.

Давайте кратко рассмотрим основные моменты работы программы:

Информация о перенаправлениях хранится в файле конфигурации, каждый элемент Route задает порт локальной машины, который будет слушаться на предмет входящих запросов, а также соответственно адрес и порт удаленной машины, куда запрос должен быть переправлен.

Для хранения подобных учетных записей перенаправления был создан вспомогательный класс Route содержащий три поля, служащих для хранения информации, которую я назвал шагом раньше.

При вызове конструктора класса AbstractRedirector в качестве параметра передается имя файла настроек. Из данного файла читаются все элементы Route и помещаются в специальный массив. После создания объекта класса для начала непосредственно обслуживания должна быть вызвана функция synchroRun. Данная функция создает набор экземпляров безымянного класса производного от Thread в данном классе перекрыта функция run, которая в цикле читает побайтно информацию из сокета входящего запроса и отправляет его в поток вывода для сокета исходящего соединения. Данный цикл прекращается, когда сокетное соединение с любой из двух сторон будет прервано.

Как демонстрацию принципов работы данного приложения привожу следующую СЛС.

Рисунок 3.

Рисунок 4.

Код примера. Защищаем сетевой туннель.

А теперь давайте добавим возможность выполнения туннелирования через протокол SSL. Общая схема реализованного приложения практически идентична общей схеме создания VPN которую я приводил ранее. Небольшие отличия я привожу в виде следующей СЛС

Рисунок 5.

Разумеется что для работы следующего кода нам потребуется внести изменения в файл конфигурации. Необходимо будет добавить новый элемент "SSL-section".



E:mdocskolyacbuilder_projects

httpd-sslstore


bigsecret

bigsecret



И, наконец, я привожу исходный код примера. Обратите внимание на то что в классе SSLRedirector порожденном от AbstractRedirector я перекрыл метод initForRun добавив в него чтение "SSL" секции файла конфигурации, теперь каждому элементу Route необходимо будет добавить как характеристику признак того следует ли выполнять защиту описываемого туннеля. И следовательно мне пришлось расширить класс Route, создав класс SSLRoute и добавив в него булевскую переменную, выполняющую роль признака надо или нет выполнять защиту туннеля. Разумеется, что изменения также затронули и ключевые методы getServerSocket и getClientSocket. Теперь эти методы способны в зависимости от настроек переданного им в качестве параметра объкта SSLRoute создать или просто ServerSocket и соответственно Socket или же если поле plainToSecret установлено в true, то будет создан SSLSocket-ы.


Скачати україномовний реферат    


1 2 3 4 5 6 7 8 9 10 11 12 13



Украинская Баннерная Сеть