Home Assistant проверяет пароли через HIBP — и не всем это понравилось
Пользователь под ником Viss, по его словам руководитель компании Phobos Group и специалист по наступательной безопасности, 16 октября завёл issue в репозитории документации Home Assistant. Претензия звучала резко: система сканирует «секреты» на его установке и отправляет их «наверх», причём он никогда не давал на это согласия. Он потребовал сделать функцию явно опциональной и спросил, как её вообще отключить.
Первая реакция
Разработчик проекта frenck ответил в духе «это не вторжение в приватность» и закрыл тикет. Он сослался на то, что пароли никуда не передаются, а механизм построен по тем же принципам, что и аналогичная проверка в менеджере 1Password, — с опорой на k-анонимность. Автора это не убедило: он напомнил, что хорошо знаком и с Have I Been Pwned, и с её создателем, и в 2011 году сам внедрял 1Password в Twitter. Суть возражения осталась прежней — дело не в том, безопасна ли проверка, а в том, что она включена по умолчанию, без согласия владельца.
К обсуждению подключились другие пользователи. Один попросил переоткрыть тикет и реализовать отключение, пригрозив в противном случае форкнуть проект; frenck отказался вести разговор на языке ультиматумов. Тред быстро накалился, и обсуждение ограничили участниками проекта.
Извинение и разъяснение
Позже тон сменился. frenck признал, что первые ответы были слишком пренебрежительными, и извинился. Оказалось, отключить проверку всё-таки можно командой ha security options --pwned=false.
Он же объяснил устройство механизма. Функция не новая — она давно встроена в Supervisor и проверяет те поля настроек, что помечены как пароли. В недавнем релизе лишь починили предупреждение, которое и обнажило её для пользователей. Приватность закладывалась в дизайн изначально: Supervisor хеширует пароль локально и отправляет в Have I Been Pwned только первые пять символов SHA-1. Сервис возвращает все хеши с таким префиксом, а сопоставление происходит уже на стороне пользователя. Таким образом сам пароль систему не покидает.
frenck согласился, что документация должна была всё это объяснять, включая способ отключения, и пообещал обновить соответствующую страницу. Отдельный тикет с просьбой описать, как включать функцию осознанно, пометили как дубликат.
История получилась поучительной с обеих сторон: о том, как даже технически безупречная проверка вызывает отторжение, если включена втихую, и о том, что защитная реакция мейнтейнера способна превратить резонный вопрос в скандал быстрее, чем любая реальная уязвимость.
Источник: Hacker News
Комментарии
Войдите, чтобы комментировать.