Например, как я могу проверить, что YouTube для Android использует TLS-шифрование безопасности транспортного уровня?
Могу ли я использовать сетевой инструмент для проверки того, что используется шифрование?
Например, как я могу проверить, что YouTube для Android использует TLS-шифрование безопасности транспортного уровня?
Могу ли я использовать сетевой инструмент для проверки того, что используется шифрование?
Вы можете выполнить тестирование, подключившись к беспроводной сети, которой вы управляете, и используя сниффер (wireshark, tcpdump) на проводной стороне точки доступа для наблюдения за прохождением пакетов. В то время как Android должен отдавать предпочтение беспроводной связи по телефонной сети, вы можете отключить телефонные службы передачи данных, если это не так.
Дайте нам знать, что вы найдете!
Для тестирования вам нужно захватить сетевые пакеты от Wireshark или аналогичного инструмента. Это можно запустить на вашем телефоне, если у вас есть рутированный телефон. Кроме того, вы можете взять компьютер, подключенный к Интернету, и установить неиспользуемую карту Wi-Fi / Bluetooth в качестве точки доступа Wi-Fi / Bluetooth (например, настроить точку доступа Wi-Fi, когда компьютер напрямую подключен к Интернету через Ethernet, или настроить подключение Bluetooth, которое использует Интернет. между вашим телефоном и ноутбуком, если ваш ноутбук подключен к Интернету через Wi-Fi). Затем подключите телефон к интернету вашего ноутбука и начните захват Wireshark. Затем запустите конкретное мобильное приложение и используйте его. Старайтесь не иметь свой компьютер или телефон, чтобы иметь слишком много другой интернет-активности во время захвата. Отфильтруйте собранные пакеты по IP-адресу (например, если вы ищете YouTube, посмотрите IP-адреса, связанные с YouTube). Убедитесь, что все сгенерированное приложением пересылается по протоколу TLS (обратите внимание на протокол). Смотрите, если данные, которые вы хотите сохранить в секрете, отправляются в незашифрованном виде.
Для конкретного случая приложения YouTube на Android. Нет, видео и первоначальный запрос на получение видео отправляются по незашифрованному HTTP. (Я только что проверил с Wireshark, используя приложение YouTube на моем Nexus 7 под управлением Android 4.4.2.) Он устанавливает первоначальное HTTPS-соединение, которое, я полагаю, используется для входа в вашу учетную запись Google. Однако при запросе и просмотре видео трафик, включая заголовок HTTP, который идентифицирует видео, передается по незашифрованному HTTP. Ниже приведен перехваченный HTTP-запрос, сделанный в начале потока TCP, созданного с помощью приложения youtube (если я изменил свой ip и многие другие поля с поддельными данными, поэтому я случайно не пропустил информацию, такую как активный файл cookie сеанса Google) , что я не хочу отправлять). Обратите внимание на &id=b7935aa6939a4137&
часть, которая не изменилась.
GET /videoplayback?ms=au&clen=22426616&key=yt5&mime=video%2F3gpp&ip=1.2.3.4&mv=m&ipbits=0
&mws=yes&fexp=123456%2C123456%2C123456%2C123456%2C123456%2C123456%2C123456%2C123456
&sparams=clen%2Cdur%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Csource%2Cupn%2Cexpire
&signature=123456789ABCDEF123456789ABCDEFABCDEFABCD.EF1234567890ABC123123123123A1231231234123
&upn=a1B2C3d4E5F&id=b7935aa6939a4137&gir=yes&mt=14001000000&sver=3&expire=1400200000
&dur=791.010&source=youtube&lmt=123456789012345&itag=36&dnc=1&cpn=-ABCDEFGHIJKLMt3 HTTP/1.1
Host: r3---sn-mv-ab4a.googlevideo.com
Connection: keep-alive
User-Agent: com.google.android.youtube/5.6.36(Linux; U; Android 4.4.2; en_US; Nexus 7 Build/KOT49H)
Accept-Encoding: gzip,deflate
Это было, когда я смотрел видео: https://www.youtube.com/watch?v=t5NappOaQTc
в мобильном приложении.
Обратите внимание, что эти два идентификатора соответствуют друг другу; один - это идентификатор видео, закодированный (модифицированный) base64, а другой - идентификатор видео, закодированный в шестнадцатеричном формате. Зайдя в python, вы можете показать, что они идентичны:
>>> import base64
>>> base64.b64decode('t5NappOaQTc=').encode('hex')
'b7935aa6939a4137'
В качестве альтернативы, чтобы пойти другим путем:
>>> base64.b64encode('b7935aa6939a4137'.decode('hex'))
't5NappOaQTc='
Таким образом, сетевой перехватчик может заметить, какие видео вы смотрите через мобильное приложение YouTube.