Бабаянц Владислав Витальевич Технология защищенного хранения и передачи картографической информации диплом
Вид материала | Диплом |
Реализация модели |
- Система хранения коллекций информационных ресурсов, предназначенная для хранения, обработки,, 33.84kb.
- Билет 5 Процесс передачи информации, источник и приемник информации, канал передачи, 17.58kb.
- Задачи дисциплины овладение теоретическими знаниями в области технологии передачи, 122.14kb.
- Тематическое планирование учителя информатики, 115.43kb.
- 3 лекция Носители, знаки, символы и сигналы. Виды сигналов. Свойства информации. Способы, 287.92kb.
- Оперативный план работы с персоналом Источники информации о персонале и предъявляемые, 18.1kb.
- М. В. Ломоносова Факультет Вычислительной Математики и Кибернетики Кафедра асвк диплом, 658.77kb.
- Устройства хранения информации, 57.74kb.
- Примерная программа наименование дисциплины технология хранения и переработки продукции, 328.32kb.
- Информационный процесс, 76.37kb.
Реализация модели
В соответствие с вышеизложенной концепцией мною была реализована ниже описанная система. Необходимо отметить, что созданная система является не задействованным в какой-либо работе или производстве комплексом, а представляет собой лишь модель, призванную продемонстрировать работоспособность данной идеи, а также образец для построения подобных систем в будущем, что обуславливает наличие лишь необходимых для работы компонентов (однако не ограничивает в возможности добавить дополнительные функции)
Хранение
В качестве хранилища данных в MS SQL 2008 была смоделирована база со следующей структурой:
Описание основных таблиц:
- tblCertificates – таблица с данными о сертификатах X.509: Используется для привязки сертификата к пользователю по ключу сертификата, а также для того чтобы ограничить сертификаты с истекшим сроком годности
- 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))
- tblLayers – таблица со слоями, содержащими геометрические объекты:
- tblRestrictions – ограничения по масштабу для объектов и слоев:
- tblRoleMembers – таблица соединяющая роли с пользователями:
- tblRoles – роли:
- tblUserInfo – информация о пользователе отделена от сущности самого пользователя:
- tblUsers – таблица, представляющая пользователя в системе:
- 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 сервис» отправляются в клиентский модуль, где передаются модулю визуализации, который формирует графическое представление данных. Необходимо напомнить, что эти данные не являются точными, так как в них имеются искаженные координаты, которые, между тем, позволяют создать приблизительное представление о свойствах и характеристиках данного объекта.
Если пользователю необходимы более точные данные для подсчетов, либо увеличение масштаба ведет к критическим несоответствиям с исходными данными, то к работе подключается модуль преобразования данных. Он использует алгоритм, обратный алгоритму искажению координат. При этом на вход алгоритма подаются искаженные данные и пароль, а на выходе имеем точные данные, которые уже можно использовать на производстве и при проведении различного рода работ.