Что понимается под целостностью данных
Целостность данных
Целостность данных — термин в информатике и теории телекоммуникаций, который означает, что данные полны, условие того, что данные не были изменены при выполнении любой операции над ними, будь то передача, хранение или представление.
В телекоммуникации целостность данных часто проверяют, используя MAC-код сообщения (Message authentication code).
В криптографии и информационной безопасности целостность данных в общем — это данные в том виде, в каком они были созданы. Примеры нарушения целостности данных:
В теории баз данных целостность данных означает корректность данных и их непротиворечивость. Обычно она также включает целостность связей, которая исключает ошибки связей между первичным и вторичным ключом. К примеру, когда существуют дочерние записи-сироты, которые не имеют связи с родительскими записями.
Пример проверки целостности данных в криптографии — это использование хеш-функции, к примеру хеш-функцией тоже изменится.
Целостность данных — свойство, при выполнении которого данные сохраняют заранее определённый вид и качество.
Смотреть что такое «Целостность данных» в других словарях:
целостность данных — Свойство, при выполнении которого данные сохраняют заранее определенный вид и качество. [http://www.rfcmd.ru/glossword/1.8/index.php?a=index d=23] целостность данных Сервис контроля доступа, гарантирующий, что принятые по сети данные не были… … Справочник технического переводчика
Целостность данных — свойство, при выполнении которого данные сохраняют заранее определенный вид и качество. По английски: Data integrity См. также: Информационная безопасность Финансовый словарь Финам … Финансовый словарь
Целостность данных — Целостность (данных) (integrity (of data)): свойство данных сохранять точность и непротиворечивость независимо от внесенных изменений (ИСО/МЭК 2382 8). Источник: ИНФОРМАТИЗАЦИЯ ЗДОРОВЬЯ. ТРЕБОВАНИЯ К АРХИТЕКТУРЕ ЭЛЕКТРОННОГО УЧЕТА ЗДОРОВЬЯ.… … Официальная терминология
целостность (данных) — (integrity (of data)): Свойство данных сохранять точность и непротиворечивость независимо от внесенных изменений (ИСО/МЭК 2382 8). Источник: ГОСТ Р ИСО/ТС 18308 2008: Информатизация здоровья. Требования к архитектуре электронного учета здоровья … Словарь-справочник терминов нормативно-технической документации
целостность данных — 2.23 целостность данных (data integrity): Соответствие значений всех данных базы данных определенному непротиворечивому набору правил. Источник: ГОСТ Р ИСО/МЭК ТО 10032 2007: Эталонная модель управления данными целостность данных: Способность… … Словарь-справочник терминов нормативно-технической документации
Целостность информации — Целостность информации (также целостность данных) термин в информатике и теории телекоммуникаций, который означает, что данные полны, условие того, что данные не были изменены при выполнении любой операции над ними, будь то передача,… … Википедия
целостность системы — 1. Качество системы, которым она обладает, если корректно выполняет все свои функции, свободна от намеренных или случайных несанкционированных манипуляций. 2. Состояние системы, в котором существует полная гарантия того, что при любых условиях… … Справочник технического переводчика
целостность — 2.15 целостность (integrity): Свойство сохранения правильности и полноты активов. Источник … Словарь-справочник терминов нормативно-технической документации
Целостность базы данных — свойство базы данных, означающее, что БД содержит полную и непротиворечивую информацию, необходимую для корректного функционирования приложений. Для обеспечения целостности накладывают ограничения целостности. См. также: Базы данных Финансовый… … Финансовый словарь
целостность на уровне ссылок — ссылочная целостность целостность ссылочных данных — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом Синонимы ссылочная целостностьцелостность ссылочных… … Справочник технического переводчика
Целостность данных
Под целостностью понимают «правильность» данных, содержащихся в БД, по отношению к предметной области. Целостность данных подразделяется на следующие категории.
Целостность на уровне сущности означает обеспечение уникальности экземпляра сущности, т.е., строки в конкретной таблице. Она обеспечивается указанием ограничений целостности PRIMARY KEY или UNIQUE в SQL, или указанием первичного ключа таблицы.
Ссылочная целостность гарантирует согласованность значений ключевых атрибутов в связанных таблицах. Этот вид целостности проверяет наличие ссылок на несуществующие значения, а также обеспечивает согласованное изменение ссылок во всей базе данных при изменении значения ключа. Обычно ссылочная целостность основана на связи первичных и внешних ключей и обеспечивается с помощью ограничений FOREIGN KEY и CHECK.
При обеспечении ссылочной целостности СУБД не допускает следующих действий пользователей.
· Добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки.
· Изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице.
· Удаления строк из первичной таблицы, если имеются соответствующие ей строки в связанных таблицах.
Пример таблиц с нарушением ссылочной целостности:
Студент | Дисциплина | ||||
Студ_ИД | Студ_Фио | Студ_рейтинг | СтудентДисциплина | Дсц_ИД | Наим |
Иванов | Студ_ИД | Дсц_ИД | Оценка | ТАУ | |
Иванов | ОБЖ | ||||
Иванова |
Пользовательская целостность подразумевает определение бизнес-правил. Поддержку пользовательской целостности обеспечивают с помощью ограничений на уровне атрибутов (столбцов) и таблицы при описании структуры таблицы, в операторе CREATE TABLE, хранимых процедурах и триггерах.
Триггером является хранимая процедура, выполняемая автоматически при возникновении события на сервере. Различают триггеры DML (срабатывающие при попытке изменения данных) и триггеры DDL (срабатывающие при попытке изменить описание данных).
DML-триггеры выполняются по событиям, вызванным попыткой пользователя изменить данные с помощью языка обработки данных. Событиями DML являются процедуры INSERT, UPDATE или DELETE, применяемые к таблице или представлению (View). Триггеры DML используют внутренние логические таблицы, именуемые deleted и inserted. По своей структуре они подобны таблице, на которой определен триггер, то есть таблице, к которой применяется действие пользователя. В таблицах deleted и inserted содержатся старые или новые значения строк, которые могут быть изменены действиями пользователя.
DML-триггеры могут обращаться к другим таблицам. DML-триггеры удобно использовать в следующих случаях:
· для каскадных изменений в связанных таблицах базы данных;
· для предотвращения случайных или неправильных операций INSERT, UPDATE и DELETE.
При редактировании связанных таблиц в зависимости от заданных ограничений поддержки целостности СУБД может:
· выполнить каскадное (CASCADE) удаление/обновление строк в связанных таблицах;
· не выполнять действий (NO ACTION) по редактированию связанных таблиц.
Тема 4. Работа с данными. Язык баз данных
Лекция №4. Основные понятия языка баз данных на примере SQL
В рамках данной лекции рассматриваются нижеследующие вопросы:
· Понятие языка программирования баз данных.
· DML: процедурные и декларативные языки; операции низкого и высокого уровней
· Хранимые и формируемые объекты базы данных
· DML: операторы создания хранимой и виртуальной таблицы, вставки, выборки обновления
Языки для работы с базами данных зависят от того, какую модель данных поддерживает СУБД: реляционную, иерархическую или сетевую.
Применительно к СУБД различают языки низкоуровневой обработки, в которых в одной операции осуществляется обработка одной записи, и языки высокоуровневой обработки, в одной операции которых обрабатывается совокупность записей.
Языком базы данных называют язык, используемый для доступа, выборки, обновления и управления данными в системах реляционных баз данных.
Язык SQL, или язык структурированных запросов (Structured Query Language), ориентирован на использование в реляционных СУБД. Он прошел несколько этапов своего развития и первоначально создавался с целью получения языка запросов, приближенного к естественному (английскому). Операторы, или предложения (statements), языка имеют сложную структуру, напоминающую конструкцию сложно-подчиненного предложения, в котором имеются главное и подчиненное (clause) предложения.
Язык SQL является машинно-независимым и декларативным, т.е., описывающим свойства искомого объекта, а не алгоритм его поиска, причем описывающим в машинно-независимом текстовом формате. В настоящее время SQL стандартизован, чтобы его понимали серверы различных производителей.
Язык развивается в части состава операторов и типов данных. В нем выделены следующие языки, соответствующие функциональным группам операторов:
· Data Definition Language (DDL). Язык описания данных. Содержит операторы, позволяющие определять структуру и свойства базы данных, объектов в БД и задавать связи между объектами (например, CREATE TABLE, CREATE VIEW).
· Data Manipulation Language (DML). Язык манипулирования данными. Содержит операторы, предназначенные для обработки данных, т.е. для того, чтобы выбирать, добавлять, удалять и модифицировать данные (SELECT, INSERT, DELETE, UPDATE).
· Transaction Control Language (TCL). Язык управления транзакциями. Операторы этого языка применяются для управления транзакциями, или логическими единицами работы, выполняемыми как атомарная операция.
· Data Control Language (DCL). Операторы языка применяются для осуществления административных функций назначения или отмены разрешений на использование базы данных, таблицы в базе данных, а также выполнения операторов SQL.
· Cursor Control Language (CCL). Операторы используются для определения объекта «курсор», подготовки SQL-предложений для выполнения, а также для некоторых других операторов.
Работа по реализации БД начинают с описания ее схемы на языке DDL.
В стандарте SQL-92 схема является коллекцией объектов базы данных, принадлежащих одному пользователю и образующих одно пространство имен. Пространством имен является набор объектов, в котором не может быть повторяющихся имен. Схема может быть представлена графически и иначе ее называют структурой базы данных.
Схема представляет структуру БД: состав, структуру, свойства и связи объектов базы данных.
Определение структуры таблицы означает описание ее столбцов, т.е. имен, типов данных и возможных ограничений. Перед созданием таблицы необходимо определить:
· Какую сущность будет представлять таблица, или каково назначение таблицы.
· Число столбцов в таблице и тип данных и формат (если это необходимо) каждого столбца.
· Имеются ли столбцы, которые могут принимать значения NULL.
· Для каких столбцов нужно задавать ограничения, значения по умолчанию и правила.
Сокращенный синтаксис оператора CREATE TABLE показывает структуру описания таблицы, задание ограничений на таблицу и столбцы, а также виды ограничений.
::=имя столбца [ ]
::=[ CONSTRAINT имя ограничения ]
[ CLUSTERED | NONCLUSTERED ] | [ FOREIGN KEY ]
REFERENCES [ имя связанной таблицы [ ( связанный столбец ) ]
Рассмотрим примеры применения операторов языка SQL.
1) Таблицы должны находиться в базе данных. Поэтому сначала необходимо создать БД:
CREATE DATABASE TestData;
2) Создание таблицы с данными о студентах:
CREATE TABLE dbo.Students (StudentID int PRIMARY KEY NOT NULL,
StudentName varchar(25) NOT NULL, Stipend money NULL,
StudentDescription text NULL)
Объекты в БД могут быть хранимыми и формируемыми (т.е. создаваемыми динамически). Таблица обычно является хранимым объектом. На основе одной или нескольких таблиц можно динамически создавать виртуальную таблицу, или представление. При этом СУБД будет сохранять не сформированную таблицу, а оператор, который описывает ее формирование. Представление называется VIEW и соответствующий оператор его создания имеет синтаксис:
СОДЕРЖАНИЕ
Типы целостности
Физическая целостность
Логическая целостность
Как физическая, так и логическая целостность часто имеют много общих проблем, таких как человеческие ошибки и недостатки проектирования, и оба должны соответствующим образом обрабатывать параллельные запросы на запись и извлечение данных, последний из которых является полностью самостоятельной темой.
Если в секторе данных есть только логическая ошибка, его можно использовать повторно, перезаписав его новыми данными. В случае физической ошибки затронутый сектор данных навсегда становится непригодным для использования.
Базы данных
Типы ограничений целостности
Целостность данных обычно обеспечивается в системе баз данных с помощью ряда ограничений или правил целостности. Три типа ограничений целостности являются неотъемлемой частью реляционной модели данных: целостность объекта, ссылочная целостность и целостность домена.
Если база данных поддерживает эти функции, она несет ответственность за обеспечение целостности данных, а также за модель согласованности для хранения и извлечения данных. Если база данных не поддерживает эти функции, приложения несут ответственность за обеспечение целостности данных, в то время как база данных поддерживает модель согласованности для хранения и поиска данных.
Наличие единой, хорошо контролируемой и четко определенной системы целостности данных увеличивает
Современные базы данных поддерживают эти функции (см. Сравнение систем управления реляционными базами данных ), и де-факто ответственность за обеспечение целостности данных стала возложена на базу данных. Компании и многие системы баз данных предлагают продукты и услуги для переноса устаревших систем на современные базы данных.
Примеры
Примером механизма целостности данных являются отношения между родителями и потомками связанных записей. Если родительская запись владеет одной или несколькими связанными дочерними записями, все процессы ссылочной целостности обрабатываются самой базой данных, что автоматически обеспечивает точность и целостность данных, так что ни одна дочерняя запись не может существовать без родительской записи (также называемой осиротевшей) и что ни один родитель не теряет свои дочерние записи. Это также гарантирует, что никакая родительская запись не может быть удалена, пока родительская запись владеет какими-либо дочерними записями. Все это обрабатывается на уровне базы данных и не требует проверки целостности кода в каждом приложении.
Файловые системы
Как проверить целостность данных: чек-лист
В современном мире информация является не менее ценной, чем золото или нефть. Она перемещается и является катализатором многих процессов в глобальной экономике. Как нельзя лучше это иллюстрируют появляющиеся сегодня термины, например, “Big Data”. И точно так же, как золото или нефть, информация нуждается в защите, поэтому сохранение целостности данных стало важной задачей любого IT- отдела.
Определение целостности данных
В эпоху Интернета, этот термин стал прочно ассоциироваться с серверами и базами данных, которые уже могут размещаться в облаке и являются основными хранилищами информации.
У целостности данных есть 3 измерения:
Например, передача данных покупателя из формы подписки в базу данных CRM.
Например, хранение данных о кредитной карте покупателя на сервере интернет-магазина.
Особенно это важно для компаний, работающих с наиболее важной информацией, например, для банковских систем или медицинских организаций.
Что может нарушить целостность данных и как справляться с последствиями
Существует множество причин нарушения целостности информации, но все их можно условно разделить на 2 группы:
С момента появления Интернета, хакеры пытались быстро и без усилий заработать, используя любые доступные уязвимости.
Исследования показали, что бренды компаний, которые стали жертвами взлома, резко теряют популярность и доверие покупателей. 15% всех опрошенных ответили, что прекратят любое взаимодействие с компанией, если она станет жертвой взлома, еще 13% заявили, что никогда не будут сотрудничать с подобной компанией.
Целостность данных важна не только с точки зрения целей бизнеса, но и для соответствия законодательству.
В России, США и странах Евросоюза существуют законодательные нормы для компаний, работающих с данными покупателей, за нарушение которых положены крупные штрафы.
Обучение персонала
Практически все данные в компании проходят через руки её сотрудников. Именно они в первую очередь ответственны за верификацию данных, поэтому с них должна начинаться любая политика безопасности в компании.
Во-первых, обмен данными внутри компании должен быть четко регламентирован. Это позволит избежать ситуаций, когда сотрудники одного отдела (например, контроля качества) могут просматривать и изменять данные, необходимые для работы другого отдела(например, отдела продаж).
Если в рамках рабочего процесса сотрудники должны обмениваться аккаунтами, предусмотрите временные пароли или менеджеры паролей (например, Enterprise Password Vault от CyberArk). Это позволит обеспечить обмен аккаунтами, при этом не давая доступа к паролям.
Во-вторых, персонал компании должен внимательно относиться к данным, и сообщать о любой подозрительной активности. Признаков определения взлома системы достаточно много, но чаще всего на них долго не обращают внимания. Такими признаками являются, например, изменённые пароли, пропажа файлов, активность аккаунта в неположенное время, несанкционированные изменения в файлах.
Шифрование
Шифрование является прекрасным способом защиты данных компании, но его эффективность ограничена, и оно значительно снижает производительность.
Шифрование данных позволяет обеспечить их безопасность даже в случае физической кражи носителя, поэтому, если риск попадания данных в чужие руки велик, этим методом нельзя пренебрегать.
В некоторых случаях, однако, шифрование бесполезно. Например, если злоумышленник для получения доступа к файлам использует данные одного из сотрудников организации. Именно поэтому нельзя ограничивать информационную защиту только средствами шифрования.
Отслеживание метаданных
Важно понимать, что метаданные могут быть интересны и злоумышленникам, так как в них могут содержаться сведения типе операционной системы, версиях и паролях программ, а также адреса электронной почты сотрудников.
Ограничение физического доступа к оборудованию
Часто возникает ситуация, когда для кражи данных злоумышленнику достаточно просто скопировать их на флешку с компьютера или сервера. Именно поэтому на любом предприятии доступ к серверам и базам данных должен быть только у определённых сертифицированных специалистов.
Наиболее важные устройства, например, серверы, должны находиться в отдельных закрытых комнатах с соответствующей вентиляцией для охлаждения, а в идеале должны быть прикреплены к полу, чтобы исключить возможность физического хищения.
Такие меры могут усложнить работу системным администраторам, но безопасность данных должна являться приоритетом.
Если компания ограничена в свободном пространстве, то серверы и базы данных должны находиться под постоянным наблюдением сотрудника, которым, в зависимости от структуры компании, может быть системный администратор или менеджер.
Резервное копирование данных
По иронии, некоторые компании становилась жертвами взлома именно из-за наличия резервной копии. Известны случаи, когда незащищенную копию данных компании можно было просто найти в поисковой системе.
Если резервная копия попадет не в те руки, извлечь из неё данные может быть достаточно просто.
Поиск и удаление дубликатов
В процессе работы компании часто возникает ситуация, когда важная информация копируется и хранится в папках с общим доступом или в сторонних облачных хранилищах.
Чтобы избежать попадания данных в руки преступников, важно регулярно проводить поиск и удалять дубликаты файлов. Это можно делать вручную или использовать различные программные решения.
SSL шифрование
Наличие SSL-протокола — это черта любого уважающего себя сайта. Он позволяет шифровать данные, которые передаются между клиентом и сервером, в результате чего существенно снижается риск их попадания в руки третьих лиц.
Стоимость такого сертификата невелика, поэтому любая компания должна приобрести его как можно быстрее.
Стресс-тесты
Для атаки на серверы злоумышленники часто перегружают их, заставляя обрабатывать слишком большие объемы информации. Даже без действий злоумышленников, у любого сервера есть предел вычислительной мощности, поэтому важно регулярно проводить стресс-тесты, чтобы проверять состояние сервера и его надежность в экстренной ситуации.
Security аудит
Самый лучший способ проверить безопасность данных — это провести тест в “полевых условиях”. Примерная схема заключается в том, что человек, владеющий “хакерскими” навыками должен попытаться получить доступ к системе, после чего предоставить отчет об обнаруженных уязвимостях.
В крупных компаниях такой человек может быть штатным специалистом, малый бизнес традиционно отдает эту задачу на аутсорсинг.
Существует также специальное ПО (например, Rapid7), предназначенное для проведения полного аудита инфраструктуры компании.
В рамках аудита вы должны получить ответы на вопросы:
Отслеживание изменений
Для безопасности данных важно отслеживать источники атак. Специальное ПО, предназначенное для этого, позволяет:
Информация — это основа современной экономики, поэтому её защита от посторонних глаз важна для любой компании. Методы, описанные в этой статье, должны применяться на любом предприятии. Позаботьтесь о безопасности своих данных сегодня!
Целостность информации
Целостность информации (также целостность данных) — термин в информатике и теории телекоммуникаций, который означает, что данные полны, условие того, что данные не были изменены при выполнении любой операции над ними, будь то передача, хранение или представление.
В телекоммуникации целостность данных часто проверяют, используя MAC-код сообщения (Message authentication code).
В криптографии и информационной безопасности целостность данных в общем — это данные в том виде, в каком они были созданы. Примеры нарушения целостности данных:
В теории баз данных целостность данных означает корректность данных и их непротиворечивость. Обычно она также включает целостность связей, которая исключает ошибки связей между первичным и вторичным ключом. К примеру, когда существуют дочерние записи-сироты, которые не имеют связи с родительскими записями.
Пример проверки целостности данных в криптографии — это использование хеш-функции, к примеру MD5. Такая функция преобразует совокупность данных в последовательность чисел. Если данные изменятся, то и последовательность чисел, генерируемая хеш-функцией тоже изменится.
Целостность данных — свойство, при выполнении которого данные сохраняют заранее определённый вид и качество.
Содержание
Область использования
Понятие «целостность объекта» (англ. integrity ) используется в контексте терминологии информационной безопасности (объектом может быть информация, специализированные данные, ресурсы автоматизированной системы). В частности, свойство целостности информации (ресурсов автоматизированной системы) — является одним из трех основных критериев информационной безопасности объекта.
Обычно свойство целостности требуется наряду с конфиденциальностью (confidentiality) и доступностью (availability). Иногда к списку необходимых свойств информационной безопасности объекта добавляют неотказуемость (non-repudiation), подотчётность (accountability), аутентичность или подлинность (authenticity), достоверность (reliability).
Определения понятия
В Рекомендациях по стандартизации Р 50.1.053-2005 [1] дается следующее определение:
Целостность информации (ресурсов автоматизированной информационной системы) — состояние информации (ресурсов автоматизированной информационной системы), при котором ее (их) изменение осуществляется только преднамеренно субъектами, имеющими на него право.
В Рекомендациях по стандартизации Р 50.1.056-2005 [2] определения уточнены и разнесены по объектам приложения:
Целостность информации — состояние информации, при котором отсутствует любое ее изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право.
Целостность ресурсов информационной системы — состояние ресурсов информационной системы, при котором их изменение осуществляется только преднамеренно субъектами, имеющими на него право, при этом сохраняются их состав, содержание и организация взаимодействия.
В некоторых специализированных стандартах используются собственные определения данного понятия:
Целостность (integrity) [3] — свойство сохранения правильности и полноты активов.
Целостность информации [4] — обеспечение достоверности и полноты информации и методов ее обработки.
Целостность документа [5] — cвойство документа, состоящее в том, что при любой демонстрации документа заданные значения параметров демонстрируемого представления документа соответствуют специфицированным требованиям.
Использование термина
Реализация содержания
Методы и способы реализации требований, изложенных в определении термина, подробно описываются в рамках единой схемы обеспечения информационной безопасности объекта (защиты информации).
Основными методами обеспечения целостности информации (данных) при хранении в автоматизированных системах являются:
Одним из действенных методов реализации требований целостности информации при ее передаче по линиям связи является криптографическая защита информации (шифрование, хеширование, электронная цифровая подпись).
Целостность данных в криптографии
Шифрование данных само по себе, не гарантирует, что целостность данных не будет нарушена, поэтому в криптографии используются дополнительные методы для гарантирования целостности данных. Под нарушениями целостности данных понимается следующее: инверсия битов, добавление новых битов (в частности совершенно новых данных) третьей стороной, удаление каких-либо битов данных, изменение порядка следования бит или групп бит.
В криптографии решение задачи целостности информации предполагает применение мер, позволяющих обнаруживать не столько случайные искажения информации, так как для этой цели вполне подходят методы теории кодирования с обнаружением и исправлением ошибок, сколько целенаправленное изменение информации активным криптоаналитиком.
Процесс контроля целостности обеспечивается введением в передаваемую информацию избыточности. Это достигается добавлением к сообщению некоторой проверочной комбинации. Такая комбинация вычисляется согласно определенным алгоритмам и играет роль индикатора, с помощью которого проверяется целостность сообщения. Именно этот момент дает возможность проверить, были ли изменены данные третьей стороной. Вероятность того, что данные были изменены, служит мерой имитостойкости шифра.
Дополнительную избыточную информацию, вносимую в сообщение, называют имитовставкой. Вырабатываться имитовставка может как до начала, так и одновременно с шифрованием сообщения.
Имитовставки
Имитовставка, является функцией сообщения x, =f(x). Она может служить для целей аутентификации сообщения и проверки его целостности. Поэтому имитовставки можно разделить на два класса:
Хэш-функции для вычисления кода проверки целостности сообщений принадлежат к подклассу бесключевых хэш-функций. В реально существующих криптосистемах эти хэш-функции являются криптографическими, то есть кроме минимальных свойств хэш-функций(сжатие данных, простота вычисления дайджеста от сообщения) удовлетворяют следующим свойствам:
В зависимости от того, каким из этих свойств удовлетворяют MDC хэш-функции, можно выделить два их подкласса:
Существует три основных типа MDC алгоритмов хэш-функций, по способу их построения:
К MAC хэш-функциям для вычислений кодов аутентификации сообщений, подсемейству ключевых хэш-функций, относят семейство функций удовлетворяющих следующим свойствам:
Если не выполняется последнее свойство, то MAC может быть подделан. Также последнее свойство подразумевает, что ключ невозможно вычислить, то есть, имея одну или более пар (x[i], h(x[i])) с ключом k, вычислительно невозможно получить этот ключ.
Алгоритмы получения кода аутентификации сообщения могут быть разделены на следующие группы по их типу:
Получение MAC на основе MDC
Существуют методы получения из MDC кодов аутентификации сообщений включением секретного ключа во входные данные алгоритма MDC. Недостатком такого подхода является то, что фактически на практике большинство алгоритмов MDC разработано так, что они являются либо OWHF, либо CRHF, требования к которым отличаются от требований к MAC алгоритмам.
Схемы использования
Фактически, в общем виде, процесс передачи данных и их проверки на целостность выглядит следующим образом: пользователь A добавляет к своему сообщению дайджест. Эта пара будет передана второй стороне B. Там выделяется сообщение, вычисляется для него дайджест и дайджесты сравниваются. В случае совпадения значений сообщение будет считаться достоверным. Несовпадение будет говорить о том, что данные были изменены.
Обеспечение целостности данных с использованием шифрования и MDC
От исходного сообщения вычисляется MDC, =h(x). Этот дайджест добавляется к сообщению С=(x||h(x)). Затем расширенное таким образом сообщение шифруется каким-то криптоалгоритмом E с общим ключом k. После шифрования полученное сообщение Cencripted передается второй стороне, которая используя ключ, выделяет из шифрованного сообщения данные x’ вычисляет для него значение дайджеста
’. Если он совпадает с полученным
, то считается, что целостность сообщения была сохранена. Целью этого шифрования является защита добавленного MDC, чтобы третья сторона не могла изменить сообщение без нарушения соответствия между расшифрованным текстом и восстановленным кодом проверки целостности данных. Если при передаче данных конфиденциальность не является существенной, кроме как для обеспечения целостности данных, то возможны схемы, в которых будут зашифрованы только либо сообщение x, либо MDC.
Обеспечение целостности данных с использованием шифрации и MAC
По сравнению с предыдущим случаем в канал посылается сообщение следующего вида: Ek(x||hk1(x)). Такая схема обеспечения целостности имеет преимущество над предыдущей схемой с MDC: если шифр будет взломан, MAC все равно будет обеспечивать целостность данных. Недостатком является то, что используется два различных ключа, для криптоалгоритма и для MAC. При использовании подобной схемы, следует быть уверенным, что какие-либо зависимости между алгоритмом MAC и алгоритмом шифрации не приведут к уязвимости системы. Рекомендуется, чтобы эти два алгоритма были независимыми (например, такой недостаток системы может проявляться, когда в качестве алгоритма MAC используется CBC-MAC, и в качестве схемы шифрования CBC).
Вообще говоря, шифрация всего сообщения при использовании кодов аутентификации сообщений не обязательно с точки зрения обеспечения целостности данных, поэтому в простейших случаях в схеме может не происходить шифрация сообщения (x||hk(x)).
Неумышленные нарушения целостности
С точки зрения криптографии основной интерес представляют задачи обеспечения целостности данных, в которых осуществляются их умышленные изменения. Однако методы обеспечения проверки случайных изменений тоже применяются. К таким методам относят использование кодов обнаружения и исправления ошибок. К таковым, например, относятся: коды Хемминга, коды CRC, коды БЧХ и прочие.
Аутентификация и целостность
Проблема целостности данных плотно связанно и с проблемой аутентификации данных, то есть установлением источника данных. Эти проблемы не могут быть отделены одна от другой. Данные, которые были изменены, имеют фактически новый источник. Также если не известен источник данных, то вопрос об их изменении не может быть разрешен (без ссылки на источник). Таким образом, механизмы проверки целостности данных обеспечивают аутентификацию данных, и наоборот.
Использование ГОСТ 28147-89
ГОСТ 28147-89 может использоваться в качестве одного из методов по вычислению кодов аутентификации сообщений. Для ГОСТ 28147-89 режим выработки имитовставки выглядит следующим образом: