Опубликован: 11.09.2006 | Доступ: свободный | Студентов: 7646 / 472 | Оценка: 4.26 / 3.45 | Длительность: 30:46:00
ISBN: 978-5-9556-0080-2
Лекция 10:

Безопасность Windows-форм

Аннотация: Безопасность операционной системы Windows. Модель безопасности .NET Framework. Безопасность доступа кода. Функционирование безопасности доступа кода. Уровни безопасности. Использование безопасности доступа кода. Администрирование политики безопасности. Тестирование безопасности доступа кода приложения. Ролевая безопасность. Объект "личность". Объект "роль". Использование объектов WindowsIdentity и WindowsPrincipal. Использование объектов GenericIdentity и GenericPrincipal. Контроль доступа приложения. Приложение CustomSecurity — использование собственной технологии ролевой безопасности

Для работы с данной лекцией используйте примеры.

Безопасность операционной системы Windows

Операционная система Windows, включая самые последние на сегодняшний день версии Windows XP/2003, содержит ряд уязвимостей, немедленно замечаемых заинтересованными лицами. В Интернете встречается программка PassView (http://www.nht-team.org/) — она позволяет узнавать пароли от многих программ, установленных на вашем компьютере, среди которых Internet Explorer, Outlook Express, ICQ. Программа в заархивированном виде занимает около 60 Кб и не требует установки, кроме всего прочего, она позволяет увидеть пароли от диалапа – для этого достаточно получить доступ с правами администратора системы на считанные секунды и запустить PassView (рис. 10.1).

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

Рис. 10.1. Вкладка Ras программы PassView, на которую выводятся данные всех соединений данного пользователя

Получение пароля администратора в Windows 2000/XP/2003 тоже не слишком сложная задача. Рассмотрим один из способов — восстановление пароля из SAM-базы. Все логины и пароли учетных записей хранятся в зашифрованном виде в файле SAM, расположенном в каталоге C:\WINDOWS\System32\Config. При попытке открыть этот файл непосредственно, из операционной системы появляется сообщение системы о нарушении доступа к файлу. Дело в том, что все файлы, находящиеся в этой папке, представляют собой фрагменты реестра, постоянно используемые системой, поэтому доступ к ним возможен не из самой ОС. Для этого применяем любой файловый менеджер (обычно на мультизагрузочных компакт-дисках можно найти их, причем как для файловой системы FAT32, так и для NTFS) для просмотра содержимого жесткого диска в режиме DOS и копируем на любой съемный носитель два файла — SAM и SYSTEM, содержащей системный ключ Syskey. Теперь на другом компьютере нам осталось только расшифровать содержимое скопированных файлов. Запускаем программу SamInside (в заархивированном виде около 800 Кб, http://www.insidepro.com/) и импортируем сначала файл SAM, а затем SYSTEM. Программа SamInside поддерживает перебор паролей по двум алгоритмам — LM и NT, кроме того, предоставляет возможность для определения диапазона предполагаемого пароля, включая перебор по словарям (рис. 10.2).

Настройки подбора пароля

увеличить изображение
Рис. 10.2. Настройки подбора пароля

В качестве пароля на свою учетную запись я установил password12345, и на компьютере P IV 2.4 ГГц, 512 Мб RAM получил часть пароля по алгоритму LM всего за 15 минут. Даже подбор по алгоритму NT, с учетом параметров, указанных на рис. 10.2, занимает всего 2 часа (рис. 10.3).

Окно программы в режиме определения подбора пароля по алгоритму NT

увеличить изображение
Рис. 10.3. Окно программы в режиме определения подбора пароля по алгоритму NT

Конечно, подбор сложного пароля, содержащего в случайном порядке буквы, числа и символы, займет гораздо больше времени, но привлечение больших вычислительных мощностей позволит справиться и с этой задачей. Мы не будем рассматривать здесь применение криптографических алгоритмов, теорию цифровых подписей или социальную инженерию — для этого бы потребовалось отдельная книга. Пример с учетными записями Windows должен просто навести вас на мысль, что любой инструмент безопасности требует критического и внимательного отношения к себе. Не следует всецело полагаться на ответственность разработчиков .NET Framework — всякий раз, когда в своих приложениях вы будете использовать один из принципов, речь о которых пойдет ниже, старайтесь оценивать все возможные контрмеры, способствующие исключению несанкционированного доступа.

Модель безопасности .NET Framework

Модель безопасности .NET Framework основывается на безопасности доступа кода (Code Access Security, CAS) и ролевой безопасности.

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

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

Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/