Исследование

Всплески энергопотребления при заряде мобильного и обмене данными по USB

Не так давно коллеги уже поднимали вопрос безопасности зарядки мобильного телефона от USB порта и выяснили, что если «на том конце» порта есть компьютер, то обмен данными происходит всегда – даже в случае, если телефон заблокирован. Мне стало интересно – а можно ли измерить величину энергопотребления системы «компьютер + мобильный» в момент обмена данными? И насколько значим будет эффект с точки зрения энергопотребления, если устранить обмен данными при «рукопожатии» с помощью Pure.Charger?

В целом, обнаружить скачки энергопотребления оказалось несложно – для этого сгодится самый обычный мультиметр, но, желательно, с подключением к компьютеру, чтобы было проще анализировать логи. Более того, можно даже примерно оценить величину энергии, которая рассеивается при «рукопожатии» (handshaking), и чуть более точно – оценить величину энергии, которая тратится на передачу одного бита данных по USB-соединению.

Немного теории

Диссипация, или преобразование электрической энергии в тепловую, происходит по двум причинам: во-первых, в связи с несовершенством даже самых современных вычислительных систем, а, во-вторых, в связи с необратимостью классических (не квантовых) вычислений.

Фундаментальный предел энергопотребления, обусловленный необратимостью вычислений, можно оценить по принципу Ландауэра, предложенному в 1961 году: ∂Q = dS · T = kTln(2), что равно примерно 3×10-21 Джоуля на бит при комнатной температуре. На практике же на обработку, а тем более на передачу данных тратится значительно больше электроэнергии. Так, по данным обзорного исследования Короама и Хилти, опубликованного в 2014 году в журнале Environmental Impact Assessment Review, на отправку одного бита данных по сети Интернет тратится примерно 4×10-7 Джоулей – на 14 порядков больше фундаментального предела.

К сожалению, нам не удалось обнаружить столь же подробных и качественных исследований энергопотребления при обмене данными по USB. Поэтому мы решили провести эксперимент самостоятельно.

Эксперимент

Мы использовали различные комбинации хостов и мобильных устройств. В качестве хостов мы задействовали:

Ноутбуки ОС
Apple MacBook Pro OS X 10.10.5
Dell Latitude E6320 Windows 7 64-bit Enterprise Edition

К ним мы подключали мобильные телефоны:

Мобильные устройства ОС
Samsung GT-i9300 (Galaxy S3) Android 4.4
LG Nexus 6X Android 6.0.1
Apple iPhone 4s iOS 9.2.1

Выбор мобильных устройств был обусловлен тем, что в Android 6 есть встроенная защита соединения по USB, проявляющаяся в том, что телефон подключается к порту в режиме «только заряд». Поскольку из предыдущего исследования наших коллег мы уже знали, что «рукопожатие» все равно происходит, было интересно выяснить, каковы затраты энергии в этот момент, и можно ли зафиксировать отличия в поведениях телефонов на базе разных версий Android и iOS.

electro_lurye_pic01

Схема экспериментального стенда в эксперименте с MacBook Pro

electro_lurye_pic02

Схема экспериментального стенда в эксперименте с Dell Latitude E6320

Наш несложный эксперимент свелся, по сути, к измерению тока, протекающего по линии питания системы «компьютер + мобильное устройство». Чтобы, с одной стороны, сделать эксперимент универсальным и легко воспроизводимым, а с другой стороны – не портить дорогостоящее оборудование, мультиметр был подключен в разрыв линии переменного тока 220 В, а не в разрыв линии постоянного тока на выходе блока питания. Заодно мы проверили стабильность напряжения и частоты переменного тока и выяснили, что на величины напряжения и частоты обмен данными не влияет, а проявляет себя исключительно в скачках силы потребляемого тока.

Поскольку мультиметр при измерении силы и напряжения переменного тока выдает значения среднеквадратичных величин или RMS (Root Mean Square) в определенные интервалы времени, то интересующая нас величина энергопотребления с хорошей степенью точности равна сумме произведений величин силы тока IRMS на среднее значение URMS и на длительность интервалов времени dt. Стоит подчеркнуть, что везде в расчетах энергопотребления мы использовали среднеквадратичные значения, а не амплитуды (I0=IRMS *√2), поскольку, по определению, среднеквадратичная величина тока эквивалентна значению постоянного тока, рассеивающего столько же тепла на такой же резистивной нагрузке.

Результаты

«Рукопожатие»

