Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка системы обновления ПО.docx
Скачиваний:
24
Добавлен:
23.03.2016
Размер:
120.23 Кб
Скачать

1.2. Шифрование сетевых пакетов средствами .Net.

Платформа .NETпредоставляет огромные возможности по обеспечению безопасности данных. Классы для шифрования находятся в пространстве имёнSystem.Security.Cryptographyи реализуютнесколько симметричных и ассиметричных алгоритмов.

В качестве алгоритма шифрования в данной курсовой работе выбран Triple-DES. Этот алгоритм является улучшенной версией DES и основное его отличие заключается в том, что он использует ключи шифрования размером 128, 192 и 256 бит (Алгоритм DES считается ненадёжным, так как использует ключи длиной всего 56 бит) [8].

Triple-DFS это алгоритм шифрования с симметричным ключом, то есть предусматривают использование одного и того же ключа как для шифрования, так и для дешифрации данных.

Средства для реализации симметричных шифров реализованы в классе TripleDESCryptoServiceProvider, который содержит методы:

  • CreateEncryptor – возвращает контекст (интерфейс ICryptoTransform) для криптографических трансформаций данных шифровальщика.

  • CreateDecryptor – возвращает контекст (интерфейс ICryptoTransform) для криптографических трансформаций данных дешифровальщика.

  • GenerateKey и GenerateIV – генерируют ключи.

Алгоритм Triple-DESпредставляется следующим образом:

где – ключи для каждогоDES-шага,– входные данные, которые нужно шифровать[7].

Шифрование происходит следующим образом:

Дешифрование происходит следующим образом:

Таким образом, TripleDESвыполняет три раза алгоритмDESи длина его ключа также в три раза большеDES, то есть равна 168 битов. Для DES 64-разрядный ключ делился на 8 байтов, в каждом байте используется только 7 битов, поэтому на самом деле длина ключа равна 56 битов, а не 64, поэтому длина ключа 3DES на самом деле равна 168, а не 192 бита.

TripleDES с различными ключами имеет длину ключа равную 168 бит, но из-за атак «встреча посередине» эффективная криптостойкость составляет только 112 бит. Для успешной атаки наTriple-DES потребуется околобит известного открытого текста,шагов,циклов DES-шифрования ибит памяти.

1.3. Протокол tcp.

В качестве протокола передачи данных в сети будет использоваться TCP. Протокол реализован в контексте клиента и сервера. В отличии от других протоколов,TCPявляется надёжным благодаря следующим качествам:

  • сверка контрольных сумм для проверки целостности передаваемых пакетов

  • осуществление повторного запроса данных в случае потери данных

  • устранение дублирования при получении двух копий одного пакета.

Передача пакетов начинается с установления соединения (в отличии от UDP). Состояние сеанса описывается благодаря флагам.

Closed

Начальное состояние узла. Фактически фиктивное

Listen

Сервер ожидает запросов установления соединения от клиента

Syn-sent

Клиент отправил запрос серверу на установление соединения и ожидает ответа

Syn-received

Сервер получил запрос на соединение, отправил ответный запрос и ожидает подтверждения

Established

Соединение установлено, идёт передача данных

Fin-wait-1

Одна из сторон (назовём её узел-1) завершает соединение, отправив сегмент с флагом FIN

Close-wait

Другая сторона (узел-2) переходит в это состояние, отправив, в свою очередь сегмент ACK и продолжает одностороннюю передачу

Fin-wait2

Узел-1 получает ACK, продолжает чтение и ждёт получения сегмента с флагом FIN

Last-ack

Узел-2 заканчивает передачу и отправляет сегмент с флагом FIN

Time-wait

Узел-1 получил сегмент с флагом FIN, отправил сегмент с флагом ACK и ждёт 2*MSL секунд, перед окончательным закрытием соединения

Closing

Обе стороны инициировали закрытие соединения одновременно: после отправки сегмента с флагом FIN узел-1 также получает сегмент FIN, отправляет ACK и находится в ожидании сегмента ACK (подтверждения на свой запрос о разъединении)

Таблица 1. Состояния сеанса TCP.

Соединение разделяют на следующие стадии:

  1. установка соединения

    1. послание серверу сегмента с номером последовательности и флагом SYN

    2. если клиент получает сегмент с флагом SYN, то он запоминает номер последовательности и посылает сегмент с флагом ACK

    3. если сервер в состоянии SYN-RECEIVED получает сегмент с флагом ACK, то он переходит в состояние ESTABLISHED

  2. передача данных

  3. завершение соединения

    1. посылка серверу от клиента флагов FIN и ACK на завершение соединения.

    2. сервер посылает клиенту флаги ответа ACK, FIN, что соединение закрыто.

    3. после получения этих флагов клиент закрывает соединение и в подтверждение отправляет серверу ACK, что соединение закрыто.

Из недостатков TCPотмечают уязвимость к атакамTCPResetиTCPhijacking.