Процессы трансляции и выполнения при компиляцииразделяются во времени: сначала исходная программа в полном объеме переводится на машинный язык, после чего оттранслированная программа может многократно исполняться. Для трансляции методом компиляции необходим неоднократный «просмотр» транслируемой программы, т. е. трансляторы-компиляторыявляются многопроходными. Трансляция методом компиляции носит название объектного модуля,который представляет собой эквивалентную программу в машинных кодах. Необходимо, чтобы перед исполнением объектный модуль обрабатывался специальной программой ОС и преобразовывался в загрузочный модуль.
   Применяют также трансляторы интерпретаторы-компиляторы,объединяющие в себе достоинства обоих принципов трансляции.

9.3. Классификация языков программирования высокого уровня

   Высокоуровневые языки используются в машинно-независимых системах программирования. Такие системы программирования в сравнении с машинно-ориентированными системами предстают более простыми в использовании.
   Языки программирования высокого уровня подразделяют на процедурно-ориентированные, проблемно-ориентированные и объектно-ориентированные.
    Процедурно-ориентированные языкиприменяются для записи процедур или алгоритмов обработки информации на каждом определенном круге задач. К ним относятся:
   а) язык Фортран (Fortran), название которого происходит от слов Formulae Translation – «преобразование формул». Фортран представляет собой один из старейших языков программирования высокого уровня. Длительность его существования и применения можно объяснить простотой структуры данного языка;
   б) язык Бейсик (Basic), который расшифровывается как Beginner's All-purpose Symbolic Instruction Code, что в переводе означает – «многоцелевой символический обучающий код для начинающих», разработан в 1964 г. как язык для обучения программированию;
   в) язык Си (С), применяемый с 1970-х гг. как язык системного программирования специально для написания ОС UNIX. В 1980-е гг. на основе языка С был разработан язык C++, практически включающий в себя язык С и дополненный средствами объектно-ориентированного программирования;
   г) язык Паскаль (Pascal), который назван в честь французского ученого Б. Паскаля, начал применяться с 1968–1971 гг. Н. Виртом. При создании Паскаль использовался для обучения программированию, но со временем стал широко применяться для разработки программных средств в профессиональном программировании.
    Проблемно-ориентированные языкииспользуются для решения целых классов новых задач, возникших в связи с постоянным расширением области применения вычислительной техники:
   а) язык Лисп (Lisp – List Information Symbol Processing), который был изобретен в 1962 г. Дж. Маккарти. Первоначально он применялся как средство для работы со строками символов. Лисп употребляется в экспертных системах, системах аналитических вычислений и т. п.;
   б) язык Пролог (Prolog – Programming in Logic), используемый для логического программирования в системах искусственного интеллекта.
    Объектно-ориентированные языкиразвиваются и в настоящий момент. Большинство из этих языков являются версиями процедурных и проблемных языков, но программирование с помощью языков этой группы является более наглядным и простым. К наиболее часто употребляемым языкам относятся:
   а) Visual Basic (~ Basic);
   б) Delphi (~ Pascal);
   в) Visual Fortran (~ Fortran);
   r) C++ (~ C);
   д) Prolog++ (~ Prolog).

