cs:navody:hasher:start

Aplikace Hasher - kontrola integrity souborů

Hasher slouží k napočítání a ověření kontrolních součtů u vašich souborů. S pomocí Hasheru mohou být napočítány a uloženy kontrolní součty do tzv. extended atributů. Následně je možné takto uložené kontrolní součty využít ke kontrole, zda nedošlo k poškození/změně souboru například při přenosu mezi vaším lokálním PC a datovým úložištěm, nebo při jeho uchování na datovém úložišti. Po nahrání Vašich souborů na úložiště dojde do 24 hodin k automatickému napočítání kontrolních součtů a jejich uložení do extended atributů.

Kontrolní součty v prostředí Linux - aplikace Hasher

Uživatelská aplikace Hasher je určena pro uživatele Datových úložišť (DÚ) CESNET. Aplikace je určena k výpočtu tzv. kontrolních součtů, které následně umožňují určit, zda byl daný soubor poškozen.

Aplikace nabízí standardní hashovací algoritmy MD5, SHA1, RMD160, SHA256, SHA384, SHA512 a SHA224. Výchozí hashovací algoritmus je MD5.

Aplikace Hasher ukládá napočítané kontrolní součty prostřednictvím tzv. extended atributů. Pokud tedy chcete zachovat extended atributy po přenosu vašich souborů z úložiště, je nezbytné použít protokol, který podporuje přenos extended atributů (rsync).
Pokud používáte pro přenos souborů z DÚ některý z protokolů, který neumožňuje zachování extended atributů, můžete napočítané extended atributy vyexportovat do externího textového dokumentu. Po stažení můžete napočítat kontrolní součty znovu a porovnat je s kontrolními součty uloženými v textovém souboru, viz dále.

Ovládání aplikace Hasher

Pokud použijete příkaz hasher bez jakékoliv proměnné dojde k výpisu následujících parametrů aplikace

  • -r recursive provede výpočet kontrolních součtů rekurzivně
  • -d digest (type -d help) specifikuje typ algoritmu pro výpočet kontrolního součtu (defalutně MD5)
  • -s set digest uloží napočítaný kontrolní součet do extended atributů
  • -e export digest exportuje napočítané kontrolní součty
  • -p import digest provede import kontrolních součtů pro definované soubory
  • -v verify digest vypočítá kontrolní součet a porovná ho s kontrolním součetem uloženým v extended atributech
  • -h print this help nápověda
  • -l follow symlinks následuje symbolické linky
  • -q quiet skryje výpis provedené akce
  • -i list computed hashes vypíše seznam uložených kontrolních součtů

Použití aplikace Hasher na úložištích DÚ

Po nahrání Vašich dat na úložiště dojde do 24 hodin k napočítání kontrolních součtů MD5. Následně je takto napočítané kontrolní součty možné použít pro kontrolu vašich dat jedním z následujících způsobů.

Ověření kontrolních součtů u mých souborů na úložišti
Ověření vlastních kontrolních součtů (např. SHA256) u mých souborů na úložišti
Použití aplikace Hasher pro kontrolu dat po přenesení na úložiště

Použití aplikace Hasher na Vašem lokálním PC

Pro použití aplikace Hasher na Vašem lokálním PC musíte nejdříve provést instalaci aplikace Hasher z repozitáře DÚ. Dále můžete pokračovat návodem níže. Tento případ užití je žádoucí zejména v případě, že k přenosu souborů využíváte jakýkoliv jiný protokol než rsync.

Použití aplikace Hasher pro kontrolu dat po stažení z úložiště

Ověření kontrolních součtů u mých souborů na úložišti

Samočinný algoritmus automaticky provede napočítání a uložení výchozího MD5 kontrolního součtu do 24 hodin od uložení souboru na úložiště.

1. Ověření kontrolního součtu (výchozí MD5) na daném souboru

hasher muj_soubor
Processing muj_soubor...
Actual hash of muj_soubor is MD5: 92f7e6dfc18a25981a59a9f74298dd7
User checksum type MD5 verified OK on muj_soubor

2. Ověření kontrolního součtu (výchozí MD5) v libovolném adresáři (rekurze)

