Jump to content
Калькуляторы

Radius: как 'шифруется' пароль

В RFC 2865 для атрибута 'User-Password' указано:

Quote

On transmission, the password is hidden.  The password is first padded at the end with nulls to a multiple of 16 octets.  A one-way MD5 hash is calculated over a stream of octets consisting of the shared secret followed by the Request Authenticator.  This value is XORed with the first 16 octet segment of the password and placed in the first 16 octets of the String field of the User-Password Attribute.

При этом в Wireshark при указании ключа для данного прокола пароль прекрасно виден. Я не понимаю, как так: хэширование one-way есть, а исходный пароль получается моментально. Как так-то?

Share this post


Link to post
Share on other sites

PAP родимый. Ok, не шифруется, но и не в открытом виде передаётся. Меня интересует - в каком (алгоритм), как происходит обратное преобразование и какая защита от подбора перебором.

Share this post


Link to post
Share on other sites

2 часа назад, Safety1st сказал:

При этом в Wireshark при указании ключа для данного прокола пароль прекрасно виден. Я не понимаю, как так: хэширование one-way есть, а исходный пароль получается моментально. Как так-то?

Вот так: https://github.com/rozhuk-im/liblcb/blob/master/include/proto/radius.h#L764

1. Пароль копируется в результирующий буфер

2. Пароль ксорится с md5 хэшем который получается из:

на первом шаге (и единственном для пароля длиной меньшей или равной размеру хэша мд5) "общий секрет с радиус сервером" и "аутентификатором"

на последующих шагах "общий секрет с радиус сервером" и "предыдущий проксореный блок"

 

Естессно если скормить шаред секрет анализатору то он сможет видеть пароль.

Share this post


Link to post
Share on other sites

On 9/11/2019 at 2:59 PM, snvoronkov said:

Насколько я понял, там правила обмена данными без привязки к конкретной реализации.

 

On 9/11/2019 at 4:17 PM, Ivan_83 said:

с md5 хэшем который получается из ... "общий секрет с радиус сервером"

Вот оно! Теперь понятно: MD5-хэширование, как и положено, необратимое, но обе стороны знают хэш. А дальше простой логической операцией получается пароль.

В плане защиты ИМХО норм: длинный ключ + смена паролей каждые 45 дней у нас. Проще выдать себя за коммутатор и получить пароль в чистом виде, чем перебирать :)

Share this post


Link to post
Share on other sites

50 минут назад, Safety1st сказал:

Какие альтернативы? Разве для CHAP и выше не требуется хранить пароли, используя обратимое шифрование?

Пароли так и так хранятся в общем случае на радиусе в исходном виде. Только в случае с CHAP обмен сервера с NAS уже происходит действительно необратимыми хэшами без наивных XOR'ов.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.