Нещодавно тріо дослідників розділилося між Італією та Великобританією опублікував статтю про криптографічні незахищеності, які вони знайшли у широко відомій розумній лампочці.
Схоже, дослідники обрали цільовий пристрій TP-Link Tapo L530E на основі того, що він «на даний момент [] бестселер на Amazon Італія,» тому ми не знаємо, як працюють інші розумні лампочки, але в їхньому звіті все одно є чому нас навчити.
Дослідники кажуть, що:
Ми сумлінно зв’язалися з TP-Link через їхню програму дослідження вразливостей (VRP), повідомивши про всі чотири знайдені нами вразливості.
Вони визнали їх усі та повідомили нам, що почали працювати над виправленнями як на рівні програми, так і на рівні прошивки лампи, плануючи випустити їх у належний час.
На краще це чи на гірше (автори статті не повідомляють, чи були узгоджені дати розкриття інформації з TP-Link, тому ми не знаємо, як довго компанія працювала над своїми виправленнями), тепер дослідники розкрили, як їхні атаки працюють, хоча й не надають жодного коду атаки, який можна копіювати та вставляти, щоб його використовували за бажанням хакери.
Тому ми вважали, що цей документ вартий уваги.
Налаштування бездротового зв'язку
Як і багато так званих «розумних» пристроїв, Tapo L530E розроблено таким чином, що його можна швидко та легко налаштувати через Wi-Fi.
Хоча конфігурація на основі бездротового зв’язку поширена навіть для пристроїв із живленням від батареї, які можна заряджати та налаштовувати через вбудовані USB-порти, як-от камери та аксесуари для велосипедів, лампочки зазвичай не мають USB-портів, не в останню чергу для місця та безпеки причини, враховуючи те, що вони призначені для підключення та залишення в розетці.
Вмикаючи та вимикаючи лампочку Tapo L530E кілька разів за допомогою настінного вимикача на одну секунду за раз, ви можете примусово перевести її в режим налаштування (вочевидь, лампочка автоматично блимне тричі, щоб повідомити вам, коли вона готова до налаштування).
Як і більшість автоматично настроюваних пристроїв, це призводить до того, що розумна лампочка перетворюється на точку доступу Wi-Fi із легко розпізнаваною мережевою назвою у формі Tapo Bulb XXXX
, де X утворюють рядок цифр.
Потім ви підключаєтесь до цієї тимчасової точки доступу, яка не захищена паролем, із програми на вашому смартфоні.
Потім ви повідомляєте лампочці, як у майбутньому підключитися до вашої захищеної паролем домашньої мережі Wi-Fi і до вашого хмарного облікового запису TP-Link, після чого мікропрограмне забезпечення лампочки може перезавантажитися та підключитися до Інтернету, дозволяючи вам керувати нею. із програми на телефоні.
Лампочка може приєднуватися до домашньої мережі, що означає, що ви можете зв’язуватися з нею безпосередньо через власну Wi-Fi, коли ви вдома, навіть якщо ваш інтернет-провайдер у цей час офлайн.
І лампочка може підключатися через Інтернет до вашого хмарного облікового запису, тож ви також можете надсилати їй команди опосередковано через свій хмарний обліковий запис, поки ви в дорозі, наприклад, щоб увімкнути та вимкнути світло, якщо ви запізнилися повернутися щоб створити враження, що вдома хтось є.
Остерігайтеся самозванців
Ви, мабуть, здогадуєтеся, куди це йде.
Якщо програма на вашому телефоні не має криптографічно надійного способу з’ясувати, що вона справді підключилася до справжньої лампочки, коли ви проходите процес налаштування…
…потім зловмисник, який випадково запускає фейк Tapo Bulb XXXX
точка доступу в потрібний момент може змусити вас надіслати ці важливі секрети налаштування на їхній пристрій «самозваної лампочки», а не на справжній, таким чином захоплюючи як ваш пароль Wi-Fi, так і дані вашого облікового запису TP-Link.
Хороша новина полягає в тому, що дослідники помітили, що і програма Tapo, і мікропрограма L530E включають базову перевірку безпеки, щоб допомогти програмі та вашим лампочкам надійно знаходити одна одну, таким чином зменшуючи ризик того, що програма видасть ваші паролі, коли це потрібно 't.
Але погана новина полягає в тому, що для цього використовується протокол ти справді лампочка? Обмін був чітко розроблений для уникнення помилок, а не для запобігання атакам.
Простіше кажучи, програма знаходить будь-які лампочки у своїй мережі, транслюючи спеціальні UDP-пакети на порт 20002 і дивлячись, які пристрої відповідають, якщо такі є.
Щоб допомогти будь-якому прослуховуванню лампочки вирішити, що ти тут? запит надійшов із програми Tapo, а не з якогось іншого невідомого продукту чи служби, які випадково також використовують порт 20002, запит містить те, що на жаргоні називається хеш із ключем.
Команда Я тут! відповідь від лампочки містить таку саму введену контрольну суму, яка допомагає програмі відфільтрувати неочікувані та небажані відповіді UDP.
Простіше кажучи, ключовий хеш — це контрольна сума, яка базується не лише на даних у пакеті UDP, але й на деяких додаткових ключових байтах, які також складаються в контрольну суму.
На жаль, протокол Tapo використовує фіксовані ключові байти для контрольної суми з тим самим «ключем», вбудованим у програму та мікропрограму кожної лампочки Tapo.
Іншими словами, як тільки хтось декомпілює або програму, або прошивку лампочки, або обидва, і відновить цей «ключ», ви повинні припустити, що будь-хто знатиме, що це таке, роблячи ціти там?/я тут! повідомлення тривіально підробити.
Гірше того, дослідники виявили, що їм не потрібно нічого декомпілювати, оскільки цей не надто секретний «ключ» має лише 32 біти, а це означає, що якщо встановити вашу власну лампочку Tapo у режим налаштування, а потім подати її ти тут? повідомлення з використанням усіх 232 можливих ключів контрольної суми, ви зрештою натиснете правильну клавішу, відому як груба сила.
Це криптографічний еквівалент обертання циферблатів, щоб спробувати кожну комбінацію на велосипедному замку, скажімо, з 000
до 999
, поки вам не пощастить і замок не відчиниться. (У середньому ви відкриєте замок, спробувавши половину можливих комбінацій, але це ніколи не займе більше 1000 ходів.)
Насправді їм не потрібно було надсилати 232 повідомлення від програми до лампочки, щоб зламати ключ.
Захопивши лише одне завідомо справжнє повідомлення з дійсним хешем із ключем, вони могли перевірити всі можливі ключі в автономному режимі, доки не створять повідомлення, яке мало той самий хеш із ключем, що й той, який вони зберегли.
Це означає, що атака грубою силою може відбуватися на швидкості процесора, а не лише на швидкості пакетів мережі Wi-Fi, і дослідники стверджують, що «У наших налаштуваннях атака грубою силою завжди вдавалася в середньому за 140 хвилин».
(Ми припускаємо, що вони пробували це неодноразово лише для того, щоб перевірити, чи їхній код злому працює правильно, хоча за наявності провідного ключа, спільного для всіх ламп Tapo, їхнього першого злому було б достатньо.)
Поки ти будеш говорити безпечно, мені байдуже, хто ти
Наступна криптографічна проблема виявилася на наступному етапі процесу налаштування лампочки, і була подібною помилкою.
Після визнання лампочки справжньою на основі гешу-ключу, який-насправді-не-має-ключа, програма узгоджує ключ сеансу для шифрування свого трафіку за допомогою «справжньої» лампочки…
…але знову не має можливості перевірити, чи угода про ключ відбулася зі справжньою лампочкою чи з самозванцем.
Узгодження ключа сеансу є важливим, оскільки це гарантує, що ніхто інший у мережі не зможе перехопити паролі Wi-Fi і Tapo, коли вони згодом будуть надіслані з додатка Tapo на те, що він вважає лампочкою Tapo.
Але відсутність процесу перевірки самої угоди про ключ схоже на підключення до веб-сайту через HTTPS, а потім не турбуватися про виконання навіть найпростішої перевірки веб-сертифіката, який він надсилає назад: ваш трафік буде безпечним під час передачі, але тим не менше може потрапити прямо в руки шахраю.
Програма Tapo ідентифікує себе за допомогою лампочки (або того, що вона вважає лампочкою), надсилаючи їй відкритий ключ RSA, який інший кінець використовує для шифрування випадково згенерованого ключа AES для захисту даних, якими обмінюються під час сеансу.
Але пристрій з лампочкою не забезпечує жодної ідентифікації, навіть контрольної суми за допомогою підключеного 32-бітного ключа до програми Tapo.
Таким чином, програма не має іншого вибору, окрім як прийняти сеансовий ключ, не знаючи, чи він надійшов від справжньої лампочки чи самозваного пристрою.
Загальний результат цих двох недоліків полягає в тому, що зловмисник у вашій мережі може спочатку переконати вас, що його шахрайська точка доступу — це справжня лампочка, яка очікує на налаштування, і таким чином заманить вас не в те місце, а потім переконає вас надіслати її зашифрована копія ваших власних паролів Wi-Fi і Tapo.
За іронією долі, ці злиті паролі дійсно були б захищені від усіх… крім самозванця з шахрайською точкою доступу.
Номер, використаний один раз, який використовується знову і знову
На жаль, є більше.
Коли ми сказали це вище «ці виточені паролі справді були б безпечними», це було не зовсім правильно.
Ключ сеансу, встановлений під час процесу узгодження ключа, який ми описали раніше, не обробляється належним чином, оскільки програмісти зробили помилку у своєму використанні AES.
Коли програма шифрує кожен запит, який вона надсилає до лампочки, вона використовує режим шифрування під назвою AES-128-CBC.
Ми не будемо пояснювати CBC (з'єднання шифр-блоків) тут, але ми просто зазначимо, що режим CBC розроблено таким чином, що якщо ви шифруєте ту саму частину даних більше одного разу (наприклад, повторні запити до увімкнути світло та вимкни світло, де необроблені дані в запиті щоразу однакові), ви не отримуєте однакові результати щоразу.
Якщо кожен увімкнути світло та вимкнути світло запит вийшов ідентичним, то одного разу зловмисник здогадався, що a вимкнути пакета, вони могли не тільки розпізнавати ці пакети в майбутньому, не розшифровуючи їх, але й відтворювати ті самі пакети без необхідності знати, як їх зашифрувати.
Як це трапляється, шифрування на основі CBC фактично покладається на «засівання» процесу шифрування для кожної порції даних, спочатку змішуючи унікальний, випадково вибраний блок даних у процес шифрування, таким чином створюючи унікальну послідовність зашифрованих даних у решті. шматка.
Ці «початкові» дані відомі на жаргоні IV, скорочення від вектор ініціалізації, і хоча це не повинно бути секретом, воно має бути непередбачувано іншим щоразу.
Простіше кажучи: той самий ключ + унікальний IV = унікальний вихід зашифрованого тексту, але той самий ключ + той же IV = передбачуване шифрування.
На жаль, кодери TP-Link згенерували IV одночасно зі створенням ключа сеансу AES, а потім використовували той самий IV знову і знову для кожного наступного пакета даних, навіть якщо попередні дані точно повторювалися.
Це криптографічне ні-ні.
Я відправив шість пакетів чи лише п’ять?
Остання криптографічна проблема, яку виявили дослідники, все ще може завдати шкоди безпеці, навіть якщо проблема вектора ініціалізації була виправлена, а саме те, що старі повідомлення, незалежно від того, знає зловмисник, що вони означають, чи ні, можуть бути відтворені пізніше, як якщо б вони були новими.
Як правило, цей вид повторна атака обробляється в криптографічних протоколах певним порядковим номером, або міткою часу, або тим і іншим, які включені в кожен пакет даних, щоб обмежити його дійсність.
Як дата на залізничному квитку, який видасть вас, якщо ви спробуєте використати його два дні поспіль, навіть якщо сам квиток ніколи не скасовується квитковим автоматом або не пробивається інспектором, порядкові номери та мітки часу в пакетах даних служать двом важливим цілям.
По-перше, зловмисники не можуть записати трафік сьогодні та легко відтворити його пізніше та потенційно створити хаос.
По-друге, код із помилками, який багаторазово надсилає запити помилково, наприклад через пропущені відповіді чи відсутність підтвердження в мережі, можна надійно виявити та контролювати.
Що ж робити?
Якщо ви користуєтеся лампочками Tapo, слідкуйте за оновленнями прошивки від TP-Link, які вирішують ці проблеми.
Якщо ви програміст, який відповідає за безпеку мережевого трафіку та налаштування мережевих продуктів, прочитати дослідницьку роботу, щоб переконатися, що ви не робили подібних помилок.
Пам'ятайте наступні правила:
- Криптографія — це не лише секретність. Шифрування є лише частиною криптологічної «святої трійці». конфіденційність (зашифрувати), справжність (перевірте, хто на іншому кінці), і цілісність (переконайтеся, що ніхто не торкався його по дорозі).
- Переконайтеся, що будь-які одноразові ключі або IV дійсно унікальні. Загальний жаргонний термін нунцій, що використовується для для такого роду даних, є скороченням від номер використаний один раз, слово, яке чітко нагадує вам, що крапельниці ніколи не можна використовувати повторно.
- Захист від повторних атак. Це особливий аспект забезпечення справжність та цілісність ми згадували вище. Зловмисник не повинен мати змоги перехопити запит, який ви робите зараз, і сліпо відтворити його пізніше, щоб не бути поміченим. Пам’ятайте, що зловмиснику не обов’язково бути здатним зрозуміти повідомлення, якщо він може відтворити його й потенційно створити хаос.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- ChartPrime. Розвивайте свою торгову гру за допомогою ChartPrime. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://nakedsecurity.sophos.com/2023/08/22/smart-light-bulbs-could-give-away-your-password-secrets/
- : має
- :є
- : ні
- :де
- $UP
- 1
- 125
- 15%
- 25
- 32
- 700
- a
- Здатний
- МЕНЮ
- вище
- абсолют
- Прийняти
- приймає
- доступ
- аксесуари
- рахунки
- визнаний
- Додатковий
- адреса
- AES
- після
- знову
- проти
- вирішено
- Угода
- ВСІ
- Дозволити
- по
- Також
- хоча
- завжди
- am
- Amazon
- an
- та
- будь-який
- все
- додаток
- ЕСТЬ
- AS
- зовнішній вигляд
- припустити
- At
- атака
- нападки
- автор
- authors
- автоматичний
- автоматично
- середній
- уникнути
- геть
- назад
- фонове зображення
- поганий
- заснований
- основний
- основа
- BE
- оскільки
- було
- КРАЩЕ
- Краще
- між
- Біт
- сліпо
- Блокувати
- border
- обидва
- дно
- Мовлення
- груба сила
- вбудований
- але
- by
- званий
- прийшов
- камери
- CAN
- захоплення
- захопивши
- який
- Причини
- Центр
- сертифікат
- стягується
- перевірка
- контроль
- вибір
- вибраний
- очевидно
- хмара
- код
- color
- поєднання
- комбінації
- комбінований
- загальний
- компанія
- конфігурація
- налаштувати
- З'єднуватися
- підключений
- З'єднувальний
- контакт
- контроль
- переконати
- виправити
- може
- Курс
- обкладинка
- тріщина
- створювати
- створений
- створення
- криптографічні
- дані
- Дата
- Дати
- Днів
- вирішувати
- описаний
- призначений
- деталі
- виявлено
- пристрій
- прилади
- різний
- цифр
- безпосередньо
- розкриття
- дисплей
- do
- робить
- Ні
- Не знаю
- впав
- два
- під час
- кожен
- Раніше
- легко
- фактично
- або
- ще
- зашифрованих
- шифрування
- кінець
- досить
- забезпечувати
- гарантує
- забезпечення
- повністю
- Еквівалент
- встановлений
- Навіть
- врешті-решт
- Кожен
- точно
- приклад
- Крім
- обмін
- обмінялися
- Пояснювати
- Експлуатувати
- очі
- факт
- підроблений
- годування
- фільтрувати
- знайти
- Перший
- фіксованою
- недоліки
- після
- для
- Примусово
- кувати
- форма
- знайдений
- чотири
- від
- майбутнє
- в цілому
- генерується
- справжній
- отримати
- отримання
- Давати
- даний
- Go
- йде
- буде
- добре
- здогадався
- було
- Половина
- Руки
- відбувається
- шкодити
- мішанина
- Мати
- має
- висота
- допомога
- тут
- хіт
- Головна
- hover
- Як
- How To
- HTTPS
- i
- Ідентифікація
- ідентифікує
- if
- важливо
- in
- включені
- includes
- побічно
- повідомив
- замість
- інтернет
- в
- ISP
- питання
- IT
- Італія
- ЙОГО
- сам
- жаргон
- приєднатися
- просто
- тільки один
- тримати
- ключ
- ключі
- Знати
- Знання
- відомий
- останній
- Пізно
- пізніше
- найменш
- залишити
- рівні
- світло
- лампочки
- як
- МЕЖА
- Прослуховування
- Довго
- подивився
- шукати
- машина
- made
- зробити
- Робить
- управляти
- багато
- Маржа
- макс-ширина
- значити
- засоби
- означав
- згаданий
- просто
- повідомлення
- повідомлення
- хвилин
- відсутній
- помилка
- помилки
- Змішування
- режим
- момент
- більше
- найбільш
- повинен
- ім'я
- а саме
- Необхідність
- нужденних
- мережу
- Назва мережі
- мережевий трафік
- на основі мережі
- ніколи
- проте
- Нові
- новини
- наступний
- немає
- ніхто
- нормальний
- зараз
- номер
- номера
- of
- від
- offline
- Старий
- on
- один раз
- ONE
- тільки
- відкрити
- or
- порядок
- Інше
- наші
- з
- Результат
- вихід
- над
- власний
- пакети
- Папір
- частина
- Пароль
- Паролі
- Патчі
- Пол
- Виконувати
- телефон
- місце
- планування
- plato
- Інформація про дані Платона
- PlatoData
- Play
- грав
- Plenty
- Підключено
- точка
- попсовий
- положення
- це можливо
- Пости
- потенційно
- Передбачуваний
- запобігати
- попередній
- ймовірно
- Проблема
- продовжити
- процес
- Вироблений
- Product
- програма
- Програміст
- Програмісти
- захищений
- протокол
- протоколи
- забезпечувати
- забезпечення
- громадськість
- публічний ключ
- цілей
- put
- швидко
- випадково сформований
- швидше
- Сировина
- готовий
- реальний
- насправді
- Причини
- нещодавно
- визнати
- запис
- зниження
- відносний
- звільнити
- запам'ятати
- повторний
- ПОВТОРНО
- відповісти
- звітом
- Звітність
- запросити
- запитів
- дослідження
- Дослідники
- відповідальний
- REST
- Показали
- право
- Risk
- дорога
- ROW
- RSA
- Правила
- Безпека
- Зазначений
- то ж
- say
- другий
- секрет
- безпечний
- безпечно
- забезпечення
- безпеку
- бачачи
- здається
- послати
- відправка
- посилає
- посланий
- Послідовність
- служити
- обслуговування
- Сесія
- комплект
- установка
- установка
- загальні
- Короткий
- Повинен
- аналогічний
- SIX
- розумний
- смартфон
- Шпигувати
- So
- solid
- деякі
- Хтось
- Простір
- говорити
- спеціальний
- швидкість
- розкол
- стек
- Стажування
- старт
- почалася
- стан
- Як і раніше
- прямий
- рядок
- сильний
- наступні
- Згодом
- такі
- Переконайтеся
- SVG
- перемикач
- Приймати
- Мета
- сказати
- тимчасовий
- термін
- тест
- ніж
- Що
- Команда
- Великобританія
- їх
- Їх
- потім
- Там.
- отже
- Ці
- вони
- річ
- Думає
- це
- ті
- думка
- три
- через
- Таким чином
- квиток
- час
- times
- відмітка часу
- до
- сьогодні
- прийняли
- топ
- трафік
- поїзд
- транзит
- перехід
- прозорий
- намагався
- тріо
- по-справжньому
- намагатися
- ПЕРЕГЛЯД
- Опинився
- Поворот
- два
- тип
- Uk
- розуміти
- Unexpected
- на жаль
- створеного
- невідомий
- до
- Updates
- URL
- us
- USB
- використання
- використовуваний
- користувач
- використовує
- використання
- перевірка
- перевірити
- через
- Уразливості
- вразливість
- Очікування
- Стіна
- було
- шлях..
- we
- Web
- веб-сайт
- ДОБРЕ
- були
- Що
- коли
- Чи
- який
- в той час як
- ВООЗ
- Wi-Fi
- ширина
- волі
- з
- без
- слово
- слова
- Work
- робочий
- гірше
- вартість
- б
- Неправильно
- Х-х
- Ти
- вашу
- зефірнет