Menu

mpd 5.3-5.5 Shared secret is incorrect

2010-05-20
2013-03-27
  • Alexander A. Belik

    Есть Два freebsd NAS-а 7.1 и 7.3 MPD 5.3 и MPD 5.5 соответственно.
    После перестартовки радиуса (freeradius 1.7.7) появляются проблемы только с MPD 5.5
    После раскопок я склонен к тому, что  не совпадают MD5 hash. Порылся в изменениях, но не нашел ничего.
    Лог радиуса:
    Received Accounting-Request packet from 1.1.1.22 with invalid signature! (Shared secret is incorrect.) Dropping packet without response.
    Лог MPD 5.5:
    mpd:  RADIUS: rad_send_request for user 'ira' failed: No valid RADIUS responses received
    Конфиги mpd 5.3 и mpd 5.5. одинаковы полностью. Подскажите что изменилось с 5.3 до 5.5

     
  • Alexander A. Belik

    Продолжая расследование данной проблемы:
    Как я и догадывался дело в подсчете MD5 сумм, которые генерируются по нехитрому алгоритму:
    freeradius 1.1.8/src/lib/radius.c
    ….
    static int calc_acctdigest(RADIUS_PACKET *packet, const char *secret)
    ….
    MD5Init(&context);
    MD5Update(&context, packet->data, packet->data_len);
    MD5Update(&context, (const uint8_t *) secret, strlen(secret));
    MD5Final(digest, &context);

    / *      Return 0 if OK, 2 if not OK.
            packet->verified = memcmp(digest, packet->vector, AUTH_VECTOR_LEN) ? 2 : 0;
            DEBUG("calc_acctdigest: Digest:`%s` Vector:`%s`,packet-verified:%i", digest, packet->vector,packet->verified);
            return packet->verified;
    -----------------------------------------end------------------------------
    А вот и дебаг с нулем от mpd 5.3 и с плохим результатом 2 от mpd 5.5
    ……
    calc_acctdigest: Digest:`..l.É.{.B..J.Z.,..` Vector:`..l.É.{.B..J.Z.`,packet-verified:0
    …….
    calc_acctdigest: Digest:`…S……mM….,..` Vector:`..2?..c…….$``,packet-verified:2
    Received Accounting-Request packet from 1.1.1.1 with invalid signature! (Shared secret is incorrect.)
    Dropping packet without response.

    Вот только не понятно. Получается, что эти ошибки появляются, когда перезапустился радиус, а клиент находился в этот момент "на линии" и продолжает слать live-updates. Но ошибка пропадает через несколько минут или если разорвать и установить заново соединение.

     
  • Alexander A. Belik

    Раскопки привили меня в libradius. Проблема похоже связана с появлением
    insert_message_authenticator

     

Log in to post a comment.

MongoDB Logo MongoDB