Термин "аутентификация" означает установление подлинности. Он может относиться ко всем аспектам взаимодействия: сеансу связи, сторонам, передаваемым сообщениям и т.д. Применительно к самой информации аутентификация означает проверку того, что данные, передаваемые по каналу связи, являются подлинными по своему источнику и содержанию, по времени создания, времени пересылки и т. д.
Рассмотрим эти свойства более подробно.
Целостность данных – свойство, позволяющее убедиться в том, что данные не изменялись неавторизованным способом с тех пор, как они были созданы, переданы или сохранены авторизованным источником. Под изменениями обычно понимают пропуски, вставки, замены и перестановки фрагментов сообщения.
Аутентификация источника данных – получение подтверждения того, что рассматриваемый документ был создан именно указанным соответствующим образом источником информации. Подчеркнем, что при этомне требуется проверка времени создания и единственности документа, важно только то, что он был создан в некоторый (обычно неопределенный) момент времени в прошлом. Нарушение "единственности документа" подразумевает его повторную передачу или повторное использование. Если источник сообщений фиксирован, то вместо термина "аутентификация источника данных" используют термин "аутентификация сообщений".
Целостность данных и аутентификация источника данных тесно связаны друг с другом. Действительно, если данные подверглись модификации, то у них автоматически изменился источник. Если же не установлен источник, то без ссылки на него нельзя разрешить проблему целостности. В связи с этим будем считать по определению, что аутентификация источника данных включает проверку целостности данных.
Рассмотрим примеры.
1. Для обеспечения целостности хранимых данных (М) можно добавить к ним значение криптографической хэш-функции (М, hk(М)), зависящей от ключа, известного только владельцу информации. Такой способ автоматически решает проблему аутентификации источника данных.
2. Для обеспечения целостности передаваемого сообщения можно так же, как и в п. 1, использовать хэш-функцию, зависящую от секретного ключа, известного отправителю и получателю. Аутентификация источника гарантируется тем, что секретный ключ известен только двум сторонам. При этом, однако, исключается возможность разрешения споров, связанных с отказом от авторства. Поэтому аутентификация источника с помощью ключевой хэш-функции возможна только при взаимодействии доверяющих друг другу сторон.
3. При аутентификации источника можно использовать симметричное шифрование, добавляя предварительно к исходному сообщению некоторый секретный, известный только отправителю и получателю, идентификатор. Такой способ, однако, не гарантирует целостности получаемых данных. Дело в том, что шифрование может допускать возможность модификации данных при передаче. Кроме того, для его реализации требуется секретный канал для обмена подобными идентификаторами.
4. Аутентификация источника возможна также при совместном использовании бесключевой хэш-функции и симметричного шифрования. Для этого достаточно воспользоваться одной из следующих форм передаваемого сообщения: Еk(M,h(M)) или (М, Еk(h(М))). В рассматриваемом случае можно повторить те же комментарии, что и в п. 2. К этому следует добавить, что алгоритм шифрования Еkдолжен быть стойким к атакам на основе известного открытого текста.
5. На практике чаще, чем предыдущие, применяются схемы, использующие бесключевые хэш-функции в сочетании с асимметричным шифрованием. Подобным образом на основе схемы (M,Еk(h(M))) строятся алгоритмы вычисления цифровой подписи. Подобные схемы позволяют решать проблему аутентификации источника как при взаимодействии доверяющих друг другу, так и не доверяющих друг другу сторон.
6. Возможно совместное использование ключевой хэш-функции и симметричного шифрования в соответствии с одной из следующих схем:
и т. д. При таком подходе не только ключи шифрования (k1) и хэш-функции (k2) должны быть независимыми, но и сами алгоритмы шифрования и вычисления значения хэш-функции также должны иметь существенные различия. В противном случае возникают дополнительные соотношения, которые можно использовать для отбраковки ключей.
В заключение рассмотрим вопрос о дополнительном гарантировании единственности и своевременности передачи сообщений. В этом случае используется термин "аутентификация транзакции", означающий аутентификацию сообщения подтверждением единственности и своевременности передачи данных. Такой тип аутентификации предоставляет возможность защиты от повторного использования ранее переданныx сообщений, что является необходимым в тех случаях, когда подобная угроза может привести к нежелательным последствиям. Примером таких приложений являются электронные банковские платежи или системы автоматизированного управления подвижными объектами.
Для обеспечения единственности и своевременности передачи сообщений обычно используются дополняющие аутентификацию параметры, которые вставляются в передаваемые сообщения. Это могут быть метки времени или некоторые последовательности чисел. Если метки времени позволяют установить время создания или передачи документа, то последовательность чисел гарантирует правильность порядка получения сообщений. Помимо этого для аутентификации последующих сообщений могут использоваться случайные числа, передаваемые в предыдущих сообщениях. Такой способ позволяет организовать "жесткое сцепление" идущих друг за другом сообщений.