Разработка системы контроля доступа к файлам

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,62 Мб
  • Опубликовано:
    2012-12-12
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка системы контроля доступа к файлам

Введение

Современное общество невозможно представить без информационных технологий. Если каких то 20 лет назад доступ к компьютерам имела лишь малая прослойка населения, то сейчас наличие компьютера и навыков работы с ним является обязательным во многих отраслях. Персональный компьютер плотно вошёл наш быт: автоматизация работы, виртуальные развлечения и, конечно же, хранение информации. В двадцатом веке практически вся информация хранилась физически, в основном на бумажных носителях. Всеобщая компьютеризация позволила перенести огромные объёмы картотек на компактные носители. Рядовые же пользователи получили возможность компактно хранить важную, да и порой просто незаменимую информацию.

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

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

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

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

Перечень условных обозначений

файл доступ интерфейс программный

ИТ - информационные технологии

ФЗ - федеральный закон

ПДн - персональные данные

ИСПДн - Информационная Система Персональных Данных

НСД - несанкционированный доступ

КС - корпоративная сеть

СВТ - средства вычислительной техники

АС - автоматизированные системы

ПО - программное обеспечение

СУБД - система управления базами данных

ADO - ActiveX Data Objects - «Объекты Данных ActiveX»

WCF - Windows Communication Foundation - «Фонд Коммуникации Windows»- Windows Presentation Foundation - «Фонд Визуализации Windows»- Data Protection Application Programming Interface - «Интерфейс защиты данных прикладного программирования»

GIV - Guideline for Information Valuation - «Инструкция по Оценке Стоимости Информации»

1. Анализ методов и средств контроля доступа к файлам

.1 Основные понятия

Рассматривать предметную область невозможно без отрыва от основных понятий компьютерной безопасности. Правовые нормы регулируются Законодательными Актами, указами Президента Российской Федерации, Постановлениями Правительства Российской Федерации, Доктриной Информационной Безопасности.

Информация - это сведения о лицах, предметах, событиях и процессах (независимо от формы их представления), используемые в целях получения знаний или практических решений.

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

В статье 5, ФЗ «Об информации, информационных технологиях и защите информации» от 27.7.2006 г. № 149-ФЗ[11], сказано: "Информация в зависимости от категории доступа к ней подразделяется на общедоступную информацию, а также на информацию, доступ к которой ограничен федеральными законами (информация ограниченного доступа)".

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

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

Перечень сведений, отнесенных к государственной тайне» опубликован в ст. 5 Закона РФ 1993 г. № 5485 «О государственной тайне»[12]. Существует три степени секретности такой информации:

Особой важности

Совершенно Секретно

Секретно

Перечень сведений конфиденциального характера опубликован в Указе Президента РФ от 6.03.97 г. № 188 «Об утверждении перечня сведений конфиденциального характера»[13]. К видам конфиденциальной информации можно отнести следующее:

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

Тайна следствия и судопроизводства - сведения, составляющие тайну следствия и судопроизводства, а также сведения о защищаемых лицах и мерах государственной защиты, осуществляемой в соответствии с ФЗ от 20 августа 2004 г. № 119-ФЗ и другими нормативными правовыми актами Российской Федерации

Коммерческая тайна - сведения, связанные с коммерческой деятельностью, доступ к которым ограничен в соответствии с Гражданским кодексом Российской Федерации и федеральными законами

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

Служебная тайна - служебные сведения, доступ к которым ограничен органами государственной власти в соответствии с Гражданским кодексом Российской Федерации и федеральными законами

Сведения о сущности изобретения - сведения о сущности изобретения, полезной модели или промышленного образца до официальной публикации информации о них

Согласно национальному стандарту РФ «Информационная технология. Практические правила управления информационной безопасностью» (ГОСТ Р ИСО/МЭК 17799-2005)[14] информационная безопасность - защита конфиденциальности, целостности и доступности информации:

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

Целостность - неизменность информации в процессе ее передачи или хранения

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

Информация так же имеет свою стоимость. Оценка стоимости информации делится условно на осязаемые и неосязаемые активы. К осязаемым отнесем средства обслуживания информационных технологий (ИТ) - аппаратное обеспечение, сетевое обеспечение (среда передачи данных), запасные части, документация и зарплата персонала для поддержки функционирования систем. Стоимостные характеристики этих активов обычно известны либо легко вычисляемы.

Стоимость неосязаемых активов должна учитывать два вида расходов: расходы на замену/восстановление программного обеспечения и данных, расходы при нарушении конфиденциальности/целостности/доступности.

Определение стоимости неосязаемых активов - задача не всегда простая. Существуют отдельные методики такой работы, например, Guideline for Information Valuation (GIV) - Инструкция по Оценке Стоимости Информации.

В Указе Президента РФ №188 от 6 марта 1997 года о "Перечне сведений конфиденциального характера"[15], персональные данные стоят на первом месте.

В ФЗ-№152 определяются такие понятия как Персональные данные и Оператор. Персональные данные - любая информация, относящаяся к определенному или определяемому на основании такой информации физическому лицу (субъекту персональных данных), в том числе: фамилия, имя, отчество, год, месяц, дата и место рождения, адрес, семейное, социальное, имущественное положение, образование, профессия, доходы, другая информация. Оператор - государственный орган, муниципальный орган, юридическое или физическое лицо, организующие и (или) осуществляющие обработку персональных данных, а также определяющие цели и содержание обработки персональных данных.

Согласно ФЗ-152, оператор, обрабатывающий персональные данные, должен выполнять ряд требований, обеспечивающий конфиденциальность обрабатываемой им информации. "Оператор обязан принимать организационные и технические меры, для защиты персональных данных от НСД, уничтожения, изменения, блокирования, копирования, распространения и иных неправомерных действий"

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

Доктрина служит основой для:

формирования государственной политики в области обеспечения информационной безопасности Российской Федерации;

подготовки предложений по совершенствованию правового, методического, научно-технического и организационного обеспечения информационной безопасности Российской Федерации;

разработки целевых программ обеспечения информационной безопасности Российской Федерации.

Доктрина информационно безопасности Российской Федерации развивает Концепцию национальной безопасности Российской Федерации применительно к информационной сфере[16].

1.2 Анализ проблем безопасности работы с файлами

Если для организаций стоимость информации, а, следовательно, и возможные потери и стоимость восстановления при нарушении её целостности, конфиденциальности, доступности, ещё возможно посчитать, то пользовательские данные нередко являются невосполнимыми и незаменимыми. Фактически, отношение стоимости обеспечения состояния безопасности информации пользователя к важности пользовательских данных является моральной дилеммой в том случае, когда сама информация не приносит непосредственного дохода. Доподлинно известно множество случаев, когда люди при пожаре спасали фотографии в первую очередь. В то же время защита целостности личной информации пользователя на компьютере постоянно подвергается опасности. Несмотря на очевидные опасности потери невосполнимых данных, даже близкие к ИТ сфере люди зачастую пренебрегают защитой важной информации.

В ситуации общего доступа к информационным ресурсам защита конфиденциальности, целостности, доступности информации встаёт особенно резко. Организация хранение файлов на общем носителе при возможном одновременном доступе нескольких пользователей достаточно распространённая задача. В тех же случаях, когда необходимо сложное ограничение на доступ, стоимость построения системы резко увеличивается, как и сложность её администрирования и использования.

Как показала практика, злоумышленник может получить доступ к файлам организации множеством способов:

Получение доступа к сети извне

Обманное получение доступа

Кража оборудования

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

В руководящих документах Гостехкомиссии Российской Федерации приведены следующие основные способы несанкционированного доступа к информации в корпоративных сетях[17][18][19][20][21]:

Непосредственное обращение к объекту с конфиденциальной информацией (например, с использованием вредоносного программного обеспечения, установленного на компьютер пользователя несанкционированно)

Создание программных и технических средств, выполняющих обращение к объекту в обход средств защиты (например, с использованием случайно или намеренно оставленных разработчиком этих средств, так называемых люков)

Модификация средств защиты для осуществления несанкционированного доступа (например, внедрение программных закладок)

Внедрение в технические средства СВТ или АС программных или технических механизмов, нарушающих структуру и функции этих средств для осуществления несанкционированного доступа (например, путем загрузки на компьютере иной, незащищенной операционной системы)

В общем виде, угрозы безопасности в корпоративных сетях разделяются на две категории. Это непреднамеренные и умышленные угрозы. К непреднамеренным угрозам относятся:

Ошибки в проектировании КС

Ошибки в разработке программных средств КС

Случайные сбои в работе аппаратных средств КС, линий связи, энергоснабжения

Ошибки пользователей КС

Воздействие на аппаратные средства КС физических полей других электронных устройств (при несоблюдении условий их электромагнитной совместимости) и др.

К умышленным угрозам относятся:

Несанкционированные действия обслуживающего персонала КС (например, ослабление политики безопасности администратором, отвечающим за безопасность КС)

Несанкционированный доступ к ресурсам КС со стороны пользователей КС и посторонних лиц, ущерб от которого определяется полученными нарушителем полномочиями

Анализируя угрозы информационной безопасности в КС, следует учитывать, что КС, как и большинство других сетей, подключена к Интернет. Внутренние пользователи должны получать выход в Интернет, а внешние пользователи должны получать доступ к внутрикорпоративной сети. Это создает ряд угроз общего характера, которые могут дать злоумышленнику возможность воспользоваться уязвимостью, через которую он может проникнуть к важным сетевым ресурсам.

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

Второй является угроза подключенным к Интернет хостам общего доступа.

В случае общего доступа к информационным ресурсам необходимо обеспечить возможность простого сохранения и получения данных пользователей. При этом необходимо предотвратить возможность получения доступа злоумышленника к файлам пользователей.

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

Отдельной проблемой стоит целесообразность использования средств защиты информации для рядового пользователя. Как было сказано выше, оценка стоимости данных составляющих духовную ценность крайне сложна и зависит от множества изменчивых факторов. При решении о внедрении системы контроля доступа к файлам пользователь больше опирается на такие факторы как время, потраченное на внедрение, усилия и необходимая база знаний. Так же нужно принять во внимание необходимость в автоматизации многих процессов, так как среднестатистический пользователь компьютера не готов каждый день проводить определённые одинаковые манипуляции. Ну и, безусловно, система контроля доступа к файлам должна быть интуитивно понятна, легко развёртываться и обладать низкой стоимостью.