hasher -r muj_adresar
Walking down muj_adresar/
Adding muj_adresar//muj_soubor1
Adding muj_adresar//muj_soubor2
Adding muj_adresar//muj_soubor3
Processing muj_adresar//muj_soubor3...
Actual hash of muj_adresar//muj_soubor3 is MD5: b26795c69684a7c9cc4a94ff70a95b71
User checksum type MD5 verified OK on muj_adresar//muj_soubor3
Processing muj_adresar//muj_soubor2...
Actual hash of muj_adresar//muj_soubor2 is MD5: 9448a1bf333fadd2a57965ec38487b89
User checksum type MD5 verified OK on muj_adresar//muj_soubor2
Processing muj_adresar//muj_soubor1...
Actual hash of muj_adresar//muj_soubor1 is MD5: e5828c564f71fea3a12dde8bd5d27063
User checksum type MD5 verified OK on muj_adresar//muj_soubor1

Ověření vlastních kontrolních součtů (např. SHA256) u mých souborů na úložišti

1. Napočítání a uložení kontrolního součtu pro daný soubor s použitím algoritmu SHA256

hasher -s -d SHA256 muj_soubor
Processing muj_soubor...
Actual hash of muj_soubor is SHA256: 5e8cd142e6fa81bfd5ffea2516aaa69c837a33c9bcc954d2617229b626c17f

2. Napočítání a uložení kontrolního součtu SHA256 pro soubory v libovolném adresáři (rekurze)

hasher -r -s -d SHA256 muj_adresar
Walking down muj_adresar
Adding muj_adresar/muj_soubor1
Adding muj_adresar/muj_soubor2
Adding muj_adresar/muj_soubor3
Processing muj_adresar/muj_soubor3...
Actual hash of muj_adresar/muj_soubor3 is SHA256: 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd
Processing muj_adresar/muj_soubor2...
Actual hash of muj_adresar/muj_soubor2 is SHA256: 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48
Processing muj_adresar/muj_soubor1...
Actual hash of muj_adresar/muj_soubor1 is SHA256: 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772

3. Ověření kontrolního součtu SHA256 na daném souboru

hasher -d SHA256 muj_soubor
Processing muj_soubor...
Actual hash of muj_soubor is SHA256: 5e8cd142e6fa81bfd5ffea2516aaa69c837a33c9bcc954d2617229b626c17f
User checksum type SHA256 verified OK on muj_soubor

4. Ověření kontrolního součtu SHA256 v libovolném adresáři (rekurze)

hasher -r -d SHA256 muj_adresar
Walking down muj_adresar
Adding muj_adresar/muj_soubor1
Adding muj_adresar/muj_soubor2
Adding muj_adresar/muj_soubor3
Processing muj_adresar/muj_soubor3...
Actual hash of muj_adresar/muj_soubor3 is SHA256: 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd
User checksum type SHA256 verified OK on muj_adresar/muj_soubor3
Processing muj_adresar/muj_soubor2...
Actual hash of muj_adresar/muj_soubor2 is SHA256: 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48
User checksum type SHA256 verified OK on muj_adresar/muj_soubor2
Processing muj_adresar/muj_soubor1...
Actual hash of muj_adresar/muj_soubor1 is SHA256: 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772
User checksum type SHA256 verified OK on muj_adresar/muj_soubor1
Pokud se rozhodnete používat jiný algoritmus pro výpočet kontrolních součtů, než je výchozí MD5, je nezbytné při každé akci (-s nebo -v) specifikovat pomocí přepínače -d, o jaký algoritmus se jedná (jaký chcete napočítat/ověřit). Výpis dostupných hashovacích algortimů získáte pomocí použití přepínače -d help.

Použití aplikace Hasher pro kontrolu dat po přenesení na úložiště

1. Zde je nejdříve nezbytné provést export kontrolních součtů do externího souboru. Export kontrolních součtů musíte provést na vašem lokálním PC, dle postupu popsaného v předchozí sekci odstavci export.

Ověření kontrolních součtů musí vždy proběhnout na takové adresářové rovni, na které byl proveden export. Pokud tedy exportujete kontrolní součty pro soubory pomocí 1c v odstavci export, musíte následné ověření provést na úrovni daného adresáře nikoliv v něm.

2. Dále přeneste požadované soubory na úložiště z Vašeho PC. Nezapomeňte rovněž přenést soubor kontrolni_soucty.txt.

3. Následně provedeme import kontrolních součtů dle postupu popsaného v předchozím sekci v odstavci import, který rovněž provede kontrolu integrity souborů.

Použití aplikace Hasher pro kontrolu dat po stažení z úložiště

Tento případ užití by měl být přednostně využit, pokud pro přenos dat na úložiště využíváte protokol, který neumožňuje přenos extended atributů (scp, ftp, cifs, nfs). Podstata je v tom, že si můžete napočítané kontrolní součty uložit do externího souboru (*.txt), následně můžete vaše soubory včetně *.txt souboru s napočítanými kontrolními součty stáhnout z úložiště a použít aplikaci Hasher dle návodu níže a ověřit kontrolní součty z vašeho lokálního PC obsažené v *.txt souboru.

Dále můžete pokračovat následovně:


1. Export kontrolních součtů vybraných souborů do externího souboru

1a) Export výchozích MD5 kontrolních součtů

hasher -e muj_soubor1 muj_soubor2 muj_soubor3 > kontrolni_soucty.txt
cat kontrolni_soucty.txt 
MD5 e5828c564f71fea3a12dde8bd5d27063 muj_soubor1
MD5 9448a1bf333fadd2a57965ec38487b89 muj_soubor2
MD5 b26795c69684a7c9cc4a94ff70a95b71 muj_soubor3

Pro všechny soubory v daném adresáři lze použít příkaz:

hasher -e * > kontrolni_soucty.txt

1b) Export vlastních kontrolních součtů, zde příklad SHA256

hasher -e -d SHA256 muj_soubor1 muj_soubor2 muj_soubor3 > kontrolni_soucty.txt
cat kontrolni_soucty.txt 
SHA256 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772 muj_soubor1
SHA256 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48 muj_soubor2
SHA256 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd muj_soubor3

1c) Export kontrolních součtů souborů v daném adresáři, zde příklad SHA256

hasher -e -r -d SHA256 muj_adresar > kontrolni_soucty.txt
cat kontrolni_soucty.txt 
SHA256 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd muj_adresar/muj_soubor3
SHA256 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48 muj_adresar/muj_soubor2
SHA256 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772 muj_adresar/muj_soubor1

2. Dále přeneste požadované soubory z úložiště na Váš lokální PC. Nezapomeňte rovněž přenést soubor kontrolni_soucty.txt.

Pro pokračování je nezbytné provést instalaci aplikace Hasher na Vašem lokálním PC, což provedete podle tohoto návodu, pokud jste tak již neučinili v některém z předchozích kroků.

3. Následně na našem PC spustíme import kontrolních součtů ze souboru a ověříme je. Zde použijeme v konečné fázi obecný příkaz hasher , který provede kontrolu všech souborů, jak původních souborů, tak nově nahraných souborů, jejichž kontrolní součty jsou v souboru kontrolni_soucty.txt.

Ověření kontrolních součtů musí vždy proběhnout na takové adresářové rovni, na které byl proveden export. Pokud tedy exportujete kontrolní součty pro soubory pomocí 1c, musíte následné ověření provést na úrovni daného adresáře nikoliv v něm.

3a) Import a ověření defalutních MD5 kontrolních součtů

hasher -p kontrolni_soucty.txt; hasher *
Processing kontrolni_soucty.txt...
Actual hash of kontrolni_soucty.txt is MD5: 53d2d77158854967d3dde13a3425dd
User checksum not set on 'kontrolni_soucty.txt' nothing to verify.
Processing muj_soubor1...
Actual hash of muj_soubor1 is MD5: e5828c564f71fea3a12dde8bd5d27063
User checksum type MD5 verified OK on muj_soubor1
Processing muj_soubor2...
Actual hash of muj_soubor2 is MD5: 9448a1bf333fadd2a57965ec38487b89
User checksum type MD5 verified OK on muj_soubor2
Processing muj_soubor3...
Actual hash of muj_soubor3 is MD5: b26795c69684a7c9cc4a94ff70a95b71
User checksum type MD5 verified OK on muj_soubor3

3b) Import a ověření vlastních kontrolních součtů, zde SHA256 (soubor kontrolni_soucty.txt musi byt exportován v souladu s 1b)