Чтобы исключить влияние тока зарядки на показания мультиметра, мобильное устройство и ноутбук были полностью заряжены перед каждым экспериментом. Дополнительно, мы отделили момент подключения мобильного устройства к линии питания и линии данных USB, использовав Pure.Charger. Последовательность действий в этом эксперименте была следующей: сначала подключался Pure.Charger, а к его выходному порту – мобильное устройство. Так мы отделили момент подключения мобильного устройства к проводникам питания и к линиям данных.

На графике ниже представлена динамика потребления тока (в мА) при подключении Nexus 5X к MacBook Pro:

electro_lurye_pic03

На графике видно два всплеска: первый – в момент включения линии данных и подключения телефона в режиме «только заряд», второй – в момент разрешения пользователем обмена данными с телефоном.

Динамика потребления тока при подключении разблокированного Samsung S3 к MacBook Pro несколько иная:

electro_lurye_pic04

Здесь мы видим только один пик, поскольку телефон уже разблокирован, и сразу после «рукопожатия» он отдает системе информацию о своих файлах и папках.

Ниже – график, который мы получили при соединении iPhone 4S и Dell Latitude E6320:

electro_lurye_pic05

Основному всплеску энергопотребления, соответствующему «рукопожатию» iPhone 4S и Latitude E6320, предшествует небольшой пик, лишь немногим превышающий среднеквадратичное отклонение. Это Pure.Charger, будучи подключенным к USB, «представляется» системе.

В эксперименте с Latitude E6320 и iPhone 4S «рукопожатие» Pure.Charger наиболее заметно, однако, поскольку величина энергопотребления пропорциональная площади под кривой зависимости тока от времени, видно, что на это «рукопожатие» уходит намного меньше энергии, чем на обмен данными между мобильным телефоном и хостом. В целом, по результатам нашего эксперимента энергопотребление, привносимое Pure.Charger в систему, не превышает среднеквадратичной ошибки измерения тока покоя как для Dell Latitude E6320, так и для MacBook.

На графиках видно, что флуктуации потребляемого тока у Latitude E6320 (среднеквадратичное отклонение достигало 8 мА) существенно выше, чем у MacBook Pro (среднеквадратичное отклонение — 4 мА). Это объясняется, во-первых, применением в Latitude E6320 накопителя на жестком диске (HDD), в отличие от твердотельного накопителя в MacBook (SSD), а, во-вторых, использованием Latitude E6320 как для записи данных, поступающих с мультиметра через последовательный порт, так и в качестве хоста, что вносило дополнительную лепту в искажение общей картины потребления.

Передача данных

Чтобы точнее узнать, сколько энергии тратится на передачу единицы информации по USB, мы заставили компьютер и мобильное устройство передавать друг другу заданное нами количество данных (если быть точным – файлы определенного размера).

Фиксированный объем данных

Картина измерений, например, для Nexus 5X, который после подключения мы попросили передать 391 Мбайт на MacBook Pro, выглядела так:

electro_lurye_pic06

На рисунке мы наблюдаем все те же два характерных для Android 6 всплеска потребления тока, а спустя некоторое время – работу системы в режиме повышенного энергопотребления.

Вот так выглядит график потребления тока MacBook Pro при получении 188 Мбайт с Samsung S3.

electro_lurye_pic07

Здесь мы видим один узкий всплеск энергопотребления при «рукопожатии» Samsung S3 (телефон разблокирован), отчетливое начало и конец отправки файлов, а в конце – узкий всплеск энергопотребления в момент отключения телефона, когда система закрывает окна и процессы, которые были активны.
Мы провели несколько аналогичных экспериментов. Как и следовало ожидать, длительность промежутка времени, в течение которого система потребляет больше тока, напрямую зависит от объема передаваемых данных – чем больше размер файла, тем он дольше.

Зависимость энергопотребления от направления передачи данных

Зависит ли энергопотребление от направления передачи данных – от мобильного к хосту и наоборот? Задавшись этим вопросом, мы попробовали изучить динамику потребления тока и в том, и в другом случаях. Для этого мы измеряли ток потребления системы «хост + мобильный» в режиме передачи файлов одного и того же размера, но в разном направлении. В силу невозможности прямой отправки файла по USB-соединению на устройство под управлением iOS, в этом эксперименте мы задействовали только аппараты под управлением Android.

electro_lurye_pic08 electro_lurye_pic09

На графике слева – динамика потребления тока при подключении Samsung S3 к Latitude E6320 в режиме чтения 808 Мбайт данных со смартфона, а на графике справа – в режиме отправки на смартфон такого же объема данных. Несмотря на зашумленность графика, типичного для эксперимента с Latitude E6320, моменты подключения телефона, а также начала и конца отправки файлов видны отчетливо.

