Бабаянц Владислав Витальевич Технология защищенного хранения и передачи картографической информации диплом

Вид материалаДиплом
Обзор технологий и понятий
Выпуклой триангуляцией
Использование HTTPS-соединения.
Подобный материал:
1   2   3   4   5   6   7

Обзор технологий и понятий


Триангуляция Делоне активно применяется при анализе пространственных данных для различных задач типа «построение минимального остова» или для создания триангуляционной модели поверхности. Рассмотрим некоторые определения, которые облегчат понятие триангуляции

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

триангуляция Делоне

Необходимо отметить, что алгоритмы построения триангуляции имеют трудоемкости от O(n2) до O(nlogn).

Теперь рассмотрим преобразование геометрических фигур, используемых для построения сетки

Треугольник-треугольник




Необходимо Получить (x1,y1) = f(x2,y2)

1. Введем обобщенные координаты u, v по сторонам 1-2 и 1-3 соответственно.

2. Тогда для x1, y1:

(1)


3. Аналогично (1) для x2, y2:

(2)


4. В матричном виде (1) и (2) выглядят так:

(3)

и

(4)

где:



5. Разрешая (4) относительно u, v, получим:

(5)

где:


6. Подставляя (5) в (3) окончательно получим:

или



MS SQL 2008

В качестве СУБД была выбрана SQL 2008 из-за нескольких преимуществ данной системы:

Система SQL Server 2008 позволяет обращаться к данным из любого приложения, разработанного с применением технологий Microsoft .NET и Visual Studio, а также в пределах сервисно-ориентированной архитектуры и бизнес-процессов. SQL Server 2008 позволяет создать надежную, производительную, интеллектуальную платформу, отвечающую всем требованиям по работе с данными

SQL Server 2008 обладает комплексной поддержкой работы с пространственными данными, позволяя использовать и расширять имеющуюся информацию о местоположениях. Поддержка приложений, способных обрабатывать сведения о географическом положении, в конечном итоге способствует принятию более обоснованных решений.
  • Комплексная поддержка пространственных данных. Приложения могут воспользоваться поддержкой пространственных типов данных в SQL Server 2008.
  • Высокопроизводительные средства обработки пространственных данных. SQL Server 2008 позволяет достичь высоких показателей производительности при работе с пространственными данными.
  • Поддержка картографических приложений. Пространственные данные SQL Server 2008 можно интегрировать с приложениями и службами, обрабатывающими картографическую информацию.
  • Тип данных GEOGRAPHY позволяет хранить геодезические пространственные данные и оперировать ими. Тип данных GEOMETRY позволяет хранить плоскостные пространственные данные и оперировать ими.
  • Пространственные индексы повышают производительность запросов.
  • Благодаря поддержке пространственных стандартов и спецификаций создание или интеграция приложений, оперирующих расположениями, позволяет расширить возможности пространственных типов данных.

WCF

В качестве платформы для связи с клиентом и в качестве транспортного слой была выбрана технология Windows Communication Services

WCF позволяет абстрагироваться от способа передачи данных - при разработке сервиса и клиента в общем случае неважно, как будут передаваться данные, где будет работать сервис и где клиент (в т.ч. можно запустить их в рамках локальной машины). Основная философия WCF: сосредоточение на бизнес-операциях, ради которых делается сервис. После этого можно развернуть его и заставить работать по tcp, по http и т.д., настроить параметры безопасности, способ размещения сервиса - в IIS, в службе Windows или как-то иначе. При этом остаётся возможность тонкой настройки сервиса. Wcf предоставляет достаточно удобную хорошо настраиваемую и расширяемую модель; технология ориентирована на кроссплатформенность, а также обладает поддержка REST-модели и WS-спецификации.

eToken

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

Назначение:
  • Строгая двухфакторная аутентификация пользователей при доступе к защищенным ресурсам (компьютерам, сетям, приложениям).
  • Аппаратное выполнение криптографических операций в доверенной среде (в микросхеме ключа: генерация ключей шифрования, симметричное и асимметричное шифрование, вычисление хэш-функции, выработка ЭЦП).
  • Безопасное хранение критически важных данных - криптографических ключей, профилей пользователей, настроек приложений, цифровых сертификатов и пр. в энергонезависимой памяти ключа.
  • eToken интегрирован и поддерживается большинством современных операционных систем, бизнес-приложений и продуктов по информационной безопасности в качестве средства аутентификации и авторизации.