1.3 Анализ существующих средств контроля доступа к файлам

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

Способов контроля доступа к файлам на данный момент на рынке представлено множество. Условно их можно разделить по следующим видам:

Сервисы сетевого доступа и службы каталогов

Системы сокрытия файлов

Системы контроля версий

Системы контроля доступа к файлам

1.3.1 Сервисы сетевого доступа и службы каталогов

Сервисы сетевого доступа представлены приложениями для работы с FTP, FTPS и т.д. (xTy FTP, FAR Navigator и т.д.). Службы каталогов (Active Directory, OpenLDAP и т.д.) представляют собой средство иерархического представления ресурсов, принадлежащих некоторой отдельно взятой организации, и информации об этих ресурсах. Под ресурсами могут пониматься материальные ресурсы, персонал, сетевые ресурсы и т. д.

Недостатки:

Сложная система сохранения резервных копий каждого файла. Отсутствие автоматизации в данном вопросе

Отсутствие возможности быстро скрыть/отобразить файл в общем списке

Отсутствие гибкости расположения ссылок файлов

Отсутствие гибких прав по отношению к каждому файлу

Грубая система объединения файлов

Непосредственно недостатки самих протоколов

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

1.3.2 Системы сокрытия файлов

Представлены на сегодняшний день множеством приложений (Windows Guard, Rohos, Folder Guard). Несмотря на свою распространённость, обладают целым рядом фатальных недостатков:

Отсутствие гибкости администрирования

Отсутствующие или слабо представленные возможности работы с несколькими пользователями

Зачастую, низкий уровень безопасности

Сложность миграции развёрнутой системы

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

Слабые возможности создания резервных копий файлов. Отсутствие автоматизации в данном вопросе

Примитивный способ отображения списка файлов

Отсутствие возможности быстро скрыть/отобразить файл в общем списке

Отсутствие гибкости расположения ссылок файлов

Из вышеперечисленного очевидно следует полная несостоятельность использования систем сокрытия фалов для решения вопроса контроля доступа к файлам.

1.3.3 Системы контроля версий

Пожалуй, наиболее ёмкий вид, на котором необходимо остановиться подробнее. Системы управления версиями (Version Control System) опираются на централизованную модель, где имеется единое хранилище данных (документов), которое управляется специальным сервером, выполняющим основной набор функций по управлению версиями. Когда пользователь системы контроля версий работает с документами, он должен в первую очередь получить необходимую ему версию документа из указанного хранилища системы контроля версий. Зачастую, создаётся копия документа, она же «рабочая копия», на компьютере пользователя или в зоне его прав. Так же сохраняется и может быть получена пользователем любая из предыдущих версий, которая должна быть выбрана по следующим атрибутам: номер версии, дата создания, идентификатор, пользователь, а так же по другим признакам. После окончания редактирования пользователем, документ возвращается в хранилище VCS. Соответственно, в отличие от других систем, старая версия документа не стирается, но сохраняется как одна из предыдущих версий. Её можно получить в любой момент. Сервер системы контроля версий нередко использует дельта-компрессию - это способ хранения документов, в котором только изменения между различными версиями сохраняются. Дельта-компрессия позволяет значительно уменьшить объём данных, для хранения, но увеличивает время записи и уменьшает надёжность системы. Так как, зачастую, самой востребованной версией является именно последняя версия файла, система контроля версий может при сохранении новой версии сохранять её целиком, а потом заменить в своём хранилище ранее сохранённую последнюю версию на разницу между этой и последней версией. ClearCase и другие некоторые системы поддерживают сохранение версий обоих видов: большинство версий сохраняется с использованием дельта-компрессии, но время от времени (по специальной команде администратора) выполняется процедура сохранения версий всех файлов в полном виде. Данный подход гарантирует максимально полное восстановление истории в случае повреждения системы хранения.

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

Очень часто бывает, что над одним проектом одновременно работает целая группа человек или коллектив. Если несколько человек изменяют один и тот же файл, то один из них может случайно отменить изменения, сделанные другим или получить неправильную версию файла. Системы управления версиями позволяют отслеживать подобные коллизии, но и предлагают программные средства их решения. Подавляющее большинство систем контроля версий имеет возможность автоматически объединить произведённые изменения, сделанные различными разработчиками. Но подобное автоматическое объединение изменений, зачастую, реально возможно только для текстовых файлов (например, исходные коды) и только при условии, что изменялись разные части этого файла (например, различные методы класса в исходном коде). Подобное ограничение связано с тем, что подавляющее большинство систем управления версиями ориентированы на обслуживание процесса разработки программного обеспечения, когда как исходные коды программ хранятся в текстовых файлах. Если автоматическое объединение выполнить не удалось, система может предложить решить проблему вручную.

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

Дополнительно, системы управления версиями, зачастую, предоставляют целый ряд других возможностей:

Позволяют создавать различные варианты одного и того же документа, например, ветки, обладающие общей историей изменений до точки ветвления и с различным - после неё

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

Возможность комментирования действий пользователя в журнале изменений. Например пользователь может указать причину удаления метода не только в коде, но и в системе контроля версий

Разграничивает права доступа пользователей, разрешая или запрещая чтение или изменение данных, в зависимости от того, кто запрашивает это действие[8].

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

Крупная система разрабатываемая подразделением Rational Software компании IBM с 1992 года. Предоставляет огромные возможности для работы с файлами, перекрывая практически любые подобные задачи. В этом и скрывается фатальный недостаток ClearCase: большая громоздкость и требование к оборудованию, вкупе с высокой стоимостью не позволяют использовать её как лёгкую систему контроля доступа к файлам. К тому же отсутствие возможности шифрования данных передаче их при помощи MultiSite плохо сказывается на безопасности.

Популярная централизованная система управления версиями на лицензии GNU GPL. В силу прекращения поддержки в 2008 году формально является устаревшей. К тому же обладает несколькими недостатками, не позволяющими её использовать как полноценную систему контроля доступа к файлам:

Невозможно переименовать файл или директорию так, чтобы это изменение было отражено в истории

Ограниченная поддержка юникода и не-ASCII имен

Публикации изменений не атомарны

Наборы изменений не поддерживаются

Неэффективное хранение бинарных файлов

Оригинальный GNU CVS не поддерживает разграничения прав между пользователями репозитория

Графический интерфейс требует отдельного приложения

Совместимая с CVS система фактически перенимает множество недостатков CVS. Главным из которых является консольный интерфейс. Популярный же GUI для Windows WinCVS подходит исключительно для людей с высоким уровнем компьютерной грамотности в силу некоторой нелогичности и перегруженности интерфейса.

Выпущенная в 2004 году система призванная сменить лидирующий в то время CVS. На данный момент активно используется и внедряется множеством сообществ разработчиков, придерживающихся разработке открытого ПО (сообщества, которые в прошлом использовали CVS в их числе). К ним относятся так же такие известные проекты, как Mono, MediaWiki, FreeBSD, Free Python, Pascal, Ruby, Apache, Haiku, AROS и GCC. Система очень активно используется и в закрытых проектах и корпоративной сфере. Хостинг Subversion, в том числе для проектов обладающим открытым кодом, также предоставляют такие хостинг-проекты как Google Code, Tigris.org, SourceForge.net и BountySource. Однако такая распространённая система не лишена недостатков, главным из которых является сложность работы пользователей, дороговизна развёртывания и отсутствие встроенного механизма шифрования. Вышеперечисленные недостатки критичны для полноценной и простой системы контроля доступа к файлам.

Perforce

Система контроля версий с очень схожими с Subversion возможностями и обладающая теми же недостатками.

Одна из первых систем контроля версий. В силу слабой поддержки и крайне низкой интуитивности на роль полноценной и простой системы контроля доступа к файлам не подходит.от Microsoft. Несмотря на высокие возможности и достаточно дружественный интерфейс низкая стабильность не позволяет использовать её как полноценную систему контроля доступа к файлам.

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

1.3.4 Системы контроля доступа к файлам

Довольно слабо представленные на рынке системы непосредственно направленные на решение поставленной задачи. В качестве примера будут рассмотрены недостатки системы FileControl:

Аппаратная зависимость.

Работа непосредственно с файлами, а не с ссылками.

Неограниченные права администратора

Высокая стоимость для физических лиц.

Работа на непосредственно носителях данных.

Отсутствие возможности раздельного редактирования фалов разными пользователями.

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

1.3.5 Комплексный анализ недостатков существующих решений

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

Уязвимости:

Системный администратор: в силу должности, системный администратор, зачастую, обладает полными правами на добавление, изменение, а главное, чтение файлов. Безусловно, подобное отношение упрощает и ускоряет администрирование, но в то же время является важной уязвимостью, так как, как и новый, так и старый, проверенный, системный администратор может воспользоваться своими возможностями в пользу, как потенциального злоумышленника, так и во вред кампании

Пользователи/сотрудники: даже теоретические возможности по нанесению ущерба могут быть предварены в жизнь злоумышленником, особенно если он является сотрудником. Зачастую, даже сверхнадёжный сотрудник может случайна разгласить тайну, которая может подставить в опасность безопасность файлов как организации, так и физического лица.

СВТ: любой компьютер уязвим для вредоносного ПО. Явное хранение файлов, а так же сохранение их в незащищённом виде после окончания работы является сильной уязвимостью.

Общие недостатки всех систем:

Взаимоисключение свойств интуитивности и мощности.

Непропорциональная стоимость и сложность развёртывания возможностям контроля доступа к файлам.

Современное средство, выполняющее роль контроля доступа к файлам должно отвечать следующим требованиям:

Обеспечение независимости пользовательских файлов друг от друга.

Возможность контроля редактирования файла при доступе нескольких пользователей.

Устойчивость метода хранения к несанкционированному доступу.

Независимость работоспособности системы от человеческого фактора.

Соразмерность стоимости и сложности развёртывания стоимости данных.

1.4 Формулировка общих требований к разрабатываемой системе

