Назад | Перейти на главную страницу

Subversion 1.6 + SASL: работает только с открытым текстом userPassword?

Я пытаюсь настроить svnserve с поддержкой SASL на моем сервере Slackware 13.1, и после некоторых проб и ошибок я смог заставить его работать с конфигурацией, указанной ниже:

svnserve.conf

[general]
anon-access = read
auth-access = write
realm = myrepo

[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256

/etc/sasl2/svn.conf

pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /etc/sasl2/my_sasldb
mech_list: DIGEST-MD5

пользователи sasldb

$ sasldblistusers2 -f /etc/sasl2/my_sasldb
test@myrepo: cmusaslsecretOTP
test@myrepo: userPassword

Вы заметите, что вывод sasldblistusers2 показывает мой тест пользователь как имеющий зашифрованный cmusaslsecretOTP пароль, а также простой текст пользовательский пароль пароль. то есть, если бы я бежал strings /etc/sasl2/my_sasldb Я бы увидел тест пароль пользователя в виде открытого текста. Эти две записи пароля были созданы с помощью следующей рекомендованной команды Subversion Book:

saslpasswd2 -c -f /etc/sasl2/my_sasldb -u myrepo test

После прочтения man saslpasswd2 Вижу такой вариант:

-n Не устанавливайте для пользователя свойство userPassword открытого текста. Будут установлены только специфичные для механизма секреты (например, OTP, SRP)

Это именно то, что я хочу сделать, подавить простой текстовый пароль и использовать только секрет, зависящий от механизма (OTP в моем случае). Так что я убираюсь /etc/sasl2/my_sasldb и повторить saslpasswd2 так как:

saslpasswd2 -n -c -f /etc/sasl2/my_sasldb -u myrepo test

Затем я продолжаю sasldblistusers2 и я вижу:

$ sasldblistusers2 -f /etc/sasl2/my_sasldb
test@myrepo: cmusaslsecretOTP

Отлично! Думаю, теперь у меня только зашифрованные пароли .... только ни линукс svn клиент ни винда TortoiseSVN клиент может больше подключаться к моему репо. Они оба представляют мне задачу пользователя / прохода, но это все, что я могу сделать.


TL; DR

Итак, какой смысл SVN поддерживать SASL, если мой sasldb должен хранить пароли в открытом виде для работы?

Вряд ли это ответ, но я хотел бы указать, что есть некоторые источники, которые прямо заявляют, что DIGEST-MD5 не поддерживает (и никогда не будет) поддерживать хешированные пароли, потому что ему нужен открытый текстовый пароль для выполнения запроса / ответа, например:

Другие источники говорят иначе: