Моя жена постоянно теряет пароли от всего подряд. У меня иногда складывается ощущение, что она вообще не пытается их запоминать. А зачем, ведь есть муж. Несколько дней назад она мне сообщила, что она в очередной раз забыла пароль от Mail.ru агента. Современные программы стали хорошо относиться к безопасности и прошли те времена, когда пароли так легко находились в реестре в открытом виде или шифровались простейшими XOR с чем-то простым. Ничего не пообещав жене, я все же принялся за поиски проблем.
Первое, что я стал просматривать – реестр. Современные правила построения программ требуют сохранения конфигурационной информации в реестре и это первое место, где следует искать что-то подобное. Конфигурация учетных записей действительно была в реестре, но только пароли (если я правильно определил их местоположения) были зашифрованы. Чем? Да фиг его знает.
Не надеясь ни на что хорошее, я решился проверить окно ввода пароля в самой программе. Запустил агента и вошел в окно конфигурации. Нашел поле для ввода пароля и натравил на него мою программку, которую я описывал в книгах:
В обеих книгах был описан один и тот же пример, который назывался «Пароль под звездочками», просто написан он был на Delphi или C++. Принцип работы прост – найти выбранное пользователем поле ввода и попытаться изменить символ Password Char, используемый для скрытия вводимых символов, а точнее удаления его. Если в поле ввода есть реальный пароль, который просто скрыт с помощью Password Char, то программа отобразит его. Мое удивление не знала предела, потому что пароль там был. Причем реальный.
Когда я издавал вторые издания книг, то даже собирался выкинуть пример «Пароль под звездочками» или заменить его на что-то другое. Я просто не ожидал, что в современных программах до сих пор еще пароли банально прячутся. Это абсолютно небезопасно и говорит о том, что пароль в реестре зашифрован обратимым образом, хотя должен быть только хеш (как вариант).
Если тебе предстоит написать в программе окно для смены пароля, то никогда не помещай в поле текущий пароль, даже если он спрятан за звездочками. Окно смены пароля должно состоять из трех полей вода: одно для ввода старого пароля и два для ввода нового пароля (дважды, чтобы избежать возможной ошибки при вводе). Все эти три поля должны быть пустыми и пользователь должен вводить значения, а не использовать что-то по умолчанию.
С одной стороны, разработчикам Mail.ru агента желательно подправить программу, а с другой стороны, можно оставить и так. А то если в следующий раз если жена забудит свой пароль, придется ковыряться дольше, если вообщеполучится определить пароль.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Пароль от агента, это по сути пароль от мыльника, то есть разработчикам лучше закрыть эту дыру, иначе возможно появление троянчика, который охотится за мыльниками граждан.
В первых версия пароль вообще не шифровался1 Ранее тем и развлекался что таскал пароли и получал доступ к почтовым ящикам. Моя программулина просто открываля реестр брала пароль и скидывала от его имени через idSMTP мне с учеткой и паролем. Кстати тогда зародилась идея написания червя(громко сказано:) тем же способом с рассылкой тела по почте контакт листа. Помню маялся как получить список контактов. Оказалось все просто создавались файлы в Application Data, точно не помню, но имена файлов были примерно такими user@list.ru, в них хранилась история переписки, не суть. Вот таким образом можно было распространять файлы, и главное каспер молчал, ну если только не стояла проактивня защита. Воть
Да уж... Безопасность современных программ не перестаёт поражать ;) Особенно программ, непосредственно работающих с Интернетом.
Хе хе хе)
Я думаю, что вы и после исправлений вытащите пароль)
Кстати, у меня есть обе книжки, правда про Delphi старого издания. Классный пример ;)
Есть еще один метод. Обнаружил не я а Bulka. Снимаешь дамп программы. В нем все в открытом виде.
Если пароль в окне диалога просто спрятан звездочками, то конечно же в памяти он тоже в открытом виде.
Михаил
Научите жену пользоваться KeePass и забытые пороли уйдут в прошлое.
http://keepass.info/
У меня вопрос такой: звёздочки и кружочки - это не одно и то же?
Одно и то же
Тогда почему раньше на 98 винде я удачно вскрывал звёздочки утилитой OpenPass, а на XP эта же утилита не вскрывала уже кружочки? Пришлось искать софт, нашёл IOpus Password Recovery, который вскрывает и те, и те. Или эта проблема уже на уровне операционных систем?
Начиная с Win 2000 хранение паролей изменилось и звездочки являются больше бутофорией. Я говорю про саму систему, а не про программы сторонних производителей
Спасибо за внятный ответ! Теперь всё стало на свои места
у меня кто то поменял пароль на старом мыле в агенте как мне его вернуть.
нужен пароль к агенту
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.