BC/NW
2010, №1 (16): 13.2
ПРИМЕНЕНИЕ ТЕХНОЛОГИИ
ASP.NET К РАЗРАБОТКЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ ПО
МАТЕМАТИКЕ
Г.Э. Малюков, Н.А. Агафонова
(ИГЭУ, г. Иваново)
Информационная система
разрабатывалась на прогрессивной технологии создания веб-приложений
и веб-сервисов ASP.NET с
использованием языка C#. ASP.NET по сравнению
с предшественницей ASP компилируется и выполняется
быстрее, упрощает и ускоряет процесс создания веб-приложений,
предоставляя программисту множество удобных средств создания веб-страниц.
Целью работы было создание
информационной справочной системы по курсу высшей математики на базе платформы
.NET.
Система предоставляет удобный
структурированный доступ к базе знаний по математике с системой поиска нужной
информации. Реализован поиск по одному слову и по словосочетаниям. Организация
поиска следующая: используется определенная структура данных, при которой
информация разбита на категории (по папкам) и на отдельные темы (по файлам).
Поиск нужного слова или словосочетания по всем этим файлам будет создавать
очень серьезную нагрузку на сервер и при попытке одновременного поиска даже
десятью пользователями вполне может привести к перегрузке. В силу этого
использовался другой метод. После добавления или изменения информации в базе
администратор системы может запустить индексирование. Автоматическая система
индексации проходит по всем файлам базы и составляет специальные XML-файлы с определенной структурой, при которой каждому
уникальному слову соответствует набор статей, в которых оно встречается.
Оптимизированный алгоритм составления этих баз выполняется очень быстро (в
пределах нескольких секунд для больших объемов
данных), к примеру, для 20 статей общим объемом около 3-4 тысяч слов индексация
занимает менее секунды. После этой процедуры поиск производится с очень высокой
скоростью, при этом вероятность перегрузки сервера стремится к нулю.
Информационная система находится в
открытом доступе в интернете. В связи с этим при разработке было уделено особое
внимание безопасности информации и учетных записей пользователей. Вопрос о
защите нужно рассматривать, так как даже на справочные сайты начинающие хакеры
могут производить атаки, например, в целях кражи паролей пользователей.
На многих страницах сайта после ввода
определенной информации система дополнительно запрашивает ввод кода
безопасности. Это сделано в целях защиты от автоматических программ регистрации
и рассылки нежелательной информации. Защита сделана по принципу ввода числового
ответа на запрос вычисления арифметического выражения, записанного в словесной
форме. Словесная запись делает маловероятным взлом защиты методом наложения
маски или подобными алгоритмами распознавания написанного выражения. Такая
защита проста и достаточно надежна.
Особое внимание уделено защите
учетных записей пользователей. Многие пользователи не заботятся о надежности
своих паролей и часто создают учетную запись с паролем вида «12345». Подобные
пароли очень быстро взламываются методом грубой силы, то есть методикой прямого
перебора. Одним из методов защиты является шифрование по алгоритму MD5, который
составляет уникальный 16-байтный хеш переданной
строки. Но при однократном хешировании этого обычно недостаточно, поскольку в
сети существуют так называемые rainbow-таблицы, содержащие множество хешей (в том числе для алгоритма MD5) для всевозможных
паролей. Поэтому многие зашифрованные однократным проходом алгоритма пароли
легко могут быть взломаны. Одна из методик защиты в таких случаях –
многократное хеширование, к примеру, циклическое. Это надежно, поскольку
rainbow-таблицы уже для двойных хешей весят десятки
гигабайт, не говоря о многократном хешировании. Но такой метод довольно
затратный в силу медлительности алгоритма MD5, и применение циклического
шифрования при проверке корректности введенного пароля очень ресурсоемко, а если
учесть нагрузку от нескольких пользователей, то становится вполне вероятной
перегрузка сервера. В силу этих обстоятельств был выбран другой путь – метод
составления соленых хешей. Соленый
хеш составляется следующим образом: при регистрации в
базу записывается случайно сгенерированная «соль» - строка из конечного набора
символов. Вместо пароля записывается MD5-хеш строки, составленной из
соединенного хеша пароля и соли. Получается довольно
устойчивый к взлому хеш, который сломать сложно в
силу случайности генерируемой соли. При увеличении количества символов в соли взломостойкость быстро растет, и даже пароли «12345»
становятся стойкими.
Данная информационная система
предоставляет быстрый, удобный и безопасный доступ к достоверным данным из
области математики, что избавляет пользователя от необходимости искать
непроверенную информацию по различным недостоверным источникам в сети интернет.