Мы провели шесть аналогичных экспериментов и получили следующие результаты:

  1. Среднее значение потребляемого тока во время отправки данных от хоста к мобильному устройству меньше, чем среднее значение в режиме получения данных хостом от мобильного устройства, и эта разница больше среднеквадратичной ошибки.
  2. При этом время, затрачиваемое на передачу файлов от хоста на мобильное устройство, больше времени, уходящего на получение хостом файлов от мобильного – примерно настолько же, насколько меньше ток.

С учетом того, что величина напряжения в обоих экспериментах была одинаковой, значение потребленной энергии можно оценить как произведение напряжения на среднюю величину тока и на длительность промежутка времени. Полученные величины энергопотребления в этих двух режимах находятся в рамках одного и того же доверительного интервала, то есть энергопотребление не зависит от направления передачи данных.

Затраты энергии на передачу единицы информации

Для аппроксимации зависимости затраченной энергии от объема данных мы сделали два допущения:

  1. Затрачиваемое количество электроэнергии зависит только от типа хоста и мобильного устройства.
  2. Количество электроэнергии, затрачиваемое на отправку определенного объема данных, прямо пропорционально количеству данных.
    К сожалению, это допущение, скорее всего, неверно, поскольку обычно информационные системы оптимизированы на отправку данных в потоке. Следовательно, чем меньше объем данных, тем меньше нужно потратить энергии собственно на их отправку, но при этом есть затраты на сопутствующие вычислительные процессы. Поэтому, скорее всего, данная зависимость носит характер степенной функции с дробным показателем, но актуально это, прежде всего, для небольших объемов данных.

С учетом этих допущений наиболее экономичной комбинацией оказался MacBook Pro с подключенным к нему Samsung S3 – эта пара тратит всего (3,3±0,2)x10-8 Джоуля на бит, а самой прожорливой – Apple iPhone 4S в паре с Dell Latitude E6320, потребляющая (9,8±0,6)x10-8 Джоуль на отправку или прием одного бита.

electro_lurye_pic10

Выводы

Диапазон значений величины энергии, необходимой на отправку одного бита информации по USB, составляет от 3,1×10-8 до 1,4×10-7 Джоуля. Если вспомнить, что по данным Короама и Хилти величина энергопотерь при отправке одного бита по интернету была равна 4×10-7 Джоуля, выйдет, что полученная нами оценка скорее всего является корректной с точки зрения порядка величины.

Однако есть два существенных момента, требующих дальнейшего изучения. Во-первых, передача данных в момент установления соединения («рукопожатия») и передача фиксированного объема информации (в нашем случае, больших файлов) – это разные вычислительные процессы, по-разному влияющие на общую нагрузку системы. Во-вторых, зависимость потребленной энергии от объема переданных данных, скорее всего, не является линейной, поэтому корректнее было бы аппроксимировать её выпуклой функцией. Однако для более точной аппроксимации необходимо накопить большее количество экспериментальных данных (в особенности – для отправки небольших объемов данных), в том числе для разных комбинаций хостов и мобильных устройств.

Экономия в масштабе

В заключение хотелось бы оценить возможную величину энергопотерь, вызванных «рукопожатиями», на фоне энергии, которая уходит на заряд телефона. При напряжении 5В и токе 2А зарядка длится порядка 20-40 минут, следовательно, мобильное устройство «скушает» за типичный сеанс заряда от 12 до 24 кДж. За «рукопожатие» теряется приблизительно от единиц до десятков джоулей, т.е. на фоне аппетитов самого телефона эти потери составляют десятые – сотые доли процента. Отдельному пользователю это практически не заметно, но вот если бы все жители, например, Москвы, заблокировали «рукопожатия» в течение всего лишь одного дня, сэкономленной электроэнергии (порядка 50 киловатт-часов) хватило бы среднестатистическому жителю столицы на целый месяц обычной жизни – а это уже пусть и не так много на фоне многомиллионного города, но все же заметно.

Со своей стороны, мы будем продолжать исследование физических параметров мобильных устройств – как с точки зрения безопасности, так и с точки зрения оценки затрат энергии на передачу единицы информации, – и приглашаем наших читателей принять в этом участие.

Пишите!

В статье использованы материалы исследования, отправленного на публикацию в журнал IEEE Transactions on Mobile Computing. Препринт статьи доступен по ссылке.

Всплески энергопотребления при заряде мобильного и обмене данными по USB

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

  1. Martolod Slaaf

    А как велся подсчет потерь для всех москвичей? У меня получается сильно меньше.

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике