Portál AbcLinuxu, 21. května 2025 01:07
Dostal som taký nápad (v súvislosti s aktuálnou kauzou na reddite keď CEO redditu upravil komentár používateľa). Pri štandardnom PGP (konkrétne časť týkajúca sa podpisovania správ) síce nie je problém vytvoriť pár kľúčov a podpísať komentár, ale to môže spraviť hocikto. Bežný počítačový nerd moc s ľudmi nekomunikuje takže vytvoriť web of trust môže byť dosť problém. Navyše u vymysleného anonymného username to ani nejde.
Napadlo ma pridať do podpisu okrem toho aj proof of work. Pri podpisovaní komentára by sa okrem samotného podpísania vyriešila nejaká úloha, každý by si mohol nastaviť žložitosť akú chce, napr. 5 minút na jeden komentár. Každý komentár by obsahoval hash predošlého takže by sa spotrebovaný výkon potrebný na sfalšovanie dalšieho komentára stále narastal. Raz za čas by ste mohli komentáru venovať pár hodín, napr. by ste nechali na noc zapnutý PC ak by ste chceli zvýšiť zložitosť hacknutia.
Zmysel by to skutočne ale asi malo len tam kde neviete použiť web of trust (napr. prezývky na diskusnom fóre).
Zaujímavý vedľajší efekt je aj v tom že ak by ste zmazali komentár alebo bol odstránený tak prijdete o zložitosť naviazanú na ten komentár, takže to môže prinútiť dodržiavať pravidlá na servri aby vám neboli vymazané nevhodné príspevky.
Proof of work môže vyzerať nejak takto:
#!/bin/bash F="$1" [ -f "$F" ] || exit 1 TEXT=`cat "$F"` echo "TEXT='$TEXT'" K=`echo -n "$TEXT" | sha256sum` N=0 D=0 T1=`date +%s` while true; do N=$(($N+1)) H=`echo -n "$K $N" | sha256sum | grep $D` if [ "$H" != "" ]; then T2=`date +%s` T=$(($T2-$T1)) echo "Nonce=$N Difficulty=$D SHA256 ($T sekund) Hash=$H" # zvysime zlozitost T1=`date +%s` D=$D"0" fi # [ "$(($N % 1000))" = "0" ] && echo $N done
Skript spustíme takto:
./proof_of_work.sh komentar1.txt TEXT='Tak teda nech sa ti v novej praci dari.' Nonce=1 Zlozitost=0 (0 sekund) Hash=9600ebcd84914365a0bafdf43cb62ecbb7526b6c4bf31fd0c8adfe6d81b6ef06 - Nonce=9 Zlozitost=00 (0 sekund) Hash=d93f046e7c0f2aa0a8a10034a5dce9db65a0e4e39d6ee223bf3af256a9323ece - Nonce=192 Zlozitost=000 (0 sekund) Hash=e9322c96edaac4eb7d7b000abe5e910c5f46200a19adbc016a0efb7e503d7780 - Nonce=2345 Zlozitost=0000 (5 sekund) Hash=41cacc4908ae082a6dc1ddff69d976432c188dd166a5000064e0107382cb2ef9 - Nonce=19191 Zlozitost=00000 (38 sekund) Hash=4155b29516c9a066369f649b2300cf500000cead74e8df180e95f25e0dfa8184 - ^C
Prvy komentár nájdete tu: https://www.abclinuxu.cz/blog/paulovo_doupe/2016/11/v-nove-praci/diskuse#165 Momentálne ma nenapadlo ako tam pridať proof of work tak som jej výsledok jednoducho truhý krát podpísal.
Proof of work overíme takto:
$ K=`echo -n "Tak teda nech sa ti v novej praci dari." | sha256sum` $ echo -n "$K 19191" | sha256sum | grep 00000 4155b29516c9a066369f649b2300cf500000cead74e8df180e95f25e0dfa8184 -
Druhý komentár je tu: https://www.abclinuxu.cz/blog/gsnak/2016/8/jak-znova-zacat-s-jednocipakmi/diskuse#37 V jeho tele je odkaz na predošlý komentár. Môj verejný kľúč je https://www.abclinuxu.cz/lide/gsnak/gpg Celé toto demo berte len ako príklad, nijak to nerieši konce riadkov a komentáre vyzerajú hnusne, odkaz na predošlý komentár je mätúci, atď... Tiež si nie som istý či by odkaz na predošlý komentár mal byť v tele komentára alebo stačí tam kde je nonce.
Tiež som si práve uvedomil že som do druhého komentára zabudol dať nejaký hash prvého takže zložitosť druhého nechráni zložitosť prvého, toto by tam zrejme trebalo pridať.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.