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» становятся стойкими.

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