По итогам анализа проблем безопасности работы с файлами, существующих решений описанной проблемы необходимо выделить общий набор требований к разрабатываемой системе контроля доступа к файлам. Система должна объединять достоинства всех существующих на данный момент решений, но избежать их недостатков:

Низкая стоимость развертывания программного продукта.

Низкий порог вхождения для пользователя.

Широкие возможности по распределению прав доступа.

Защищенность конфиденциальности данных от внутреннего нарушения.

Представлены основные понятия и определения.

Описана проблематика предметной области и произведено описание угроз.

Произведен анализ существующих средств выполняющих контроль доступа к файлам.

Выявлены недостатки существующих средств выполняющих контроль доступа к файлам.

Сформулированы требования к разрабатываемому средству контроля доступа к файлам.

2. Проектирование системы

.1 Постановка задачи дипломного проектирования

Необходимо разработать систему контроля доступа к файлам, удовлетворяющую следующим условиям:

Ссылочное отображение файлов

Удовлетворение модели «Пользователь - Группа - Файл» (рис. 2.1).

Рисунок 2.1 - Модель «Пользователь-Группа-Файл»

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

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

Разграничение файлов по уровню доступа на личные и глобальные.

Хранение личных файлов пользователей в зашифрованном виде.

Хранение файлов в файловой системе только во время сеанса работы.

Администратор не должен обладать правами чтения личных файлов пользователя.

Возможность добавления/получения целых групп файлов.

Возможность частичного удаления (сокрытия) файлов.

Простота регистрации пользователя.

Автоматическая регистрация изменений каждого файла с последующим сохранением прежней версии.

2.2 Выбор способа хранения файлов

Для осуществления собственной роли система контроля доступа к файлам должна осуществлять хранение файлов в недоступном для несанкционированного чтения и модификации виде. На данный момент имеется множество способов хранения, однако, в силу требования низкой стоимости развёртывания, дорогостоящие способы хранения рассматриваться не будут. Так же не будут рассматриваться заведомо небезопасные и противоречащие текущему законодательству Российской Федерации способы хранения данных.

Файловая система

Расположение файлов пользователей непосредственно в файловой системе в защищённом разделе в зашифрованном виде.

Достоинства:

Высокая скорость обработки данных.

Логичная система хранения файлов.

Простота реализации.

Отсутствие необходимости в привлечении стороннего ПО.

Недостатки:

Низкий уровень безопасности. На защищённый раздел злоумышленник может проникнуть в обход Windows.

Слабые возможности по гибкой работе с политиками доступа к файлу. Гарантированно быстрое отображение группы файлов возможно только в случае расположения их в одной директории. Отображение файлов, распределённых по всему защищённому разделу, занимает длительное время, соответственно построение списка файлов пользователя будет слишком длительным.

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

Сложность развёртывания. Требуется отдать отдельный раздел, достаточного объёма.

Бинарный файл или группа бинарных файлов.

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

Достоинства:

Компактность.

Высокий уровень защищённости.

Отсутствие необходимости в привлечении стороннего ПО.

Недостатки:

Сложность реализации. Необходимо разработать метод хранения и алгоритмы чтения/записи/поиска.

Нелогичная система хранения файлов.

Требование к неиндексированному поиску. Так как при расшифровке индекса злоумышленник получит доступ к файлам, ограниченный только шифрованием самого потока данных каждого файла.

Слабые возможности по расширяемости алгоритма записи/чтения/поиска.- файл

Запись потока байтов нужных файлов в XML файле

Достоинства:

Простота реализации

Высокая скорость поиска

Логичная система хранения данных

Высокие возможности по распределённому доступу к файлам

Отсутствие необходимости в привлечении стороннего ПО

Недостатки:

Большие требования к объёму

Низкая скорость доступа в случае шифрования XML файла, в обратном случае низкий уровень защищённости

База данных

Хранение в базе данных потока данных, содержащих зашифрованные файлы пользователей

Достоинства:

Высокая скорость доступа

Высокий уровень защищённости

Быстрый поиск и отображение списка/дерева

Удобная возможность работать с данными

Логичная система хранения файлов

Недостатки:

Требование стороннего ПО

Возможные сложности при развёртывании

Все 4 способы хранения данных полностью удовлетворяют требованиям к системе контроля доступа к файлам, однако в силу высокой сложности развёртывания хранение файлов в файловой системе использоваться не будет.

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

Безусловно, способ хранения в XML файле благодаря своим достоинствам очень хорошо подходит для решения данной задачи, однако, в силу низкой компактности хранения данных и требовании в шифровании самого файла, данный метод хранения не может являться оптимальным.

Хранение данных в базе данных, безусловно, является наилучшим вариантом. Так как конечной целью является уменьшение сложности развёртывания системы, возможные проблемы, связанные с установкой СУБД могут быть критичными, так что необходимо выбрать достаточно надёжную систему.

2.3 Идеология построения интерфейса

Разработанный кампанией Xerox оконный интерфейс взаимодействия с пользователем стал на сегодняшний день основным, практически вытеснив ранее доминирующую консоль. Несмотря на, безусловно, богатые возможности консоли и низкую требовательности к аппаратным ресурсам, оконный интерфейс предлагает интуитивность работы с программным обеспечением. Именно интуитивность интерфейса работы с пользователем позволяет, набрав определённый набор стереотипов, разрабатывать программы, не требующие высокого порога вхождения.

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

Работая на компьютере, у пользователей складывается определённый набор стереотипов. Зачастую он отличается от стереотипов, приобретённых житейским опытом работы с документами. Не редко подобные отличия выливаются в коллизию реакции на событие. Фактически, пользователей можно разделить на 3 типа:

У пользователя стереотипы, приобретённые в жизни, сильно преобладают над стереотипами, приобретёнными при работе с ПК. Разработка интерфейса, направленного на работу с подобным типом пользователя требует не только отображения житейских стереотипов, но и отображения полной информации непосредственно в интерфейсе.

У пользователя стереотипы, приобретённые при работе на ПК, достаточны для работы с графическим интерфейсом операционной системы. При построении интерфейса, рассчитанного на данный тип пользователей, требуется в первую очередь соблюдать общие нормы расположения управляющих элементов и связей данных.

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

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

Отображение информации по возможным действиям в виде текста, но не в виде иконок.

Соблюдение кинетических стереотипов (например, двойной щелчок).

Построение архитектуры хранения данных максимально близко к отображаемым данным.

Главная цель, которую необходимо ставить при построении удобного пользовательского GUI, состоит в том, чтобы уменьшить объём знаний пользователей, необходимых для работы с программной, и размышлений, необходимых для выполнения требуемой задачи. Можно отметить два главных вопроса, на которые должен «отвечать» интерфейс пользователю. Данные три вопроса необходимо всегда учитывать, при конструировании интуитивного интерфейса[5]:

Что необходимо сделать для выполнения поставленной задачи.

На что повлияет выполнение того или иного действия.

Какие ещё возможности могут потребоваться

Именно ответы на вышесказанные вопросы составляют основу построения интуитивного интерфейса. Вне зависимости от уровня пользователя и его понимания предметной области, восприятие и скорость выполнения задачи увеличивается тогда, когда для выполнения поставленной задачи, но должен выполнить разделённый на шаги набор действий. Безусловно, все задачи должны быть четко сформулированы и определены.

Соответственно, можно сформулировать четыре шага построения интуитивного интерфейса:

Одна форма соответствует либо одной задаче, либо одной сущности, представляемой пользователю, но не обязательно представленной в системе.

Указать задачу или сущность для каждой формы.

Иерархически расположить элементы для выполнения задачи, в порядке очерёдности.

Установить переходы на вторичные задачи или сущности - потомки.

Стоит отметить пять рекомендаций, которые улучшат как и интуитивность интерфейса, так и общую его привлекательность:

Использование общих шаблонов форм.

Предоставление форм, предназначенных для запуска задач.

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

Предоставлять интуитивную возможность закончить текущую задачу и начать новую.

Сделать очевидным следующий шаг при навигации.

2.4 Требования к архитектуре

Проектируемая система должна комфортно представлять данные любым пользователям вне зависимости от навыков работы в ПК. И хотя сам метод хранения файлов инкапсулирован, структура базы данных должна максимально соответствовать отображаемому виду ради увеличения скорости доступа и упрощении поддержки.

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

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

Пользователь программы работает с инкапсулированными данными, хранимыми в БД. Формально, пользователь должен представлять хранение файлов как на дополнительном разделе ПК.

Стоит отметить, что задача осуществления контроля доступа к файлам достаточно требовательна к ресурсам, как сервера, так и сети. К тому же должна остаться возможность быстрого развёртывания на локальном ПК для личных нужд.

Для архитектуры существуют несколько требований:

масштабируемость.

высокая безопасность.

высокая надёжность.

низкие требования к скорости канала (сети) между терминалами и сервером приложений.

низкие требования к производительности и техническим характеристикам терминалов, как следствие снижение их стоимости.

В соответствии с данными требованиями была выбрана трёхуровневая архитектура. Несмотря на усложнение разработки, подобное решение позволяет получить быструю, безопасную, масштабируемую систему.

2.5 Проектирование процесса работы пользователей с приложением

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

Весь процесс работы пользователя в системе можно описать в диаграмме (см. рис. 2.2):

Рисунок 2.2 - Алгоритм работы пользователя в системе

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

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

В главном окне отображается список групп пользователя и дерево файлов, соответствующее выделенной группе.

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

В системе существует 2 типа файлов:

Обычный. Получить данный файл может лишь тот пользователь, который его же и добавил.

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

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

Любой пользователь может:

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

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

Получить информацию по файлу. В этом случае открывается окно, отображающее всю возможную информаци.ю, возможные действия и резервные копии.

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

Добавить папку. В таком случае в указанный узел добавляется папка и всё её содержимое.

Скопировать файл в другую группу. Файл будет скопирован вместе с каталогами-родителями.

Сделать файл скрытым. В таком случае файл не будет отображаться и записываться в файловую систему, если не указана опция «отображать скрытые файлы».

Удалить файл из группы. Как и с ситуацией с группами, файл из системы непосредственно не удаляется, так что изменение в текущей группе не затронет данный файл в других группах.

