Виды атак и способы защиты
Рассмотрим возможные атаки на криптографический протокол и способы его защиты.
Примем, что в системе существует абонент С, который нелигетимно участвует в диалоге абонента А и сервера В. Абонент С не только имеет доступ к информационному каналу, но и может принять участие в выполнении операций криптографического протокола (чаще всего абонент С так же, как и абонент А, имеет доступ к серверу В, то есть является легитимным абонентом БД, но заинтересован в том, чтобы абонент А получил искаженную информацию).
Рассмотрим несколько ролей, которые может играть абонент С.
I. Авторизация. В этом случае абонент С от имени абонента А
перехватывает значение R. Но единственное, что он может сделать в ответ на посылку сервером числа R – это сформировать DC(R) и послать его серверу вместо DA(R) («замена автора»). Сервер, выполнив операцию EA(DC(R))?R , убеждается, что диалог ведет не абонент А.
II. Имитация.. В этом случае абонент С выполняет «врезку» в информационный канал между сервером В и абонентом А с целью передать абоненту А измененную информацию bd’k, то есть перехватывает DB([bdk+R]). Разумеется, имея EB - открытый ключ сервера В, абонент С может получить значение bd’k и изменить его, получив bd’’k. Однако он не может построить DB([bd’’k+R]), так как ему не известен секретный ключ сервера DB. Следовательно, абоненту С нет смысла начинать атаку «имитация»
Следует отметить, что проблема «врезки» получила довольно простое решение при использовании асимметричного алгоритма из-за того, что элементы БД были закодированы секретным ключем асимметричного алгоритма сервера В. Однако, использование в этом качестве существующих асимметричных алгоритмов не возможно из-за их малой скорости кодирования. Применение симметричных алгоритмов для кодирования элементов БД не эффективно, так как, абонент С
может быть легитимным участником, а это значит, что ему известен ключ симметричного алгоритма БД, в то время, как DB известен только одному
- серверу В.
III. Подстановка. В этом случае абонент С не легитимно проникает в компьютер сервера, для того, чтобы изменить содержимое БД.. Но если память компьютера защищена асимметричным алгоритмом сервера, то абонент С может прочитать содержимое БД, но не может изменить его.
Кроме всего приведенного выше следует добавить, что использование асимметричного алгоритма позволяет сделать протокол однородным, так как его быстродействие сравнимо с симметричными алгоритмами, а это единственная причина, по которой их используют в криптографических системах.