文章 データーに 対する 署名
簡単な文字列を作成してそれに 署名をしてみよう
文字列のファイルを 作成
aite@sv:~$ echo "この文書に 署名してください 番号 shomei001">file-sign-001 aite@sv:~$ cat file-sign-001 この文書に 署名してください 番号 shomei001
これに 署名を施しましょう
ほなら
aite@sv:~$ gpg --clearsign file-sign-001 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp>” 1024ビットDSA鍵, ID 7F2F7318作成日付は2007-09-05 パスフレーズを入力: aite@sv:~$ ls -l -rw-r--r-- 1 aite users 43 9月 7日 20:57 file-sign-001 -rw-r--r-- 1 aite users 279 9月 7日 21:13 file-sign-001.asc aite@sv:~$ cat file-sign-001.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 この文書に 署名してください 番号 shomei001 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQFG4UBKRDheXH8vcxgRAvBqAJ9lRoUL4SbHX2pLCkp5Z8VsrhDqxACdFxJc wvhRqUmHPCSY9caFWUE/ftc= =Z4ve -----END PGP SIGNATURE-----
これは 何の役に立つの? 相手(fdopstm)に 送る途中はまる見えではない か?
aite@sv:~$ cp file-sign-001.asc file-sign-002.asc aite@sv:~$ vi file-sign-002.asc aite@sv:~$ diff -s file-sign-001.asc file-sign-002.asc 4c4 < この文書に 署名してください 番号 shomei001 --- > 嘘で固めた どうなるの?この文書に 署名してください 番号 shomei001
aite@sv:~$ scp file-sign-001.asc file-sign-002.asc fdopstm@192.168.0.5:/home/fdopstm fdopstm@192.168.0.5's password: stty: standard input: 無効な引数です stty: standard input: 無効な引数です stty: standard input: 無効な引数です file-sign-001.asc 100% 279 0.3KB/s 00:00 file-sign-002.asc 100% 302 0.3KB/s 00:00
受け取った物を 見てみよう
fdopstm@lx:~$ ls -l -rw-r--r-- 1 fdopstm users 279 9月 7日 21:22 file-sign-001.asc -rw-r--r-- 1 fdopstm users 302 9月 7日 21:22 file-sign-002.asc fdopstm@lx:~$ cat file-sign-001.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 この文書に 署名してください 番号 shomei001 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQFG4UBKRDheXH8vcxgRAvBqAJ9lRoUL4SbHX2pLCkp5Z8VsrhDqxACdFxJc wvhRqUmHPCSY9caFWUE/ftc= =Z4ve -----END PGP SIGNATURE----- fdopstm@lx:~$ cat file-sign-002.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 嘘で固めた どうなるの?この文書に 署名してください 番号 shomei001 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQFG4UBKRDheXH8vcxgRAvBqAJ9lRoUL4SbHX2pLCkp5Z8VsrhDqxACdFxJc wvhRqUmHPCSY9caFWUE/ftc= =Z4ve -----END PGP SIGNATURE-----
何方も読めるし なーんか 問題あるの?
なんか こういうことで試しなさい ということですので
fdopstm@lx:~$ gpg --list-key /home/fdopstm/.gnupg/pubring.gpg -------------------------------- pub 1024D/C04EE068 2007-09-05 uid fdopstm hontoudesu (saisho desu) <fdopstm@lx.bcnet.ne.jp> sub 2048g/7C4C64AB 2007-09-05 fdopstm@lx:~$ gpg --verify file-sign-001.asc gpg: 2007年09月07日 21時12分58秒 JSTにDSA鍵ID 7F2F7318で施された署名 gpg: 署名を検査できません: 公開鍵が見つかりません fdopstm@lx:~$ gpg --verify file-sign-002.asc gpg: 2007年09月07日 21時12分58秒 JSTにDSA鍵ID 7F2F7318で施された署名 gpg: 署名を検査できません: 公開鍵が見つかりません fdopstm@lx:~$ cat .gnupg/open_pub/finger_print_aite pub 1024D/7F2F7318 2007-09-05 指紋 = A585 DBF5 55D9 BFD4 4603 5808 4438 5E5C 7F2F 7318 uid aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> sub 2048g/9A4B5C4F 2007-09-05
当然 aite の鍵を import していないので 見付かりません ということの様 です。
ほたら aite の公開鍵を import して 見よう
すこしは感覚的に 慣れて来たのだろうか?
fdopstm@lx:~$ gpg --import .gnupg/open_pub/public_aite_key.asc gpg: 鍵7F2F7318: 公開鍵“aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp>”を読み込みました gpg: 処理数の合計: 1 gpg: 読込み: 1 fdopstm@lx:~$ gpg --list-key /home/fdopstm/.gnupg/pubring.gpg -------------------------------- pub 1024D/C04EE068 2007-09-05 uid fdopstm hontoudesu (saisho desu) <fdopstm@lx.bcnet.ne.jp> sub 2048g/7C4C64AB 2007-09-05 pub 1024D/7F2F7318 2007-09-05 uid aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> sub 2048g/9A4B5C4F 2007-09-05
再度 試みる 鍵輪(鍵束)に 追加しましたよ
では
fdopstm@lx:~$ gpg --verify file-sign-001.asc gpg: 2007年09月07日 21時12分58秒 JSTにDSA鍵ID 7F2F7318で施された署名 gpg: “aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp>”からの正しい署名 gpg: 警告: この鍵は信用できる署名で証明されていません! gpg: この署名が所有者のものかどうかの検証手段がありません。 主鍵の指紋: A585 DBF5 55D9 BFD4 4603 5808 4438 5E5C 7F2F 7318
警告 されてしまった ほなこちらは?
fdopstm@lx:~$ gpg --verify file-sign-002.asc gpg: 2007年09月07日 21時12分58秒 JSTにDSA鍵ID 7F2F7318で施された署名 gpg: “aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp>”からの 不正な 署名
あかんいうてはるで!署名した後変更すると”不正な 署名”といわれるよう です
ほんでもって 相手(aite)の鍵も署名(lsign) 信用度も ”4 = 完全に信用する”を 与えてしまおう
fdopstm@lx:~$ gpg --edit-key aite gpg (GnuPG) 1.4.1; Copyright (C) 2005 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. pub 1024D/7F2F7318 作成: 2007-09-05 満了: 無期限 利用法: CS 信用: 未知の 有効性: 未知の sub 2048g/9A4B5C4F 作成: 2007-09-05 満了: 無期限 利用法: E [ unknown] (1). aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> コマンド> trust pub 1024D/7F2F7318 作成: 2007-09-05 満了: 無期限 利用法: CS 信用: 未知の 有効性: 未知の sub 2048g/9A4B5C4F 作成: 2007-09-05 満了: 無期限 利用法: E [ unknown] (1). aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> 他のユーザーの鍵を正しく検証するために、このユーザーの信用度を決めてください (パスポートを見せてもらったり、他から得た指紋を検査したり、などなど) 1 = 知らない、または何とも言えない 2 = 信用し ない 3 = ある程度信用する 4 = 完全に信用する 5 = 絶対的に信用する m = メーン・メニューに戻る あなたの決定は? m コマンド> lsign pub 1024D/7F2F7318 作成: 2007-09-05 満了: 無期限 利用法: CS 信用: 未知の 有効性: 未知の 主鍵の指紋: A585 DBF5 55D9 BFD4 4603 5808 4438 5E5C 7F2F 7318 aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> 本当にこの鍵にあなたの鍵\ “fdopstm hontoudesu (saisho desu) <fdopstm@lx.bcnet.ne.jp>”で署名してよいですか (C04EE068) 署名は、書出し不可に設定されます。 本当に署名しますか? (y/N) y 次のユーザーの秘密鍵のロックを解除するには パスフレーズがいります:“fdopstm hontoudesu (saisho desu) <fdopstm@lx.bcnet.ne.jp>” 1024ビットDSA鍵, ID C04EE068作成日付は2007-09-05 パスフレーズを入力: コマンド> trust pub 1024D/7F2F7318 作成: 2007-09-05 満了: 無期限 利用法: CS 信用: 未知の 有効性: 未知の sub 2048g/9A4B5C4F 作成: 2007-09-05 満了: 無期限 利用法: E [ unknown] (1). aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> 他のユーザーの鍵を正しく検証するために、このユーザーの信用度を決めてください (パスポートを見せてもらったり、他から得た指紋を検査したり、などなど) 1 = 知らない、または何とも言えない 2 = 信用し ない 3 = ある程度信用する 4 = 完全に信用する 5 = 絶対的に信用する m = メーン・メニューに戻る あなたの決定は? 4 pub 1024D/7F2F7318 作成: 2007-09-05 満了: 無期限 利用法: CS 信用: 完全 有効性: 未知の sub 2048g/9A4B5C4F 作成: 2007-09-05 満了: 無期限 利用法: E [ unknown] (1). aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> プログラムを再起動するまで、表示された鍵の有効性は正しくないかもしれない、 ということを念頭においてください。 コマンド> save fdopstm@lx:~$ gpg --edit-key aite gpg (GnuPG) 1.4.1; Copyright (C) 2005 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: 信用データベースの検査 gpg: 最小の「ある程度の信用」3、最小の「全面的信用」1、PGP信用モデル gpg: 深さ: 0 有効性: 1 署名: 1 信用: 0-, 0q, 0n, 0m, 0f, 1u gpg: 深さ: 1 有効性: 1 署名: 0 信用: 0-, 0q, 0n, 0m, 1f, 0u pub 1024D/7F2F7318 作成: 2007-09-05 満了: 無期限 利用法: CS 信用: 完全 有効性: 完全 sub 2048g/9A4B5C4F 作成: 2007-09-05 満了: 無期限 利用法: E [ full ] (1). aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> コマンド> trust pub 1024D/7F2F7318 作成: 2007-09-05 満了: 無期限 利用法: CS 信用: 完全 有効性: 完全 sub 2048g/9A4B5C4F 作成: 2007-09-05 満了: 無期限 利用法: E [ full ] (1). aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp> 他のユーザーの鍵を正しく検証するために、このユーザーの信用度を決めてください (パスポートを見せてもらったり、他から得た指紋を検査したり、などなど) 1 = 知らない、または何とも言えない 2 = 信用し ない 3 = ある程度信用する 4 = 完全に信用する 5 = 絶対的に信用する m = メーン・メニューに戻る あなたの決定は? m コマンド> quit
(aite)公開鍵の署名と 信用度の設定も ユーザー(fdopstm)にて 終わりました そこでもう一度 verify を行ってみましょう
さて ”file-sign-001.asc ”に たいして 行ってみると
fdopstm@lx:~$ gpg --verify file-sign-001.asc gpg: 2007年09月07日 21時12分58秒 JSTにDSA鍵ID 7F2F7318で施された署名 gpg: “aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp>”からの正しい署名
なっとくですな! そしたら”file-sign-002.asc ”に 対しても見てみましょ う
fdopstm@lx:~$ gpg --verify file-sign-002.asc gpg: 2007年09月07日 21時12分58秒 JSTにDSA鍵ID 7F2F7318で施された署名 gpg: “aite kextutei (korede kimeta) <aite@sv.bcnet.ne.jp>”からの 不正な 署名
まあこういうことで 意味は有るようです
クリア署名 て なんか役に たつのということに対するものが上記の物です ファイル ”file-sign-001.asc”と”file-sign-002.asc”は 両方とも 読む事 は出来ます( ”クリア署名”の場合は)但し、クリア署名した後で 内容を 変 更した場合は もうそれは 正当な クリア署名された物ではなくて
”不正な 署名”ということになります。これが 署名という物です
署名 といっても 公開鍵に対する署名 文字列や データーに対する署名 と 同じ ”署名”といっても 使い分けしないと いけない これが gnupg を 使う 場合に 最初は突起難(とっきにく)いということに なっているのではないだろうか?
にゃんたろう 拝!
2007年 9月 7日 (金) 22:15:05 JST 作成