hasher -p kontrolni_soucty.txt; hasher -d SHA256 *
Processing kontrolni_soucty.txt...
Actual hash of kontrolni_soucty.txt is SHA256: 885e818d42b1d94d247b65f91e50ea097c87cfb2a9b471ab07039371ddd
User checksum not set on 'kontrolni_soucty.txt' nothing to verify.
Processing muj_soubor1...
Actual hash of muj_soubor1 is SHA256: 11a77c3d96c06974b53d7f40a577e6813739eb5c811b2a86f59038ea90add772
User checksum type SHA256 verified OK on muj_soubor1
Processing muj_soubor2...
Actual hash of muj_soubor2 is SHA256: 4551db5fd4d56e27be71a8a9437cfaa4342b8e96a326e2d6427b3aaa5a48
User checksum type SHA256 verified OK on muj_soubor2
Processing muj_soubor3...
Actual hash of muj_soubor3 is SHA256: 2f878d89f48b51fc327951d28d71ffb2b8758c1741feb46d247f1c038c67bdd
User checksum type SHA256 verified OK on muj_soubor3

Instalace aplikace Hasher pro OS Linux

Nejjednodušší možností instalace aplikace Hasher, je použití repozitáře datových úložišť CESNET. Umístění repozitářů pro jednotivé distribuce a postup jejich přidání včetně klíče naleznete níže. V případě, že používáte nepodporovanou distribuci, bude nezbytné provést kompilaci dle návodu.

Ubuntu14.04-17.04 (i386/amd64)

wget ftp://homeproj.cesnet.cz/apt/du/du_squeeze.list -O /etc/apt/sources.list.d/cesnet-du.list
wget ftp://homeproj.cesnet.cz/apt/du/APT-GPG-KEY-du -O - | apt-key add -
apt-get update
apt-get install hasher.x86_64

Debian7-9 (i386/amd64)

wget ftp://homeproj.cesnet.cz/apt/du/du_jessie.list -O /etc/apt/sources.list.d/cesnet-du.list
wget ftp://homeproj.cesnet.cz/apt/du/APT-GPG-KEY-du -O - | apt-key add -
apt-get update
apt-get install hasher.x86_64

openSUSE13.2 & 42.2 (pouze x86_64)

zypper addrepo ftp://homeproj.cesnet.cz/rpm/du-opensuse/stable/x86_64/
zypper install --no-recommends hasher.x86_64

CentOS6 (pouze x86_64)

wget https://du.cesnet.cz/_media/cs/navody/nfs/cesnet-du.repo -O /etc/yum.repos.d/cesnet-du.repo
yum install hasher.x86_64

CentOS7 (pouze x86_64)

wget https://du.cesnet.cz/_media/cs/navody/nfs/cesnet-du7.repo -O /etc/yum.repos.d/cesnet-du.repo
yum install hasher.x86_64


Kompilace aplikace Hasher pro ostatní distribuce

Pro samotnou instalaci je nejdříve nezbytné doinstalovat balíky obsahující potřebné knihovny pro následnou kompilaci. V případě Ubuntu a CentOS se jedná o následující balíky.

Ubuntu 16.10

sudo apt-get install libgnutls28-dev libattr1-dev libglib2.0-dev libgcrypt20 libgcrypt11-dev

CENTOS 7

yum install spice-glib-devel.x86_64 libattr-devel.x86_64 libgcrypt-devel.x86_64 libgcrypt.x86_64 gnutls-devel.x86_64

Dále postupujeme následujícím způsobem:

1. Zdrojové soubory aplikace Hasher naleznete pod následujícím odkazem.
2. Pejděte do adresáře ../gnutls/hasher
3. Nyní je nezbytné provést kompilaci souboru hasher.c na vasem PC pomocí následujícího příkazu.

gcc -g -o hasher hasher.c ``pkg-config --cflags --libs glib-2.0`` -Wall -I. -lgcrypt -lgnutls

4. Nyní můžete soubor hasher přesunout do /usr/local/bin adresáře. Nyní by mělo fungovat klasicke využití aplikace pomocí příkazové řádky, popsané v předcházejících sekcích.

Nyní můžete pokračovat kontrolou integrity dat pro download nebo upload.
Poslední úprava:: 11.01.2018 10:12