Источник: Информационные управляющие системы и компьютерный мониторинг (ИУС и КМ-2010) / Сборник материалов I всеукраинской научно технической конференции студентов, аспирантов и молодых ученых. - Донецк, ДонНТУ - 2010, I том с. 345-349.
Рассмотрены и проанализированы подходы, которые могут быть использованы при создании систем онлайн оплаты коммунальных услуг. Обосновать методы, выбранные для создания модели взаимодействия пользователя с базой данных для обеспечения максимальной безопасности.
В наше время трудно представить себе мир, в котором нет баз данных. Для хранения огромных массивов информации пока не было придумано ничего лучше. И очень актуальным вопросом является проблема защиты этих данных от несанкционированных действий посторонних лиц. Особенно остро вопрос защиты данных встает при написании баз данных хранящих информацию об использовании электронной валюты, в нашем случае системы онлайн оплаты коммунальных услуг.
Рассмотреть и проанализировать подходы, использующиеся для создания систем онлайн оплаты, Предложить свой подход, и обосновать целесообразность его использования на примере создания системы онлайн оплаты коммунальных услуг.
Наиболее распространенным методом работы с базами данных является использование системы управления базами данных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных. Но главным показателем эффективности СУБД является её защищенность. Технологии, как защиты, так и взлома, не стоят на месте, и то, что сегодня может считаться абсолютно безопасным, завтра морально устаревает. Существующие СУБД, кроме всего прочего, для защиты информации использующую несколько уровней доступа, определяющих права пользователей на доступ к данным. Однако хотя эта система и очень удобна, но в плане безопасности остается не идеальной. Пароль может быть разглашен самим пользователем или добыт любым другим путем. Чтобы эффективно защитить свою базу данных можно вообще не давать пользователю возможность удаленного администрирования. В случае с созданием системы для онлайн оплаты коммунальных платежей пользователю достаточно лишь получить некоторые данные из базы, относящиеся к своей учетной записи, и, на основе полученных данных, произвести некоторые действия. Для администрирования можно разработать отдельную клиентскую программу, в которой будет возможность работать только локально - непосредственно на сервере с установленной базой. Но и этого не достаточно для полной защиты. Рассмотрим несколько способов, которые используются для организации взаимодействия клиента с базой данных.
Первый способ взаимодействия – двухуровневая архитектура «клиент-сервер». В этом случае база данных помещается на сетевом сервере, однако программа клиента лишена возможности прямого доступа к БД. Доступ к БД регулируется специальной программой – сервером БД.
Взаимодействие сервера БД и клиента реализуется с помощью SQL-запросов, которые формирует и отсылает серверу клиент. Сервер, приняв запрос, выполняет его и возвращает результат клиенту. В клиентском приложении в основном осуществляются интерпретация полученных от сервера данных, реализация пользовательского интерфейса, а также реализация части бизнес-правил. Двухуровневая архитектура клиент сервер представлена на рисунке 1.
Рис. 1. Двухуровневая архитектура «клиент-сервер».
Второй способ взаимодействия – трехуровневая архитектура «клиент-сервер». В этой модели процесс, выполняющийся на клиенте, отвечает, за интерфейс с пользователем. Обращаясь за выполнением услуг к прикладному компоненту. Прикладной компонент реализован как группа процессов, выполняющих прикладные функции, и называется сервером приложения. Все операции над информационными ресурсами баз данных выполняются компонентами доступа к ресурсам. Таким образом, в отличие от предыдущей архитектуры, обмен между клиентом и сервером осуществляется посредством специально разработанного набора команд (API), а не SQL запросам. Набор этих команд определяется разработчиком, что позволяет ему ограничить набор допустимых действий с данными доступным клиенту. Трехуровневая архитектура клиент сервер представлена на рисунке 2.
Рис. 1. Трехуровневая архитектура «клиент-сервер».
При разработке системы онлайн оплаты коммунальных услуг целесообразней использовать трехуровневую архитектуру клиент-сервера. В нашем случае клиентская программа, написанная на actionscript 3, загружается на компьютер пользователя как обычный флеш файл с сервера. Запускаясь, эта программа подключается к серверу, написанному на C#, использующую базу данных MS SQL. Запросы клиента передаются в формате XML, который на стороне сервера расшифровывается и на основе полученных данных формируется SQl запрос к базе. При этом сервер перед формированием запроса проверяет все приходящие команды. Набор команд обмена между сервером и клиентом очень ограничен и позволяет выполнять только определенный набор действий с базой данных. Однако такой подход для создания узко специализированных СУБД оправдывает малую функциональность большой защищенностью базы данных.
Формат XML очень удобен для передачи данных, но он является открытым и понятным даже для обычного человека. Так что для защиты данных пользователей при передаче по сети используются стандартные методы шифрования передаваемых данных.
Реализуемая программа-клиент будет располагаться на компьютере с установленным http сервером, и будет доступна любому пользователю, имеющему доступ в Интернет. Загружаться на компьютер пользователя и запускаться она будет как обычный флеш-ролик через браузер, и не будет требовать дополнительной установки. Для работы программы-клиента на компьютере пользователя должен будет установлен любой браузер и Flash Player версии не ниже 10.0.
Программа сервер для большей безопасности может располагаться на любой другой серверной машине без установленных http и ftp серверов и защищенной firewall-ом. Такая локализация частей программ значительно повышает безопасность сервера с базами данных и исключает возможность удаленного доступа к файлам программы и базы данных.
При переходе по ссылке пользователь загружает и запускает программу-клиента. При запуске программы предлагается ввести данные для осуществления подключения к учетной записи пользователя. Программа предлагает ввести «Лицевой счет квартиры», Фамилию, имя, отчество», и «Номер квартиры». Поле «Лицевой счет квартиры» известно только пользователю и исполняет роль пароля. Окно ввода данных пользователем представлено на рисунке 3.
Рис. 3. Окно ввода данных пользователем.
После авторизации пользователю предлагается квитанция, в которую он вносит данные про использование им коммунальных услуг. Окно квитанции представлено на рисунке 4. При нажатии на кнопку «Оплатить» внесенные данные отправляются на сервер где проходят проверку на корректность и вносятся в базу.
Рис. 4. Окно квитанции.
Также существует возможность просмотра текущих тарифов при нажатии на кнопку «Тарифы». Окно тарифов представлено на рисунке 5.
Рис. 5. Окно тарифов.
Подход к защите данных, предложенный в статье, является более эффективным для программ такого рода как система оплаты коммунальных услуг, чем использование существующих СУБД. Это достигается использованием клиент серверной архитектуры, где для взаимосвязи клиента с сервером, используется низкий уровень сетевого взаимодействия.
Этот подход к защите данных может быть использован во многих областях жизни от социальной и промышленной сферы до игровой индустрии. Однако написание таких приложений это трудоемкий и длительный процесс. В случае если защита не так важна, или необходима возможность удаленного администрирования, можно использовать стандартные подходы организации работы с базами данных.