Погружение в базы данных PostgreSQL

Данный курс является консолидацией теоретических основ и практических примеров, которые демонстрируют работу операторов и функций SQL в системе управления базами данных PostgreSQL.

Поступить на курс

Регулярные выражения в Python

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

Пройти курс

Модуль psycopg2 в Python

Модуль psycopg2 позволяет взаимодействовать с базами данных PostgreSQL в скриптах Python.

Пройти курс

Модуль SQLite3 в Python

Встроенный модуль SQLite3 позволяет работать с базами данных SQLite в ваших приложениях, которые написаны на языке программирования Python.

Пройти курс

Погружение в базы данных Oracle

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Купить книгу

SQL без слёз

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

Скачать книгу

 ›  ›  › Протокол аутентификации S/Key

Протокол аутентификации S/Key

Система одноразовых паролей S/Key, определенная в RFC 1760, представляет собой систему генерирования одноразовых паролей на основе стандартов MD4 и MD5. Она предназначена для борьбы с так называемыми «повторными атаками», когда хакер подслушивает канал, выделяет из трафика аутентификатор пользователя и его пароль и в дальнейшем использует их для несанкционированного доступа. Система S/Key основана на технологии клиент/сервер, где клиентом обычно является персональный компьютер, а сервером — сервер аутентификации. Вначале и клиента, и сервер нужно настроить на единую парольную фразу и счет итерации. Клиент начинает обмен S/Key, отправляя серверу пакет инициализации, а сервер в ответ отправляет порядковый номер и случайное число, так называемое «зерно» (seed). После этого клиент генерирует одноразовый пароль в ходе операции, состоящей из трех этапов: подготовительного этапа, этапа генерирования и функции выхода.

На подготовительном этапе клиент вводит секретную парольную фразу любой длины (рекомендуется длина более восьми знаков). Парольная фраза соединяется с «зерном», полученным от сервера в незашифрованном виде. Это несекретное «зерно» дает клиенту возможность использовать одну и ту же парольную фразу на множестве машин (с разными «зернами») и повторно использовать пароли, заменяя «зерно».

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

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

  • через программу-калькулятор, которая будет включать пароль в поток данных;
  • с помощью функции вырезания и сбрасывания (cut and paste);
  • с помощью ручного ввода.

В случае ручного ввода одноразовый пароль превращается в последовательность из шести коротких английских слов (от одной до четырех букв каждое). Эти слова выбираются из словаря, в который входит 2048 слов. Таким образом, на одно слово приходится по 11 бит, что позволяет кодировать любые одноразовые пароли. Для совместимости систем S/Key и калькуляторов все они должны пользоваться одним и тем же словарем.

После создания одноразового пароля его нужно проверить. Для этого клиент передает одноразовый пароль на сервер, где он и проверяется. На сервере есть файл (в системе UNIX это /etc/skeykeys), в котором хранится одноразовый пароль, использованный в последнем успешном сеансе связи с каждым отдельным пользователем. Кроме того, эта запись может инициализироваться с помощью ввода первого одноразового пароля из данной последовательности с помощью команды keyinit (название этой команды в разных версиях системы может быть разным). Для проверки аутентификации система однократно пропускает полученный одноразовый пароль через защищенную хэш-функцию. Если результат этой операции совпадает с предыдущим паролем, хранящимся в файле, результат аутентификации считается положительным, а новый пароль сохраняется для дальнейшего использования. Поскольку количество хэш-циклов, которые использует клиент, постоянно сокращается, в какой-то момент пользователю придется инициализировать систему. Это достигается с помощью команды keyinit, которая дает возможность изменить секретную парольную фразу, количество циклов итерации и «зерно».

На рисунке 13 показано, как действует система одноразовых паролей S/Key у пользователя, который пытается подключиться через Telnet к конкретной UNIX-машине, которая одновременно является сервером S/Key.

Протокол аутентификации S/Key

Источник: Решения компании Cisco Systems по обеспечению безопасности корпоративных сетей

Метки: , , .

Записи по теме

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *