Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

verifyがエラーになる? #31

Closed
emadurandal opened this issue Jun 1, 2021 · 3 comments
Closed

verifyがエラーになる? #31

emadurandal opened this issue Jun 1, 2021 · 3 comments

Comments

@emadurandal
Copy link
Contributor

e9bac1e で試しておりますが、verifyがうまくいかないようです。

signはうまくいきますが。

╰─ sign emadurandal ~/.ssh/github hello.txt
ファイル hello.txt の署名ファイルを生成中 ... Enter pass phrase for /home/emadurandal/.ssh/github:
OK
✅ hello.txt の電子署名が作成されました。

電子署名の検証を行います

emadurandal の GitHub 上の公開鍵を取得中 ... OK
RSA 形式の公開鍵を PKCS8 形式に変換中 ... OK
ファイル hello.txt の署名ファイルを検証中 ... Verified OK
✅ 電子署名ファイルの検証が完了しました

✅ 署名を完了しました。このファイルを対象ファイルとセットでご利用ください。
対象ファイル    : hello.txt
電子署名ファイル: hello.txt.sig

verifyでパーミッションについておこられ、

╰─ verify ~/.ssh/github hello.txt emadurandal

/home/emadurandal/.ssh/github を電子署名 emadurandal で検証します

- hello.txt の GitHub 上の公開鍵を取得中 ... OK
- RSA 形式の公開鍵を PKCS8 形式に変換中 ... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0664 for '/tmp/verify-/hello.txt.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/tmp/verify-/hello.txt.pub": bad permissions
NG:RSA -> PKCS8 変換中にエラーが発生しました。

86行目あたりに試しにパーミッション600にしてみても、

image

invalid formatとなってしまいます。

╰─ verify ~/.ssh/github hello.txt emadurandal

/home/emadurandal/.ssh/github を電子署名 emadurandal で検証します

- hello.txt の GitHub 上の公開鍵を取得中 ... OK
- RSA 形式の公開鍵を PKCS8 形式に変換中 ... Load key "/tmp/verify-/hello.txt.pub": invalid format
NG:RSA -> PKCS8 変換中にエラーが発生しました。

ちょっと自分で調べた限りでは原因がよくわかりませんでした。
環境はWindows10のWSL2、Ubuntu20.04です。キーはkeygenスクリプトで生成しています。

@yoshi389111
Copy link
Collaborator

引数が違っているように思えます。

verify の引数は、「検証したいファイル」「githubのユーザー名」「署名ファイル」を指定するようになっています。
なので verify hello.txt emadurandal hello.txt.sig のように指定するのだと思います。

「署名ファイル」が「検証したいファイル」+ .sig の場合には「署名ファイル」も省略可能です。
verify hello.txt emadurandal

例えば、私が abc というファイルを署名・検証したい場合、以下のようになると思います。

$ echo abc > abc
$ bin/sign yoshi389111 ~/.ssh/id_rsa.pem abc
ファイル abc の署名ファイルを生成中 ... OK
✅ abc の電子署名が作成されました。

電子署名の検証を行います

yoshi389111 の GitHub 上の公開鍵を取得中 ... OK
RSA 形式の公開鍵を PKCS8 形式に変換中 ... OK
ファイル abc の署名ファイルを検証中 ... Verified OK
✅ 電子署名ファイルの検証が完了しました

✅ 署名を完了しました。このファイルを対象ファイルとセットでご利用ください。
対象ファイル    : abc
電子署名ファイル: abc.sig

$ bin/verify abc yoshi389111 abc.sig

abc を電子署名 abc.sig で検証します

- yoshi389111 の GitHub 上の公開鍵を取得中 ... OK
- RSA 形式の公開鍵を PKCS8 形式に変換中 ... OK
- ファイル abc の署名ファイルを検証中 ... Verified OK

✅ 署名の検証を完了しました。このファイルは正しく署名されています。
- 対象ファイル: abc
- 署名者     : yoshi389111

$ bin/verify abc yoshi389111

abc を電子署名 abc.sig で検証します

- yoshi389111 の GitHub 上の公開鍵を取得中 ... OK
- RSA 形式の公開鍵を PKCS8 形式に変換中 ... OK
- ファイル abc の署名ファイルを検証中 ... Verified OK

✅ 署名の検証を完了しました。このファイルは正しく署名されています。
- 対象ファイル: abc
- 署名者     : yoshi389111

@emadurandal
Copy link
Contributor Author

emadurandal commented Jun 2, 2021

@yoshi389111 ほんとだ。おっしゃるとおり引数勘違いしてました。引数直したらうまくいきました。ありがとうございます。

ただ、返ってくるエラー内容でどうしてもキー起因のエラーに思えてしまうところは何か対策したほうがいいかもしれません。
それと、signする際に秘密鍵のパスを間違えても(エラーは返るものの).sigファイルが生成されてしまうなど、ここらへんは仕様が安定化したあたりでの改善でいいかもしれませんが、いずれIssueとして対応したほうが良いかな、と思います。
あとは各スクリプトの引数の順番をそろえた方が良さそう?など。
(Issue化の是非はおまかせします)

本件はCloseでかまいません。

@KEINOS
Copy link
Member

KEINOS commented Jun 2, 2021

返ってくるエラー内容でどうしてもキー起因のエラーに思えてしまう

それは私もテスト作成で経験して感じていました。

Permissions 0xxx for '...' are too open. と言われアクセス権を変えたのに、叱られ。引数間違えてるだけなのに、まるで露出狂のように言われ、不本意な思いをしました。

なので Issue #33 を立てました。

signする際に秘密鍵のパスを間違えても(エラーは返るものの).sigファイルが生成されてしまう

これも再現したので Issue #34 を立てましたー

各スクリプトの引数の順番をそろえた方が良さそう?

引数の見直しは必要かもしれません。ヘルプを嫁と言われればそれまでなのですが、変更は v2.0 で行うとして順番の提案を募集したいと思います。

ディスカッションで #36 を立てましたー

なので、この Issue はクローズいたし 💪

@KEINOS KEINOS closed this as completed Jun 2, 2021
yoshi389111 added a commit to yoshi389111/QiiCipher that referenced this issue Jun 3, 2021
KEINOS pushed a commit that referenced this issue Jun 16, 2021
* change message improvement
* add test case of miss args
* add test case of not installed required commands
* changed the message when tar fails
* fix: archive for shfmt
* fix: openssl のエラーメッセージを出力するように修正
* fix: テストコードの説明文を修正

Close #33 コマンドの引数が間違えていた場合のメッセージ改善

- Related
    - #31 verifyがエラーになる?
    - #36 コマンドの引数の順番
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants