Добавить в цитаты Настройки чтения

Страница 214 из 399

[unknown extension 19]

Current lifetime:

0 allocations, 0 bytes

added at Sun May 18 16:28:11 2003, never used

Source address: 2.3.4.5/128 (IP proto 255)

Dest address: 6.7.8.9/128 (IP proto 255)

Authentication key. 128 bits: 0x20202020202020200202020202020202

SADB Message Dump, errno 0, satype IPsec AH, seq 0, pid 20623

SA: SPI=257 Replay Window=0 State=Mature

Authentication Algorithm: HMAC-MD5

Encryption Algorithm: None

[unknown extension 19]

Current lifetime:

0 allocations, 0 bytes

added at Sun May 18 16:26:24 2003, never used

Source address: 1.2.3.4/128 (IP proto 255)

Dest address: 5.6.7.8/128 (IP proto 255)

Authentication key, 128 bits: 0x10101010101010100101010101010101

19.4. Создание статического соглашения о безопасности

Наиболее прямолинейным методом добавления соглашения о безопасности в базу является отправка сообщения SADB_ADD с заполненными параметрами, которые могут задаваться вручную. Последнее затрудняет смену ключей, которая необходима для предотвращения криптоаналитических атак, но зато упрощает настройку. Элис и Боб договариваются о ключах и алгоритмах без использования линий связи. Мы приводим последовательность действий по созданию и отправке сообщения SADB_ADD.

Сообщение SADB_ADD обязано иметь три расширения: соглашение о безопасности, адрес и ключ. Оно может дополняться и другими расширениями: временем жизни, личными данными и параметром важности (sensitivity). Сначала мы опишем обязательные расширения.

Расширение SA описывается структурой sadb_sa, представленной в листинге 19.3.

Листинг 19.3. Расширение SA

struct sadb_sa {

 u_int16_t sadb_sa_len;     /* длина расширения / 8 */

 u_int16_t sadb_sa_exttype; /* SADB_EXT_SA */

 u_int32_t sadb_sa_spi;     /* индекс параметров безопасности (SPI) */

 u_int8_t  sadb_sa_replay;  /* размер окна защиты от повторов или нуль */

 u_int8_t  sadb_sa_state;   /* состояние SA. см. табл. 19.4 */

 u_int8_t  sadb_sa_auth;    /* алгоритм аутентификации, см. табл. 19.5 */

 u_int8_t  sadb_sa_encrypt; /* алгоритм шифрования, см. табл. 19.5 */

 u_int32_t sadb_sa_flags;   /* флаги */

};

Таблица 19.4. Использование расширений