.deb コンテンツの暗号化

.deb コンテンツの暗号化

クライアントデバイスにインストールしたい.debパッケージがあります。現在、秘密鍵を介してのみアクセスできるプライベートストアには、これらのパッケージがあります。しかし、顧客(またはパッケージをダウンロードできる人)がパッケージを解凍し、コードを表示または変更するのを防ぎたいと思います。私の考えは、システムに復号化キーがある場合にのみインストール/圧縮解除できるdebパッケージを持つことですが、簡単ではないようです。

私の考えは、2つの.debパッケージを持つことです。私はすでに「一般」パッケージ(内部と呼ぶ)と別のパッケージ(外部)を持っていますが、そのパッケージにある唯一のものは次のとおりです。

  • 暗号化された内部パッケージは/tmp/inner.deb.encに保存されます。
  • postinstスクリプトに復号化キーがあることを確認し、あれば内部パッケージを復号化してインストールする。

重要な問題があります。 postinstスクリプトで、次のように内部debをインストールしますdpkg -i /tmp/inner.deb。したがって、アウトソーシングをインストールしようとすると、次のエラーが発生しますdpkg: error: dpkg database lock was locked by another process with pid 10024。私はこれが外部パッケージがインストールされたときにdpkgデータベースをロックし、その過程で(内部パッケージをインストールするために)dpkgを再呼び出ししようとすると、外部にインストールされたロックと競合するためだと思います。

dpkg -i /tmp/inner.debに変更するとapt install /tmp/inner.deb同様の問題が発生します。アウトソーシングをインストールしようとすると、ロックが解除されるのを待ちます。

どんな提案がありますか?この考え方に従うか、まったく異なるものを選択してください。

関連情報