UNIX: разработка сетевых приложений
UNIX: разработка сетевых приложений читать книгу онлайн
Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
[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
Расширение SA описывается структурой
sadb_sa
Листинг 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. Использование расширений
Состояние SA | Описание | Возможность использования |
---|---|---|
SADB_SASTATE_LARVAL | В процессе создания | Нет |
SADB_SASTATE_MATURE | Полностью сформированное | Да |
SADB_SASTATE_DYING | Превышено гибкое ограничение на время жизни | Да |
SADB_SASTATE_DEAD | Превышено жесткое ограничение на время жизни | Нет |
Таблица 19.5. Алгоритмы аутентификации и шифрования
Алгоритм | Описание | Ссылка |
---|---|---|
SADB_AALG_NONE | Без аутентификации | |
SADB_AALG_MD5HMAC | HMAC-MD5-96 | RFC 2403 |
SADB_AALG_SHA1HMAC | HMAC-SHA-1-96 | RFC 2404 |
SADB_EALG_NONE | Без шифрования | |
SADB_EALG_DESCBC | DES-CBC | RFC 2405 |
SADB_EALG_3DESCBC | 3DES-CBC | RFC 1851 |
SADB_EALG_NULL | NULL | RFC 2410 |
Поле
sadb_sa_spi
sadb_sa_replay
sadb_sa_state
SADB_SASTATE_MATURE
Поля
sadb_sa_auth
sadb_sa_encrypt
sadb_sa_flags
SADB_SAFLAGS_PFS
Следующее обязательное расширение команды
SADB_ADD
SADB_EXT_ADDRESS_SRC
SADB_EXT_ADDRESS_DST
SADB_EXT_ADDRESS_PROXY
sadb_address
sadb_address_exttype
sadb_address_proto
sadb_address_prefixlen
sadb_address
sockaddr
sockaddr_in
sockaddr_in6
sockaddr
sadb_address_proto
IPPROTO_TCP