Исследователи из двух университетов в США недавно опубликовали научную работу, в которой разбирают атаку Side Eye — практический способ извлечения аудиоданных из видео, снятого смартфоном.
Здесь сразу стоит уточнить один достаточно неочевидный момент. Когда вы включаете запись видео на телефоне, естественно, вместе с изображением пишется и звук тоже. Авторы работы попытались выяснить, можно ли извлечь звук из изображения, если по каким-то причинам в исходнике нет аудиодорожки. Представьте себе видеозапись беседы двух бизнесменов, которую опубликовали в Интернете, предварительно вырезав звук для сохранения приватности переговоров.
В общих чертах идея оптической стабилизации показана на изображении ниже: если датчики движения в смартфоне или фотоаппарате фиксируют движение, матрица или линза в объективе сдвигаются так, чтобы итоговое изображение не двигалось. Получается, что до определенных пределов небольшие вибрации не влияют на итоговую видеозапись.
Схема системы оптической стабилизации изображения в современных фотокамерах
В данном случае нам не обязательно досконально понимать, как работает такая стабилизация. Важно только то, что элементы фотокамеры подвижны относительно друг друга. Они могут сдвигаться, когда в этом возникает необходимость, при помощи миниатюрных исполнительных элементов (актуаторов). Но также они могут перемещаться сами по себе, в результате внешних вибраций, в том числе и от громких звуков. Представим, что наш смартфон лежит на столе возле колонки и записывает видео (без звука!).
На записанном видео подобные вибрации превращаются в микроскопическое дрожание объектов, записанных на видео. При простом просмотре такое дрожание будет совершенно незаметным, но его можно зафиксировать с помощью тщательного анализа видеоданных. Здесь есть еще одна проблема: типичный смартфон снимает видео с частотой 30, 60 или в лучшем случае 120 кадров в секунду. У нас есть именно столько возможностей фиксировать какие-то небольшие смещения объектов на видеозаписи, и это очень мало.
Согласно теореме Котельникова, аналоговый сигнал (например, звук) определенной частоты можно восстановить по измерениям, взятым с удвоенной частотой. Измеряя «дрожание» картинки с частотой 60 герц, мы в лучшем случае сможем восстановить звуковые колебания с частотой до 30 герц, в то время как человеческая речь лежит в звуковом диапазоне от 300 до 3400 герц. Ничего не получится!
Каждый кадр видео записывается со светочувствительной матрицы не единовременно, а построчно, сверху вниз. Соответственно, когда будет «оцифрована» последняя строка в изображении, быстро движущиеся объекты в кадре уже могут сместиться. Такая особенность хорошо заметна, если, например, записывать видео из окна быстро движущегося поезда или автомобиля. Дорожные столбы на таком видео будут как бы наклонены, хотя на самом деле они стоят перпендикулярно земле. Другой типичный пример — фото или видеосъемка быстро вращающегося пропеллера у самолета.
Относительно медленное считывание данных с матрицы фотокамеры приводит к тому, что лопасти успевают переместиться до того, как будет закончено формирование кадра
Такую картинку мы уже показывали в посте про интересный способ атаки на считыватели смарт-карт. Что нам дает такой временной параллакс в случае анализа микровибраций в видео? Количество «семплов», то есть частота, с которой мы можем анализировать изображение, значительно увеличивается. Если съемка видео ведется с разрешением 1080 пикселей по вертикали, это число нужно умножить на количество кадров в секунду (30, 60 или 120).
Получается, что мы измеряем вибрации фотокамеры в смартфоне с гораздо большей точностью — десятки тысяч раз в секунду. Этого в целом достаточно, чтобы реконструировать звук из видео. И это еще один пример атаки по сторонним каналам: когда мы используем неочевидную физическую особенность объекта исследования, которая приводит к утечке секретов. В данном случае — звука, который создатели видео пытались от нас скрыть.
Даже тут видно, что информацию удалось восстановить с большими потерями. На сайте проекта авторы приводят реальные записи оригинальной и восстановленной речи. Там можно во всей красе оценить недостатки этого сложного метода подслушивания. Из видео удается реконструировать нечто, больше напоминающее дребезжание. Угадать, какую цифру назвал человек, очень сложно. Но даже такие сильно испорченные данные могут быть успешно обработаны с помощью систем машинного обучения: когда алгоритму сначала дают проанализировать известные пары из оригинальной и восстановленной аудиозаписи, а затем по аналогии он восстанавливает и ранее неизвестные данные.
Восстановление звука из видеоизображения при помощи эффекта rolling shutter
Успешность работы алгоритма проверяется на достаточно простых задачах, а не на реальной свободной речи человека. Результаты следующие: почти в 100% случаев удалось правильно определить пол человека. В 86% случаев удалось отличить одного собеседника от другого. В 67% случаев удалось правильно распознать, какую человек называет цифру. И это в наиболее идеальных условиях, когда телефон, записывающий видео, лежал в 10 сантиметрах от динамика на стеклянной столешнице. Поменяйте столешницу на деревянную, и точность начинает снижаться. Отодвиньте телефон подальше — будет еще хуже. Уменьшите громкость до нормальной громкости обычной беседы — точность упадет до критической.
А теперь давайте отвлечемся от теоретических выкладок и попробуем мысленно применить предложенный сценарий к реальности. Сразу придется исключить все варианты «подслушивания». Если гипотетический шпион может подобраться близко к ведущим секретный разговор собеседникам и в руках у него телефон — можно без проблем записать звук с микрофона. Можно представить сценарий, когда мы записываем собеседников на камеру наблюдения издалека и микрофон не может уловить речь. Так и из видео мы тогда ничего не восстановим: исследователи отодвигали камеру от динамика максимум на три метра, и уже на таком расстоянии система практически не работала (называемые цифры правильно распознавались примерно в 30% случаев).
Возможно, в следующих работах удастся как-то улучшить предложенную схему. Главное открытие авторов — система стабилизации изображения в смартфонах, которая по идее должна избавлять видео от вибраций, иногда старательно фиксирует их в итоговой видеозаписи. Более того, этот фокус работает на множестве современных смартфонов. Достаточно обучить алгоритм на каком-то одном, и в большинстве случаев он сможет распознавать речь из видео, записанного на другом устройстве.
А если все-таки представить, что предложенную «атаку» удастся улучшить, то на первый план выходит тот факт, что она анализирует записанное видео. Можно пофантазировать и представить себе ситуацию, когда в будущем мы сможем накачать из Интернета различные видеоролики без звука и узнать из них, о чем общались находящиеся возле камеры собеседники. Здесь, правда, нас ждут две дополнительных проблемы. Авторы не зря воспроизводили речь на аудиоколонке, установленной на стол, там же, где лежал телефон. Прямую человеческую речь таким методом «видеоподслушивания» анализировать гораздо сложнее. Ну и наконец, видео на телефон обычно снимают с рук, а это вносит дополнительные вибрации.
Но, согласитесь, это красивая атака. Она еще раз показывает нам, насколько сложны современные устройства. И что не стоит делать допущений, когда речь идет о приватности. Если вас снимают на видео — не надейтесь на то, что «потом поменяют звуковую дорожку». В конце концов, кроме алгоритмов машинного обучения есть и древнее искусство распознавания слов по движениям губ.
Здесь сразу стоит уточнить один достаточно неочевидный момент. Когда вы включаете запись видео на телефоне, естественно, вместе с изображением пишется и звук тоже. Авторы работы попытались выяснить, можно ли извлечь звук из изображения, если по каким-то причинам в исходнике нет аудиодорожки. Представьте себе видеозапись беседы двух бизнесменов, которую опубликовали в Интернете, предварительно вырезав звук для сохранения приватности переговоров.
Оказалось, что, пусть и с некоторыми допущениями, по такой записи без аудио можно реконструировать речь. И возможно это благодаря нестандартной особенности системы оптической стабилизации изображения, встроенной в большинство современных смартфонов.
Оптическая стабилизация и атака по сторонним каналам
Оптический стабилизатор дает более качественное изображение при съемке видео и фото. Он сглаживает дрожание рук, перемещения камеры при ходьбе и другие подобные нежелательные вибрации. Для того чтобы такая стабилизация работала, делают так, чтобы светочувствительная матрица фотокамеры была подвижна относительно объектива. Иногда линзы в самом объективе также делают подвижными.В общих чертах идея оптической стабилизации показана на изображении ниже: если датчики движения в смартфоне или фотоаппарате фиксируют движение, матрица или линза в объективе сдвигаются так, чтобы итоговое изображение не двигалось. Получается, что до определенных пределов небольшие вибрации не влияют на итоговую видеозапись.
Схема системы оптической стабилизации изображения в современных фотокамерах
В данном случае нам не обязательно досконально понимать, как работает такая стабилизация. Важно только то, что элементы фотокамеры подвижны относительно друг друга. Они могут сдвигаться, когда в этом возникает необходимость, при помощи миниатюрных исполнительных элементов (актуаторов). Но также они могут перемещаться сами по себе, в результате внешних вибраций, в том числе и от громких звуков. Представим, что наш смартфон лежит на столе возле колонки и записывает видео (без звука!).
Если колонка воспроизводит речь достаточно громко, стол вибрирует, а с ним вибрирует и телефон, вместе с этими самыми элементами оптического стабилизатора.
На записанном видео подобные вибрации превращаются в микроскопическое дрожание объектов, записанных на видео. При простом просмотре такое дрожание будет совершенно незаметным, но его можно зафиксировать с помощью тщательного анализа видеоданных. Здесь есть еще одна проблема: типичный смартфон снимает видео с частотой 30, 60 или в лучшем случае 120 кадров в секунду. У нас есть именно столько возможностей фиксировать какие-то небольшие смещения объектов на видеозаписи, и это очень мало.
Согласно теореме Котельникова, аналоговый сигнал (например, звук) определенной частоты можно восстановить по измерениям, взятым с удвоенной частотой. Измеряя «дрожание» картинки с частотой 60 герц, мы в лучшем случае сможем восстановить звуковые колебания с частотой до 30 герц, в то время как человеческая речь лежит в звуковом диапазоне от 300 до 3400 герц. Ничего не получится!
На помощь приходит еще одна особенность любой цифровой фотокамеры, так называемый rolling shutter или временной параллакс.
Каждый кадр видео записывается со светочувствительной матрицы не единовременно, а построчно, сверху вниз. Соответственно, когда будет «оцифрована» последняя строка в изображении, быстро движущиеся объекты в кадре уже могут сместиться. Такая особенность хорошо заметна, если, например, записывать видео из окна быстро движущегося поезда или автомобиля. Дорожные столбы на таком видео будут как бы наклонены, хотя на самом деле они стоят перпендикулярно земле. Другой типичный пример — фото или видеосъемка быстро вращающегося пропеллера у самолета.
Относительно медленное считывание данных с матрицы фотокамеры приводит к тому, что лопасти успевают переместиться до того, как будет закончено формирование кадра
Такую картинку мы уже показывали в посте про интересный способ атаки на считыватели смарт-карт. Что нам дает такой временной параллакс в случае анализа микровибраций в видео? Количество «семплов», то есть частота, с которой мы можем анализировать изображение, значительно увеличивается. Если съемка видео ведется с разрешением 1080 пикселей по вертикали, это число нужно умножить на количество кадров в секунду (30, 60 или 120).
Получается, что мы измеряем вибрации фотокамеры в смартфоне с гораздо большей точностью — десятки тысяч раз в секунду. Этого в целом достаточно, чтобы реконструировать звук из видео. И это еще один пример атаки по сторонним каналам: когда мы используем неочевидную физическую особенность объекта исследования, которая приводит к утечке секретов. В данном случае — звука, который создатели видео пытались от нас скрыть.
Трудности практической реализации
Но не надо думать, что в результате сложной обработки видеосигнала авторы исследования смогли восстановить чистую и понятную человеческую речь. На графике слева показана оригинальная спектрограмма аудиозаписи, в которой человек последовательно называет цифры «ноль», «семь» и «девять». Справа — спектрограмма звука, восстановленного из видеозаписи.Даже тут видно, что информацию удалось восстановить с большими потерями. На сайте проекта авторы приводят реальные записи оригинальной и восстановленной речи. Там можно во всей красе оценить недостатки этого сложного метода подслушивания. Из видео удается реконструировать нечто, больше напоминающее дребезжание. Угадать, какую цифру назвал человек, очень сложно. Но даже такие сильно испорченные данные могут быть успешно обработаны с помощью систем машинного обучения: когда алгоритму сначала дают проанализировать известные пары из оригинальной и восстановленной аудиозаписи, а затем по аналогии он восстанавливает и ранее неизвестные данные.
Восстановление звука из видеоизображения при помощи эффекта rolling shutter
Успешность работы алгоритма проверяется на достаточно простых задачах, а не на реальной свободной речи человека. Результаты следующие: почти в 100% случаев удалось правильно определить пол человека. В 86% случаев удалось отличить одного собеседника от другого. В 67% случаев удалось правильно распознать, какую человек называет цифру. И это в наиболее идеальных условиях, когда телефон, записывающий видео, лежал в 10 сантиметрах от динамика на стеклянной столешнице. Поменяйте столешницу на деревянную, и точность начинает снижаться. Отодвиньте телефон подальше — будет еще хуже. Уменьшите громкость до нормальной громкости обычной беседы — точность упадет до критической.
А теперь давайте отвлечемся от теоретических выкладок и попробуем мысленно применить предложенный сценарий к реальности. Сразу придется исключить все варианты «подслушивания». Если гипотетический шпион может подобраться близко к ведущим секретный разговор собеседникам и в руках у него телефон — можно без проблем записать звук с микрофона. Можно представить сценарий, когда мы записываем собеседников на камеру наблюдения издалека и микрофон не может уловить речь. Так и из видео мы тогда ничего не восстановим: исследователи отодвигали камеру от динамика максимум на три метра, и уже на таком расстоянии система практически не работала (называемые цифры правильно распознавались примерно в 30% случаев).
Поэтому красота данного исследования заключается именно в нахождении нового «стороннего канала» утечки информации.
Возможно, в следующих работах удастся как-то улучшить предложенную схему. Главное открытие авторов — система стабилизации изображения в смартфонах, которая по идее должна избавлять видео от вибраций, иногда старательно фиксирует их в итоговой видеозаписи. Более того, этот фокус работает на множестве современных смартфонов. Достаточно обучить алгоритм на каком-то одном, и в большинстве случаев он сможет распознавать речь из видео, записанного на другом устройстве.
А если все-таки представить, что предложенную «атаку» удастся улучшить, то на первый план выходит тот факт, что она анализирует записанное видео. Можно пофантазировать и представить себе ситуацию, когда в будущем мы сможем накачать из Интернета различные видеоролики без звука и узнать из них, о чем общались находящиеся возле камеры собеседники. Здесь, правда, нас ждут две дополнительных проблемы. Авторы не зря воспроизводили речь на аудиоколонке, установленной на стол, там же, где лежал телефон. Прямую человеческую речь таким методом «видеоподслушивания» анализировать гораздо сложнее. Ну и наконец, видео на телефон обычно снимают с рук, а это вносит дополнительные вибрации.
Но, согласитесь, это красивая атака. Она еще раз показывает нам, насколько сложны современные устройства. И что не стоит делать допущений, когда речь идет о приватности. Если вас снимают на видео — не надейтесь на то, что «потом поменяют звуковую дорожку». В конце концов, кроме алгоритмов машинного обучения есть и древнее искусство распознавания слов по движениям губ.