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


5

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

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>

ここでこのコマンドを見つけましたが、「。sig」または「.asc」ファイルについては何も言及していなかったため、何か間違ったことをしたと考えました。manページを読むことで、さらに次のことを試しました。

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日更新

OK これだけで物事がより論理的になりました!

だから、ここに私のコマンドのリストと私がいる場所があります:

  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検証との類似性はどこにあるのでしょうか?これで終わりです。または、さらにステップがありますか?これらの 2つの文字列を確認するために使用するコマンドはありますか?これらの文字列は本当に確認する必要があるのですか?それらの文字列は何ですか?



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

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」を検索)と言われるかもしれません。私はそれを認める:私は愚かだ。実際、私がまだMD5検証の使用方法を学んでいたとき、私はこれとほぼ同じようにそれをいじりました。


正直なところ、なんとリグマロール!KeepassX開発者が、ダウンロードしたインストーラーを確認するためにExactFileを使用できるように、MD5を発行したばかりではないのはなぜですか。
-therobyouknow

回答:


4

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

gpgのmanページから:

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

1
.exe.ascファイルは、.exeファイルの署名です。確認しようとすると、同じフォルダーに両方のファイルが必要です。.exe.ascファイルをgpg --verifyに渡すと、同じフォルダー内で関連ファイル(.exe)が検索されます。これは、.exeファイルを実行/インストールする前のすべてです。検証すると、署名公開キーIDが0xFEB7C7BCであり、署名ページで公開された公開キーと一致することがわかりますが、sigと公開キーの両方が同じソースからのものであるため、実際にはあまり検証されません。
マイクフィッツパトリック

2
:ここにリンクされている.exeファイル.exe.ascと作者の公開鍵を。作成者の公開キーをキーチェーンにインポートし、他の2つのファイルを同じディレクトリに置く必要があります。おそらく念のため、そのディレクトリをgpgディレクトリではなく現在の作業ディレクトリにする必要があります。検証プロセスでは...あなたは著者の公開鍵の正当性を信頼に依存している
マイク・フィッツパトリック

1
私の理解では、署名ファイルでファイルを正常に検証すると、ダウンロードエラー(または中間者攻撃)を検出するのに役立ちます、ファイルが実際に公開署名を所有している人から来たことを確認するのに役立ちません。作成者の公開キーの信頼できるコピーがgpgキーリングにある場合は、.exeファイルが本当にそれらによって署名されていることを確認できますが、同じソースから公開キーと署名を取得しても、署名者について何も証明されません身元。
マイクフィッツパトリック

1
@マイク:s /公開署名を所有/
キーペアを

2
@Stisfa:@grawityは、「公開署名を所有している」のではなく、「鍵ペアを所有している」と書くべきだったことを正しく意味します。
マイクフィッツパトリック

1

複雑すぎるようです:-) https://keyserver.pgp.com/vkd/GetWelcomeScreen.eventでDSAキーID FEB7C7BCを検索してみてください。


まあ、私は最初は「それを取得」しませんでした。GPGと連携し、Mike Fitzpatrickとgrawityの両方に対応し、Wikipediaから「Web of trust」の概念を読み、投稿したリンクを使用する機会を得た後、私はそのアイデアを得ると思います。別のソース(提供したリンク)からDSAキーIDを取得し、対応する署名とともにKeePassを別のソース(KeePassホームページ)からダウンロードし、それを検証できれば、適切な検証が行われます。おもう。
スティスファ

0

この投稿の大部分は「A-to-Z」の内訳です。この方法にこだわっている人は、すべてのコメントを掘り下げることなく答えを得ることができます。これに投票しないでください。クレジットは参加者(マイク・フィッツパトリック、grawity、ヤン・イヴァル・ベダリ)に与えられます。

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

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

  • 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
    

    次に、KeePass Webサイトから公開キーを使用したときの結果を示します。

    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ウェブサイトのものと一致します。これは、ファイルを検証するときに重要です。ただし、これは公開キーが信頼できることを確認することとは大きく異なります。公開鍵は、見知らぬ人を信頼するかどうかなど、使用するかしないかを信頼するものです。彼らが信頼できると思われる1つの方法は、彼らが彼らを保証するために複数の個人を持っている場合です。これは公開鍵についても同じです。繰り返しますが、これは私の限られた範囲からのものであるため、デューデリジェンスもあなたの側で必要です!

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


    0

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

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

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


    0

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

    弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
    Licensed under cc by-sa 3.0 with attribution required.