2017-11-01 1 views

答えて

0

ドッカーはないネイティブの機能を提供しないこと、アウトボックス、私の知る限りでは、しかし:

あなたがイメージ構築することができます

  • は、環境変数を期待します"Getting Mac address from Docker Container"で提案されているようにdocker run -e MAC_Host 08002Bdeadbで起動する必要があることを意味します)
  • バックグラウンドプロセスの一部として環境変数値をテストし、特定の値と一致しない場合はすぐに終了します。環境変数はまったく設定されていません)

commentedthaJeztahとすると、MACアドレスを簡単に偽装することができます。

しかし、同じ手順を別のデータに適用することができます。埋め込まれた公開鍵で画像を確認できるデジタル署名です。 「how digital signature verification process works」を参照してください。

ユーザーは、メッセージ、同じ暗号化されたメッセージ、および署名の検証方法に関する情報を渡す必要があります。
彼は右のprivateキーを持つマシンからのみそれを行うことができます。そして、画像は、そのメインプロセスを開始するとき、実行することによって復号化操作を実行し、その出力を元のデータと比較することができる。一致しない場合はすぐに終了します。

アイデアは:秘密鍵は...プライベート:のいずれかマシンはそれを持っている必要があります。そしてそれはイメージがそのユニークなマシンでのみ実行できることを保証します。

+1

可能であれば、MACアドレスの確認は簡単に回避できます。 'docker run --mac-address 'は、コンテナのMACアドレスを上書きすることができます。このような保護システムは一般に壊れているので、複数のインスタンスを実行することを完全に防ぐことはできません。 – thaJeztah

+0

合意。より良い代替方法は、公開鍵を使用して、1台のマシンだけが持つ秘密鍵によって署名されたメッセージ(イメージの実行を許可されたメッセージ)をチェックすることです。署名されたメッセージは、環境変数として実行されるドッカーに渡されます – VonC

関連する問題