Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
· драйверы устройств NT executive - низкоуровневые драйверы, которые непосредственно управляют устройством;
· менеджер кэша, реализующий кэширование диска.
Исполнительная часть, в свою очередь, основывается на службах нижнего уровня, предоставляемых ядром (его можно назвать и микроядром) NT. В функции ядра входит:
· планирование процессов,
· обработка прерываний и исключительных ситуаций,
· синхронизация процессоров для многопроцессорных систем,
· восстановление системы после сбоев.
Ядро работает в привилегированном режиме и никогда не удаляется из памяти. Обратиться к ядру можно только посредством прерывания. Ядро расположено над уровнем аппаратных абстракций (Hardware Abstraction Level HAL), который концентрирует в одном месте большую часть машинно-зависимых процедур. HAL располагается между NT executive и аппаратным обеспечением и скрывает от системы такие детали, как контроллеры прерываний, интерфейсы ввода/вывода и механизмы взаимодействия между процессорами. Такое решение позволяет легко переносить Windows NT с одной платформы на другую путем замены только слоя HAL.
Менеджер объектов - это компонента NT executive, которая ответственна за создание, удаление, защиту и слежение за NT-объектами. Менеджер объектов централизует операции управления ресурсами, которые в противном случае будут разбросаны по всей ОС.
Менеджер объектов NT выполняет следующие функции:
· Выделяет память для объекта.
· Присоединяет к объекту так называемый дескриптор безопасности, который определяет, кому разрешено использовать объект, и что они могут с ним делать.
· Создает и манипулирует структурой каталога объектов, в котором хранятся имена объектов.
· Создает описатель объекта и возвращает его вызывающему процессу.
Вопрос 34: ОС Windows NT. Интерфейс прикладных программ.
Win 32 API (application programming interface)
API содержит совокупность функций, использующихся для приложений.
Реализован на 4-х платформах:
1. Win 32S
2. Windows NT
3. Windows 95
4. Windows CM (для работы с 4 Мб памяти, дополнительные функции)
Win 32S – 32- разрядная настройка, 16- разрядные функции. Наиболее полный набор реализован для NT.
5. многопроцессорная NT.
Структура:
Тип объекта определяет данные и набор действий, которые можно производить. Диспетчер объектов поддерживает несколько полей данных.
Объект состоит из:
заголовок (содержит поля:
ü имя объекта
ü директории
ü дескриптор безопасности
ü кванты (набор ограничений на использование процессами объектов)
ü счетчик дескриптора (счетчик одновременно открытых)
ü база данных (список процессов, получающих дескриптор)
ü временный или постоянный тип (определяет время жизни объекта)
ü ядро или пользователи
ü указатель типа)
тело
Вопрос 35: ОС Windows NT. Понятие объекта. Структура объекта. Типы объектов WinNT.
Диспетчер объектов:
Тип объектов включает:
- Определенный системой тип данных
- Список операций, которые могут быть выполнены от данного объекта
- Набор атрибутов
Прежде чем процесс получит управление объектов, должен получить его описатель через диспетчер объектов. Описатель хранит информацию управления доступом и указатель ……..
Диспетчер объектов управляет глобальным …………….. имен.
Имена могут иметь следующие типы объектов:
- Объекты каталога
- Объекты типа данных
- Объекты симфора и события
- Объекты процесса и нити управления
- Объекты порта
- Объекты файла
Каждый объект состоит из двух частей:
- Заголовок (стандарт.)
- Тело (определяется типом объекта)
Вопрос 36: ОС Windows NT. Понятие процесса. Взаимодействие между процессами. Потоки. Нити. Алгоритмы планирования потоков и нитей.
Процессы и нити
Процессы реализованы в форме объектов, доступ к ним – посредством службы объектов.
Процессы имеет многонитевую организацию. Процессы и нити имеют синхронизацию. Менеджер процесса не поддерживает отношений «родитель – поток».
Адресное пространство каждого процесса защищено от вмешательства других процессов; механизмы виртуальной памяти.
Система защищена от прикладных процессов.
Чтобы выполнить какую-либо функцию ОС, нить должна выполняться в форме ядра. Пользовательские процессы получают доступ к функциям ядра посредством системных вызовов.
В число атрибутов тела объекта процесса входят:
ü Идентификатор процесса
ü Пакет доступа (содержит информацию о безопасности)
ü Базовый приоритет
ü Процессорная совместимость
ü Предельное значение …..
ü Время выполнения
Объект нить имеет атрибуты:
Ø Идентификатор клиента
Ø Контекст нити (область памяти, содержание регистров)
Ø Динамический приоритет
Ø Базовый приоритет (совпадает с приоритетом процесса)
Ø Процессорная совместимость нитей (типы процессоров, на которых данная нить выполняется)
Ø Время выполнения в режиме пользователя и в режиме ядра
Ø Счетчик приостановок
Алгоритмы планирования процессов и нитей
При выборке нитей просматриваются те, которые готовы.
Первоочередная готовность – знаем, какой процесс выполняется следующим.
Ожидание – какие – либо ресурсы заняты.
Для определения смены порядка выполнения нитей используются алгоритмы, основанные на квантовании и приоритете (32-приоритетный).
При создании процесса процессу присваивается базовый приоритет. Нити наследуют его.
Нить покидает процесс, если:
Ø переходит в состояние ……..
Ø заканчивается
Ø заканчивается квант времени
Ø более приоритетная нить
Процесс
Процесс задается функцией:
Create Process (
LPCTSTR Lpsz Application name
LPCTSTR Lpsz Command Line
LPSECURITY ATRIBUTES l’psa Process
LPSECURITY ATRIBUTES l’psa Thread
BOOL fInherit Mandles
PWORD fdw create
LPVOID Ipv Environment
LPTSIR Ipsz CurDir
LPSTARTUPINFO IpsiStartInfo
LPPROCESS INFORMATION Ippriproc Info
)
LP – указатель
STR – структура
1 параметр – имя, командная строка, переданная файлу. Можно указать полную строку; (системный каталог Windows, основной каталог Windows).
2 параметр – объекты ядра, с ними связаны атрибуты защиты (SECURITY ATRIBUTES).
Флаг fdw имеет несколько значений (определяет, как будет создаваться процесс):
1. DEBUG PROCESS (позволяет родительскому процессу проводить отладку дочернего; если флаг установлен, родительский процесс – отладчик)
2. DEBUG ONLY_THUS_PROCESS (аналогичен; родительский процесс уведомляется только об одном дочернем процессе)
3. CREATE_SUSPENDED (позволяет создавать процесс и приостанавливать его текущий поток)
4. CREATE_NEW_CONSOLE (приводит к созданию нового консольного приложения)
5. CREATE_NEW_WINDOW (приводит к созданию нового консольного кольца для нового процесса)
6. CREATE_SEPARATE_WOW_VDM (позволяет запускать без окон)
Только при запуске 16-разрядного Windows – приложения.
3 параметр – поставить свое переменное окружения.
4 параметр – позволяет изменить строку окружения.
5 параметр – текущий каталог
6 параметр – указатель на структуру
Структура содержит:
X-size
Y-size
Атрибуты и т.д.
7 параметр – указывает на структуру (2 описания – процесс и поток:
§ идентификатор процесса
§ идентификатор потока).
Структура:
PROCESS INFORMATION {
HANDLE hPROCESS
Handle hTHREAD
DWORD dw PROCESS ID
DWORD dw THREAD ID
}
Каждому процессу присваивается уникальный идентификатор и сохраняется на протяжении всей его жизни.
Завершение процесса:
2 функции:
VOID EXIT PROCESS (UINT fv EXIT code)
TER mihate PROCESS (handle hprocess
VINT fv EXIT code)
Функция:
GetExit Process (Handle hProcess
LPOWORD lpdwEXIT code)
Функция:
Create Read – создание первичного потока
Завершение потока:
EXIT THREAD
TERMINATThread – завершение потока
Вопрос 37: ОС Windows NT. Модель безопасности и её компоненты.
Пользовательский режим
Сервис исполняющей подсистемы
Режим ядра
Процесс входа системы принимает запрос на вход пользовательской системы. Данный процесс включает начальный вход в систему: начальное диалоговое окно входа пользователя и процесс удаления входа пользователя системы. РЛБ гарантирует, что пользователь имеет разрешение на обращение к системе. Он генерирует маркеры доступа, управляет политикой локальной безопасности, политикой контроля и регистрирует контрольные события, сгенерируемые с МнБ.
ДББ (SAM): поддерживает БД бюджета пользователя. ДББ поддерживает информацию о бюджетах всех пользователей и групп; SAM обеспечивает аутоидентификацию пользователя.
МнБ проверяет, имеет ли пользователь права доступа к объекту и отслеживает любое предпринимаемое пользователем действие. Данный компонент проводит в жизнь права доступа и политику контроля генерации события. Гарантирует осуществление доступа к объектам только тем пользователям и процессам, выступающие от их имени, которые имеет необходимое разрешение. Генерирует контрольные события.
Бюджет – набор тех прав, которыми обладают пользователи или группа.
Модель безопасности МнБ соответственна уровню С2.
Основные требования:
владелец ресурса должен иметь возможность управлять доступом к ресурсам
перед получением доступа к системе, пользователь должен идентифицировать себя, вводя уникальное имя и пароль. При этом система должна иметь права использовать эту уникальную информацию для контроля действия
администратор системы должен иметь возможность контроля действий, связанных с безопасностью событий
Ос должна защищать объекты от несанкционированного использования другими процессами (защищать память таким образом, чтобы после удаления, другие процессы не могут обратиться к этой информации)
Система должна защищать себя от внешнего вмешательства
Основная цель МБ: контроль и управление доступа к объектам. МБ хранит информацию для каждого пользователя, группы пользователей и объектов. МБ идентифицирует попытки доступа, сделанные непосредственно пользователем или сделаны косвенной программой или другим процессом, выполняющимся в интересах пользователя.
МБ определяет, как объект, к которому обратились, так и способ доступа (администратор может назначить разрешение отдельным пользователям или группе, так и запрещать).
Для файла могут быть назначены следующие разрешения: чтение, удаление, запись, модификация разрешений, выполнение, монопольное использование, отсутствие доступа
Способность назначать разрешения по усмотрению владельца называется контролированным управлением доступа.
Discretionary, Access, Control DAC
Подсистема аудитор позволяет записывать события с целью фиксирования попыток доступа к объектам, разновидности проводимого доступа и его успешности или неуспешности. Для каждого из объектов можно не фиксировать никаких событий, либо успешное или неуспешное события, либо записывать в журнал все события. Пользователь идентифицируется системой с помощью уникального идентификатора безопасности. Данный идентификатор уникален (двух одинаковых нет).
Когда пользователь осуществляет вход в систему, создается маркер доступа (МД). Включает:
§ Идентификатор безопасности для пользователя
§ Идентификатор безопасности для группы
§ Информацию и типы пользователя и групп (имя и т.д.)
Каждый процесс, работающий от имени пользователя, будет иметь его копию МД. Система старается сначала всегда запретить, а потом разрешить (проводит проверку).
NT обращается к идентификатору безопасности внутри МД, когда пользователь делает попытку обращения к объекту. Для определения того, имеется ли разрешение на доступ, идентификатор безопасности пользователя сравнивается со списком разрешения на доступ к объекту. Создание МД:
1. Нажимаем Ctrl+ Alt+ Delete и вводим имя и пароль.
2. После ввода процесс входа в систему вызывает локальный распределитель безопасности.
3. Распределитель локальной безопасности запрашивает на выполнение различные пакеты ……… (NT поддерживает различные аутоидентификационные пакеты).
4. АП проверяет базу пользователя для того, является ли бюджет локальный. Если локальный, то имя и пароль сравниваются с …………………. Если нет, то запрос на вход системы адресуется другому пакету.
5. Если бюджет подтвержден, то SAM возвращает идентификатор безопасности пользователя и идентификатор всех групп, к которой принадлежит пользователь.
6. АП создает сеанс входа системы и передает этот сеанс идентификатору безопасности распорядителю локальной безопасности.
7. Если вход отклонен, сеанс входа удаляется. Если вход успешен, то создается МД.
8. Сеанс входа в систему вызывает Win 32 для создания процесса и присоединения полученного МД.
Т.о., создается субъект для бюджета пользователя. Win 32 запрещает program menedger для начала ………. сеанса.
Атрибуты безопасности для объекта описываются дескрипторами безопасности (ДБ). ДБ включает:
ü Идентификатор безопасности владельца, который указывает пользователя или группу, является владельцем. Владелец объекта может изменять разрешение доступа для объекта.
ü Идентификатор безопасности группы, используется подсистемой POSIX.
ü Контрольный список управления доступа (КСУД) (ACL), который определяет, каким пользователем или группой дается или не дается разрешение доступа. ACL управляется владельцем объекта.
ü Системный ACL. Управляет списком, генерируемых системой контроля сообщений, контролируется администратором безопасности.
Каждая ACL состоит из элемента управлением доступа (ACE) (access……….), которая специфицируют доступ или разрешение контроля, применительно к объекту для отдельного пользователя или группы. 3 типа ACL (2 для контроля и 1 для безопасности системы):
1. Access Allowed (доступ разрешен)
2. Access Denied (доступ запрещен)
3. System Audit (безопасность системы)
2 типа объекта: контейнерные (каталог) (логически содержит другие объекты; объекты внутри контейнерного объекта наследуют разрешение из родительского); неконтейнерные (файл). Каждый ………. включает маску доступа, которая…………………………………………………………………………………………………………………………….
Каждый тип объекта может иметь до 16 специфических типов доступа.
Для файлов: чтение данных, запись данных, добавление данных, выполнение, чтение атрибутов, запись атрибутов.
Для синхронизации – SYNCHRONIZE.
Для назначения владельца записи – WRITE_OWWER.
Для предоставления или отклонения доступа на запись для контрольной ACL – WRITE_PAC.
Для предоставления или отклонения доступа чтения дескрипторов или владельца – READ_CONTROL.
Для предоставления или отклонения доступа на удаление – DELETE.
Запрашиваемая маска доступа создается для субъекта на основании типа доступа, который пользователь пытается получить. Сравнивается с ACL объекта. Каждый ACE в ACL оценивается следующим образом:
1) Идентификатор безопасности ACE сравнивается с набором идентификатором безопасности в МД пользователя. Если нет соответствия, данные ACE пропускаются. Дальнейшая обработка основывается на типе ACE. ACE …………… находятся раньше, чем ACE……….
2) В случае отклонения доступа система проверяет запрашиваемую маску доступа на наличие содержания. READ_CONROL или WRITE_PAC. Если так, система проводит определение, является ли запрашиваемый пользователь владельцем объекта. Если да – доступ предоставляется.
3) Для ACE ……………………………………….доступ в маске ACE сравнивается с запрашиваемой маской доступа. Если одинаковый доступ присутствует обеих масках, дальнейшей обработки не происходит и доступ откланяется. Если нет, обработка продолжается со следующей запрашиваемой ACE.
4) Для ACE ……………….доступ в CAE сравнивается с перечисленным запрашиваемой маской доступа. Если все доступы в запрашиваемой маске доступа совпадает с ACE, обработка продолжается и доступ предоставляется. Далее следующая обработка запрашиваемой ACE.
NT позволяет отслеживать события, связанные с ОС или приложениями. Контролирование события распознается системой по имени вызвавшегося события в модуле. В дополнение в отображение событий по идентификаторам, журнал безопасности перечисляет их по следующим категориям:
1. Account Management (управление пользователем или группой; данное событие описывает изменение БД бюджета пользователя)
2. Detailed Inarching (отслеживание процесса)
3. Logon/ logoff (процесс входа / выхода из системы; отслеживаются успешные и неуспешные попытки)
4. Object Access (доступ к объекту; успешный или неуспешный доступ к объекту)
5. Policy Change (изменение политики безопасности, изменение БД политики безопасности (назначение привилегий))
6. Privilege User (использование прав пользователя; описывает успешные и неуспешные использования попытки привилегий)
Пример 1: Пользователь имеет идентификатор User 1. Пытается получить доступ на чтение и запись к файлу с именем file 1. МД в User 1 содержит информацию о том, что он является пользователем двух групп: Users и Friends. Users и Friends имеют права полного доступа к file 1. NT делает:
Ø Читает маску доступа для User 1 и определяет, что он пытается получить доступ на чтение и запись.
Ø NT читает ACE Access Allowed для User 1 и находит соотношение с разрешением чтения в запрашиваемой маске доступа.
Ø NT читает ACE Access Allowed для Friends и находит соотношение с разрешением записи в запрашиваемой маске доступа.
Пример 2: User 1 пытается получить доступ на чтение и запись к файлу с именем file 1. То же самое, только Friends имеет право только на чтение. NT делает:
Ø Читает маску доступа для User 1 и определяет, что он пытается получить доступ на чтение и запись.
Ø NT читает ACE Access Denied, которая отклоняет доступ на запись для группы Friends. После этого обработка ACE завершается, доступ не предоставляется.
Пример 3: Если User 1 является владельцем объекта, при тех условиях доступ предоставлен не будет, но будет предоставлен доступ READ_CONTROL и WRITE_OWWER.
Вопрос 38: ОС Windows NT. Реестр. Управление конфигурацией.
Настройка и конфигурация WINDOWS NT
Windows NT сохраняет и проверяет информацию о конфигурации в одном месте – реестре.
В реестре хранятся:
· Данные конфигурации приложений
· Данные конфигурации аппаратных средств
· Данные конфигурации драйверов устройств
· Параметры сетевых протоколов и адаптеров
Обращения:
1. Программа Setup при каждом запуске и при установке любого приложения, добавлении или изменении аппаратных средств, в реестр добавляются новые данные конфигурации.
2. Программа распознавания: при каждом запуске Windows NT программа распознавания помещает данные о конфигурации аппаратных средств в реестр. Эта информация включает список аппаратных средств, обнаруженных в системе.
3. Ядро:
В процессе запуска ОС ядро извлекает из реестра различную информацию (тип драйвера и т.д.)
4. Драйверы устройств (ДУ) посылают и получают данные загрузки и конфигурации из реестра. ДУ должен сообщить об использованных ресурсах системы (номер прерывания, возможность прямого доступа к файлу и т.д.)
5. Административно- инструментальные средства (панель управления): в панели управления можем посмотреть и изменить конфигурацию системы и т.д.
Реестр сконструирован как навод четырех поддеревьев ключей, которые содержат БД с информацией компьютера и пользователя.
В реестре каждый индивидуальный ключ может содержать элементы данных, называются значениями элементов и подключи.
В структуре реестра ключи аналогичны каталогам, значимые элементы – файлам.
4 корневых ключа:
1. HKEY_LOCAL_MACHINE (содержит информацию относительно локальной компьютерной системы, включая аппаратные средств и данные ОС (например, тип шины, количество системной памяти, драйверы устройств, данные управления запуска))
2. HKEY_CLASSES_ROOT (содержит данные связи и внедрения объектов и данные ассоциации файловых классов)
3. HKEY_USERS (содержит все активы, загружаемые профилем пользователя, зарегистрируемые на этой машине)
4. HKEY_CURRENT_USER (содержит профиль пользователя для текущего зарегистрируемого пользователя, включая системные переменные, персональные группы программ, установки рабочего стола, сетевые соединения, установка приложения)
Значимый элемент реестра имеет 3 части: имя, тип и значение. Значимый элемент не может быть больше 1 МБ. Значения от 0 до 7FFFFFFF зарегистрированы для определенной системы, а значения 00000000 до FFFFFFFF для приложения (для пользователя).
Типы данных в реестре:
1. REG_BINARY (необработанные двоичные данные)
2. REG_DWORD (данные, представленные длинной в 4 Б)
3. REG_SZ (последовательность символов, представляющая из себя читаемый текст)
4. REG_MULTY_SZ (увеличенная строка (представляет из себя список))
5. REG_EXPLAND_SZ (расширенная строка данных, являющаяся текстом, который содержит переменную для замены при вызове приложений)
HKEY_LOCAL_MACHINE:
Содержит 5 основных деревьев:
1) HARD WARE (БД, описывающая физические аппаратные средства компьютера, способы использования этих средств драйверами устройств)
2) SAM (информация безопасности для бюджетов пользователей и групп)
3) SECURITY (БД безопасности, которая содержит политику локальной безопасности)
4) SOFT WARE (БД программного обеспечения компьютера)
5) SYSTEM (БД для управления запуском систем (драйверы устройств и т.д.)
Примеры:
HKEY_LOCAL_MACHINE/ SYSTEM/ CURRENT CONTROL/ SET/ CONTROL/ CURRENT USER =
Параметры (имя пользователя)
HKEY_LOCAL_MACHINE/ SYSTEM/ CURRENT CONTROL/ SET/ CONTROL/ REGISTRY SIZE LINIT – ограничивание использование реестром количества памяти
HKEY_LOCAL_MACHINE SYSTEM/ CURRENT CONTROL/ SET/ SERVICE – содержит параметры для драйверов устройств, файловой системы и сервисных драйверов Win 32.
В каждом подключаемом сервисе могут содержаться значимые элементы:
1) Error Control – определяет уровень загрузки (управление) ошибкой. Уровни:
3 – ошибка при попытке запуска системы (критический)
2 – если при запуске не используется параметр ……., то происходит переключение на него. Если используется, то делается попытка продолжения загрузки (серьезный).
1 – если драйвер не может быть загружен или проинициализирован, то загрузка продолжается с выдачей предупреждения (нормальный).
0 – если драйвер не может быть загружен или проинициализирован, то загрузка продолжается без предупреждения (игнорирующий).
2) Image Path – определяет имя пути
3) Start – определяет тип запуска для системного средства.
Тип запуска | Загрузчик | Описание загрузки |
0 (начальная загрузка) | Ядро, система | Загружается системным загрузчиком |
1 (система) | Подсистема ввода- вывода | Представляет из себя драйвер, который нужно загрузить при инициализации |
2 (автоматическая загрузка) | Диспетчер управления сервисом | Загружается и начинает выполняться автоматически независимо от типа сервиса |
3 (загрузка по требованию) | Диспетчер управления сервисом | Приложение не будет запущено до тех пор, пока пользователь явно не укажет |
4 (…..) | Диспетчер управления сервисом | Никогда не запускается |
4) TYPE – определяет тип сервиса
Значения:
1 – драйвер устройства ядра
2 – драйвер файловой системы, который является также драйвером устройства ядра
А (10) – программа Win 32, которая может быть начата контролером сервиса
Параметры:
HKEY_LOCAL_MACHINE/ SYSTEM/ CURRENT CONTROL/ SET/ CONTROL/ FILE SYSTEM – FILE SYSTEM содержит до 4 параметров:
1. NTFS Disable Sdot 3 name c neation
Значения:
0 – разрешает использование данных
1 – запрещает использование данных
2. NTFS Disable Last Access Update – при любом обращении к файлу изменяется время последнего обращения. Чтобы это отключить, надо установить в 1.
3. Win 3.1 File System – при установке в 1 система не будет обновлять и считывать информацию во время создания файла и последнего доступа.
4. Win 95 Truncated Extension – по умолчанию 1, что позволяет Windows NT работать с файлами FILE: EXT, FILE: EXTEN, FILE: EXTENTION как с разными.
HKEY_LOCAL_MACHINE/ SYSTEM/ CURRENT CONTROL/ SET/ CONTROL/ HEMARY MANAGEMENT
Параметры:
Clear Page File At shutdown – по умолчанию 0, и содержание не очищается. При установке в 1 – при каждой перезагрузке данные будут удаляться из At shutdown.
Вопрос 39: Архитектура сетевой подсистемы ОС Windows NT. Встраивание средств защиты в сетевую подсистему.
Встроенная система безопасности основана на …………………..
Дополнительные требования современной системы безопасности:
1. картографическая защита безопасности
2. применение мандатного …………………………….
3. аутиидентификация пользователя основана на электрическом устройстве
Модельная и послойная архитектура NT позволяет встраивать дополнительные модули для реализации дополнительных требований, соответствующие современным системам защиты информации. Встраивание дополнительных компонентов, реализующих алгоритмы системы защиты, не должно ухудшить производительность системы и затруднять процесс администрирования. Реализация данных требований возможна, если дополнительные компоненты системы защиты встраиваются в ядро и работают в прозрачном для пользователя режиме. В наибольшей степени данный подход касается поддержки NT. NT представляет собой ОС со встроенной поддержкой многопротокольной сетевой архитектуры. NT представляет собой ОС со встроенной поддержкой многопротокольной сетевой архитектуры.
Environment Subsystem – подсистема выполнения команд.
Особенность данной модели: сеть представлена как иерархический набор протоколов со встроенными функция для каждого слоя. При этом каждый протокол на определенном уровне обеспечивает вышестоящий слой необходимым сервисом, абстрагируясь по конкретную реализацию нижестоящего слоя и получая от него необходимые сервисы и обслуживание.
Дата публикования: 2015-02-03; Прочитано: 231 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!