SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
HDMI探検隊
Kernel/VM探検隊online part2
David MarkによるPixabayからの画像
クリックしてタイトルを入力
mzyy94
セキュリティ系をやってた
最近は映像系をやってる
エビを飼っている
ネコは飼ってません
HDMIをご存知ですか?
の機能
映像
音声
イーサネット
機器コントロール
ディスプレイコントロール
HDMI、HDMI ロゴ、及びHigh-Definition Multimedia Interface は、
HDMI Licensing LLC の商標または登録商標です。
の機能
映像
音声
イーサネット
機器コントロール
ディスプレイコントロール
HDMI、HDMI ロゴ、及びHigh-Definition Multimedia Interface は、
HDMI Licensing LLC の商標または登録商標です。
制御系
機器コントロール
Consumer Electronics Control
CEC
ディスプレイコントロール
Display Data Channel
DDC
CEC DDC
ディスプレイ操作(DDC/CI)
コンテンツ保護 交換(HDCP)
ディスプレイ情報(EDID)
ステータス/コントロール(SCDC)
I²Cプロトコル
機器ごとにI2Cでやり取りする
リモコン入力操作
入力映像切り替え
スタンバイ・復帰 など
AV.linkプロトコルベース
全て同じバスに繋がっている
DDC/CI
DDC Command Interface
HDCP
EDID SCDC
Status and Control Data Channel
HDMI 2.0の新機能
映像・音声の設定を読み書き
仕様書は hdmi.org (会員のみ)
ディスプレイハードウェア制御
音量の変更・輝度など読み書き
仕様書は vesa.org
High-bandwidth Digital Content Protection
コンテンツ保護の 交換
機器失効リストを書き換え可能
仕様書は digital-cp.com
Extended Display Identification Data
ディスプレイの表示情報
基本的に読み込み専用
仕様書は vesa.org
PIN配置
HDMI A
Public domain, ウィキメディア・コモンズ経由で
Charly Whisky, CC BY-SA 4.0, ウィキメディア・コモンズ経由で
映像と音声
Charly Whisky, CC BY-SA 4.0, ウィキメディア・コモンズ経由で
Charly Whisky, CC BY-SA 4.0, ウィキメディア・コモンズ経由で
制御系
HDMI制御系をいじる
Lucasbosch, CC BY-SA 3.0, ウィキメディア・コモンズ経由で
https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/rpi_SCH_3b_1p2_reduced.pdf
https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/rpi_SCH_3b_1p2_reduced.pdf
https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/rpi_SCH_3b_1p2_reduced.pdf
CECを探検する
• VideoCoreのAPIを叩く
void vc_vchi_cec_init
int VCHPOST_ vc_cec_send_message ほか
• cec-clientを使う(お手軽)
apt install cec-utils
cec-client -s <<< "tx <CECフレーム>"
CECのフレーム形式
1F:82:40:00
CECのフレーム形式
1F:82:40:00
送信元バスID
宛先バスID
OPコード
引数
バス1の機器(1)から
Broadcast宛(F)に
入力切り替え(0x82)が
バス4.0.0.0(40:00)に切り替わったことを通知するCECフレーム
CECで色々やってみた
• 認証機構がないのでCECフレーム送り放題
• 機器によっては受理するかを受け取る側が判断する
• 低速なので連続で送りまくるとバスが詰まる
• 連続して送り続ければCECの送信を妨害できる
• 定義されていない引数など不正なCECは無視される?
• 巧妙に細工したらおかしな挙動をする機器もあるかも
DDCを探検する
• VideoCoreのAPIを叩く
int VCHPOST_ vc_tv_hdmi_set_hdcp_revoked_list
int VCHPOST_ vc_tv_hdmi_ddc_read ほか
• I2Cバスを直接触る
/boot/config.txt
[all]
dtparam=i2c2_iknowwhatimdoing
# OR
#dtoverlay=vc4-kms-v3d
[pi4]
# Kernel 5.10 or higher required
dtoverlay=vc4-kms-v3d
DDCバスを確認する
pi@raspberrypi:~ $ i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- 4a 4b -- -- -- --
50: 50 -- -- -- 54 -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
DDCバスを確認する
pi@raspberrypi:~ $ i2cdetect -y 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- 4a 4b -- -- -- --
50: 50 -- -- -- 54 -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
DDC/CI HDCP
EDID SCDC
DDCで色々やってみた
• HDCPのやり取りを途中までやってみる
• 途中で止めるとディスプレイによっては挙動が不安定に
• HDCPの失効リスト(SRM)を書き換える
• コンテンツ保護ができるはずの機器を失効させ放題(?)
• ディスプレイによっては効果なかったりする
• DDC/CIでディスプレイ設定をいじり放題
簡単に弄り回せる
ということは
悪用もできる😈
#BadHDMI
#BadHDMI
• BadUSBならぬBadHDMI(勝手に命名した)
• 善良なデバイスに扮した悪意を持ったHDMI機器
• HDMI機器が悪意を持つことを世間は想定していない
• CECやDDCに認証機構がないため防ぐ術がない
BadHDMIの攻撃例
CECでリモコン操作信号を送って他のHDMI機器を勝手に操作
CECを傍受してリモコンによるパスワード入力を盗む
DDC/CIで輝度を高頻度で変えてハードウェアに負荷をかける
DDC/CIで範囲外の値を書き込んで挙動を不安定にする
HDCPやSCDCで手続きを無視したやり取りでディスプレイを
ハングアップさせる
 #BadHDMI
enriquelopezgarreによるPixabayからの画像
HDMI探検隊
Kernel/VM探検隊online part2

Contenu connexe

Tendances

Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
 
博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー
博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー
博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー
Atsuto ONODA
 

Tendances (20)

深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向深層学習による自然言語処理の研究動向
深層学習による自然言語処理の研究動向
 
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布するパワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
 
論文に関する基礎知識2015
論文に関する基礎知識2015論文に関する基礎知識2015
論文に関する基礎知識2015
 
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
 
Openfermionを使った分子の計算 part I
Openfermionを使った分子の計算 part IOpenfermionを使った分子の計算 part I
Openfermionを使った分子の計算 part I
 
【DL輪読会】Investigating Tradeoffs in Real-World Video Super-Resolution
【DL輪読会】Investigating Tradeoffs in Real-World Video Super-Resolution【DL輪読会】Investigating Tradeoffs in Real-World Video Super-Resolution
【DL輪読会】Investigating Tradeoffs in Real-World Video Super-Resolution
 
落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日落合陽一 筑波大 講演資料 10月17日
落合陽一 筑波大 講演資料 10月17日
 
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
楽しい研究のために今からできること 〜新しく研究を始める皆さんへ〜
 
Pietのエディタを作った話
Pietのエディタを作った話Pietのエディタを作った話
Pietのエディタを作った話
 
効果的な文献検索と最新論文の情報を入手する秘訣
効果的な文献検索と最新論文の情報を入手する秘訣 効果的な文献検索と最新論文の情報を入手する秘訣
効果的な文献検索と最新論文の情報を入手する秘訣
 
研究発表のためのパワーポイント資料作成の基本
研究発表のためのパワーポイント資料作成の基本研究発表のためのパワーポイント資料作成の基本
研究発表のためのパワーポイント資料作成の基本
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
 
博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー
博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー
博士課程の誤解と真実 ー進学に向けて、両親を説得した資料をもとにー
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
人工知能を用いた医用画像処理技術
人工知能を用いた医用画像処理技術人工知能を用いた医用画像処理技術
人工知能を用いた医用画像処理技術
 
実践イカパケット解析α
実践イカパケット解析α実践イカパケット解析α
実践イカパケット解析α
 
論文の探し方とMendeleyを用いた論文管理
論文の探し方とMendeleyを用いた論文管理論文の探し方とMendeleyを用いた論文管理
論文の探し方とMendeleyを用いた論文管理
 
機械学習応用システムの安全性の研究動向と今後の展望
機械学習応用システムの安全性の研究動向と今後の展望機械学習応用システムの安全性の研究動向と今後の展望
機械学習応用システムの安全性の研究動向と今後の展望
 
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用したCIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
 

Similaire à HDMI探検隊

Similaire à HDMI探検隊 (6)

機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
 
Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動Hol012 windowsコンテナー始動
Hol012 windowsコンテナー始動
 
「Photon OS + Docker」VLAN 環境の構築
「Photon OS + Docker」VLAN 環境の構築「Photon OS + Docker」VLAN 環境の構築
「Photon OS + Docker」VLAN 環境の構築
 
Locondo 20190215@ec tech_group
Locondo 20190215@ec tech_groupLocondo 20190215@ec tech_group
Locondo 20190215@ec tech_group
 
社内勉強会用(Laravel):Routingとページ出力
社内勉強会用(Laravel):Routingとページ出力社内勉強会用(Laravel):Routingとページ出力
社内勉強会用(Laravel):Routingとページ出力
 
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについてCentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
CentOS 8で標準搭載! 「389-ds」で構築する 認証サーバーについて
 

Plus de Yuki Mizuno

ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
Yuki Mizuno
 

Plus de Yuki Mizuno (8)

地デジを理解したつもりになる回
地デジを理解したつもりになる回地デジを理解したつもりになる回
地デジを理解したつもりになる回
 
Xavier NXのカーネルとVMの話
Xavier NXのカーネルとVMの話Xavier NXのカーネルとVMの話
Xavier NXのカーネルとVMの話
 
HTML5 and Video Streaming Vol.1
HTML5 and Video Streaming Vol.1HTML5 and Video Streaming Vol.1
HTML5 and Video Streaming Vol.1
 
# TELETEXT
# TELETEXT# TELETEXT
# TELETEXT
 
Subscriber Identity Module
Subscriber Identity ModuleSubscriber Identity Module
Subscriber Identity Module
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
CTFの話 - coinsLT #10
CTFの話 - coinsLT #10CTFの話 - coinsLT #10
CTFの話 - coinsLT #10
 
ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1ノーゲーム・ノーライフ[Games on Linux] -  Kernel/VM北陸1
ノーゲーム・ノーライフ[Games on Linux] - Kernel/VM北陸1
 

Dernier

Dernier (7)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

HDMI探検隊