Публикация HASH под ссылками на закачку дистрибутивов

Здесь можно обсудить сайт Far Manager и предложить идеи по его дальнейшему развитию.
Post Reply
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Публикация HASH под ссылками на закачку дистрибутивов

Post by AleXH »

Скажем SHA1 или SHA256 - кто, что об этом думает?

Никто не знает, почему имеющиеся в сети реализации расчёта SHA1, SHA256 на lua дают иной (но судя по self-тестам правильный) результат, чем sha1sum, HashTab, или плагин для FAR HashCRC?

Никто не решал проблему: есть сайт и его обновление доступно только по ftp. - Как автоматизировать публикацию (обновление) хэшей под ссылками для периодически обновляемых дистрибутивов? - Пока вижу только локальную замену в теле страницы с помощью регэкспов рассчитанным хэшем на lua, с последующей заливкой страницы на ftp сервер. Да вот только алгоритм расчёта хэша на lua не той системы (с) ...
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by Shmuel »

Причём здесь луа - не луа ? Lua - это язык программирования.
Результат выполнения программы будет корректным, если программа корректная. И язык программирования здесь ни при чём.
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by AleXH »

Shmuel, передачу содержимого файла на хэширование сделал так,
  1. local function fread(f)
  2.  
  3.     local fh = io.input(f)
  4.  
  5.     local x = io.read("*all")
  6.  
  7.     io.close(fh)
  8.  
  9.     return x
  10.  
  11. end
  12.  
  13.  
  14.  
  15. print(sha1(fread(filename)))
, где sha1 функция из sha1.lua. Результат не сходится с TabHash и остальными, сам sha1.lua работает как и задумано, это видно из самодиагностики. Может с передачей файла что-то не так, или на 0x00 код скрипта спотыкается?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by Shmuel »

Для начала, файл надо читать в бинарном режиме.
  1. local function fread(f)
  2.  
  3.     local fh = io.open(f, "rb")
  4.  
  5.     local x = fh:read("*all")
  6.  
  7.     fh:close()
  8.  
  9.     return x
  10.  
  11. end
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by AleXH »

Shmuel, спасибо, затупил, почему-то был уверен, что сделал двоичное чтение.

А что насчёт публикации хэшей под ссылками на дистрибы - не реализуемо? или муторно?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by Shmuel »

AleXH wrote:А что насчёт публикации хэшей под ссылками на дистрибы - не реализуемо? или муторно?
Сложностей быть не должно. Если сочтут целесообразным - сделают.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by John Doe »

AleXH
Зачем только вы мешаете все вопросы в 1 теме?
Что увидит человек, зашедший сюда? "А, тут про луа..."
Так и уйдёт, не вникая что вы там хотели этим сказать.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by zg »

AleXH wrote:Скажем SHA1 или SHA256 - кто, что об этом думает?
какая от этого польза?
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by AleXH »

John Doe wrote:Зачем только вы мешаете все вопросы в 1 теме?
Полагал что раз не сделано до сих пор, то ответ быстрее всего отрицательный. Поэтому содержание можно не выдерживать строго.
zg wrote:какая от этого польза?
Даже не знаю что ответить... Имхо польза очевидная - пользователь может сравнить хэш тем же HashCRC, либо HashTab и быть уверенным, что скачал он то, что клалось на сервер изначально. И если для ночнушек это не столь важно, поскольку срок жизни у них максимум сутки, то для стабильных сборок это уже актуально. Или они тоже каждые сутки пересобираются? В любом случае публиковать хэш это правило хорошего тона. Ведь мнительные пользователи тоже люди.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by zg »

AleXH wrote:Имхо польза очевидная - пользователь может сравнить хэш тем же HashCRC, либо HashTab и быть уверенным, что скачал он то, что клалось на сервер изначально.
если файл заменил злоумышленник, что мешает ему заменить хэш? если файл побился, то у 7z/msi есть внутренние способы контроля целостности и какой смысл в дополнительном хэше?
AleXH wrote:Ведь мнительные пользователи тоже люди.
мнительные пользователи собирают всё сами из исходников.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by John Doe »

Вот тут ещё один пользователь высказывал сожаление по поводу того что хэш не указывается.
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by AleXH »

если файл заменил злоумышленник, что мешает ему заменить хэш?
Это зависит от прав. Если для замены файла требуются одни права, а для изменений шаблонов сайта другие, то это уже веселее. В любом случае это больше работы, и соответственно требует больше времени, поэтому некая польза есть.

Никто не спорит, что компилировать безопаснее, но для этого нужно иметь среду компиляции и некоторые навыки, а также некоторое время - гораздо проще и быстрее просто сравнить хэши.

Независимо от реальной пользы хэша есть такая вещь, как спокойствие и комфорт пользователей и если схождение хэша придаст им уверенности при установке софта, то проделанная работа по его добавлению имеет смысл. Ещё раз обращаю ваше внимание - наличие хэша это хороший тон.

Другой случай - скачал - архив битый, скачал ещё раз, опять битый, ещё, снова битый - кто виноват? может он на сервере, либо кэше провайдера уже битый? А хэш бы дал возможность проверить.
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by Alexey Samlyukov »

предложение из копилки techie... как он еще не высказался, забанили? :P
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by techie »

копилку спёрли.. =)

Считать хэш имеет смысл, если файл хранится на другом сервере, не защищённом сертификатом (CDN там какой-нибудь). При этом MD5 уже юзать не стоит - его можно подделать дописыванием к концу файла. Если хэш передаётся по обычному HTTP вместе с файлом, то тут ничто ни от чего особо не защищается и хэш тут не поможет. Если товарищи были достаточно грамотные, чтобы залить заражённый дист, то и хэш новый подсунуть они позаботятся.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Публикация HASH под ссылками на закачку дистрибутивов

Post by John Doe »

AleXH wrote:
zg wrote:какая от этого польза?
Даже не знаю что ответить... Имхо польза очевидная - пользователь может сравнить хэш тем же HashCRC, либо HashTab и быть уверенным, что скачал он то, что клалось на сервер изначально.
Что если подписывать far.exe?
Post Reply

Return to “Обсуждение www.farmanager.com”