Одна из вещей, за которые мне нравится IT, это парадоксы. Я столько раз видел парадоксальнейшие по своей природе вещи и всё ещё не перестаю ими наслаждаться. Чаще всего поражают костыли в дорогих коммерческих решениях, которые смотрятся как сверкающий, высокотехнологичный звездолёт, к которому приставлены прогнившие деревянные балки, примотанные для крепости капроновой нитью. Об одном из таких, виденных пару лет назад, уже можно рассказать — эта линейка продуктов уходит в прошлое.
Итак, крупный вендор сетевого оборудования с хвойным кустарником в названии в процессе слияний и поглощений обзавёлся весьма недурственной операционкой, на которой выпускал несколько линеек файрволов (сейчас эту ОС прикрыли), аппаратных VPN и ещё кое-чего. Мы тогда использовали один из их агрегатов для предоставления VPN-доступа подрядчикам и айтишникам во внутреннюю сеть и завели на девайсе внутреннюю базу аккаунтов.
Народу, который пользовался VPN, было немного, поэтому веселье обнаружилось не сразу, только когда у одного из подрядчиков появилась просьба сбросить пароль, и я полез это делать. Я на работе использовал браузер имени малой панды и среди дополнений держал Unhide Passwords, убирающее звёздочки с паролей при определённых действиях: очень удобно, если за плечом никто не стоит. И вот, ткнув в поле пароля, я не увидел ожидаемой пустоты. С выползающими глазами проверил свою учётку и увидел знакомый набор букв и цифр. Залез в учётку старшего админа и поинтересовался у него:
— А у тебя пароль начинается с [двух букв]?
Пока он подбирал челюсть с пола, уточнил:
— А заканчивается на [ещё две буквы]?
Мы долго поражались: железка за несколько десятков килобаксов, обеспечивающая высокие вроде бы уровни безопасности и надёжности, шифрующая внутри себя всё, что можно, в веб-интерфейсе имела катастрофическую дыру. Мы её прикрыли, вынеся учётки на отдельный Radius-сервер, но шок от такого держался ещё немало.
Разве после таких вещей можно не влюбиться в это минное поле, так часто предлагающее тебе неожиданные задачи и задающее тебе парадоксальные вопросы, про которые мой знакомый опытный программист говорил: «У любой задачи программирования есть не менее чем два решения, одно из которых — правильное, другое — нет, но они оба работают»?