Ticket #34796

更新チェックでハッシュ値のチェック処理

Open Date: 2015-01-12 19:46 Last Update: 2015-03-25 14:28

Reporter: nishimoto Owner: nishimoto
Type: Patches Status: Closed
Component: コア機能 MileStone: (None)
Priority: 5 - Medium Severity: 5 - Medium
Resolution: Fixed

Details

チケット #34691 Python 2.7.9 への移行にともない、本家は更新チェックのサービスを HTTPS に移行する作業を進めています。

http://community.nvda-project.org/ticket/4716

日本語チームは独自サーバーで本家と同じようなサービス(として NVDA クライアントから見える処理)を実装しているので、 なにか対応が必要になる可能性があります。

もし日本語チームも HTTPS に移行するとしたら、今度は Web サーバーの SSL 証明書を取得(購入)する必要がありそうです。

Attachment File List

No attachments

Ticket History (3/8 Histories)

2015-01-12 19:46 Updated by: nishimoto
  • New Ticket "更新チェックの HTTPS への移行" created
2015-01-15 22:05 Updated by: nishimoto
Comment

証明書をダウンロードしておくために事前に IE で https://www.nvaccess.org にアクセスしておかないとうまくいかないという話。

http://bugs.python.org/issue20916

2015-01-30 15:39 Updated by: nishimoto
  • Milestone Update from (None) to 2015.1jp (closed)
  • Owner Update from (None) to nishimoto
  • Resolution Update from None to Accepted
  • Component Update from (None) to コア機能
Comment

本家の更新チェック HTTPS 移行に関する主要なコミット:

http://community.nvda-project.org/changeset/041f739321141f0258f461e5317dfbcc475c4fdb/

https への移行と同時に、ダウンロードしたバイナリの sha1 ハッシュ値を比較する処理が入った。

今回 nvda.jp の更新チェックサービスを https に移行しないとしても、ハッシュ値のチェック処理くらいは実装するべきか。。

それから,以下いただいた関連情報

GlobalSign Offers Free SSL Certificates for Open Source Projects, Helping Make the Internet More Secure

rapid ssl 年額2,600円(税込)

2015-01-30 15:43 Updated by: nishimoto
Comment

メモ:

Microsoft の fciv.exe はデフォルトが md5 だが sha1 も計算できる:

http://support.microsoft.com/kb/841290/ja

2015-02-24 14:18 Updated by: nishimoto
Comment

更新チェックでハッシュ値をチェックする処理をテストするために、 一時的に 2015.1jp リリース候補版から更新チェックをかけると 2014.4jp に戻るようにします。 動作確認が終わったらお知らせします。

2015-02-24 14:27 Updated by: nishimoto
  • Ticket Close date is changed to 2015-02-24 14:27
  • Status Update from Open to Closed
  • Resolution Update from Accepted to Fixed
  • Summary Updated
Comment

動作の確認ができたので、チェックサーバーの設定を元に戻しました。

日本語版の当面の仕様をまとめます:

  • 2015.1jp での更新チェックは HTTPS ではなく今までどおり HTTP で行う。
  • 2015.1jp を利用していて 2015.2jp 以降がリリースされたときには、ダウンロードする前にインストーラーの SHA1 ハッシュ値を取得。ダウンロード後にハッシュ値の比較を行い、正しくダウンロードできていることを確認する。

日本語版サーバーの HTTPS 導入は別のチケットで扱うことにして、本チケットはいったんクローズします。

2015-02-24 14:28 Updated by: nishimoto
Comment

更新チェックサーバーが返すハッシュ値を作る Python スクリプト:

# @param fileHash: The SHA-1 hash of the file as a hex string.
# @type fileHash: basestring

from __future__ import unicode_literals, print_function
import hashlib

FILE = "c:\\users\\nishimotz\\dropbox\\public\\nvda_2014.4jp.exe"

fd = open(FILE, 'rb')
data = fd.read()
fd.close()

hasher = hashlib.sha1()
hasher.update(data)
print(FILE)
print("launcherHash: %s" % hasher.hexdigest())
2015-03-25 14:28 Updated by: nishimoto

Edit

Please login to add comment to this ticket » Login