web-dev-qa-db-ja.com

GnuPGコマンドライン-KeePass署名の検証

KeePass 2.14のセットアップファイルの最新バージョンのPGP署名を this 署名と照合しようとしていますが、これは私が受け取る出力です。

_C:\Program Files (x86)\GNU\GnuPG>gpg.exe --verify C:\Users\User\Desktop\KeePass-2.14-Setup.exe
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.

C:\Program Files (x86)\GNU\GnuPG>
_

このコマンド here を見つけましたが、「。sig」または「.asc」ファイルについては言及されていなかったので、何か間違ったことをしたと思いました。 man pages を読んで、さらに次のことを試しました。

_C:\Program Files (x86)\GNU\GnuPG>gpg.exe --pgpfile C:\Users\User\Desktop\KeePass-2.14-Setup.exe
gpg: Invalid option "--pgpfile"

C:\Program Files (x86)\GNU\GnuPG>
_

ご覧のとおり、結果は非常に難読化されています...

SuperUserのこれ を調べましたが、どのリンクも私の質問に実際に対応しているようには見えませんでした。少なくとも、これを進める方法についてのアイデアを得るには直接十分ではありませんでした。

ここにいる誰かが、OpenPGPの難解な技術とそれに関連するGnuPGプログラムの使用について私を助けてくれますか?私はVBSを学ぶのはかなり馬鹿げていると感じましたが、これは屈辱的なことではありません。ITスキルに対する自信を完全に衰弱させ、傷つけています(また、A +をまだ取得していないため、自慢する理由もありません。証明書、笑)。


2011年4月4日更新

さて、私はWindowsをいじくり回すのにうんざりして、Ubuntuを起動することでそれを正しく行うことにしました。これだけで物事ははるかに論理的になりました!

これが私のコマンドのリストと私がいる場所です:

  1. _proto@type:~$ cd Desktop/_
  2. _proto@type:~/Desktop$ gpg --import KeePass-2.14-Setup.exe.asc gpg: no valid OpenPGP data found. gpg: Total number processed: 0_
  3. _proto@type:~/Desktop$ gpg --import Dominik_Reichl.asc gpg: /home/proto/.gnupg/trustdb.gpg: trustdb created gpg: key FEB7C7BC: public key "Dominik Reichl " imported gpg: Total number processed: 1 gpg: imported: 1_
  4. proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe gpg: no valid OpenPGP data found. gpg: the signature could not be verified. Please remember that the signature file (.sig or .asc) should be the first file given on the command line.
  5. _proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc gpg: Signature made Sun 02 Jan 2011 05:25:24 AM MST using DSA key ID FEB7C7BC gpg: Good signature from "Dominik Reichl " gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 2171 BEEA D0DD 92A1 8065 5626 DCCA A5B3 FEB7 C7BC_
  6. _proto@type:~/Desktop$ gpg --verify Dominik_Reichl.asc gpg: verify signatures failed: unexpected data_

マイクの指示に従って、「。exe」ファイルと「.asc」ファイルを同じディレクトリ、つまりデスクトップに配置しました。コードでわかるように、公開鍵「Dominik_Reichl.asc」もデスクトップディレクトリに配置しました。

私はMD5に完全に甘やかされてきたので、しばらくお待ちください。上記のステップ5はこれと同等のGPGであると想定しています。

_C:\Users\user\>CD Desktop

C:\Users\user\Desktop>MD5Sum KeePass-2.14-Setup.exe
bae59065b24f0a6f2ed4bb9e0d6fc65f *KeePass-2.14-Setup.exe
_

これは、「KeePass-2.14-Setup.exe」ファイルをデスクトップの「temp」フォルダに移動するたびに動作が変わるためです。コマンドを実行すると、次の結果が得られます。

_proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc
gpg: no signed data
gpg: can't hash datafile: file open error_

これらの結果から、ステップ5から「DSAキーID」と「主キーフィンガープリント」を抽出し、それらを 署名ページの上部にある値 と比較することになっていると思いました。 _。 では、これはMD5検証との類似性があるところですか?これですべてですか?それとも、さらなるステップがありますか? these two strings を確認するために使用するコマンドはありますか?それらの文字列は私が本当にチェックする必要があるものですか?それらの文字列は何ですか?



今、私が対処しなければならないもう1つの問題があります。 「主キーフィンガープリント」の結果では、「8065」と「5626」の間に2つのスペースがあります。スプレッドシートを使用して署名ページの文字列で結果を確認すると、結果に余分な空白があるため、「FALSE」の結果が得られます。署名ページのソースをチェックして、ブラウザーが余分な空白を無視しているかどうかを確認しましたが、そうではありません。

_2171 BEEA D0DD 92A1 8065 5626 DCCA A5B3 FEB7 C7BC    # From Source of Signature Page
2171 BEEA D0DD 92A1 8065  5626 DCCA A5B3 FEB7 C7BC    # From My Results_

その余分な空白を削除する限り、私の結果は署名ページの結果と一致しますが、私の側の介入なしにそれらは一致するべきではありませんか? 空白の違いがアラームの原因になるべきですか?

残念ながら、GPGのマニュアルページはまだ私にはかなりわかりにくいか、「ユーザーに敵対的」(「ユーザー敵対的gpg」を検索)と言われるかもしれないので、2、3のニンジンを追加する必要があります。私はそれを認めます:私はばかげています。実際、私がまだMD5検証の使用方法を学んでいたとき、私はこれとほぼ同じようにそれをいじくり回しました。

5
Stisfa

指定した最初のコマンドでは、.exeファイルではなく.asc署名ファイルを参照する必要があります。 .exeファイルも.ascファイルと同じディレクトリにある必要があります。

Gpgのmanページから:

-verify 
最初の引数が署名されたファイルまたは切り離された署名であると想定し、生成せずに検証します-
出力を生成しません。引数がない場合、署名パケットはSTDINから読み取られます。 sigfileのみが指定されている場合、
は完全な署名または切り離された署名である可能性があります。その場合、署名されたものは「.sig」または「.asc」のない
ファイルで予期されます。拡張。複数の引数がある場合、最初の引数は分離された
署名である必要があり、残りのファイルは署名されたものです。 STDINから署名されたものを読み取るには、2番目のファイル名として '-' '
を使用します。セキュリティ上の理由から、切り離された署名は、上記の方法でそれを示さずに
 STDINから署名された資料を読み取ることはできません。
4

あなたはそれが思われることを過度に複雑にしています:-) https://keyserver.pgp.com/vkd/GetWelcomeScreen.event でDSAキーID FEB7C7BCを検索してみてください、そして私はあなたがそれを得ると思います!

1

これを実行してみましたか?

gpg --verify KeePass-2.14-Setup.exe.asc KeePass-2.14-Setup.exe

もちろんUbuntuで試してみてください。私の意味を理解すると、Windowsは苦痛になりがちです...

0
the_midget_17

この投稿は主に「AからZ」の内訳を対象としています。これにより、これに固執している人は誰でも、すべてのコメントを掘り下げることなく回答を得ることができます。これに投票しないでください。クレジットが参加者(Mike Fitzpatrick、grawity、Jan Ivar Beddari)に送られるように。

別のこと:この投稿を信用しないでください!直感に反する声明ですが、GPGがどのように機能するかについての欠陥のある/限られた理解でこれを投稿しています。これをよりよく理解できたら、これを更新します。今、私はそれがどのように機能するかについて霧のかかった把握をしています。

  1. KeePass 、対応する Signature 、および公開鍵の目的のコピーを、お気に入りのLinuxディストリビューションの同じディレクトリにダウンロードします(私の場合、Ubuntuとデスクトップを作業ディレクトリにしました)
    • これは重要です!KeePass Webサイトの 公開鍵 はダウンロードしないでください!他のユーザーによって信頼されている公開鍵をダウンロードする必要があります。できれば、それらのユーザーは信頼できる個人です。どうやってそれをしますか?信頼できる公開鍵を持っている友人にコピーを渡してもらいます。しかし、あなたは必ずしもそれを持っている友人を持っているとは限りません。 Jan Ivar Beddariの投稿のおかげで、Dominik Reichlによって公開された公開鍵を ここ からダウンロードして、そこから公開鍵をインポートを使用できます。
  2. ターミナルを開きます(Ubuntuでは「CTRL + ALT + T」)
  3. 実行cd Desktop/
  4. 実行gpg --import %KEYNAME%.asc
  5. 実行gpg --verify %SIGNATURE%.asc
  6. 結果のキー指紋をKeePassWebサイトの指紋と比較します

Keyserver.pgp.comの公開鍵を使用した場合の結果は次のとおりです。

proto@type:~$ cd Desktop/

proto@type:~/Desktop$ gpg --import key0xDCCAA5B3FEB7C7BC.asc 
gpg: key FEB7C7BC: public key "Dominik Reichl " imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: no ultimately trusted keys found

proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc
gpg: Signature made Sun 02 Jan 2011 05:25:24 AM MST using DSA key ID FEB7C7BC
gpg: Good signature from "Dominik Reichl "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2171 BEEA D0DD 92A1 8065  5626 DCCA A5B3 FEB7 C7BC

次に、KeePassWebサイトの公開鍵を使用したときの結果を次に示します。

proto@type:~$ cd Desktop

proto@type:~/Desktop$ gpg --import Dominik_Reichl.asc
gpg: key FEB7C7BC: public key "Dominik Reichl " imported
gpg: Total number processed: 1
gpg:               imported: 1

proto@type:~/Desktop$ gpg --verify KeePass-2.14-Setup.exe.asc
gpg: Signature made Sun 02 Jan 2011 05:25:24 AM MST using DSA key ID FEB7C7BC
gpg: Good signature from "Dominik Reichl "
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2171 BEEA D0DD 92A1 8065  5626 DCCA A5B3 FEB7 C7BC

ご覧のとおり、「gpg:最終的に信頼できるキーが見つかりません」の部分を除いて、結果はすべて同じです。どうすればよいかわかりませんが、キーフィンガープリントはKeePass Webサイトのフィンガープリントと一致します。これは、ファイルを検証するときに重要です。ただし、これは、公開鍵が信頼できることを確認することとは大きく異なります。公開鍵は、見知らぬ人を信頼するかどうかなど、使用するかしないかを信頼するものです。彼らが信頼できるものとして出くわす1つの方法は、彼らが彼らを保証する複数の個人を持っている場合です。これは公開鍵についても同じです。繰り返しになりますが、これは私の限られた範囲からのものであるため、あなたの側でもデューデリジェンスが必要です!

でもお待ちいただければ、KeePassのコピーを検証する際のGPGの適切な使用法を簡潔、シンプル、そしてうまくいけば正確に表現できるように、ゆっくりと投稿を編集していきます。

0
Stisfa

重要!これは参考までにです。あるプラットフォームから別のプラットフォーム(たとえば、Win。からLinux)に移行し、KeepAssを再インストールする場合は、正しいパッケージをインストールしていることを確認してください。リポジトリで最初に利用できるKeepAssXがありますが、KeepAss2データベースを使用すると、上記のエラーがスローされます。 。kbdxデータベースにはKeepAss2パッケージを使用してください。

0
Milan