問題タブ [tpm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - Intel TXT (信頼できる実行モード) または AMD SVM にアクセスするための API は?
現在のオペレーティング システム (Windows、Linux、BSD) は、ユーザー モード プログラムを部分的に信頼できる実行モードで実行できるようにするドライバーを提供していますか (コンピューター上で実行されている他のすべてのものから分離されていますか)? もしそうなら、ドキュメントはどこにありますか?
c - 「信頼できる」アプリケーションの最も簡単なプログラムを手伝ってください
ここの大規模なコミュニティの誰もが、私が拡張できる最も単純な「信頼できる」プログラムを書くのを手伝ってくれることを願っています。
私はUbuntuLinux9.04を使用しており、Mario Strasser(http://tpm-emulator.berlios.de/)のTPMエミュレーター0.60を使用しています。エミュレーターとズボンをインストールしました。tpmdデーモンとtcsdデーモンを実行した後、tpm-toolsからプログラムを正常に実行できます。
アプリケーションの開発を開始したいのですが、以下のコードのコンパイルに問題があります。
でコンパイルしようとした後
g ++ tpm.cpp -o tpmexe
エラーが発生します
これを正常にコンパイルするには、何を#includeする必要がありますか?私が見逃しているものはありますか?私はCに精通していますが、Linux/Unixプログラミング環境には精通していません。
ps:私は情報セキュリティプログラムのマスターのパートタイムの学生です。私のプログラミングへの関わりは、主に学術的な目的でした。
c - この TPM エミュレータは、PCR レジスタを拡張するための TPM 仕様に準拠していますか?
次のコードは、Mario Strasser の TPM エミュレーターからのものです。スペックによると、
「PCRの古い値をデータと連結し、連結された文字列をハッシュし、ハッシュをPCRに保存する」と読みます。それもそうPCR := PCR BITWISE-OR SHA1(data)
でもないPCR := SHA1(PCR BITWISE-OR data)
linux - TPM/TSS Linux API の代替
Linux (およびおそらく他の *nix) でTPM (トラステッド プラットフォーム モジュール) 機能を使用するための (成熟した) API の代替を見つけたいと思います。認証用の信頼できる暗号化/復号化機能に興味があります (おそらく Kerberos との統合)。
jTSS (Java 用) とTrouSerSを見つけましたが、他の代替手段があれば知りたいです。「グーグル」はあまり役に立ちませんでした。
c# - C# による TPM の制御
私は。。をしようとしています
- TPM を初期化する
- 所有者を設定する
- AIK を作成する
ヘルプ/リンクをいただければ幸いです。
.net - 「敵対的な」環境に導入されたシステムの保護
私の会社では、複数のサーバーで構成される大規模なシステムを開発しています。システムは、約5つの論理コンポーネントで構成されています。データはXML、MS SQL、およびSQLiteに保存されます。これは.Netシステム(ほとんど)であり、コンポーネントはWCFといくつかのカスタムUDPを使用して通信します。クライアントは、主にカスタムUDPまたはWEB(ASP.NETおよびSilverlight)を介してシステムにアクセスします。
通信の保護は簡単で、SSLとWCFのセキュリティがあり、これで完了です。
私たちが直面している主な問題は、システムをクライアントのサイトにデプロイする必要があることです。これは、必ずしも信頼できるとは限らないクライアントです。サーバー上のデータとソフトウェア自体をリバースエンジニアリングから保護する必要があります。どちらも私たちにとって非常に重要です。
また、キルスイッチが必要です。コマンドで、または一定期間家に電話できない場合は、データとソフトウェアを破壊するものが必要です。
私が考えていた方向は、TPMなどを使用することです。ハードウェア暗号化ソリューションを、サーバー上のすべてのソフトウェアとデータを暗号化するために内部的に保持できる別のサービスと組み合わせて、キーがサーバーから取得されるようにします。私たちのサイトで安全に、そしておそらくTPMからのメモリカーテン。
そのような問題をどのように解決することを提案しますか?
UPDATE 04/02実用的な提案を探している、または私を助けることができる製品についてアドバイスしているので、私は賞金を始めています...
私たちが基本的にクライアントのサイトにマシンを配置している人を見てください(ビジネスと実用上の理由から)、私たちはそのマシンを所有しており、クライアントは数時間以内に支払っているすべてのものを受け取り、彼は好きなようにデータを処理できます。しかし、私はそのマシンで実行されているアルゴリズムと、そこに保存されているデータの一部には、保護したい企業秘密があります。理想的には、マシンがまったく動作しないようにしたいのですが、それがOKであると言わなければ、マシン上のすべてが暗号化されたままであるという私のOKがなければ起動すらしません。メモリカーテンは、実行中にマシンを保護するための優れた方法のようにも見えます。
また、理想的には、誰かがドライバーで近づいたらすぐに、すべてのマシンのHDとストレージを爆発させたいと思います... :-)しかし、それでは行き過ぎだと思います...
UPDATE 10/02 OKいくつかの調査を行った後、ソフトウェアとデータを復号化するためのキーをサーバーから取り込むことを除いて、PS3暗号化システムと同じ方向で何かを試すつもりだと思います。そうすることで、キーを要求しているサーバーを信頼するかどうかをマシンで決定できます。マシンを取り付け直すだけで、キルスイッチを取得できます。これはおそらくTPMまたはそれに類似したもの、おそらくIntelのTXTに基づいています...私は重要なセキュリティ機能としてメモリカーテンにも本当に興味があります...
ところで、ビジネス要件と技術的に実現可能ではないため、システムの貴重な部分をサイトに移動することでこれを解決することはできません。膨大な帯域幅が必要になります。
linux - システム内に暗号化キーを安全に保存するためのTPMの代替
非常に機密性の高いデータを含むサーバーを展開する必要があります。より正確には、この(Linux)サーバーは、世界中で回転するアンテナでいっぱいのバンに配備されます。信頼できないバンのオペレーターが最終的にハードドライブに直接アクセスする場合でも、データ漏洩を防ぐ必要があります。
実際の(以前の)構成は暗号化されたFSに基づいており、サーバーがどこかのサーバールームに常駐するまでは正常に機能します。これにより、再起動時に信頼できる誰かがキーを入力する必要があります。
ただし、このソリューションは、サーバーが頻繁に再起動され、データへのアクセスを許可された人が従わないというこの新しいシナリオには適用できません。一部の新しいサーバーにはTPMモジュールが搭載されているため、問題は解決されますが、提供されるサーバーのほとんどにはこのセキュリティ機能が含まれていません。
起動時にユーザーの介入を必要とせず、ハードドライブにプレーンパスワードを保存せずに、これらの機密データを暗号化して保存するにはどうすればよいですか?
一部のライセンス検証ソフトウェアが機能するのと同じように、難読化されたコードマシンチェックベースのキージェネレーターについて考えていますが、どこから始めればよいのかわかりません。
java - JavaでTPMを利用するために必要な情報
私は、Javaで記述された認証ソフトウェアでラップトップのTPMを使用することを含む次のプロジェクトについて読んでいます。
Googleにはいくつかのエントリがありますが、それらのほとんどはかなり古いものであり、どれが最適なチュートリアルかわかりません。そのため、使用することが推奨されるAPIと、情報を取得するのに最適な場所を知りたいと思います。
ありがとう。
cryptography - Intel の Trusted Platform Module をプログラムすることは可能ですか?
次のような方法で、ほとんどの Intel チップに存在するTPM ( http://en.wikipedia.org/wiki/Trusted_Platform_Module ) をプログラムすることが可能かどうか疑問に思っています。
明らかに、機能し始めたら再プログラム可能であってはなりません (このステートメントが正しいかどうか知っていますか?)。
linux - Linux で TPM を使用してプラットフォーム ライセンスの「ドングル」を実装するにはどうすればよいですか?
TPM チップを搭載した x86_64 アプライアンスに TPM を使用して、ライセンス ドングルに相当するものを実装するように依頼されました。基本的に、アプライアンス用にリリースされたソフトウェアがアプライアンス自体でのみ実行できるようにすることが望まれます。これにより、ソフトウェアが仮想マシンまたは別のハードウェアに移行された場合に機能しなくなります。
私はこのソリューションがリバース エンジニアリングに耐性があるとは考えていませんが、通常のユーザーを妨害し、企業の顧客を正直に保つ典型的な「ドングル」タイプのソリューションだと思います。
TPM モジュール、TrouSerS、および openssl-tpm-engine コードを正常にビルドしてインクルードしました - TPM の所有権を正常に取得できますが、それ以上の利用可能なドキュメントではこのユースケースを完全にカバーしていません - またはこれまでのところ、わかりやすい英語の解決策を見つけることができませんでした。
可能であれば、プラットフォーム コンポーネントのハッシュを利用するよりも、TPM に格納されている秘密鍵の秘密の性質に依存することをお勧めします (ハード ドライブが故障したり、CPU が交換されたりする可能性があります。.定期的なハードウェアのアップグレード後にシステムが使用できなくなることはありません。
同様に、理想的には、このソリューションは、製造時に各アプライアンスの公開鍵を収集して署名キーチェーンに追加し、各アプライアンスが TPM に格納できた単一のキーに対してソフトウェアを署名できるように設計できるのではないかと考えています。 、ソフトウェアに複数回署名することを要求するのではなく? ここで間違っている可能性がありますが、プラットフォーム認証方法を満たすためのバルク方法が必要です。そうしないと、スケーリングが非常に困難に思えます。