Записать файл. Файл записывается в файловую систему по указанному пути, конкатенированному с путём группы и непосредственным путём файла

Записать группу. Все файлы из данной группы будут записаны в систему по соответствующему пути.

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

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

Каждый файл в системе характеризуется следующим набором свойств:

Именем файла. Имя указывается полностью, вместе с расширением.

Пользователем, добавившим его.

Флагом, является ли он папкой.

Потоком бит, представляющим непосредственно зашифрованный файл.

Датой создания.

Флагом, является ли он скрытым.

Флагом, редактируется ли он в данный момент.

Свойством доступа: глобальный или не глобальный. Характеризует права доступа к нему, а именно только непосредственно добавивший его пользователь, и любой пользователь системы.

Тем не менее, пользователь не оперирует с данными свойствами одновременно, так как каждый файл представлен не как запись в таблице, а как единая система, объединяющая в себе все свойства.

Группы:

Название группы.

Путь. Именно по заданному пути будут сохраняться файлы в файловую систему.

Свойства группы представлены в таблице «группы». При добавлении группы пользователь должен указать свойство «путь». В случае, если свойство «имя группы» пользователь не укажет, оно будет выставлено по умолчанию.

Сама по себе группа рассматривается скорее как аналог локального диска в файловой системе, в то время как файлы - его содержание.

Система абстрагирована от понятия пользователя. Пользователь получает доступ, но не как к базе данных или общему ресурсу, а как к личному файловому архиву.

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

При работе администратора с группами, ему должно быть предоставлена возможность просмотра и редактирования групп каждого пользователя.

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

Каждый не глобальный файл при добавлении шифруется по алгоритму DPAPI, с ключом, опирающимся на регистрационные данные пользователя в системе. Таким образом, достигается защищённость файлов и независимость данных от остальных пользователей.

После окончания работы с приложением производится удаление всех файлов из файловой системы.

2.6 Модель взаимодействия компонентов системы

В основе системы контроля доступа к файлам стоит трёхзвенная архитектура: клиент - сервер приложений - СУБД (см. рис. 2.3).

Рисунок 2.3 - Трехзвенная архитектура

Рассмотрим каждый элемент по отдельности.

Клиент:

Приложение, рассчитанное на непосредственно работу пользователя с ним. Клиент выполняет следующие задачи:

Отображение всех возможных действий для пользователя

Предоставление пользователю возможность получения файлов

Передача команд пользователя к серверу приложений

Сервер приложений:

Служба, являющаяся связующим звеном между клиентом и СУБД. Выполняет следующие функции:

Передача СУБД всей информации, полученной от клиента

Передача Клиенту данных, взятых из СУБД

Реализация команд, полученных от клиента

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

3. Реализация проекта

.1 Выбор состава технических и программных средств

.1.1 Система управления базами данных Microsoft SQL Server 2008

Microsoft SQL Server - система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов - Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для от небольших и средних по размеру баз данных до крупных баз данных масштаба предприятия, конкурирует с другими СУБД в этом сегменте рынка.SQL Server в качестве языка запросов использует версию SQL, получившую название Transact-SQL (сокращённо T-SQL), являющуюся реализацией SQL-92 (стандарт ISO для SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением). Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase[4].

3.1.2 Язык программирования C#. Версия 4.0

C# - объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств, вроде Visual Studio.# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML[1].# 4.0 были выпущены в апреле 2010 года, одновременно с выпуском Visual Studio 2010.

Возможность использования позднего связывания, для использования:

с языками с динамической типизацией (Python, Ruby)

с COM-объектами

отражения (reflection)

объектов с изменяемой структурой (DOM). Появляется ключевое слово dynamic.

Именованные и опциональные параметры

Новые возможности COM interop

Ковариантность и контрвариантность

Контракты в коде (Code Contracts)

3.1.3 Интерфейс программирования приложений ADO.NET

ADO.NET - это интерфейс программирования приложений, предоставляющий службы доступа к данным программисту, работающему на платформе .NET Framework.ADO.NET имеет богатый набор компонентов для создания распределенных приложений, совместно использующих данные. Это неотъемлемая часть платформы .NET Framework, которая предоставляет доступ к реляционным данным, XML-данным и данным приложений.ADO.NET удовлетворяет различные потребности разработчиков, включая создание клиентских приложений баз данных, а также бизнес-объектов среднего уровня, используемых приложениями, средствами, языками и веб-обозревателями..NET предоставляет согласованный доступ к таким источникам данных, как SQL Server и XML, а также к источникам данных, предоставляемым при помощи OLE DB и ODBC. Пользовательские приложения, использующие общие данные, могут использовать ADO.NET для соединения с этими источниками данных и для получения, обработки и обновления имеющихся в них данных[1].

3.1.4 Система для построения клиентских приложений WPF

Windows Presentation Foundation (WPF, кодовое название - Avalon) - система для построения клиентских приложений Windows с визуально привлекательными возможностями взаимодействия с пользователем, графическая (презентационная) подсистема в составе .NET Framework (начиная с версии 3.0), имеющая прямое отношение к XAML (ЗАМЛ).вместе с .NET Framework 3.0 предустановлена в Windows Vista и Windows 7(.NET Framework 3.5 SP1). С помощью WPF можно создавать широкий спектр как автономных, так и запускаемых в браузере приложений.

В основе WPF лежит векторная система визуализации, не зависящая от разрешения устройства вывода и созданная с учётом возможностей современного графического оборудования. WPF предоставляет средства для создания визуального интерфейса, включая Язык XAML (Extensible Application Markup Language), элементы управления, привязку данных, макеты, двухмерную и трёхмерную графику, анимацию, стили, шаблоны, документы, текст, мультимедиа и оформление.

Графической технологией, лежащей в основе WPF, является DirectX, в отличие от Windows Forms, где используется GDI/GDI+. Производительность WPF выше, чем у GDI+ за счёт использования аппаратного ускорения графики через DirectX[1].

3.1.5 Технология DPAPI

Начиная с Windows 2000, компания Microsoft стала поставлять в своих операционных системах специальный интерфейс для защиты данных, который называется Data Protection Application Programming Interface, или сокращенно DPAPI. В настоящее время DPAPI получил очень широкое распространение и применяется во многих приложениях и подсистемах Windows. Например, в системе шифрования файлов, для хранения беспроводных паролей сети, в Windows Credential Manager, Internet Explorer, Outlook, Skype, Windows CardSpace, Windows Vault, Google Chrome и т.д. DPAPI стала популярной у программистов в первую очередь благодаря простоте использования, поскольку состоит всего лишь из пары функций для шифрования и расшифровки данных: CryptProtectData и CryptUnprotectData. используется при защите следующих персональных данных:

Пароли и данные автозаполнения форм в Internet Explorer, Google Chrome

Пароли учетных записей почты в Outlook, Windows Mail, Windows Mail, и т.д.

Пароли учетных записей встроенного менеджера FTP

Пароли доступа к общим папкам и ресурсам

Пароли и ключи учетных записей беспроводной сети

Ключи шифрования в Windows CardSpace и Windows Vault

Пароли соединений удаленного доступа к рабочему столу, .NET Passport

Приватные ключи Системы Шифрования Файлов (EFS), шифрования почты S-MIME, другие сертификаты пользователя, SSL/TLS в Internet Information Services/TLS и 802.1x (VPN и WiFi аутентификация)

Сетевые пароли в Credential Manager

Персональные данные любого приложения, программно защищенные при помощи API функции CryptProtectData. Например, в Skype, Windows Rights Management Services, Windows Media, MSN messenger, Google Talk и др.

Начиная с Windows 2000, любое приложение может защитить свои персональные данные (например, пароли) путем элементарного вызова функции CryptProtectData, возвращающую «непрозрачную» двоичную структуру, иначе именующуюся объектом DPAPI (DPAPI blob). «Непрозрачную», по определению Microsoft, в том смысле, что там содержатся не только исходные зашифрованные данные приложения, но и другая недокументированная служебная информация, необходимая для их расшифровки.

Аналогично функционирует API функция CryptUnprotectData, которая, как видно из ее названия, работает в обратную сторону: получая на входе зашифрованный DPAPI объект, возвращает приложению исходные декодированные данные[10].

3.1.6 Windows Communication Foundation

Программный фреймворк, используемый для обмена данными между приложениями входящими в состав .NET Framework. До своего выпуска в декабре 2006 года в составе .NET Framework 3.0, WCF был известен под кодовым именем Indigo.делает возможным построение безопасных и надёжных транзакционных систем через упрощённую унифицированную программную модель межплатформенного взаимодействия. Комбинируя функциональность существующих технологий .NET по разработке распределённых приложений (ASP.NET XML Web Services - ASMX, WSE 3.0, .NET Remoting, .NET Enterprise Services и System.Messaging), WCF предоставляет единую инфраструктуру разработки, при умелом применении повышающую производительность и снижающую затраты на создание безопасных, надёжных и транзакционных Web-служб нового поколения. Заложенные в неё принципы интероперабельности позволяют организовать работу с другими платформами, для чего используются технологии взаимодействия платформ, например WSIT разрабатываемые на базе открытого исходного кода[1].

3.2 Описание программного продукта

Разрабатываемая система контроля доступа к файлам получила название System to Access Control to Files, сокращённо SACF. В данном разделе будет рассмотрен интерфейс пользователя, структура базы данных, а так же алгоритмы выполнения основных действий приложения. Как было сказано в прошлом разделе, система состоит из клиентского приложения, службы сервера приложений и СУБД. Связь по технологии WCF подразумевает наличие библиотеки службы WCF, хоста службы WCF и клиента WCF.

Состав клиента WCF:GUI

Методы форм

Класс, обеспечивающий работу с файлами

Класс связи с сервером приложенийсоединения WCF

Состав хоста службы WCF:. Строка подключения указана в App.config

Класс, обеспечивающий работу с данными в БД, реализующий сетевой интерфейс

Класс, реализующий хостинг WCF

Состав библиотеки службы WCF:

Интерфейс WCF, описывающий работу базой данных

Сущности, представленные как структуры

В скомпилированном виде система представляет собой совокупность скомпилированного SACClient под именем SACF, SACHost под именем SACFHost и СУБД.

3.3 Интерфейс пользователя

