Безпека через неясність (security through obscurity) — практика, за якої захист системи тримається на секретності її будови чи реалізації, а не на надійних механізмах безпеки.
Що означає безпека через неясність
Типові приклади — засекречені пропрієтарні алгоритми шифрування, адмін-панелі за незвичними URL, сервіси на нестандартних портах, недокументовані мережеві протоколи або паролі, «захищені» лише тим, що лежать у несподіваному місці. Розрахунок робиться на те, що зловмисники не дізнаються, як улаштована система.
Чому це не працює як основний захист
У криптографії цю ідею відкинули ще 1883 року принципом Керкгоффса: система має залишатися стійкою, навіть якщо про неї відомо все, крім ключа. Пізніше Клод Шеннон сформулював це як «ворог знає систему». Рекомендації NIST щодо захисту серверів так само вимагають, щоб безпека системи не залежала від секретності реалізації. Реальні випадки це підтверджують:
- секретне шифрування CSS на DVD було зламано 1999 року (DeCSS);
- пропрієтарний шифр Crypto-1 транспортних і перепусткових карток MIFARE Classic відновили зворотною розробкою та зламали 2008 року;
- приховані сервіси на незвичних портах за лічені хвилини знаходять інструменти масового сканування портів на кшталт Masscan і пошуковики як-от Shodan.
Прошивки й закрите ПЗ завжди можна дослідити за допомогою реверс-інжинірингу, тому секретність лише затримує наполегливого зловмисника. Гірше того, вона заважає незалежному аудиту, який знайшов би слабкі місця раніше.
Коли неясність допустима
Як додатковий шар неясність не марна. Перенесення SSH на інший порт зменшує шум від автоматичних ботів, а приховування версій ПЗ трохи ускладнює роботу зловмисників. Практичне правило: неясність може доповнювати справжні заходи захисту — надійну автентифікацію, своєчасні оновлення та шифрування на основі публічних, добре вивчених алгоритмів, — але ніколи не замінювати їх.





