Борьба покупателей Apple за приватность (против Apple) выглядит совершенно безнадёжно, причём она так выглядела ещё до всякого скандала. Урок, который Apple отсюда извлечёт, скорее всего будет такой: не надо ничего анонсировать, предупреждать и вообще пиарить, надо тихонько воткнуть сканер картинок, и если через пять лет это обнаружится, тогда уж можно объяснять про защиту детей и исключительно законные цели, поставленные исключительно легитимными правительствами.
Для того, чтобы такой фигни не случалось, нужна культура разработки и аудита, нужен понятный ответ на вопрос "почему мы, <производитель железа / ОС / ключевого компонента>, не можем втюхать вредоносный апдейт без того, чтобы это очень быстро заметила публика?". Просто выложить всё важное в opensource тут ничего автоматически не решает (хотя это и хороший ход, и шаг в нужном направлении), нужно ещё озаботиться воспроизводимыми сборками ("вот как неспециалист может проверить, что видимое на гитхабе соответствует запущенному на телефоне"), изоляцией подсистем ("вот тут груда Objective C, которую никто не понимает и в которую можно на некоторое время незаметно влепить любой бэкдор... но она работает в изолированном процессе через вот такой вот простой интерфейс, так что ущерб ограничен так-то и так-то").
Очень мало кто и мало когда ставит при разработке цели "чтобы мы чего-то не могли, даже если очень захотим". Такие "негативные требования" вообще очень трудно обрабатывать человеческому уму (я вот регулярно даю людям тестовое задание вида "написать модуль, тут такие-то требования и ожидается такой-то результат, а при таком-то проблемном вызове надо возвращать EINVAL, плюс для всего этого тесты" -- многие осиливают и модуль, и тесты, но последнее замечание про EINVAL проверяют в тестах 0 человек!).
Opensource и "нормальные линуксы" тут как рядовой Рабинович из анекдота ("плохой солдат, а старается"), причём и в том смысле, что конкуренты-то и рядом не стояли. И наработки по reproducible build, и наработки по изоляции все отсюда. Поколение людей, читавших в детстве Reflections on Trusting Trust, таки меняет ситуацию в нужную сторону, но это всё очень медленно и до хотя бы приемлемого уровня дойдёт не скоро.
P.S. я не к тому, что писать петиции в адрес Apple и угрожать перестать у них покупать -- это дело бесполезное. Ещё как полезное (потому что сигнал "давайте работать в сторону privacy" всё равно нужен). Просто гипотетическая реакция Apple "ну ладно, раз публика против, тогда не будем ничего сканировать" -- это далеко не победа.
Comments (1)
Кстати, если в спецификации указано - бросать то-то если то-то, то это ещё совсем не трудно покрыть тестом.
А вот сдизайнить нечто таким образом, чтоб невозможно было сломать или использовать как не предполагалось - тут недюжинные способности нужны, учитывая, что проблема "понять, что сделает такой-то алгоритм" в общем случае невычислима 🙂