← All posts tagged ipsec

mikeb

забавно, что, хотя microsoft сами разработали стандарт ikev2, windows 7 стандарту совсем не следует (rekeying поломан совсем). это верх цинизма или индусы протупили?

mikeb

Моя реализация AES-GCM тормознее AESCTR-HMAC-SHA2-256 в 2 раза, тормознее AESCTR-HMAC-MD5 в 3.5 раза. Проблема в функции перемножения в конечном поле GF(128). Я использовал 32-битную арифметику, а поскольку GMAC работает с данными в big endian формате, то необходимо преобразование; плюс там копирование данных скорее всего получается. Тем не менее, переписав GMAC в обычном виде с побайтовым доступом, получил ухудшение производительности в 4 раза. Забавно всё это.

mikeb

Два Soekris net5501-70, включенных лоб в лоб в режиме маршрутизатора, выдают 80Mbps (по данным tcpbench). Клиентом и сервером являются Core i5 машины с PCI-Express'ными Intel PRO/1000 PT (82572EI). Если же между ними сделать IPsec туннель без аутентификации и без шифрования, производительность падает до 35Mbps. Фактически IPsec только меняет mbuf цепочки, добавляя заголовок и пробрасывает пакет через криптофреймворк, где шифрования не происходит, но происходит переключение контекста из прерывания в crypto kernel thread.

mikeb

только сейчас понял что в линухе нет аналога enc(4) из оpenbsd. в каком-то роадмапе от 2004 про развитие ipsec в линукс говорилось про светлое будущее с "tcpdump -i ipsec0", однако, будущее так и не переросло в настоящее.

mikeb

удачно протестировал работу aes-gcm в режиме ipsec/esp с ikev2 (iked) между двумя openbsd машинами. пока об interop со strongswan или виндовсом говорить рано, но результат радует, особенно учитывая что пришлось потрудится, заставляя работать концепции из gcm в существующем крипто-фреймворке. дифф на 778 строчек. сущая ерунда.

mikeb

RFC'ы по имплементации GCM в ESP и AH делали люди ни разу в глаза не видевшие ни IPsec стека и крипто-фреймворков. GCM запускает свои рученки так глубоко, что абстракции просто не работают. и что в итоге? я делаю GMAC с внутренним состоянием, который получает IV, AAD и ciphertext за три Update'а и сохраняет их длину. сторонники ФП в ярости.