Вопрос № 140: Информационная безопасность (ИБ) и её составляющие




 

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

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

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

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

· Перехват информации – целостность информации сохраняется, но ее конфиденциальность нарушена;

· Модификация информации – исходное сообщение изменяется, либо полностью заменяется другим и отсылается адресату;

· Подмена авторства информации. Данная проблема может иметь серьезные последствия. Например, кто-то может послать письмо от вашего имени (этот вид обмана принято называть спуфингом) или Web-сервер может притворяться электронным магазином, принимать заказы, номера кредитных карт, но не высылать никаких товаров.

В соответствии с перечисленными проблемами при обсуждении вопросов безопасности под самим термином «безопасность» подразумевается совокупность трех различных характеристик обеспечивающих безопасность системы:

1. Аутентификация – это процесс распознования пользователя системы и предоставление ему определенных прав и полномочий.

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

3. Секретность – предотвращение несанкционированного доступа к информации.

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

В основе шифрования лежат два основных понятия: алгоритм и ключ. Алгоритм – это способ закодировать исходный текст. Зашифрованное послание может быть интерпретировано только с помощью ключа.

Существуют две основных схемы шифрования: симметричное шифрование (традиционное или шифрование с секретным ключом) и шифрование с открытым ключом (ассиметричное).

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

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

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

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

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

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

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

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

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

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

Все брандмауэры можно разделить на два типа:

1. пакетные фильтры, которые осуществляют фильтрацию IP-пакетов средствами фильтрующих маршрутизаторов;

2. серверы прикладного уровня, которые блокируют доступ к определенным сервисам в сети.

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

· весь трафик из внутренней сети во внешнюю и из внешней сети во внутреннюю должен пройти через эту систему;

· только трафик, определенный локальной стратегией защиты, может пройти через эту систему;

· система надежно защищена от проникновения.

 

Термины

 

196. Программирование нисходящее (top-down programming) – способ разработки программ, при котором программирование ведется методом "сверху вниз", от общего к деталям. Алгоритм решения задачи разбивается на несколько более простых частей или подзадач. Их выделяют таким образом, чтобы, программирование подзадач было независимым. При этом составляют план решения всей задачи, пунктами которого и являются выделенные части. План записывают графически в виде блок-схемы, где определяют головную и подчиненные подзадачи и связи между ними, т. е. интерфейс. Здесь же устанавливают, какие начальные данные (или аргументы) получает каждая подзадача для правильного функционирования и какие результаты она выдает. По блок-схеме составляется программа, в которой содержатся вызовы подпрограмм (процедур или функций), соответствующих выделенным подзадачам. Эту программу можно сразу отлаживать, временно заменив "заглушками" подпрограммы для подзадач. Затем аналогично производят детализацию и программирование каждой подзадачи. Процесс последовательной детализации идет до тех пор, пока не будет написана программа для каждого фрагмента алгоритма. При этом на каждом этапе нисходящего программирования имеется действующий вариант программы, отладка которой ведется по ходу всей разработки программы.

197. Объектно-ориентированное программирование – это метод программирования, при использовании которого главными элементами программ являются объекты.

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

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

В основе объектно-ориентированного подхода лежат три понятия:

· инкапсуляция: объединение данных с процедурами и функциями в рамках единого целого — объекта; Кнопка обладает определенным поведением: она может быть нажата, после нажатия на кнопку будут происходить определенные события и т. д. Соединение таких свойств и поведения в одном объекте, и называется инкапсуляцией.

· наследование: возможность построения иерархии объектов с использованием наследования их характеристик; Возьмем в качестве «родительского объекта» самую простую квадратную кнопку серого цвета с надписью «Кнопка», при нажатий на которую запускается определенная процедура. На основе этой кнопки можно создать множество кнопок, обладающих различными размерами, цветами и надписями.

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

198. Cобытийно-ориентированное программирование – получает все большее распространение. Основная его специфика - инициатива принадлежит не самой программе, а внешнему миру, на события которого программа реагирует.

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

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

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

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

199. Программирование структурное – методология и технология разработки программных комплексов, основанная на принципах:

- программирования "сверху-вниз";

- модульного программирования.

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

200. Программное обеспечение (software) – совокупность программ и программных комплексов для обеспечения работы компьютера и вычислительных сетей. По видам выполняемых функций программное обеспечение подразделяется на:

1. Системное программное обеспечение (System software): - создание операционной среды функционирования других программ; - обеспечение надежной и эффективной работы самого компьютера и вычислительной сети;

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

2. Прикладное программное обеспечение (Application software) - программное обеспечение, состоящее из:

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

Инструментальное программное обеспечение (Software tools) - программное обеспечение, используемое в ходе разработки, корректировки или развития других программ: редакторы, компиляторы, отладчики, вспомогательные системные программы, графические пакеты и др.

 

Задача

 

Задача № 40: Дан массив чисел P=(p1,p2,...,pm). Вычислить среднее арифметическое отрицательных элементов массива.

Решение задачи

1) Обозначения:

Count – количество элементов в массиве,

i – текущий номер элемента массива,

arr[i] – элемент массива с номером i,

otrCount – количество отрицательных элементов,

