モバイルアプリケーションがTLSを使用しているかどうかをテストする方法を教えてください。


0

たとえば、YouTube for AndroidがトランスポートレイヤセキュリティTLS暗号化を使用していることをどのように確認しますか?

暗号化が使用されていることを確認するために使用できるネットワークツールはありますか?

回答:


1

制御するワイヤレスネットワークに接続し、APの有線側でスニファ(wireshark、tcpdump)を使用してパケットの通過を監視することでテストできます。 Androidは電話ネットワークよりもワイヤレスを好むべきですが、そうでない場合は電話データサービスを無効にすることができます。

あなたが見つけたものを私たちに教えてください!


1

テストするには、wireharkまたは同様のツールからネットワークパケットをキャプチャする必要があります。あなたがあなたの電話を根付かせているならば、これはあなたの電話で動かすことができます。あるいは、インターネットに接続されたコンピュータを使って、未使用のwifi / bluetoothカードをwifi / bluetoothホットスポットとして設定することもできます(たとえば、コンピュータがイーサネット経由でインターネットに直接接続されている場合あなたのラップトップが無線LANを介してインターネットに接続されている場合、あなたの携帯電話とラップトップの間。それからあなたの携帯電話をあなたのラップトップインターネットに接続し、あなたのwiresharkキャプチャを始めてください。その後、特定のモバイルアプリケーションを起動して使用します。あなたがキャプチャをしている時にあなたのコンピュータまたは電話があまりにも多くの他のインターネット活動をすることをしないようにしてください。収集したパケットをIPアドレスでフィルタリングします(たとえば、YouTubeを検索している場合は、YouTubeに関連付けられているIPを確認します)。アプリケーションによって生成されたすべてがTLSを使用して送信されていることを確認します(プロトコルに注意してください)。秘密にしておきたいデータが暗号化されずに送信されているかどうかを確認してください。

Android上のYouTubeアプリの特定のケースのために。いいえ、動画と動画を取得する最初のリクエストは暗号化されていないHTTP経由で送信されます。 (Android 4.4.2を実行している私のnexus 7のyoutubeアプリを使ってwiresharkでテストしたところです。)最初のHTTPS接続を確立します。ただし、動画をリクエストして視聴すると、動画を識別するHTTPヘッダーを含むトラフィックは暗号化されていないHTTPを介して送信されます。以下はyoutubeアプリで作られたTCPストリームの開始時に作られたキャプチャされたHTTPリクエストです(私は自分のipや他の多くのフィールドを偽のデータで変更しました。 、私は送りたくありません。に注意してください &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 携帯アプリで。

これら2つのIDは互いに対応しています。 1つは(変更された)base64でエンコードされたビデオID、もう1つは16進数でエンコードされたビデオIDです。 Pythonに入ると、それらが同一であることを示すことができます。

>>> import base64
>>> base64.b64decode('t5NappOaQTc=').encode('hex')
'b7935aa6939a4137'

別の方法をとることもできます。

>>> base64.b64encode('b7935aa6939a4137'.decode('hex'))
't5NappOaQTc='

そのため、ネットワーク盗聴者は、youtubeモバイルアプリケーションを介して視聴しているビデオを記録することができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.