DESE-bis: rec'd bogus DES cypher

Help
Djarf
2013-04-20
2013-11-22
  • Djarf
    Djarf
    2013-04-20

    Нигде не нашёл нормального описания, как воспользоваться DES-шифрованием.
    Сделал так:

    mpd.conf
    ...
    set bundle yes encryption
    set bundle yes crypt-reqd
    set ecp yes dese-bis
    set ecp key "01234567"
    ...

    Эта часть настроек симметрична на двух аппаратах.

    На клиентской дополнительно потребовалось внести логин-пароль в mpd.secret

    Линк поднимается:

    [T-6] IPCP: LayerUp
    ...
    [T-6] IFACE: Up event

    Но пакеты не ходят:

    [T-6] DESE-bis
    [T-6] nonce 0x0cda8a55d6463324
    [T-6] ECP: rec'd Configure Request #3 (Req-Sent)
    [T-6] DESE-bis
    [T-6] nonce 0x0dcb584c8cc67342
    [T-6] ECP: SendConfigAck #3
    [T-6] DESE-bis
    [T-6] nonce 0x0dcb584c8cc67342
    [T-6] ECP: rec'd Configure Ack #1 (Ack-Sent)
    [T-6] DESE-bis
    [T-6] nonce 0x0cda8a55d6463324
    [T-6] ECP: Encrypt using: dese-bis
    [T-6] ECP: Decrypt using: dese-bis
    [T-6] DESE-bis: rec'd bogus DES cypher: len=86
    [T-6] ECP: decryption failed
    [T-6] DESE-bis: rec'd bogus DES cypher: len=44
    [T-6] ECP: decryption failed
    [T-6] DESE-bis: rec'd bogus DES cypher: len=109
    [T-6] ECP: decryption failed

    FreeBSD 9.1-RELEASE amd64 с кастомным конфигом.
    mpd5.6 -- из портов.

    Прошу, ткните носом, что делаю не так, где почитать.

     
    Last edit: Djarf 2013-04-26
  • В dese-bis длина данных должна быть кратной восьми.
    Ради интереса можно посмотреть содержимое пакетов, и узнать, в чем проблема.

     
  • Djarf
    Djarf
    2013-04-25

    Я правильно понял, что под термином "данные"
    подразумевается длина ключа в символах?

    К примеру:

    set ecp key "01234567abcdefgh01234567abcdefgh"

    длина=32 символа, кратно 8.

    Где можно почитать про это и другие ограничения
    в DESE-bis и DESE-old?

    P.S. Очень не хочется использовать винегрет mppc там, где его можно не использовать :-)

     
    Last edit: Djarf 2013-04-25
  • Djarf
    Djarf
    2013-04-26

    Проверил тот вариант, что описал в своём предыдущем посте.
    При любых, кратных 8, количествах символов в значении ключа -- те же самые ошибки. Что, всё же, подразумевалось под термином "данные"?

    Почитал по ссылкам. Интересно. Но не совсем на заданную тему.

    Итак, по прежнему шифрование с DESE-bis и DESE-old не происходит.

    Посмотреть содержимое пакетов, понятно, tcpdump. Вопрос: каких пакетов?

    На ngX или на реальной сетевой?

    И каких пакетов? На реальной сетевой довольно таки интенсивный поток. Как выделить только те пакеты, которые интересуют, если смотреть на реальном интерфейсе?

    Пока видел такое:

    на ngX: ОТ аппарата пакеты есть, К аппарату -- нет

    на реальном: есть в обе стороны gre-пакеты.

    Такая картина с обеих сторон.

     
  • DESE-bis - использует блочный шифр DES с размером блока 64 бита. Это значит что каждый отправляемый пакет при шифровании дополняется вверх до этой границы. Соответственно принимающая сторона в принципе не должна получить пакетов с длиной не кратной 8. Но какие-то образом это происходит. Я уже несколько лет это не тестировал, но в последний раз оно работало исправно.

     
  • Наблюдаю такую же фигню. С сентября 2012 ничего не изменилось. В логах посылающей стороны наблюдается:
    Oct 23 01:15:09 imax mpd: [VPN] DESE-bis: rec'd bogus DES cypher: len=62
    Oct 23 01:15:09 imax mpd: [VPN] ECP: decryption failed
    (непонятно, почему decryption, если надо зашифровать и отправить, а не расшифровать)

    Принимающая сторона пакетов на интерфейсе не видит и в логах ничего не появляется.

    ЗЫ: А mpd умеет какое-то шифрование с длинной ключа больше 128 бит? Или ничего лучше MPPE мне не светит?

     
  • Как вариант - поднимать ipsec поверх l2tp

    На счет DES. Возможно что-то поменялось в API самой FreeBSD. Посмотрю на этот счет.

     
  • Починил в CVS