BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/rsn/archive/2014/02/02.html

Лишний goto поломал SSL/TLS в iOS
dl // 22.02.14 17:13
Анализ внезапно выпущенного на днях обновления iOS до версии 7.0.6 выявил замечательную ошибку, позволяющую сайту отдавать iOS-устройствам одноразовые ключи, подписи которых вообще не имели отношения к его сертификату.
[Не забывайте при копировании материала указывать полный адрес источника: //bugtraq.ru/rsn/archive/2014/02/02.html]
Т.е. приводящей к фактически полной неработоспособности всего механизма SSL/TLS. В переводе на русский язык: любой владелец точки доступа, на которую налетели любители халявного WiFi, может элементарно реализовать атаку класса man-in-the-middle, на ходу меняя ключи и читая весь как бы защищенный трафик к любимому вконтакту/твиттеру/фейсбуку (или, что хуже, к платежной системе).

Причина ошибки - лишний goto (привет копипасту), который всегда приводил к переходу в конец функции, минуя проверку sslRawVerify.

Эта же уязвимость присутствует и в MacOS, Apple обещает выпустить исправление в ближайшее время.

А вообще, увидев в 21 веке такое количество goto в коде, хочется передать отдельный привет отпраздновавшему на той неделе 80 лет Вирту. Спагетти-код неистребим.

Update: Хочется уточнить - сам по себе goto на блок очистки перед выходом из функции, конечно, вполне допустим и ничуть не хуже, чем привычный break или continue (хотя в таких ситуациях особенно начинаешь ценить автоматическую отработку деструкторов из C++). Но при таком количестве типовых проверок с goto их нужно обвязывать элементарными макросами, которые и делают код чище, и исключают подобные ошибки. Собственно, те же привычные break и continue в C являются точно такими же обвязками вокруг goto на конец блока, только замаскированными на уровне языка. Строго говоря, их введение тоже было избыточным, но без них подобных косяков было бы гораздо больше.

Источник: Adam Langley's Weblog    
теги: ios, клоуны  |  предложить новость  |  обсудить  |  все отзывы (0) [6065]
назад «  » вперед

аналогичные материалы
Ядро Linux избавляется от российских мейнтейнеров // 23.10.24 23:10
Docker Hub закрыл доступ из России // 30.05.24 15:34
Маск поддержал создателя Дилберта, обвиненного в расизме // 27.02.23 20:39
Яндекс неуклюже оправдался за установку Теледиска // 29.07.20 17:09
Infosec-сообщество не поддержало отказ от термина black hat // 04.07.20 18:50
Расово верная чистка IT-терминологии // 16.06.20 18:03
ГПБ vs TV // 06.06.20 21:47
 
последние новости
Microsoft обещает радикально усилить безопасность Windows в следующем году // 19.11.24 17:09
Ядро Linux избавляется от российских мейнтейнеров // 23.10.24 23:10
20 лет Ubuntu // 20.10.24 19:11
Tailscale окончательно забанила российские адреса // 02.10.24 18:54
Прекращение работы антивируса Касперского в США // 30.09.24 17:30
Microsoft Authenticator теряет пользовательские аккаунты // 05.08.24 22:21
Облачнолазурное // 31.07.24 17:34





  Copyright © 2001-2024 Dmitry Leonov Design: Vadim Derkach