Днес видях с очите си една очарователна простотия, която много ме забавлява, защото мислех че такива рационализации са запазена марка предимно на родните законотворци. Става въпрос за един майкрософтски протокол за автентикация, който в случая конфигуриран в примерен freeradius сървър. Протоколът е правен с идеята паролата да не минава в чист вид, едната или и двете страни не е задължително да имат паролата, може да имат хеш от нея (смисълът от това е спорен, но нека да бъде) и трябва да предотвратява replay атаки. Ето една примерна успешна автентикация изслухтяна и представена нагледно:
Трябва да се отбележи че самия протокол по спецификация не трябва да прави така, но специално в случая в който се ползва с RADIUS очевидно прави така. Човеците от майкрософт очевидно са решили да опростят малко flow-а, да не затормозяват мрежата и така. What could possibly go wrong?
Айде да видим кой първи ще се сети за проблема. Както и за разрешението му при това положение (което е безумно, ако примерно freeradius го разработваха майкрософтци обаче, сигурно щяха да прибегнат до него убеден съм). Всъщност, ако родните законотворци разработваха freeradius съм 101% убеден че точно по този начин биха решили проблема.
П.П - да, ако някой пита - тези двата пакета са цялата комуникация между двете страни. Отговорът от сървъра е ирелевантен.
П.П 2 - на второ четене, това решение е дори по-отвратително. Отваря широко вратата за мноооооого лоша DoS атака срещу сървъра. Но пък поне до един момент ще работи...ефективно.