私は販売された顧客のコンピュータに「ファームウェア」アップデートを送信できるようにしたいと思います。ネットワークに接続されているデバイスではないため、これは手動で行う必要があります。システムにファイルをロードするためのフックがすでに用意されています。
これらのアップデートのコードを表示できないようにしたいので、次の2つのオプションが表示されます。
- 展開するファイルのディレクトリを圧縮します。このディレクトリを暗号化します。デバイスにアップロードします。デバイスから復号化します。スクリプトが必要な場所にコードを手動でデプロイするようにします。
- dpkgが展開を処理できるように.debパッケージを作成します。パッケージを暗号化します。デバイスにアップロードします。 (より簡単な)スクリプトを使用して.debパッケージを解凍します。
私はよりきれいな感じのため、2番目のオプションを好む。つまり、私はセキュリティの経験はあまりありませんが、できるだけセキュリティを上手にしたいと思います。
私の最初の本能は、次のようなことをすることですこの回答どんな状況でも。 IE 側は暗号化と復号化に openssl を使用します。
しかし、もっと良い方法がありますか?多分dpkg(またはその親戚の1つ)に特定の方法で暗号化する何かがあるかもしれません。手動でパッケージを暗号化するのは私には適していないと思います。私がしっかりしているのか?
編集1
明確にするために、私の質問は、使用するツールを提案する必要があるわけではありません。特に明記しない限り、opensslを使用します。私が尋ねたいのは、opensslを使用することがこの目的のための他のツールほど良くないかどうか、該当する場合の違いを理解することです。
答え1
dpkgは暗号化を使用するように設計されていないため、外部ツールが必要です。
主な質問 - 復号化キーはどこに保存され、どのように使用しますか?
少なくともクライアントシステムに保存され、「ファームウェア」によって自動的に使用される必要があります。
「ファームウェア」は、暗号化されたファイルから自分自身を更新する方法を知る必要があります。
アップデート1
セキュリティの観点からは、GPGとOpenSSLはほとんど同じように見えますが、ほとんど互換性のない形式と証明書を使用します。security.stackexchangeが言ったように。
「手動」暗号化について。パッケージ暗号化は自動化されたビルドプロセスに含める必要があります。