質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • Linux

    4022questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

gpg (共通)で暗号化したはずが、パスワードなしで複合できてしまう問題

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,872

setsu_tenhou

score 23

発生している問題・エラーメッセージ

タイトルの通りなのですが、パスワードを設定して暗号化したはずのファイルがパスワードなしで複合できてしまうのです。

該当のコード

[kagu@localhost Desktop]$ vi sample.txt  *ここでファイルにaiueoを入力
[kagu@localhost Desktop]$ gpg -c sample.txt *パスワード入力画面が表示されパスワードを入力 
[kagu@localhost Desktop]$ gpg -d sample.txt.gpg > result.txt
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: WARNING: message was not integrity protected
[kagu@localhost Desktop]$ cat -n result.txt
1    aiueo
[kagu@localhost Desktop]$ cat -n sample.txt
1    aiueo

```

試したこと

gpg sample.txt.gpg
とオプションなしで複合もやりましたが変わらず

原因の予想

一つ気がかりなことがあります。
それはパスワードを入力(設定)する際に表示されるパスワード入力画面なのですが、なぜか決定ボタンがUNLOCKとなっており、LOCKではないのか?と困惑しました。
ということで、何かのバグなのかと思っているのですが。。。。

補足情報(言語/FW/ツール等のバージョンなど)

CentOS Linux release 7.3.1611 (Core)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+2

GnuPGgpg-agentによると

gpg-agent はキーチェインにパスワードをリクエストしたりキャッシュしたりするのに使われるデーモンです。メールクライアントなど外部のプログラムから GnuPG を利用する場合に便利です。

とのことなので、gpg-agentデーモンが動作しており一定時間は入力不要になるような設定が入っているのだと思います。設定の詳細は提示URL確認ください(ややこしいです)。

ちなみに「パスワード入力」の画面(の見栄え?)はpinentryで設定(指定)できるようです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/24 09:54

    解答どうもありがとうございます。
    gpg-agentなんですが、設定ファイルのgpg-agent.confが存在しない場合は何が起きているのでしょうか?
    「GnuPG 2.1.0 から gpg-agent の使用は必須となっています。」と書かれていることと、以下の結果からしっかりとエージェントは動いてくれているみたいなのですが。。。
    [kagu@localhost ~]$ gpg-agent
    gpg-agent: gpg-agent running and available


    ~/.gnupg/には以下のファイルが存在しています。
    gpg.conf private-keys-v1.d pubring.gpg random_seed secring.gpg


    キャンセル

  • 2017/03/24 10:26

    https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html
    gpg-agent.confに指定可能なオプション詳細およびデフォルト値が載っています。
    すなわち.confファイルがない場合の動作も分かります。が、読み解くのはしんどいです。。。

    キャンセル

0

gpgのオプションと構文が違う様な気がします。

gpgの対称暗号時の警告をなくす

p.s.
古いFedoraにもgpgが入っていたので、試してみました。

gpg -a -c --force-mdc < in.txt > out.txt
で、in.txtをパスフレーズで暗号化したout.txtを作成して
gpg -d out.txt
で、パスフレーズを入力したら「aiueo」と表示しました。

out.txtの中身は、
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.11 (GNU/Linux)

jA0EAwMCLrW4T6oeneNg0jQBby/o1YzZADl/2iTyi/ccXn5gwt0dWRyG+zeNH/lx
Lsk7NP+qkTPIOUViUVMe2AQHKtCR
=6v5L
-----END PGP MESSAGE-----

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/22 09:01

    解答どうもありがとうございます。

    同じ構文で行ってみた結果です。

    [kagu@localhost ~]$ cd Desktop
    [kagu@localhost Desktop]$ gpg -a -c --force-mdc < sample.txt > out.txt *パスワード設定
    [kagu@localhost Desktop]$ gpg -d out.txt
    gpg: CAST5 encrypted data
    gpg: encrypted with 1 passphrase
    aiueo

    結果
    変わらずにパスワードを設定したのにもかかわらず、パスワード入力を要求されることもなく複合できてしまいました。

    パスワードが設定されていると表示されているのに、なぜ複合する際にパスワードを要求されないのでしょうか?

    キャンセル

  • 2017/03/22 09:05 編集

    out.txtの中身を見せてもらえませんか?
    versionとPGP MESSAGEを確認したいです。

    p.s.
    もしかして「パスワード」による「鍵」を生成されてますか?

    キャンセル

  • 2017/03/22 10:32

    >それはパスワードを入力(設定)する際に表示されるパスワード入力画面なのですが、なぜか決定ボタンがUNLOCKとなっており、LOCKではないのか?と困惑しました。

    CUI(ターミナル)で操作されているのですよね?
    「決定ボタン」とは、どんな感じで表示されるのでしょうか?

    キャンセル

0

手元にある Ubuntu 16.04 LTS で、gpg version 1.4.20 で試してみました。

$ echo aiueo > in.txt
$ cat in.txt
aiueo
$ gpg -c in.txt
gpg: このセッションでgpg-agentは無効です
パスフレーズを入力:
パスフレーズを再入力:
$ ls
in.txt  in.txt.gpg
$ cat in.txt.gpg
※バイナリなので画面が崩れます
$ gpg -d in.txt.gpg
gpg: AES暗号化済みデータ
gpg: このセッションでgpg-agentは無効です
パスフレーズを入力:
aiueo
$

普通に暗号化できて、パスフレーズも要求されますね…

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/22 10:31

    ですよね。。。

    >それはパスワードを入力(設定)する際に表示されるパスワード入力画面なのですが、なぜか決定ボタンがUNLOCKとなっており、LOCKではないのか?と困惑しました。

    CUIなのに、「決定ボタン」とは、、、何か心当り、ありますか?

    キャンセル

  • 2017/03/22 11:02 編集

    手元に仮想マシンで CentOS7 があったので試してみました。
    gpg は 2.0.22 です。
    GUI (Gnome Shell)でログインしている状態で、「端末」を開き、そのコマンドラインで gpg -c をやると、パスフレーズ入力は GUI になりますね。
    日本語環境なので「ロックの解除」と出てきました。

    キャンセル

  • 2017/03/22 11:06 編集

    で、出来上がった gpg 暗号化済みファイルを gpg -d とすると、パスフレーズ入力なしで表示されますねえ……これ Gnome Shell がパスフレーズ入力をトラップして、お節介焼いてますね、たぶん。

    キャンセル

  • 2017/03/22 11:22 編集

    ちなみに TeraTerm で SSH 接続して gpg -d とやると、CUI でパスフレーズ入力ウィンドウが出てくる(まるでDOS時代のような) ステキ仕様ですな…

    キャンセル

  • 2017/03/22 11:25

    CentOS7のgpgは
    >~/.gnupg/ の中見て勝手に処理している
    っぽいですね。

    キャンセル

  • 2017/03/22 11:31

    gpg といっても gpg2 ですし、パスフレーズ入力をトラップしてるので、普通の挙動ではないでしょうね。/etc/pam.d/gdm-password あたりの設定かな?

    キャンセル

  • 2017/03/22 11:37

    手元のkernelが2.6.35.14-106.fc14.i686.PAEなFedoraなので、
    /fetc/pam.d/gdm*を見ても、手がかり無しでした。

    キャンセル

0

CentOS7のgpgの動作仕様のようですので、

[kagu@localhost]で作成した.gpgを「他のユーザ」で「gpg -d」して見てください。

  1. パスフレーズを聞いてくれば、gpgの本来の目的は成している。
  2. パスフレーズを聞いてこなければ、gpgの意味が無い、、、なんてことになったら、CentOS7のバグ?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Linux

    4022questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。