9.4. Система VBA

   Система VBA представляет собой подмножество VB и вклю – чает себя средства образования приложений VB, его структуры данных и управляющие структуры, дающие возможность создавать пользовательские типы данных. Так же как и VB, VBA – является системой визуального программирования, управляемого событиями. В ней имеется возможность создания форм со стандартным набором элементов управления и написания процедур, обрабатывающих события, которые возникают при тех или иных действиях системы и конечного пользователя. Также она позволяет использовать элементы ActiveX и автоматизации. Система VBA представляет собой полноценную систему программирования, но не имеет полного набора возможностей, которыми обладает последняя версия VB.
   Программирование в среде VBA обладает рядом особенностей. В частности, в ней нельзя создавать проект независимо от этих приложений.
   Из-за того что VBA является визуальной системой, программист способен создавать видимую часть приложения, которая является основой интерфейса «программа – пользователь». Благодаря этому интерфейсу производится взаимодействие пользователя с программой. На принципах объектно-ориентированного подхода, который реализуется в VBA применительно к приложениям, выполняемым под управлением Windows, разрабатывается программный интерфейс.
   Характерным для данных приложений является то, что на экране в любой момент присутствует множество объектов(окон, кнопок, меню, текстовых и диалоговых окон, линеек прокрутки). С учетом алгоритма программы пользователь обладает определенной свободой выбора относительно использования этих объектов, т. е. он может сделать щелчок по кнопке, перенести объект, ввести данные в окно и т. п. При создании программы программист не должен ограничивать действия пользователя, он должен разрабатывать программу, правильно реагирующую на любое действие пользователя, даже некорректное.
   Для любого объекта определяется ряд возможных событий.Одни события обусловлены действиями пользователя, например одинарным или двойным щелчком мыши, переносом объекта, нажатием клавиши клавиатуры и т. п. Некоторые события происходят в результате свершения других событий: окно открывается или закрывается, элемент управления становится активным или теряет активность.
   Любое из событий проявляется в определенных действияхпрограммы, а виды возможных действий можно разделить на две группы. Действия первой группы являются следствием свойств объекта, устанавливающихся из некоторого стандартного перечня свойств, которые задаются системой программирования VBA и самой системой Windows, например свертывание окна после щелчка по кнопке Свернуть. Вторую группу действий на события может определить только программист. Для любого возможного события отклик обеспечивается созданием процедуры VBA. Теоретически возможно создать процедуру для каждого события, но практически программист заполняет кодом процедуры только для событий, представляющих в данной программе интерес.
   Объекты VBA являются функциональными, т. е. они действуют определенным образом и способны откликаться на конкретные ситуации. Внешний вид объекта и его поведение влияют на его свойства, а методы объекта определяют функции, которые способен выполнять данный объект.
    Свойствами-участникамиявляются свойства, которые задают вложенные объекты.
   Объекты способны реагировать на события – инициируемые пользователем и генерируемые системой. События, инициируемые пользователем,появляются, например, при нажатии клавиши, щелчка кнопками мыши. Исходя из этого любое действие пользователя может привести к целому набору событий. События, генерируемые системой,проявляются автоматически в случае, предусмотренном программным обеспечением компьютера.

9.5. Язык программирования VBA

   Язык программирования VBA предназначен для написания кода программы. Он обладает своим алфавитом, который включает в себя:
    строчные и прописные буквы латинского алфавита (А, B....,Z,a,b....,z);
    строчные и прописные буквы кириллицы (А—Я, а—я);
    неотображаемые символы, используемые для отделения лексем (лексических единиц) друг от друга;
    специальные символы, участвующие в построении конструкций языка: +-*?^=><[]():{}' &©;
    цифры от 0 до 9;
    символ подчеркивания «_»;
    составные символы, воспринимаемые как один символ: <=, >=, <>.
    Лексемаявляется единицей текста программы, которая имеет определенный смысл для компилятора и не может быть разбита в дальнейшем.
    Программный код VBA –это последовательность лексем, записанных в соответствии с принятыми синтаксическими правилами, которая реализует нужную семантическую конструкцию.
    Идентификаторпредставляет собой последовательность букв, цифр и символов подчеркивания.
   Система VBA определяет некоторые ограничения, которые накладываются на имена:
   1) имя следует начинать с буквы;
   2) имя не должно включать в себя точки, пробелы, разделительные символы, знаки операций, специальные символы;
   3) имя должно быть уникальным и не совпадать с зарезервированными словами VBA или другими именами;
   4) длина имени не должна превышать 255 символов;
   5) при составлении имен необходимо соблюдать соглашения по стилю;
   6) идентификатор должен ясно отражать назначение переменной для понимания программы;
   7) в именах лучше применять строчные буквы; если имена включают в себя несколько названий, их нужно отделять друг от друга подчеркиванием или начинать новое слово с прописной буквы;
   8) имена констант следует составлять из прописных букв;
   9) название идентификатора необходимо начинать со специального знака, указывающего на тип данных, связанный с этим идентификатором.
    Переменныеявляются объектами, которые предназначены для хранения данных. Перед применением переменных в программе необходимо их объявлять (декларировать). Правильный выбор типа переменной обеспечивает эффективное использование памяти компьютера.
    Строковые переменныемогут быть переменной и фиксированной длины.
   Объекты, значения которых не изменяются и не могут быть изменены во время выполнения программы, носят название констант.Их подразделяют на именованные и неименованные.
    Перечнииспользуются для декларации группы констант, объединенных общим именем, к тому же они могут быть объявлены только в разделе глобальных объявлений модуля или формы.
    Переменные подразделяют на два вида –простые и переменные структурного вида. Массивы бывают одномерными и многомерными.
   После декларации значение переменной может оказаться произвольным. Для присвоения переменной необходимого значения применяется операция присваивания.
    Математические операциииспользуются для записи формулы, представляющей собой программный оператор, который содержит числа, переменные, операторы и ключевые слова.
    Операции отношениямогут привести к появлению значения, причем существуют только два результирующих значения: истина и ложно.
    Логические операциииспользуются в логических выражениях, это происходит при существовании нескольких условий выбора в операциях отношения.
    Операции для работы со строками –это операции конкатенации, которые позволяют объединить значения двух или нескольких строковых переменных или строковых констант. Результатом такой операции является более длинная строка, составленная из исходных строк.

Тема 10
Основы защиты информации

10.1. Защита информации как закономерность развития компьютерных систем

    Защита информации –это применение различных средств и методов, использование мер и осуществление мероприятий для того, чтобы обеспечить систему надежности передаваемой, хранимой и обрабатываемой информации.
   Защита информации включает в себя:
    обеспечение физической целостности информации, исключение искажений или уничтожения элементов информации;
    недопущение подмены элементов информации при сохранении ее целостности;
    отказ в несанкционированном доступе к информации лицам или процессам, которые не имеют на это соответствующих полномочий;
    приобретение уверенности в том, что передаваемые владельцем информационные ресурсы будут применяться только в соответствии с обговоренными сторонами условиями.
   Процессы по нарушению надежности информации подразделяют на случайные и злоумышленные (преднамеренные). Источниками случайныхразрушительных процессов являются непреднамеренные, ошибочные действия людей, технические сбои. Злоумышленныенарушения появляются в результате умышленных действий людей.
   Проблема защиты информации в системах электронной обработки данных возникла практически одновременно с их созданием. Ее вызвали конкретные факты злоумышленных действий над информацией.
   Важность проблемы по предоставлению надежности информации подтверждается затратами на защитные мероприятия. Для обеспечения надежной системы защиты необходимы значительные материальные и финансовые затраты. Перед построением системы защиты должна быть разработана оптимизационная модель, позволяющая достичь максимального результата при заданном или минимальном расходовании ресурсов. Расчет затрат, которые необходимы для предоставления требуемого уровня защищенности информации, следует начинать с выяснения нескольких фактов: полного перечня угроз информации, потенциальной опасности для информации каждой из угроз, размера затрат, необходимых для нейтрализации каждой из угроз.
   Если в первые десятилетия активного использования ПК основную опасность представляли хакеры, подключившиеся к компьютерам в основном через телефонную сеть, то в последнее десятилетие нарушение надежности информации прогрессирует через программы, компьютерные вирусы, глобальную сеть Интернет.
   Имеется достаточно много способов несанкционированного доступа к информации, в том числе:
    просмотр;
    копирование и подмена данных;
    ввод ложных программ и сообщений в результате подключения к каналам связи;
    чтение остатков информации на ее носителях;
    прием сигналов электромагнитного излучения и волнового характера;
    использование специальных программ.
   Для борьбы со всеми этими способами несанкционированного доступа необходимо разрабатывать, создавать и внедрять многоступенчатую непрерывную и управляемую архитектуру безопасности информации. Защищать следует не только информацию конфиденциального содержания. На объект защиты обычно действует некоторая совокупность дестабилизирующих факторов. При этом вид и уровень воздействия одних факторов могут не зависеть от вида и уровня других.
   Возможна ситуация, когда вид и уровень взаимодействия имеющихся факторов существенно зависят от влияния других, явно или скрыто усиливающих такие воздействия. В этом случае следует применять как независимые с точки зрения эффективности защиты средства, так и взаимозависимые. Для того чтобы обеспечить достаточно высокий уровень безопасности данных, надо найти компромисс между стоимостью защитных мероприятий, неудобствами при использовании мер защиты и важностью защищаемой информации. На основе детального анализа многочисленных взаимодействующих факторов можно найти разумное и эффективное решение о сбалансированности мер защиты от конкретных источников опасности.

10.2. Объекты и элементы защиты в компьютерных системах обработки данных

    Объект защиты –это такой компонент системы, в котором находится защищаемая информация. Элементом защитыявляется совокупность данных, которая может содержать необходимые защите сведения.
   При деятельности компьютерных систем могут возникать:
    отказы и сбои аппаратуры;
    системные и системотехнические ошибки;
    программные ошибки;
    ошибки человека при работе с компьютером.
   Несанкционированный доступ к информации возможен во время технического обслуживания компьютеров в процессе прочтения информации на машинных и других носителях. Незаконное ознакомление с информацией разделяется на пассивное и активное. При пассивномознакомлении с информацией не происходит нарушения информационных ресурсов и нарушитель может лишь раскрывать содержание сообщений. В случае активногонесанкционированного ознакомления с информацией есть возможность выборочно изменить, уничтожить порядок сообщений, перенаправить сообщения, задержать и создать поддельные сообщения.
   Для обеспечения безопасности проводятся разные мероприятия, которые объединены понятием «система защиты информации».
    Система защиты информации –это совокупность организационных (административных) и технологических мер, программно-технических средств, правовых и морально-этических норм, которые применяются для предотвращения угрозы нарушителей с целью сведения до минимума возможного ущерба пользователям и владельцам системы.
    Организационно-административными средствами защитыназывается регламентация доступа к информационным и вычислительным ресурсам, а также функциональным процессам систем обработки данных. Эти средства защиты применяются для затруднения или исключения возможности реализации угроз безопасности. Наиболее типичными организационно-административными средствами являются:
   • допуск к обработке и передаче охраняемой информации только проверенных должностных лиц;
   • хранение носителей информации, которые представляют определенную тайну, а также регистрационных журналов в сейфах, недоступных для посторонних лиц;
   • учет применения и уничтожения документов (носителей) с охраняемой информацией;
   • разделение доступа к информационным и вычислительным ресурсам должностных лиц в соответствии с их функциональными обязанностями.
    Технические средства защитыприменяются для создания некоторой физически замкнутой среды вокруг объекта и элементов защиты. При этом используются такие мероприятия, как:
   • ограничение электромагнитного излучения через экранирование помещений, в которых осуществляется обработка информации;
   • реализация электропитания оборудования, отрабатывающего ценную информацию, от автономного источника питания или общей электросети через специальные сетевые фильтры.
    Программные средства и методы защитыявляются более активными, чем другие применяемые для защиты информации в ПК и компьютерных сетях. Они реализуют такие функции защиты, как разграничение и контроль доступа к ресурсам; регистрация и изучение протекающих процессов; предотвращение возможных разрушительных воздействий на ресурсы; криптографическая защита информации.
   Под технологическими средствами защиты информациипонимаются ряд мероприятий, органично встраиваемых в технологические процессы преобразования данных. В них также входят:
    создание архивных копий носителей;
    ручное или автоматическое сохранение обрабатываемых файлов во внешней памяти компьютера;
    автоматическая регистрация доступа пользователей к различным ресурсам;
    выработка специальных инструкций по выполнению всех технологических процедур и др.
    Правовыеи морально-этические меры и средства защитывключают в себя действующие в стране законы, нормативные акты, регламентирующие правила, нормы поведения, соблюдение которых способствует защите информации.

10.3. Средства опознания и разграничения доступа к информации

    Идентификациейназывается присвоение тому или иному объекту или субъекту уникального имени или образа. Аутентификация –это установление подлинности объекта или субъекта, т. е. проверка, является ли объект (субъект) тем, за кого он себя выдает.
   Конечная цель процедур идентификации и аутентификации объекта (субъекта) заключается в допуске его к информации ограниченного пользования в случае положительной проверки либо отказе в допуске при отрицательном результате проверки.
   Объекты идентификации и аутентификации включают в себя: людей (пользователей, операторов); технические средства (мониторы, рабочие станции, абонентские пункты); документы (ручные, распечатки); магнитные носители информации; информацию на экране монитора.
   К наиболее распространенным методам аутентификации относятся присвоение лицу или другому имени пароля и хранение его значения в вычислительной системе. Паролемназывается совокупность символов, которая определяет объект (субъект).
   Пароль как средство обеспечения безопасности способен использоваться для идентификации и установления подлинности терминала, с которого входит в систему пользователь, а также для обратного установления подлинности компьютера по отношению к пользователю.
   С учетом важности пароля как средства повышения безопас – ности информации от несанкционированного использования необходимо соблюдать следующие меры предосторожности:
   1) не хранить пароли в вычислительной системе в незашифрованном месте;
   2) не печатать и не отображать пароли в открытом виде на терминале пользователя;
   3) не применять в качестве пароля свое имя или имена родственников, а также личную информацию (дата рождения, номер домашнего или служебного телефона, название улицы);
   4) не применять реальные слова из энциклопедии или толкового словаря;
   5) использовать длинные пароли;
   6) применять смесь символов верхнего и нижнего регистров клавиатуры;
   7) применять комбинации из двух простых слов, соединенных специальными символами (например, +,=,<);
   8) использовать несуществующие новые слова (абсурдные или даже бредового содержания);
   9) как можно чаще менять пароль.
   Для идентификации пользователей могут использоваться сложные в плане технической реализации системы, которые обеспечивают установление подлинности пользователя на основе анализа его индивидуальных параметров: отпечатков пальцев, рисунка линий руки, радужной оболочки глаз, тембра голоса. Наиболее широкое применение имеют физические методы идентификации, которые используют носители кодов паролей. Такими носителями могут быть пропуск в контрольно-пропускных системах; пластиковые карты с именем владельца, его кодом, подписью; пластиковые карточки с магнитной полосой, которая считывается специальным считывающим устройством; пластиковые карты, содержащие встроенную микросхему; карты оптической памяти.
   Одним из наиболее интенсивно разрабатываемых направлений по обеспечению безопасности информации является идентификация и определение подлинности документов на основе электронной цифровой подписи. При передаче информации по каналам связи используется факсимильная аппаратура, но при этом к получателю приходит не подлинник, а только копия документа с копией подписи, которая в процессе передачи может быть подвергнута повторному копированию для использования ложного документа.
    Электронная цифровая подписьпредставляет собой способ шифрования с использованием криптографического преобразования и является паролем, зависящим от отправителя, получателя и содержания передаваемого сообщения. Для того чтобы предупредить повторное использование подписи, ее необходимо менять от сообщения к сообщению.

10.4. Криптографический метод защиты информации

   Наиболее эффективным средством повышения безопасности является криптографическое преобразование. Для того чтобы повысить безопасность, осуществляется одно из следующих действий:
   1) передача данных в компьютерных сетях;
   2) передача данных, которые хранятся в удаленных устройствах памяти;
   3) передача информации при обмене между удаленными объектами.
   Защита информации методом криптографического преобразования состоит в приведении ее к неявному виду через преобразование составных частей информации (букв, цифр, слогов, слов) с применением специальных алгоритмов либо аппаратных средств и кодов ключей. Ключявляется изменяемой частью криптографической системы, хранящейся в тайне и определяющей, какое шифрующее преобразование из возможных выполняется в данном случае.
   Для изменения (шифрования) используется некоторый алгоритм или устройство, реализующее заданный алгоритм. Алгоритмы могут быть известны широкому кругу лиц. Управление процессом шифрования происходит с помощью периодически меняющегося кода ключа, который обеспечивает каждый раз оригинальное представление информации в случае применения одного и того же алгоритма или устройства. При известном ключе можно относительно быстро, просто и надежно расшифровать текст. Без знания ключа эта процедура может стать практически невыполнимой даже при использовании компьютера.
   К методам криптографического преобразования предъявляются следующие необходимые требования:
   1) он должен быть достаточно устойчивым к попыткам раскрытия исходного текста с помощью использования зашифрованного;
   2) обмен ключа не должен быть тяжел для запоминания;
   3) затраты на защитные преобразования следует сделать приемлемыми при заданном уровне сохранности информации;
   4) ошибки в шифровании не должны вызывать явную потерю информации;
   5) размеры зашифрованного текста не должны превышать размеры исходного текста.
   Методы, предназначенные для защитных преобразований, подразделяют на четыре основные группы: перестановки, замены (подстановки), аддитивные и комбинированные методы.