BMW F/G系のNCD2.0とSecureCodingなG07 X7に苦しめられてる話
皆さんこんにちは。
うちに来る依頼といえばMSS60の書き換えとE9xのMRSのコーディングばっかりだったのですが、MSS54のクローンに始まり、bootでアルファロメオのISNのバックアップだったり、はたまたベンツのアドブルーだったりとよくわからない厄介な依頼が増え始めました。
そうこうしてるとBoschのMEVD172も触るようになり、N55から始まりB58まで、ついでにMSV80とMSD80も触るハメになり、気づいたらぶーぶコンピューターの厄介ごと便利屋になってしまいました。
そうこうしてると現行のわけわからん依頼を受けてしまいました、G07 X7でiDrive8.5の新車らしいです。お色目もインディビでさわるたび傷をつけないかとても気を使います。断ればよかったと激しく後悔しているが、泣き言を言っても仕方ないし、受けてしまった以上何とかするしかないので所感を書き残しておこうなどと。
NCD2.0のSecure Coding
コンピューターからバイナリを引き抜いてきて、そのバイナリを処理して戻すといった一連の流れは変わりませんが、処理したバイナリにデジタル署名がないと戻せないというのが今までと大きく違う点です。
E-sysで読み込んだコーディングデータ(NCD)はBMWによって署名されていますが、1bitでも書き換えようものなら書き込む時にECUに大変怒られます。
残念ながら編集後のNCDにデジタル署名を施してくれるサービスは現状ありません。
現行のコーディング手法
NCDは編集できないが、VO/FAから生成されるNCDにデジタル署名をしてくれるサービスは存在します。
例えばUSヘッドライトを装着したので、USサイドマーカーを有効にしたいという依頼(不幸にもぼくが受けてしまった依頼です。)であればVOをECEからUSに変更してNCDを生成してもらえば目的は果たせます。
しかしながら、従来のようにNCD編集ほどきめ細かいコーディングはしばらくできないでしょう。
そういうサービスは恐らく秘密鍵をどこからか持ってきているのでしょう。BMWのクラウドがあるビルにダンプとかで突っ込んでデータを持ってきたのでしょうか。ISTAからオンラインで署名してもらえるそうなのでうまい事wrapperでも書いてるのでしょうか。そこに至るまでの手法は謎。
ぼく的今後の見通し
デジタル署名なので、まともにやってると大変。
今後アルゴリズム自体に脆弱性が出るまで待つのも現実的ではないので、まぁ何かしらデジタル署名をバイパスするようなexploitが普及するのでは?
おわり。