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

リンクにハッシュ値を併記する #8

Open
tyru opened this issue Jun 27, 2018 · 8 comments
Open

リンクにハッシュ値を併記する #8

tyru opened this issue Jun 27, 2018 · 8 comments

Comments

@tyru
Copy link
Member

tyru commented Jun 27, 2018

まだ実現可能性も探ってないアイデア段階ですが、リンク集のページにハッシュ値を併記する事は可能でしょうか?
http://vim-jp.org/redirects/
ハッシュ値が書いてあってすぐコピーできるようになっていると便利そうかなとふと思いました。

P.S. 別リポジトリで言う事だと思いますが、 vim-jp.org のトップページのダウンロードリンクにもハッシュ値が書いてなかったです。
そもそもあっちは jekyll ですが、もし対応できるならそっちにも (というかそっちの方が) あると便利そうです。

@koron
Copy link
Member

koron commented Jul 1, 2018

ハッシュ値が書いてあってすぐコピーできるようになっていると便利

なにがどうべんりなんでしょうか?

@tyru
Copy link
Member Author

tyru commented Jul 1, 2018

https://golang.org/dl/
Go の例なんですが、ハッシュ値がダウンロードページに書かれている事で、ユーザがダウンロード後にバイナリの正当性を確認できるようになります。
バイナリが壊れている場合や、(GitHub なのでおそらく無いとは思いますが) MITM による改ざんなどを検知できます。
Windows だと HashTab なんかが確認するソフトとして有名だと思います。

@koron
Copy link
Member

koron commented Jul 1, 2018

改竄防止という意味では、#9 の提案手法は一切機能していません。提案手法は普通のユーザーがやるように github から DL してハッシュを計算しているからです。

そのためハッシュ計算時点において、通信路での改竄やバイナリ崩壊の影響を受けていないことが証明できません。

もちろん vim/vim-win32-installer や koron/vim-kaoriya にアップロードする時点での改竄も見抜けません。リリースページにハッシュ値を書くことも考えられますが、アップロードするバイナリを改竄可能ならリリースページを改竄可能なのでこれも機能しません。

信頼できないハッシュ値を提示することで、ユーザーになんの根拠もない安心を与えてしまい逆に問題であるとすら言えるでしょう。


本当に改竄防止が目的ならば以下のどちらかが必要です。

  • アップロードする主体が、別経路(改竄が限りなく難しい経路)でハッシュを直接提示する
  • ダウンロードするファイル(zip) に署名する

そうでなければユーザーを逆に危険にさらします。

@tyru
Copy link
Member Author

tyru commented Jul 1, 2018

なるほど、確かに安易な解決方法でした。
となると現状ではこの issue の実現は難しいでしょうか…

@koron
Copy link
Member

koron commented Jul 1, 2018

たしかに redirects で 自動で計算 するのは原理的に不可能でしょう。

でも vim-jp/vim-jp.github.io については _data/downloads.yml を人力で更新しているので

アップロードする主体が、別経路(改竄が限りなく難しい経路)でハッシュを直接提示する

は実現可能です。もちろん github と vim-jp/vim-jp.github.io にアクセスできる人たちを信用するという前提は付きますが。

加えて

#9 より

過去や安定版のリリースについては手動で調べて追記する

こちらについても、そんな感じの前提付きで実現できます。

@koron
Copy link
Member

koron commented Jul 1, 2018

github と vim-jp/vim-jp.github.io にアクセスできる人たちを信用するという前提

これが前提として成立するなら

リリースページにハッシュ値を書く

でも良い気がする。 vim/vim-win32-installer はどうするのかわかんないけど… appveyor で書き込むのかな。

@tyru
Copy link
Member Author

tyru commented Jul 1, 2018

vim/vim-win32-installer はどうするのかわかんないけど… appveyor で書き込むのかな。

それは vim/vim-win32-installer にスクリプトを改善する PR を送るって事ですか?

@koron
Copy link
Member

koron commented Jul 6, 2018

ですです。

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

2 participants