キモブロ

Please spy check please, Fucking retard

ファイルが改ざんされていないことを完全に保証しようとしているんだけど結構たいへんだなと思った。

テケトウに調べたけど、とりあえずファイルのハッシュを取得して、そんでそのハッシュ値が正しいものであるとPGPの秘密鍵で電子署名する感じっぽい。
http://www.nina.jp/server/windows/gpg/sign_verification.html

んで、自分の公開鍵は世界の主要な公開鍵データベースに登録する。同時に自分のウェブサイトにも置く。


あとファイルごとのハッシュを取って電子署名するときのやりかたをいくつか思いついたメモ。

各ディレクトリごとにハッシュ値を記録するファイルを作る方式

なのでたとえばa.txt b.txt c.txtというファイルを確実に安全な状態で配信するためには、だいたいこんな感じのファイル構成になる

a.txt
b.txt
c.txt
MD5SUM
MD5SUM.sig

この場合はMD5SUMファイルの中にa-c.txtの各ハッシュ値を入れる構成。

ただこの方式だとファイルを新規追加した時にダルい。

ファイルごとに電子署名ファイルを用意する方法

そこでこういう方式はどうだろうか。(といっても普通だが)

a.txt
a.txt.sig
b.txt
b.txt.sig
c.txt
c.txt.sig

sigは、a.txtをPGP電子署名したもので、その電子署名だけ外出ししたもの
これだとa-c.txtがファイルサイズ小さい時は楽に運用できそう。ただファイルサイズでかくなるときついのではないだろうか。(計算量増えそう的な意味で)

ファイルごとにハッシュ値を用意してハッシュ値ファイルを電子署名する方法

a.txt
a.txt.md5
a.txt.md5.sig
b.txt
b.txt.md5
b.txt.md5.sig
c.txt
c.txt.md5
c.txt.md5.sig

だめかな。

いずれにせよ電子署名が俺のものであるということを保証するために、validなhttps上に俺のfingerprintと公開鍵を置く必要がある。あとは更に確実性を高めるために

  • TwitterFacebookなど複数の信頼出来るhttps媒体上に全く同一のfingerprintと公開鍵を置く

必要もあると思う。こうすればなかなか攻撃者による攻撃は難しそうな気がする。