Вся непосредственная работа пользователя с системой происходит на клиенте. Соответственно только на клиенте и представлен графический интерфейс. GUI SACF представляет из себя набор WPF форм, основной из которых является главная форма. Попасть в остальные формы можно из главной формы, кроме формы авторизации, которая появляется при запуске клиента.

Форма авторизации (рис. 3.1):

Рисунок 3.1 - Форма авторизации

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

После успешной авторизации пользователь попадает в главную форму (рис. 3.2):

Рисунок 3.2 - Главная форма

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

Файлы в группе представлены в виде удобного дерева и обозначены соответствующими значками. Работа с деревом файлов достаточно привычная для пользователя, так что подобное решение должно ускорить процесс внедрения.

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

Создать группу (рис. 3.3). После создания, группа не содержит какие либо файлы, так же создание новой группы не затрагивает остальных пользователей. В случае, если пользователь не ввёл имя группы, оно будет установлено по умолчанию. Обязательным атрибутом группы является путь. При сериализации файлов в файловую систему, они могут быть записаны только по указанному пути

Рисунок 3.3 - Форма добавления группы

Удалить группу. Происходит удаление группы из списка групп данного пользователя. Физически, группа не удаляется

Добавить папку с содержимым. Если пользователь выбирает данный пункт, ему открывается диалог выбора папки. После закрытия диалога, в выделенную группу будет добавлено всё содержимое выбранной папки. Если была выбрана папка в дереве файлов, данные будут добавлены как потомки данной папки (см. рис. 3.4).

Рисунок 3.4 - Форма добавления папки с содержимым

Добавить папку/файл. В таком случае открывается форма добавления, в которой можно выбрать тип добавляемой сущности, указать путь, а так же узел дерева, потомком которого станет добавляемый файл (рис. 3.4). Обратите внимание, что при выборе папки, в систему добавляется непосредственно папка, без содержимого. Отдельно стоит рассмотреть чекбокс «Глобальный». Ставя данный флажок, добавленный файл становится глобальным, доступным всем пользователям системы, если он окажется в соответствующей группе. В противном случае пользователь не сможет провести запись в файловую систему файла, на который у него нет прав, согласно системе авторизации в Windows.

Рисунок 3.5 - Форма добавления файла

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

Рисунок 3.6 - Форма выбора группы

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

Скрыть/отобразить файл. Данная опция позволяет сделать файл скрытым. В этом случае он не будет отображаться в любой группе. Если поставить флажок «Отображать скрытые файлы», все скрытые файлы данной группы будут отображены, но получат префикс.

Записать файл. Данная команда позволяет записать выбранную папку или файл в файловую систему. Объект будет записан по указанному пути группы и относительному в дереве файлов. Если была выделена папка, то записана будет она, вместе с содержимым.

Записать группу. Данная команда позволяет записать всё содержимое группы в файловую систему по пути, указанном в группе.

Отобразить информацию по файлу. Выводит меню информации по файлу (см. рис. 3.7). Так же данное меню можно вызвать двойным щелчком в дереве файлов. Данное меню позволяет, помимо записи в файловую систему выбранного файла, просмотреть историю изменений файла, получить одну из прошлых версий или сделать её текущей. Кроме того, можно изменить текущую версию файла, записав на это место изменённую из файловой системы. Обратите внимание на чекбокс «Редактируется». Чтобы избежать коллизий, файл можно изменить, только если указать данный флажок.

Рисунок 3.7 - Форма информации по файлу

При закрытии приложения, система попытается удалить все записанные в файловую систему данные в текущем сеансе. Если данную операцию провести не удаётся, выводится ошибка и процедура закрытия останавливается

Так же администратору доступно меню «Группы» (см. рис. 4.8). В данном меню можно распределять доступ к группам каждому пользователю. Обратите внимание, что даже в случае получения несанкционированного доступа злоумышленника к группе, он не сможет прочитать не глобальные файлы.

Рисунок 3.8 - Форма администрирования групп

3.4 Структура базы данных

Все вносимые данные программы хранятся в базе данных. С базой данных работает непосредственно служба приложений, когда клиент просто предоставляет данные и задаёт команды. Способ хранения инкапсулирован для пользователя. ER диаграмма (рис. 3.9).

Рисунок 3.9 - ER-диаграмма

Как видно из диаграммы, существуют четыре основных таблицы и две вспомогательные, реализующие правило многие ко многим. Отображаемый список групп пользователей является результатом запроса из таблицы Users_Groups. Подобным образом получается дерево файлов, из таблицы Files_Groups.

Рассмотрим четыре основных таблицы подробнее (см. табл. 3.1, 3.2, 3.3):

Таблица 3.1 - Таблица Users

Users

Поле

Описание

Id_User

Идентификатор пользователя

LoginHash

Хэш-код имени пользователя

Login

Имя пользователя

Password

Хэш-код пароля пользователя

Description

Описание пользователя


Таблица 3.2 - Таблица Groups

Groups

Поле

Описание

Id_Group

Идентификатор группы

Group_Name

Название группы

Default_Path

Путь группы


Таблица 3.3 - Таблица Files

Files

Поле

Описание

Id_File

Идентификатор файла

Id_Parent

Идентификатор предка файла в дереве

Id_User

Идентификатор пользователя, добавившего файл

Is_Directory

Булево поле, обозначающее, является ли объект папкой

Source

Зашифрованный поток байтов данного файла

Hash_Code

Хэш-код файла

Path

Относительный путь файла

Name

Имя файла

Create_Date

Дата создания файла

Deleted

Булево поле, обозначающее, является ли файл скрытым

FileKey

Ключ файла

Busy

Идентификатор пользователя, который на данный момент редактирует этот файл

Global

Булево поле, обозначающее, является ли данный файл глобальным


Операции по добавлению/удалению файлов представлены SQL процедурами, текст которых представлен в приложении.

3.5 Описание работы классов системы

В данном разделе будут рассмотрены программные действия, вызываемые пользователями при работе с программой. Подробно с исходными кодами SACF можно ознакомиться в приложении. Исходный код представляет собой совокупность трёх проектов:

Библиотеку SACLibхост SACHost с подключением к СУБДприложение SACClient с настроенным на хост прокси

В библиотеке SACLib представлен интерфейс kwIObtaining и набор структур. Структуры используются для описания информации по сущностям системы:

Строго типизированные данные по файлам

public struct FileDBInfo

{Guid Id_File {get; set;}Guid Id_Parent {get; set;}Guid Id_User {get; set;}bool? Is_Directory {get; set;}int? Hash_Code {get; set;}

public byte[] FileKey {get; set;}string Path {get; set;}string Name {get; set;}DateTime Create_Date {get; set;}bool? Deleted {get; set;}Guid Busy {get; set;}bool? Global {get; set;}

}

Строго типизированные данные по группам файлов

public struct GroupDBInfo

{Guid Id_Group {get; set;}string Group_Name {get; set;}string Default_Path {get; set;}

}

Строго типизированные данные по бекапам файлов

public struct BackupDBInfo

{Guid Id_Backup {get; set;}Guid Id_File {get; set;}Guid Id_User {get; set;}string User_Name {get; set;}byte[] Source {get; set;}int? Hash_Code {get; set;}DateTime Backup_Date {get; set;}

}

Строго типизированные данные по пользователямstruct UserDBInfo

{Guid Id_User {get; set;}

public int? Login_Hash {get; set;}string Login {get; set;}int? Password {get; set;}string Description {get; set;}

}

На сервере приложений SACHost представлен класс kwNetObtaining, реализующий возможности по работе с базой данных. Данный класс реализует интерфейс kwIObtaining, предназначенный для сетевого доступа. Методы, указанные в данном интерфейсе, используемые в клиенте для работы с базой данных, представлены на рисунке 3.10.

Рисунок 3.10 - Схема интерфейса kwIObtaining

В клиенте SACClient с интерфейсом kwIObtaining, объявленном в SACLib, работает статический класс kwDataObtaining.

Соответственно, для выполнения любого действия, в котором используется база данных, на клиенте вызывается статический метод класса kwDataObtaining. Который, средствами WCF, вызывает по интерфейсу kwIObtaining необходимый метод класса kwNetObtaining с хоста, который уже непосредственно работает с датасетом. Датасет представлен на рисунке 3.11.

Рисунок 3.11 - Диаграмма DataSet

Как видно из схемы датасета, в запросы к таблицам Files_Groups и Users_Groups добавлены поля из основных таблиц по средствам оператора JOIN.

Для работы с файлами в файловой системе в клиентском приложении имеется статический класс kwFiles. Методы данного класса реализуют все действия, проводимые в файловой системе: запись файлов, создание директорий, перезапись, поиск и т.д. Так же, именно методы данного класса реализуют шифрование по технологии DPAPI. Полный список методов kwFiles представлен на рисунке 3.12.

Рисунок 3.12 - Схема класса kwFiles

Отдельно стоит отметить методы классов WPF. Основная часть из них представляет собой обработчики событий форм и обслуживающие данные события методы. Так же в WPF класса определены глобальные и локальные переменные, играющие роль контейнеров для отображения, флагов, значений для передачи в другие методы.

Класс формы аутентификации frmLogin (см. рисунок 3.13, 3.14) обслуживает окно аутентификации и авторизации пользователя.

Рисунок 3.13 - Методы frmLogin

Рисунок 3.14 - Поля frmLogin

Класс главной формы frmMainWindow (см. рисунок 3.15, 3.16, 3.17). Предоставляет методы по построению дерева. Так же именно в frmMainWindow происходит вызов методов класса kwFiles.

Рисунок 3.15 - Методы frmMainWindow

Рисунок 3.16 - Свойства frmMainWindow

Рисунок 3.17 - Поля frmMainWindow

Класс формы добавления файла или директории frmAddFile (см. рис. 3.18, 3.19, 3.20). Передаёт глобальные свойства в метод, вызвавший его.

Рисунок 3.18 - Методы frmAddFile

Рисунок 3.19 - Свойства frmAddFile

Рисунок 3.20 - Поля frmAddFile

Класс формы добавления группы frmAddGroup (см. рис. 3.21, 3.22). Передаёт глобальные свойства в вызвавший его метод.

Рисунок 3.21 - Методы frmAddGroup

Рисунок 3.22 - Свойства frmAddGroup

Класс формы информации по файлу frmFileInfo (см. рис 3.23, 3.24, 3.25). Передаёт глобальное свойство, обозначающее, было ли изменение статуса файла в frmMainWindow.

Рисунок 3.23 - Методы frmFileInfo

Рисунок 3.24 - Свойства frmFileInfo

Рисунок 3.25 - Поля frmFileInfo

Класс формы администрирования групп frmGroups (см. рис. 3.26, 3.27).

Рисунок 3.26 - Методы frmGroups

Рисунок 3.27 - Поля frmGroups

Класс формы групп пользователей frmUsersGroups (см. рис. 3.28, 3.29).

Рисунок 3.28 - Методы frmUsersGroups

Рисунок 3.29 - Свойства frmUsersGroups

.6 Алгоритм работы системы

При любой операции со стороны пользователя на клиенте, в методах соответствующих форм вызывается статический метод класса kwDataObtaining, который, в свою очередь, по средствам WCF обращается через интерфейс kwIObtaining к соответствующему методу класса kwNetObtaining, расположенному на сервере приложений. Вызванный метод класса kwNetObtaining обращается по средствам датасета к СУБД. В случае необходимости работы с файловой системой, вызывается необходимый статический метод класса kwFiles (см. рис. 3.30).

Рисунок 3.30 - Алгоритм работы системы

Подробнее с представленными классами можно ознакомиться в приложении.

4. Экономическое обоснование дипломного проекта

.1 Введение

Причиной разработки данного проекта является существующая потребность в простых, дешёвых системах контроля доступа к файлам. Абсолютный отказ от хранения данных в файлах в предприятиях до сих пор встречается довольно редко, тем более и у простых пользователей. Разработка организацией подобной системы с нуля может занять длительное время, а обучение сотрудников работе с новым приложением - повысить и без того длительный срок введения системы в эксплуатацию.

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

4.2 Потребительские свойства

Системы контроля доступа к файлам позволяют сохранять файлы в защищённой среде и строить сложные отношения прав доступа, как к группам файлов, так и к каждому файлу по отдельности.

Разработанная система характеризуется следующими особенностями:

Дружественный интерфейс пользователя

Простота развёртывания

Полный доступ к личным файлам имеет только непосредственно пользователь

Гибкая система хранения файлов

Защищённость данных

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

4.3 Ориентация на рынке

Система контроля доступа к файлам SACF (System to Access Control to Files) ориентирована на широкий сегмент рынка:

Физические лица

Частные предприниматели

Малые организации

Средние организации

Население Санкт-Петербурга составляет 4848 тыс. человек, 228 тыс. частных предпринимателей, 138 тыс. малых организаций и 63 тыс. средних организаций.

В ООО «Деловой Центр» было проведено статистическое исследование, целью которого была необходимость выяснить количество физических и юридических лиц, которым необходима была бы для повседневной работы повышенная защита файлов.

Исследование проводилось в два этапа:

Систематизирование физических и юридических лиц по степени обеспеченности компьютерной техникой и сосредоточенности рабочего процесса на использование файлов

Опрос кандидатов и распределение их по уровням соотношения стоимость информации/риск нарушения конфиденциальности. Было опрошено 1759 физических и 2568 юридических лиц

После сортировки полученных данных получены следующие результаты (респонденты, в зависимости от ответа, распределены по трем группам):

Среди физических лиц 62% признают необходимость защиты конфиденциальности личных файлов (группа А). 31% готовы приобрести программный продукт, обеспечивающий конфиденциальность их информации (группа Б)

Среди частных предпринимателей 72% озабочены возможным нарушением конфиденциальности их документации (группа А). 42% готовы приобрести программный продукт, обеспечивающий конфиденциальность информации, хранящейся в файлах, если стоимость не будет превышать 10 000 рублей (группа Б)

Среди малых и средних организаций 79% подтвердили недостаточный уровень защищенности хранения файлов (группа А). 61% готовы приобрести программный продукт, совмещающий в себе надёжность безопасного хранения файлов, с широкими возможностями по распределению прав (группа Б)

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

Остальные результаты исследования не влияют на последующие решения по прогнозированию, поэтому указаны не будут.

4.4 Оценка себестоимости программного продукта

Разработка релизной версии программного продукта SACF проводилась одним человеком в течение трёх месяцев (четвёртый квартал 2011 года). Сбыт программного продукта осуществляется в электронном виде с сервера ООО «Деловой Центр». Сумма расходов представлена в таблице 4.1.

Таблица 4.1 - Расходы на разработку программного продукта

Наименование

Сумма

Заработная плата

Заработная плата разработчика за три месяца

60 000 рублей

Отчисления в ПФР (26%) за три месяца

15 600 рублей

Отчисления в ФСС (2,9%) за три месяца

1 740 рублей

Отчисления в ФФОМС (5,1%) за три месяца

3 060 рублей

Итого:

80 400 рублей

Стоимость оборудования, программного обеспечения и расходных материалов

Компьютер Intel Pentium G620, RAM 4Gb, HDD 1Tb, DVD±RW

13 990 рублей

Монитор BenQ G2025HDA , 1600x900, 40000:1, 200cd/m^2, 5ms, черный

4 300 рублей

Комплект клавиатура + мышь Genius SlimStar C110, USB, клавиатура SlimStar 110 + мышь 1600dpi

700 рублей

Лазерный принтер Brother HL-2132R, 2400x600

2 700 рублей

Бумага SvetoCopy А4, 500 листов, 1 пачка

135 рублей

Windows 7 Professional SP1 64-bit Russian

4 200 рублей

Microsoft Visual Studio 2010 Professional

6 699 рублей

Microsoft SQL Server 2008 Express Edition

бесплатно

Итого:

32 724 рублей

Стоимость мебели

Компьютерный стол Huskar Armlet-BKB-42

6 370 рублей

Стул офисный Bara Armlet-Sija-35

1 500 рублей

Итого:

7 870 рублей

Расходы на недвижимость

Стоимость аренды офиса (6 кв. м., Красногвардейский р-н) на три месяца

18 000 рублей

Стоимость интернет доступа за три месяца (4096 Кбит/с, трафик неограничен)

8 100 рублей

Стоимость электроэнергии  Компьютерное оборудование и лампа дневного освещения суммарно потребляют 0,5 кВт/ч., рабочий день составляет 8 часов, в четвёртом квартале 2011 года было 64 рабочих дня, по состоянию на 2011 год тариф за 1 кВт составляет 1,96 рублей

502 рублей

Итого:

26 602 рублей

Дополнительно

Расходы не тестирование проекта

3 000 рублей

Расходы на проведение статистического исследования  соответствует заработной плате системного аналитика за месяц

20 000 рублей

Расходы на амортизацию оборудования Согласно технической документации срок устаревания компьютерного оборудования составляет 3 года, соответственно расходы соответствует 8,25% за три месяца

1 790 рублей

Расходы на патент

48 000 рублей

Итого:

72 790 рублей

Себестоимость разработки программного продукта SACF:

220 386 рублей


4.5 Оценка расходов на поддержку программного продукта

После релиза необходимо проводить модификацию и усовершенствование программного продукта. Кроме того, необходимо учесть расходы на организацию технической поддержки пользователей, рекламу, распространение. Расчет ежемесячных расходов указан в таблице 4.2.

Таблица 4.2 - Ежемесячные расходы

Наименование

Сумма

Заработная плата

Заработная плата разработчика

20 000 рублей

Отчисления от заработной платы разработчика в ПФР (26%)

5 200 рублей

Отчисления заработной платы разработчика в ФСС (2,9%)

580 рублей

Отчисления заработной платы разработчика в ФФОМС (5,1%)

1 020 рублей

Заработная плата сотрудника технической поддержки

10 000 рублей

Отчисления от заработной платы сотрудника технической поддержки в ПФР (26%)

2 600 рублей

Отчисления заработной платы сотрудника технической поддержки в ФСС (2,9%)

290 рублей

Отчисления заработной платы сотрудника технической поддержки в ФФОМС (5,1%)

510 рублей

Итого:

40 200 рублей

Стоимость расходных материалов

Бумага SvetoCopy А4, 500 листов, 1 пачка

135 рублей

Заправка картриджа к принтеру Brother HL-2132R, 2400x600

300 рублей

Итого:

435 рублей

Расходы на недвижимость

Стоимость аренды офиса  (6 кв. м., Красногвардейский р-н)

6 000 рублей

Стоимость интернет доступа (4096 Кбит/с, трафик неограничен)

2 700 рублей

165 рублей

Итого:

8 865 рублей

Дополнительно

Расходы на рекламу Контекстная реклама в интернете предоставляется по средствам сервиса Яндекс.Директ. Минимальная стоимость перехода составляет 0,3 рубля. Минимальный рекламный бюджет - 300 рублей. Тем не менее, стоимость рекламного бюджета должна покрывать прогнозируемую эффективность рекламной кампании. По результатам статистического исследования, указанного в разделе 4.3, в среднем 30% пользователей должны обратить внимание на рекламу. Соответственно в месяц можно ожидать порядка 100000 переходов и покрывать их рекламным бюджетом.

30 000 рублей

Расходы на предоставление места на сервере сайте ООО «Деловой Центр» программного продукта

 468 рублей

Расходы на амортизацию оборудования Согласно технической документации срок устаревания компьютерного оборудования составляет 3 года, соответственно расходы соответствует 2,75% в месяц

1 790 рублей

Итого:

32 258 рублей

Ежемесячные расходы на поддержку программного продукта SACF:

81 758 рублей


4.6 Прогноз объема продаж

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

В случае оптимистического прогноза, программным продуктом заинтересуется подавляющая часть клиентов из группы «А», большая же часть клиентов из группы «Б» и «В» приобретут программный продукт.

В случае пессимистического прогноза программным продуктом будут заинтересованы лишь клиенты из группы «В», в силу появления новой конкурентов на рынке программного обеспечения, недостаточности понимания проблемы пользователями и т.д. В случае реалистического прогноза программным продуктом заинтересуется большая часть клиентов из группы «Б», а клиенты из группы «В» по большей частью приобретут. Так как в рекламный бюджет заложено количество переходов, равное 100000, в реальности же CTR не будет превышать 50%, стоит предположить конверсию: 1% - количество физических лиц, и 1% - юридических. Каждый месяц ожидается увеличение количества потенциальных клиентов на 10%.

Пессимистический, оптимистический и реалистический прогнозы представлены для физических лиц в таблице 4.3, а для юридических - в таблице 4.4.

Таблица 4.3 - Прогноз продаж в секторе физических лиц

Месяц

Вариант прогноза


Оптимистический

Пессимистический

Реалистический

1

-

-

-

2

-

-

-

3

-

-

-

4

-

-

-

5

138

55

83

6

151

61

91

7

166

67

100

8

183

73

110

9

201

81

121

10

221

89

133

11

244

97

146

12

268

107

161

Итого:

1572

629

943

Таблица 4.4 - Прогноз продаж в секторе юридических лиц

Месяц

Вариант прогноза


Оптимистический

Пессимистический

Реалистический

1

-

-

-

2

-

-

-

3

-

-

-

4

-

-

-

5

138

41

69

6

151

45

76

7

166

50

83

8

183

55

92

9

201

60

101

10

221

66

111

11

244

73

122

12

268

80

134

Итого:

1572

472

786


4.7 Расчет цены программного продукта

Исходя из данных, полученных в результате расчета стоимости разработки программного продукта, ежемесячных расходов и прогноза финансовых показателей необходимо рассчитать цену продажи программного продукта SACF. Разработка программного продукта должна окупиться за промежуток в год с момента начала продаж. При этом цена не должна превышать среднюю стоимость конкурирующих продуктов составляющую 10 000. В силу того, что минимальная стоимость конкурирующих коммерческих программных продуктов не превышает 5 000 рублей, данная планка может привлечь внимание потенциального потребителя.

Расчет стоимости программного продукта производится по формуле (4.1)

 (4.1)

Где- Стоимость программного продукта- Расходы на разработку- Ежемесячные расходы- Количество месяцев, за которое рассчитывается выйти на самоокупаемость- Количество проданных копий программного продукта- Налог на добавленную стоимость (18%)

Процентная ставка налога на добавленную стоимость в Российской Федерации на сегодняшний день составляет 18%. Период времени, за которое рассчитывается выйти на самоокупаемость составляет 12 месяцев. Расходы на разработку и ежемесячные расходы указаны в разделах 4.4 и 4.5. Количество проданных копий программного продукта - в разделе 4.6.

Результаты расчета цены программного комплекса.

Для физических лиц:

Оптимистический прогноз - 932 рублей

Пессимистический прогноз - 2330 рублей

Реалистический прогноз - 1554 рублей

Для юридических лиц:

Оптимистический прогноз - 932 рублей

Пессимистический прогноз - 3107 рублей

Реалистический прогноз - 1864 рублей

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

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

Стоимость программного продукта SACF составляет: Для физических лиц 2499 рублей. Для юридических лиц 4499 рублей.

4.8 Расчет экономической эффективности

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

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

Годовая прибыль рассчитывается по формуле 4.2:


Где- Стоимость программного продукта- Количество проданных копий за год- Расходы. Складываются ежемесячные расходы и, дополнительно, расходы на разработку- Налог на прибыль (20%)- Налог на добавленную стоимость (18%)

Соответственно, прибыль по истечении инвестиционного периода в один год составляет для физических лиц


Для юридических лиц:


Общая прибыль равна 518 452 рублей.

Показатель рентабельности инвестиций (ROI - Return Оn Investments) определяется как отношение среднегодовой прибыли к суммарным инвестиционным затратам в проект по формуле 4.3

(4.3)

где

 - Чистая прибыль от проекта в году t - Количество лет в инвестиционном периоде - Величина инвестиционных затрат, связанных с реализацией проектадля данного проекта составляет

5. Охрана интеллектуальной собственности

В процессе дипломного проектирования был разработан программный продукт, предназначенный для контроля доступа к файлам. Результатом этих разработок явилась заявка на изобретение-способ:

Способ защиты вычислительных сетей от несанкционированных воздействий.

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

Патентообладателем данных разработок является ООО «Деловой Центр». Соответствующие документы (формулы изобретений и копии заявлений о выдаче патента РФ на изобретение) прилагаются.

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

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

Согласно определению интеллектуальной собственности, принятому в российском законодательстве, а также на основании определения Стокгольмской конференции от 14 июля 1967 г., программы для ЭВМ (компьютерные программы) и базы данных относятся к объектам интеллектуальной собственности. Программам для ЭВМ и базам данных предоставляется охрана нормами авторского права как литературным произведениям в соответствии с Бернской конвенцией, причем программы для ЭВМ охраняются как литературные произведения, а базы данных - как сборники.

В Российской Федерации действуют следующие законы, предоставляющие правовую охрану программам для ЭВМ и базам данных:

закон РФ "О правовой охране программ для электронных вычислительных машин и баз данных";

закон РФ "Об авторском праве и смежных правах".

Под программой для ЭВМ понимается "...объективная форма представления совокупности данных и команд, предназначенных для функционирования электронных вычислительных машин (ЭВМ) и других компьютерных устройств с целью получения определенного результата". Кроме того, в понятие программы для ЭВМ входят "...подготовительные материалы, полученные в ходе ее разработки, и порождаемые ею аудиовизуальные отображения".

Предпосылкой охраноспособности программы для ЭВМ и базы данных является их творческий характер, т. е. они должны быть продуктом личного творчества автора. Творческий характер деятельности автора предполагается до тех пор, пока не доказано обратное.

Момент возникновения авторского права является важнейшим юридическим фактом, который устанавливается законом, следующим образом: "Авторское право на программы для ЭВМ или базы данных возникает в силу их создания. Для признания и осуществления авторского права на программу для ЭВМ и базу данных не требуется депонирования, регистрации или соблюдения иных формальностей".

Таким образом, только сам факт создания программы или базы данных, зафиксированных в объективной форме, является основанием возникновения авторского права на эти объекты. С этого момента права автора или иного правообладателя защищаются законом.

Права в отношении программ для ЭВМ и баз данных подразделяются на личные неимущественные и имущественные (исключительные) права.

Личные права включают право авторства, право на имя и право на неприкосновенность (целостность) программы для ЭВМ или базы данных. Они связаны непосредственно с автором программы для ЭВМ или базы данных: принадлежат лицу, чьим творческим трудом созданы программа для ЭВМ или база данных - автору, являются неотчуждаемыми, т.е. не могут быть переуступлены другому лицу, и не ограничены каким-либо сроком.

Имущественные (исключительные) права связаны с правомочием правообладателя осуществлять и/или разрешать осуществление определенных действий с программами для ЭВМ или базами данных, а именно: выпуск в свет (опубликование); воспроизведение (полное или частичное) в любой форме, любыми способами; распространение; модификацию и иное использование. Они могут принадлежать автору или иному правообладателю (физическому или юридическому лицу), могут быть переуступлены другому лицу (отчуждены) и срок их действия ограничен.

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

Состав договора предусматривает следующие разделы:

Стороны договора;

Преамбула;

Термины и их определения;

Предмет договора;

Техническая помощь;

Усовершенствование и улучшения;

Обязательства и ответственность сторон;

Платежи;

Информация и отчетность;

Обеспечение конфиденциальности;

Защита передаваемых прав;

Разрешение споров;

Срок действия договора;

Иные условия;

Заключительные положения;

Адреса сторон.

Лицензионные договоры бывают следующих типов:

Исключительная лицензия

Этикеточная лицензия

Неисключительная лицензия

Исключительная лицензия - продажа всех имущественных прав на программный продукт или базу данных, покупателю лицензии предоставляется исключительное право на их использование, а автор или владелец патента отказывается от самостоятельного их применения или предоставления другим лицам. Это самый дорогой вид лицензии, к нему прибегают для монопольного владения с целью извлечения дополнительной прибыли либо с целью прекращения существования на рынке программных средств программного продукта.

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

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

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

6. Программа для ЭВМ

СОСТАВ СИСТЕМЫ

SACF

-

клиент программного комплекса, предоставляющий возможности для работы пользователям;

SACFHost

-

сервер приложений, осуществляющий подключение к СУБД и принимающий/передающий информацию на клиент;

СУБД MS SQL

-

СУБД, с которой взаимодействует хост, предназначена для хранения данных;


ЛИЦЕНЗИОННЫЙ ДОГОВОР НА ИСПОЛЬЗОВАНИЕ ПРОГРАММЫ ДЛЯ ЭВМ

Стороны в Договоре:

Общество с Ограниченной Ответственностью «Деловой Центр», именуемое в дальнейшем "ЛИЦЕНЗИАР", в лице генерального директора Ремизова С.В. с одной стороны, и

Общество с Ограниченной Ответственностью «Вектор», именуемое в дальнейшем "ЛИЦЕНЗИАТ", в лице генерального директора Головач Е.С., действующего на основании Доверенности, с другой стороны,

принимая во внимание:

что Лицензиар является автором и правообладателем программы для ЭВМ "Система контроля доступа к файлам (System to Access Control to Files)";

Лицензиат желает получить на условиях настоящего Договора лицензию на использование упомянутой программы для ЭВМ с целью защиты файлов организации от несанкционированного доступа;

Лицензиар готов предоставить Лицензиату такую лицензию,

договорились о следующем.

. Термины и их определения

"ПРОГРАММА ДЛЯ ЭВМ (ПрЭВМ)" - программное обеспечение "Система контроля доступа к файлам (System to Access Control to Files)".

"ДОКУМЕНТАЦИЯ" - комплект документов, передаваемых Лицензиаром Лицензиату, включающий руководство пользователя по применению и обслуживанию программы для ЭВМ.

"ПРОИЗВОДСТВЕННАЯ ПЛОЩАДКА" - офисные помещения Лицензиата.

"РАБОЧЕЕ МЕСТО" - конкретная ЭВМ, на которой используется Программа для ЭВМ.

. Предмет Договора

Лицензиар предоставляет Лицензиату на срок действия настоящего Договора и за вознаграждение, уплачиваемое Лицензиатом, неисключительную лицензию на использование ПрЭВМ. При этом Лицензиату предоставляется право на установку ПрЭВМ не более чем на 10 (десяти) Рабочих местах.

Лицензиар передает Лицензиату Документацию к ПрЭВМ.

Предоставленное Лицензиату в рамках настоящего Договора право ограничено Производственной площадкой.

Лицензиар осуществляет авторский контроль за соблюдением объемов использования ПрЭВМ по настоящему Договору, при этом Лицензиат обеспечивает возможность такого контроля.

Лицензиар сохраняет за собой право самому использовать ПрЭВМ и предоставлять неисключительные лицензии на право ее использования третьим лицам.

. Обеспечение Договора

Лицензиар передает Лицензиату ПрЭВМ в объеме и виде, достаточном для ее использования, и Документацию в течение 15 (пятнадцати) дней со дня подписания настоящего Договора. ПрЭВМ передается Лицензиату в виде в количестве 5 (пяти) штук, содержащих ПрЭВМ. По факту передачи ПрЭВМ и Документации составляется акт сдачи-приемки с перечнем переданных материалов, подписываемый обеими Сторонами.

Если Лицензиат установит неполноту или неправильность полученных ПрЭВМ или Документации, то Лицензиар в течение 15 (пятнадцати) дней после сообщения ему об этом Лицензиатом обязан передать недостающие материалы или устранить недостатки ранее переданных ПрЭВМ и Документации.

Для оказания помощи в освоении ПрЭВМ Лицензиар по просьбе Лицензиата оказывает консультации пользователям ПрЭВМ.

Для целей использования ПрЭВМ в объеме, предусмотренном п. 2.1 настоящего Договора, Лицензиат может изготавливать в необходимом ему количестве копии ПрЭВМ и копии Документации.

. Усовершенствования

Лицензиар обязуется незамедлительно информировать Лицензиата о всех произведенных им усовершенствованиях ПрЭВМ и, при желании Лицензиата, передать ему в согласованные сроки новые варианты ПрЭВМ. В отношении новых вариантов ПрЭВМ, переданных Лицензиаром Лицензиату, распространяются все условия настоящего Договора.

Лицензиат обязуется предоставлять Лицензиару информацию об использовании ПрЭВМ, которая могла бы быть полезной для усовершенствования ПрЭВМ.

. Платежи

За предоставление прав, предусмотренных настоящим Договором, Лицензиат выплачивает Лицензиару единовременное вознаграждение в размере 4499(четыре тысячи четыреста девяносто девять) рублей.

Вознаграждение, предусмотренное п. 5.1 настоящего Договора, выплачивается Лицензиатом в течение 30 (тридцати) дней, следующих после подписания акта приемки-сдачи.

. Реклама

Лицензиат обязуется при опубликовании результатов исследований, полученных с использованием ПрЭВМ, сообщать в рекламных целях, что исследования производились с использованием ПрЭВМ Лицензиара с указанием авторского права Лицензиара.

. Защита передаваемых прав

Лицензиат обязуется не вносить самовольно каких-либо изменений в ПрЭВМ и Документацию и не дополнять их какими-либо комментариями. Подобные изменения или дополнения возможны только с согласия Лицензиара.

Лицензиат обязуется предпринимать все необходимые меры для предотвращения несанкционированного копирования ПрЭВМ и Документации третьими лицами, а также несанкционированной передачи ПрЭВМ и Документации работниками Лицензиата третьим лицам.

Если Лицензиату станет известно о противоправном использовании ПрЭВМ третьими лицами, то он незамедлительно сообщит об этом Лицензиару.

. Ответственность Сторон и разрешение споров

За невыполнение или ненадлежащее выполнение обязательств по настоящему Договору Стороны несут имущественную ответственность в соответствии с действующим законодательством.

Стороны освобождаются от ответственности за неисполнение или ненадлежащее исполнение обязательств, принятых по настоящему Договору, если неисполнение явилось следствием обстоятельств непреодолимой силы (форс-мажор).

Сторона, нарушившая свои обязательства по настоящему Договору, освобождается от ответственности за неисполнение или ненадлежащее исполнение этих обязательств, если это нарушение было вызвано причинами, за которые отвечает другая Сторона.

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

. Срок действия Договора и условия его расторжения.

Настоящий Договор заключен на срок 2 года и вступает в силу с даты его подписания обеими Сторонами.

По истечении срока действия настоящего Договора Лицензиат вправе использовать ПрЭВМ, включая усовершенствованные варианты, на Производственной площадке на любом количестве Рабочих мест. При этом обязательства Лицензиата, предусмотренные пп. 7.1 и 7.2 настоящего Договора, сохраняются бессрочно.

Действие настоящего Договора по обоюдному согласию Сторон может быть досрочно прекращено, но не ранее чем через три месяца после предложения об этом одной из Сторон. При этом Лицензиат не освобождается от обязательств по платежам, возникшим до расторжения настоящего Договора.

Настоящий Договор может быть досрочно расторгнут в одностороннем порядке со стороны Лицензиара из-за невыполнения Лицензиатом своих обязательств по пп. 7.1 или 7.2. В этом случае Лицензиат лишается права дальнейшего использования ПрЭВМ в любой форме и обязан вернуть ее Лицензиару.

Если Лицензиат откажется от дальнейшего использования ПрЭВМ, то он уничтожит все имеющиеся у него копии ПрЭВМ.

. Заключительные положения

Все изменения и дополнения к настоящему Договору действительны только в тех случаях, если они совершены в письменной форме и подписаны обеими Сторонами.

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

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

. Адреса Сторон

ЛИЦЕНЗИАР: ООО «Деловой Центр», адрес: 194291, г. Санкт-Петербург, пр. Культуры, д.6, к.2, кв.92

ЛИЦЕНЗИАТ: ООО «Вектор», адрес: 194456, г. Санкт-Петербург, ул. Коммуны, д.35, кв.14

Настоящий Договор составлен в двух экземплярах для каждой из Сторон и подписан "___"__________ 200__ г. в г. Санкт-Петербурге.

ЛИЦЕНЗИАР:

От ЛИЦЕНЗИАТА:

Генеральный директор ООО «Деловой Центр» _______________ С.В. Ремизов

Генеральный директор ООО «Вектор»  _______________ Е.С. Головач

Заключение

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

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

Разработан программный продукт System to Access Control to Files (SACF), на основе объектно-ориентированного языка программирования C# и СУБД Microsoft SQL Express с применением технологий Windows Communication Foundation, Windows Presentation Foundation и ADO.NET. Данный программный продукт использует технологию шифрования DPAPI. Разработан дизайн интерфейса пользователя, соответствующий требованиям интуитивности, простоты и низкого уровня вхождения. обладает следующими свойствами:

Ссылочное отображение файлов

Ограничение административных прав на чтение данных

Удовлетворение модели «Пользователь - Группа - Файл»

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

Дружественный интерфейс, представляющий интуитивно понятный способ представления списка файлов и операций с ними

Шифрование каждого файла, хранение файлов в базе данных в зашифрованном виде

Хранение файлов в файловой системе только во время сеанса работы

Возможность добавления/получения целых групп файлов

Возможность частичного удаления (сокрытия) файлов

Простота регистрации пользователя

Автоматическая регистрация изменений каждого файла с последующим сохранением прежней версии

Экономическая эффективность применения предложенных решений обоснована.

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

Список литературы

1.  Троелсен Э. Язык программирования C# 2010 и платформа .NET 4.0. М.: «Вильямс»; 2010 г.

2.       Соломон Д., Марк Руссинович. Внутреннее устройство Windows 2000. М.: "Русская Редакция"; СПб.: Питер; 2005.

.        Касперски К. Техника сетевых атак. М.:Солон-Р; 2001 г.

.        Дьюсон Р. SQL Server 2008 для начинающих разработчиков. СПб.: БХВ-Петербург; 2008 г.

.        Головач В. Дизайн пользовательского интерфейса. М.: 2010 г.

.        MSDN, WINDDK.

.        Мамаев М. Телекоммуникационные технологии. Учебное пособие. Владивосток: 2001 г.

.        Федеральный закон Российской Федерации от 27 июля 2006 г. №149-ФЗ «Об информации, информационных технологиях и о защите информации».

.        Федеральный закон Российской Федерации 21 июля 1993 г. № 5485-1 «О государственной тайне».

.        Указ Президента РФ от 6.03.97 г. № 188 «Об утверждении перечня сведений конфиденциального характера».

.        Национальный стандарт РФ «Информационная технология. Практические правила управления информационной безопасностью»; ГОСТ Р ИСО/МЭК 17799-2005.

.        Указ Президента РФ №188 от 6 марта 1997 года о "Перечне сведений конфиденциального характера".

.        Доктрина информационной безопасности Российской Федерации от 9 сентября 2000 года.

.        Гостехкомиссия России. Руководящий документ. Концепция защиты средств вычислительной техники и автоматизированных систем от несанкционированного доступа к информации. М., Военное издательство, 1992- 12 с.

.        Гостехкомиссия России. Руководящий документ. Защита от несанкционированного доступа к информации. Термины и определения. М.:Военное издательство, 1992. - 12 с.

.        Гостехкомиссия России. Руководящий документ. Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкционированного доступа к информации. - М.:Военное издательство, 1992. - 24 с.

.        Гостехкомиссия России. Руководящий документ. Автоматизированные системы. Защита от несанкционированного доступа к информации. Классификация автоматизированных систем и требования по защите информации.-М.:Военное издательство, 1992. - 39 с.

.        Гостехкомиссия России. Руководящий документ. Временное положение по организации разработки, изготовления и эксплуатации программных и технических средств защиты информации от НСД в автоматизированных системах и средствах вычислительной техники, - М.: Военное издательство, 1992. 29 с.

.        Сергеев И.В. Методические указания по написанию экономического обоснования дипломного проекта. М., МГУ, 1992.

.        Правовая охрана и коммерческая реализация программ для ЭВМ и баз данных: Методические указания по дисциплине "Интеллектуальная собственность"/ Сост.: Ю.И. Буч, И.С. Терентьева; СПбГЭТУ. СПб., 1998.

Похожие работы на - Разработка системы контроля доступа к файлам

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!