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

Вид материалаДиплом
Реализация модели
Подобный материал:
1   2   3   4   5   6   7

Реализация модели


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

Хранение

В качестве хранилища данных в MS SQL 2008 была смоделирована база со следующей структурой:




Описание основных таблиц:
  1. tblCertificates – таблица с данными о сертификатах X.509: Используется для привязки сертификата к пользователю по ключу сертификата, а также для того чтобы ограничить сертификаты с истекшим сроком годности
  2. tblFeatures – таблица с данными о геометрических объектах. Сохраняет геометрическое описание объектов в формате wkt, например POLYGON ((19544.124000072479 20419.421250343323, 19545.213250160217 20420.004850387573, 19552.176050186157 20424.084899902344, 19554.143700122833 20425.196550369263, 19558.846950054169 20428.048649787903, 19555.394199848175 20433.693249702454, 19554.185850143433 20435.915049552917, 19542.061049938202 20458.084050178528, 19541.528900146484 20458.777000427246, 19529.195499897003 20451.684749603271, 19527.024099826813 20450.280799865723, 19544.124000072479 20419.421250343323))
  3. tblLayers – таблица со слоями, содержащими геометрические объекты:
  4. tblRestrictions – ограничения по масштабу для объектов и слоев:
  5. tblRoleMembers – таблица соединяющая роли с пользователями:
  6. tblRoles – роли:
  7. tblUserInfo – информация о пользователе отделена от сущности самого пользователя:
  8. tblUsers – таблица, представляющая пользователя в системе:
  9. tblConstraints – таблица ограничивающая права доступа отдельных субъектов(пользователь, компания или роль) к отдельным объектам карты



Программные модули имеют следующую структуру





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

Подготовительный этап:

Администратором производится искажение картографической информации при помощи программы для преобразования координат; далее измененные данные заносятся в виде геометрических объектов в таблицу tblFeatures на сервер баз данных, где объединяются в слои tblLayers. Составляется свод правил и ограничений: так как видимость некоторых объектов на карте не предусмотрена вовсе или ограничивается масштабом (этот принцип используется в законодательных документах), а также степенью секретности, которой должен обладать субъект для просмотра объекта. Используя свод правил и ограничений на просмотр геоданных, составленный исходя из законодательства или политики безопасности, администратор географических данных накладывает ограничение на масштаб, в котором будет виден объект (tblRestrictions), и метку секретности(SafetyLabel) для каждого объекта из tblFeatures или tblLayers. Администратор системы заносит в таблицу tblUsers и tblUsersInfo информацию о пользователях(логины, имена, контакты), использующих услугу, заносит информацию о компаниях, отмечает субъектов соответсвующей меткой секретности, а также формирует ограничения на доступ субъектов к объектам(tblConstraints). Далее пользователи, получившие eToken устройство на руки и создавшие для него личный пароль для доступа, связываются сертификационным центром посредством модуля для записи сертификата (как Windows приложение или как Web-плагин), указывают необходимые данные и отправляют запрос на выдачу сертификата. Администратор системы просматривает данные, указанные пользователем, при помощи административного модуля, дает разрешение Windows CA на создание цифрового сертификата, связывает данный сертификат с конкретной учетной записью пользователя(в tblUsers) и сохраняет информацию о сертификате в базу данных (tblCertificates). Пользователь получает уведомление о создании сертификата, и при помощи модуля для записи сохраняют сертификат на eToken для дальнейшего использования

Рабочий этап:

Пользователь запускает клиентское приложение, предоставляя ему свое eToken устройство и введя личный пароль от eToken; в начале работы модуль считывания eToken извлекает информацию о клиентском сертификате из устройства и инициирует процесс установки сеанса. После того как Windows CA подтвердит наличие в хранилище сертификата данного пользователя, с пользователем будет установлен сеанс связи через SSL туннель. Далее начинает работать связь «WCF точка доступа – WCF сервис» поверх SSL туннеля, и передача потока данных ведется через данную связь. Далее в WCF сервисе выполняется процедура инициализации, также использующая информацию о сертификате. Через поле PublicKey в таблице tblCertificates WCF сервис подтверждает валидность данного сертификата по его открытому ключу(который однозначно идентифицирует сертификат на выдавшем его сервере) , а также определяет связанного с ним пользователя( через ссылку UserID) и подтверждает право данного пользователя на пользование всей системы в целом. Далее на сервере формируется временный сеансовый идентификатор и отправляется клиентскому модулю, который сохраняет данное значение на протяжение всего сеанса работы с программой( необходимо для снятия необходимости проверять сертификат при каждом запросе). В модуль визуализации данных через связь «WCF точка доступа – WCF сервис» загружается некоторая общедоступная картографическая основа и общая информация.

Пользователь выбирает необходимый ему для работы масштаб. При этом в модуле «WCF точка доступа» формируется пакет данных, состоящий из масштаба(в формате координат ограничивающего прямоугольника) и из сеансового идентификатора пользователя. Данный пакет через связь «WCF точка доступа – WCF сервис» отправляется на сервер в виде запроса.

WCF после получения запроса выполняет следующую последовательность действий. В базу геоданных отправляется запрос на выбор всех объектов попадающих в указанную пользователем ограничивающую область. По сеансовому ключу определяется пользователь. Далее этот набор данных подвергается фильтрации:
  • Метка секретности (SafetyLabel) объекта должна быть меньше либо равна метке секретности пользователя (соответствующий уровень доступа). При этом проверка метки слоя имеет больший приоритет(т.е. если метка объекта соответствует метке пользователя, а метка слоя нет, то объект не будет отфильтрован в результирующий набор);
  • RestrictionID – масштаб, указанный пользователем должен попадать в диапазон ограничений, указанных для объекта(MinVisibleScale, MaxVisibleScale), а также в аналогичный диапазон для слоя данного объекта;
  • Необходимо проверить таблицу tblConstraints - нет ли ограничений на данный объект или слой(FeatureID, LayerID), попадает ли текущий пользователь в эти ограничения (UserID), и если попадает, то имеется ли у него право на чтение (ReadAccess) для данного ограничения; либо в данных ограничениях имеются роли (RoleID), в которые попадает по таблице tblRoleMembers текущий пользователь.

Отфильтрованные по данным условиям объекты в виде набора данных отправляются пользователю по связи «WCF точка доступа – WCF сервис» отправляются в клиентский модуль, где передаются модулю визуализации, который формирует графическое представление данных. Необходимо напомнить, что эти данные не являются точными, так как в них имеются искаженные координаты, которые, между тем, позволяют создать приблизительное представление о свойствах и характеристиках данного объекта.

Если пользователю необходимы более точные данные для подсчетов, либо увеличение масштаба ведет к критическим несоответствиям с исходными данными, то к работе подключается модуль преобразования данных. Он использует алгоритм, обратный алгоритму искажению координат. При этом на вход алгоритма подаются искаженные данные и пароль, а на выходе имеем точные данные, которые уже можно использовать на производстве и при проведении различного рода работ.