互換レンズが使えないような仕組みを取り入れる方法

当ページには広告が含まれています。
  • URLをコピーしました!

レンズが純正か非純正か確かめる方法

先日、ニコンが特許の問題でViltroxを提訴したという話題が大きく取り上げられました。基本的に特許に抵触しているのであれば、ライセンス料を支払ってライセンス契約するのが一般的です。今回はニコンにどのような思惑があるのかはわからず、今後の動向が気になるところですね。

ところで、もし悪意をもって製造する互換レンズメーカーが表れた場合にはどうなるのでしょうか?その場合は一般的にはレンズの販売停止を求めるなど、その国の法制度のなかで対処をしてもらうしかありません。しかし、それでは時間がかかりますし、国によっては対処してくれない可能性があるかもしれません。何かの仕組みを利用して技術的に互換レンズを利用できないようにすることは可能なのでしょうか?

この記事では、どのようにすれば互換レンズを使用させないようにすることができるのか、その仕組みを考えてみました。

最も単純な方法 レンズデーターの送信

まずは最初に思い浮かぶ簡単な方法です。あらかじめレンズの中にレンズに関する情報を保存しておき、カメラと接続したときにレンズデーターをカメラに送信することで、カメラはそのレンズが純正レンズかどうかを確かめる方法です。やりとりとしては以下のような方法になります(画像タップで拡大します)。

画像タップで拡大します

このようにすれば、接続されたレンズがどのようなレンズか判断することが可能です。しかし、レンズとカメラの間の通信を見ることができたらどうでしょうか?レンズが接続されたときに、レンズの情報がやりとりされているなとわかってしまい、なら同じようにレンズのデーターを返信する仕組みを互換レンズに入れておけばいいのではないかと気づかれてしまいます。

したがって、この方法では互換レンズを使用させないようにすることはできません。

暗号化したレンズデーターを送信

そこで送信するレンズデーターを暗号化してみたらどうでしょうか?レンズの中には、レンズの情報を暗号化したレンズデーターを保存しておきます。カメラには、その暗号を解読する共通鍵を保存しておきます。

カメラにレンズが接続されたら、レンズは暗号化したレンズデーターをカメラに送信し、そのデーターを受け取ったカメラは、共通暗号鍵を利用して解読し、レンズ情報を確認します。そしてレンズ情報が正しければ、そのレンズは純正レンズだと判断します。流れとしては以下のようになります(画像タップで拡大します)。

画像タップで拡大します

しかし、この方法ではレンズ情報の中身が暗号化され直接的にレンズ情報が見られなくなっただけの話で、やっぱり通信過程を盗み見して、レンズが同じ暗号化されたレンズデーターを送信するようにしてしまえば互換レンズを製造することができてしまいます。

したがって、常に同じ方法で暗号化するのではなく、少しずつ異なる方法で暗号化して、やりとりするデーターの内容が毎回異なるようにする必要がありそうです。

複雑な処理が必要に

ランダムなキーワードを作成してみたらどうか?

そこで、毎回、ランダムなキーワードを作成して、それを暗号化や解読に利用してみる方法を考えてみます。

まず、カメラのレンズの両方に互いに共通となる暗号化/解読するための共通暗号鍵を保存しておきます。この共通鍵は、簡単にいうと、アルファベットで表現したとき、一つずつ下にずらして暗号化するみたいな感じのものです(AならB、CならD、ZならAというように一つずつアルファベットをずらして暗号化していく)。

そして、カメラの内部でランダムに何かしらのキーワードを作成します。このキーワードをカメラとレンズの共通暗号鍵で暗号化し、レンズに送ります。レンズでは、受け取ったキーワードを共通暗号鍵で解読し、キーワードを取り出します。

次に、レンズでは、このキーワードを利用してレンズ情報を暗号化しカメラに送信します。レンズからの暗号化された情報を受け取ったカメラは、作成したキーワードでレンズ情報を解読し、レンズ情報を確認して純正かどうかを確認します。正しいレンズ情報が帰ってくれば、純正レンズだと判断することができます。

この方式では、つねにランダムなキーワードを作成し、これを暗号化に利用しているため、やりとりするレンズ情報はつねに変化するため互換レンズ側で対処することがかなり難しくなりました。

画像タップで拡大します

しかし、この場合でも、ランダムに作成されるキーワードがたまたま同じものであったら、レンズから送られている暗号化されたレンズデーターは常に同じになってしまいます。したがって、互換レンズメーカーがなんどもレンズに対してデーターを送り、解読することをし続ければ、いずれは保存された共通暗号鍵が判明してしまう可能性があります。

そのため、一度、共通暗号鍵が判明してしまえば、互換レンズメーカーはレンズを造りたい放題ということになってしまいます。純正メーカーが対処するためには、定期的にカメラとレンズのファームウェアを更新して共通暗号鍵を変更する必要がありそうです。

公開鍵暗号とメーカーデジタル署名を利用してみよう

そこで、今度はレンズごとに異なる公開鍵暗号と、メーカーのデジタル署名を保存しておく方法を検討してみます。今回はかなり難解です。

まずは、レンズにメーカーのデジタル署名を保存しておきます。さらにレンズにレンズの公開鍵と秘密鍵を保存しておきます。この、レンズ公開鍵はレンズに保存したデジタル署名により、メーカーが発行したレンズ公開鍵であるという署名をしておきます。

そして、カメラにはメーカーが発行したメーカーのデジタル署名を確認するためのメーカー公開鍵を保存しておきます。

カメラにレンズを装着すると、まずレンズはレンズの公開鍵とメーカーのデジタル署名をカメラに送信します。カメラでは、カメラに保存されたメーカーの公開鍵によってデジタル署名を偽物ではなくメーカーが発行したデジタル署名であるかどうかを確認します。

そして、渡されたレンズ公開鍵が、メーカーが発行した正式な公開鍵であることを確認します。ここまでで、レンズにはメーカーが発行したレンズ公開鍵が保存されていることが確認できました。

ここから後は共通鍵暗号を利用したやりとりとほぼ同じです。

カメラではランダムなキーワードを作成し、それを暗号化/解読に利用します。キーワードをレンズの公開鍵で暗号化し、レンズに送信します。レンズでは暗号化されたキーワードをレンズ秘密鍵で解読します。そして解読したキーワードをレンズに送り返します。カメラではレンズから送られたキーワードが、自分が送信したキーワードと同じであることを確かめます。もし同じであれば、そのレンズは純正レンズであるということがわかります。

画像タップで拡大します

この場合では、まずメーカーのデジタル署名はメーカーが保有しているメーカー暗号鍵で暗号化され、メーカー側でしか作成することができないので、複製することができません。そのデジタル署名により、レンズに保存されているレンズの公開鍵がメーカーが発行した公開鍵であることを確認することができます。

互換レンズメーカーは独自にレンズ公開鍵とレンズ秘密鍵をレンズの保存して利用することは可能ですが、それにはメーカーのデジタル署名がないので純正レンズになりすますことはできません。

またレンズ内に保存されたレンズの秘密鍵は簡単に読み取ることができないチップに保存されており、簡単に秘密鍵を取り出すことも不可能です(耐タンパー性)。

実際に実現可能なのか

これから開発するレンズに関しては、上記のようなやり取りや、レンズ秘密鍵を保存しておくWindows 11に必要になったTPMチップのようなセキュリティ用のチップを取り付ければ互換レンズや、ライセンスを受けていないレンズを排除することは可能になります。

しかし、すでに発売されているレンズには、このような仕組みを後からファームウェアの書き換えで実現できるかどうかは不透明です。おそらく最初からこの仕組みを使うかもしれないと考えて設計していなければ、後付で完全な仕組みを取り入れることは不可能だと思われますね。

またこのような仕組みを取り入れるとレンズの価格も高くなってしまいそうですし、互換レンズを排除する方法としてはコスト的に割に合わない可能性がでてくるかもしれません。

カメラ 関連情報アーカイブ !

カメラ 最新情報

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

  • 将来的に 中国メーカーが中国で裁判 上等だと開き直ってくるんであれば 、そういうやり方も 最終的には取らざるを得ないだろうが、そういうやり方が いつまでも通用するとは到底思えないけどね
    それに 消費者にとっても、 サードパーティーメーカーにとっても無駄な出費を強制させられるとか最悪
    中国メーカーがちゃんとライセンス契約して手数料 払う
    それで済む話なのに

Sエイちゃん へ返信する コメントをキャンセル