Преимущества:
  • Мобильность для пользователя и возможность работы в "недоверенной среде" (например, с чужого компьютера) - за счет того, что ключи шифрования и ЭЦП генерируются ключом аппаратно и не могут быть перехвачены.
  • Безопасное использование – воспользоваться им может только его владелец, знающий PIN-код авторизации.
  • Удобство работы – ключ выполнен в виде брелка со световой индикацией режимов работы и напрямую подключается к USB-портам, которыми сейчас оснащено 100% компьютеров, не требует специальных считывателей, блоков питания, проводов и т.п.
  • USB-ключи eToken имеют небольшой размер, легко размещаются на связке с ключами, выпускаются в герметичных полупрозрачных пластиковых корпусах, имеют световую индикацию режимов работы.
  • Смарт-карты eToken представляют собой стандартную пластиковую карточку с контактной площадкой для считывателя. На нее может быть нанесена фотография владельца и другие данные, которые используются для визуальной идентификации пользователя при проходе в помещения.
  • Использование одного ключа для решения множества различных задач – входа в компьютер, входа в сеть, защиты канала, шифрования информации, ЭЦП, безопасного доступа к защищенным разделам Web-сайтов, информационных порталов, доступ в помещения и т.п.
  • Возможность одновременной работы с несколькими ключами eToken.
  • Быстрое встраивание. eToken поддерживает современные стандарты (PKCS#11, Microsoft Crypto API) и имеет собственные API, легко встраивается как в существующие приложения, так и в новые. Поддержка PC/SC стандарта позволит без труда перейти на использование eToken.



Использование HTTPS-соединения.

Протокол SSL в стеке сетевых протоколов располагается между протоколом транспортного уровня TCP и протоколом прикладного уровня HTTP. Данный стек протоколов принято называть HTTPS (Hypertext Transfer Protocol over SSL).


Прикладной уровень

HTTP

Secure Sockets Layer

SSL

Транспортный уровень

TCP

Сетевой уровень

IP


Протокол SSL в стеке протоколов TCP/IP

Протокол SSL был разработан компанией Netscape в 1994 году и впоследствии стал общепринятым стандартом. Поддержкой протокола занимается организация IETF (Internet Engineering Task Force). Последней версией протокола является SSL 3.0, протокол TLS (Transport Layer Security) является модификацией SSL 3.0 и иногда обозначается как SSL 3.1. Протокол SSL выполняет следующие функции:

- Аутентификация взаимодействующих сторон. Аутентификация основывается на предъявлении X.509-сертификата, или цепи сертификатов. Цепью сертификатов называется последовательность сертификатов, в которой первый сертификат – сертификат проверяемого участника соединения, каждый последующий – сертификат удостоверяющего центра, подтверждающего подлинность предыдущего сертификата, последний сертификат последовательности является самоподписанным сертификатом удостоверяющего центра. Проверяющая сторона производит ряд действий: определяет корректна ли предоставленная цепь сертификатов (проверка содержащихся в сертификатах цифровых подписей), проверяет срок действия сертификата, удостоверяется, что сертификаты цепи не были отозваны соответствующими удостоверяющими центрами, определяет имеет ли сертификат необходимые расширения для использования при установке SSL-соединения. Если все проверки пройдены и хотя бы один сертификат в цепи является доверенным для проверяющей стороны, то аутентификация считается успешно пройденной. На следующих этапах установки соединения указанный в сертификате открытый ключ используется для передачи по сети сеансового ключа, так что предъявитель сертификата, не обладая закрытым ключом, соответствующим открытому ключу сертификата, не сможет установить SSL-соединение. В процессе установки соединения может производиться как аутентификация только одной из сторон, так и двусторонняя аутентификация.

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

Протокол SSL/TLS включает в себя как аутентификацию сервера (и клиента опционально), так и шифрование данных. Протокол использует ассиметричную систему шифрования данных. Ассиметричная система шифрования – система, при которой для шифрования и расшифрования используются ключи, связанные между собой математически, но не идентичные.

Для осуществления SSL/TLS-соединения, необходимо, чтобы сервер имел цифровой сертификат, подписанный третьей доверенной стороной. Подписание SSL/TLS-сертификата дает клиенту необходимые гарантии в том, что сервер, к которому он присоединяется, действительно является тем, за кого себя выдает.

SSL/TLS-протокол является протоколом с центром доверия. Это значит, что в системе присутствует третья сторона (центр доверия), которой доверяют все абоненты. Центр доверия занимается ведением справочников открытых ключей абонентов. Для того, чтобы проверяющий убедился в подлинности, ему достаточно проверить полученный от доказывающего ключ, сравнив его со значением в справочнике.

Работа протокола SSL/TLS состоит из следующих шагов:



Алгоритм работы SSL/TLS
  1. Клиент посылает запрос на установление соединения с Web-сервером (сообщение ClientHello). Данное сообщение содержит версию SSL/TLS клиента и спецификации шифров.
  2. После получения сообщения ClientHello, сервер проверяет, поддерживает ли он версию программы клиента и хотя бы одну из спецификаций шифров. Сервер посылает в ответ сообщение ServerHello, в котором указывает тип шифра и длину ключа. В это же сообщение включен сертификат сервера.
  3. Клиент проверяет цифровую подпись сертификата с помощью открытого ключа сервера, опубликованного в справочнике центра доверия. Положительный результат проверки подписи является доказательством подлинности Web-сервера. В противном случае клиент разрывает установленное соединение.
  4. Клиент генерирует предварительный секретный ключ сессии и шифрует его на открытом ключе сервера, и только Web-сервер, зная парный секретный ключ, может выполнить дешифрование. Кроме того, сервер может запросить аутентификацию у клиента. Клиент должен послать ему свой сертификат либо сообщение об ошибке, если не располагает необходимой информацией.
  5. Сервер пытается аутентифицировать клиента и при неудаче прерывает сеанс. В случае положительного исхода, он дешифрует предварительный секретный ключ.
  6. Клиент и сервер выполняют одинаковые манипуляции с предварительным секретным ключом и вычисляют сеансовый секретный ключ. Используя его, они вычисляют сеансовые ключи, необходимые для шифрования и расшифрования сообщениями и проверки целостности данных.
  7. Клиент посылает серверу сообщение об окончании генерации ключей и о том, что все его сообщения отныне шифруются сеансовыми ключами. Сервер посылает аналогичное сообщение.

Стойкость SSL/TLS-протокола во многом зависит от стойкости применяемых протоколов шифрования. Для пересылки ключей сессии используется протокол RSA, при шифровании трафика между сервером и клиентом применяются различные криптографические протоколы, обычно с симметричными ключами (DES, 3-DES, AES). Симметричная система шифрования – система, при которой для шифрования и расшифрования используется один ключ. Обычно работает быстрее, чем протоколы ассиметричной криптографии, поэтому используются для шифрования большого количества данных, однако являются менее стойкими. Для проверки целостности данных используется хеширование. Хэш-функция – односторонняя математическая функция, принимающая на вход произвольное количество битов и возвращающая строку определенной длины. Используется для обнаружения модификации текста, т.к. основным требование к хэш-функции является влияние изменение одного бита входного текста на весь результат. В качестве протоколов вычисления хэш-функции используются протоколы MD5 и SHA (в SSL) и HMAC (TLS).

Для обеспечения функционирования в информационной системе протокола SSL необходимо создание инфраструктуры управления ключами и сертификатами, в литературе таковую инфраструктуру принято называть PKI (Public Key Infrastructure). Основными элементами наиболее распространённых реализаций PKI являются:
  1. Удостоверяющий центр (Certificate Authority (CA)). В функции удостоверяющего центра входит подпись сертификатов участников информационной системы, проверка действителен ли данный сертификат или был отозван владельцем (обычно такая проверка выполняется по протоколу OCSP (Online Certificate Status Protocol)).
  2. Центр регистрации (Registration Authority (RA)). Является необязательным элементом, выполняет регистрацию владельцев сертификатов.
  3. Центр проверки (Validation Authority (VA)). Также является необязательным элементом, на который возлагается функция проверки действительности сертификата.

Помимо данных основных элементов инфраструктуры каждый участник имеет собственное хранилище ключей и доверенных сертификатов. Для разработки стандартов PKI, работа которых основана на использовании сертификатов X.509, IETF создало специальную рабочую группу PKIX. Данная группа разработала множество использующихся на сегодняшний день стандартов, в том числе стандарт на использование алгоритмов ГОСТ при создании PKI.