otrSumm – сумма отрицательных элементов.

Массив – это упорядоченная совокупность однотипных элементов.

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

Отрицательные элементы определяются с помощью проверки условия arr[i] < 0. Если для элемента это условие не выполняется, то осуществляется выбор для обработки следующего элемента массива, то есть значение i увеличивается на 1. При обнаружении отрицательного элемента он добавляется к сумме и otrCount увеличивается на 1, затем происходит переход к следующему элементу массива.

Цикл обработки элементов массива заканчивается, когда проверены все элементы массива, начиная с первого и заканчивая элементом с номером Count.

После обработки, если otrCount < 0, выводится среднеарифметическое отрицательных элементов (otrSumm/otrCount), в противном случае выводится сообщение, о том, что отрицательных элементов в массиве нет.

3) Программа на языке Turbo Pascal:

(* Podkluchaem modul crt dlia funkzii clrscr, kotoraya chistit ekran *)

uses crt;

 

const

MAX_LENGTH = 1000; (* maksimalnaya dlinna massiva *)

 

var

count: integer; (* kollichestvo elementov v massive *)

arr: array [1..MAX_LENGTH] of integer; (* massiv *)

otrSumm: integer; (* summa otrizatelnih elementov *)

otrCount: integer; (* kolichestvo otrizatelnih elementov *)

i: integer; (* schetchick dlya сiklov *)

 

begin

clrscr;

(* Vvodim kollichestvo elementov v massive *)

write(‘Input array length: ‘);

readln(count);

if (count < 1) or (count > MAX_LENGTH) then

begin

write(‘Nevernoe kolichestvo elementov’);

exit;

end;

 

(* Vvodim posledovatelno elementi massiva *)

for I:= 1 to count do

begin

write(‘Input a[‘, I, ‘]: ‘);

readln(arr[i]);

end;

 

(* Ishem otrizatelnie elementi, ih summu (otrSumm) I kolichestvo (otrCount) *)

otrCount:= 0;

otrSumm:= 0;

for I:= 1 to count do

begin

if arr[i] < 0 then

begin

otrSumm:= otrSumm + arr[i];

inc(otrCount);

end

end;

 

(* Vivodim rezultat (otrSumm/otrCount) ili soobshenie o tom, chto otrizatelnih elementov net. *)

if otrCount > 0 then

begin

(* Format vivoda drobnih chisel:2:2 – 2 simvola do tochki I dva posle *)

write(‘Srednee arifmeticheskoe otrizatelnih elementov = ‘, otrSumm / otrCount:2:2);

end

else

begin

write(‘V massive net otrizatelnih elementov’);

end;

(* Zhdem nazhatiya ENTER *)

readln;

end.

 

4) Пояснения к программе:

На запрос Input array length вводим с клавиатуры значение Count. Затем в цикле, повторяющемся Count раз, вводим по одному элементу массива на каждый запрос.

Count Массив otrSumm/otrCount
  -5, 7, -15, 30, 0 (-5+(-15))2= -10.00
  -3, -2, 1, -7, -8, 100, 0, 2 ((-3)+(-2)+(-7)+(-8))= -5.00
  -7, -9, -6, 1, -7, 4, 2 ((-7)+(-9)+(-6)+1+(-7)+4+2)= -7.25
     
  5, 0 V massive net otricatelnux elementov

Обнуляем otrSumm и otrCount. Далее в цикле проверяем условие arr[i] < 0. Если очередной элемент массива оказывается отрицательным, то добавляем его к сумме и увеличиваем количество отрицательных элементов.

 

Продолжение Табл.

  -3, 5, -9, -1, 2, -4, 3, -6, 8, 4 ((-3)+5+(-9)+(-1)+2+(-4)+3+(-6)+8+4)= -4.60

 

Цикл заканчивается, когда проверены все элементы массива.

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



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

 

1. Архангельский А.Я. Программирование в Delphi 7. – М.: ООО «Бином-Пресс», 2003. – 1152 с.: ил.

2. Велихов А.В. Основы информатики и компьютерной техники. – М.: Солон-Пресс, 2003. – 544 с.: ил.

3. Дарахвелидзе П.Г., Марков Е.П. Программирование в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 748 с.: ил.

4. Информатика. Базовый курс / Симонович С.В. и др. – СПб.: Питер, 2003. – 640 с.: ил.

5. Информатика / Острейковский В.А. Учебник для вузов. – М.: Высшая школа, 2000. – 511 с.: ил.

6. Стивенс Р. Delphi. Готовые алгоритмы / Пер. с англ. Мерещука П.А. – 2-е изд., стер. – М.: ДМК Пресс; СПб.: Питер, 2004. – 384 с.: ил.

7. Уткин В.Б., Балдин К.В. Информационные системы и технологии в экономике: Учебник для вузов. – М.: ЮНИТИ-ДАНА, 2003. – 335 с.: ил.

8. Экономическая информатика / под ред. П.В. Конюховского и Д.Н. Колесова. – СПб.: Питер, 2001. – 560 с.: ил.

Источники в Интернете

1. https://www.symantec.com

2. https://www.kasperskylab.ru

3. https://www.winzip.com

4. https://www.netzip.com



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-12-18 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: