Hashcash

A Hashcash  egy munkaellenőrző rendszer, amelyet a spam és a DoS támadások csökkentésére használnak . Később bitcoinban és más kriptovalutákban [1] használták az adatelemző algoritmus részeként . A Hashcash rendszert Adam Back javasolta 1997 májusában . [2]

Hogyan működik

A Hashcash egy proof-of-work algoritmus, amelynek kiszámításához szelektív mennyiségű adatra van szükség, de a bizonyíték hatékonyan ellenőrizhető. Az e-mail felhasználóknak a fejléchez hozzáadták a hashcash bélyegző szövegkódolását, hogy megbizonyosodjanak arról, hogy eltöltött egy kis időt a bélyegző kiszámításával a küldés előtt. Más szóval, a feladó némi időt tölt a bélyegző kiszámításával és a küldéssel, ami szokatlan a spammerek számára. A címzett csekély számítási teljesítmény árán megerősítheti a védjegy érvényességét. A szükséges paraméterekkel rendelkező fejléc megtalálásának egyetlen ismert módja a teljes keresés . És bár egyetlen karakterlánc tesztelése elég egyszerű, kellően kis számú kielégítő válasz esetén kellően sok próbálkozásra lesz szükség a válasz megtalálásához. A hipotézis az, hogy a spammerek, akiknek üzleti modellje azon a képességen alapul, hogy nagyszámú e-mailt küldenek nagyon alacsony üzenetenkénti költséggel, már akkor sem fognak hasznot húzni, ha az általuk küldött spamek költsége alacsony. A címzettek ellenőrizhetik, hogy a feladó követte-e ezt az eljárást, és az eredményeket felhasználhatják az e-mailek szűrésére.

Technikai részletek

A védjegy címe így néz ki: [3]

X-Hashcash: 1:20:1303030600:[email protected]::McMybZIhxKXu57jd:FOvXX

A fejléc a következőket tartalmazza:

ver: A hashcash verzió, 1 (amely felváltotta a 0-s verziót). bitek: A "pre-" (null) bitek száma a hashed kódban. dátum: Az üzenet elküldésének időpontja, ÉÉHHNN[óóó[ss]] formátumban. erőforrás: Információk a feladóról, például IP-cím vagy e-mail cím. ext: Kiterjesztés (opcionális; figyelmen kívül hagyva az 1-es verzióban). rand: [[Base64|base-64]] formátumban kódolt véletlen számokból álló karakterlánc. számláló: Base-64 kódolású bináris számláló.

A fejléc tartalmazza a címzett címét, az üzenet dátumát, valamint az összes szükséges számítás elvégzését igazoló információkat. A címzett címének jelenléte megköveteli, hogy a fejlécet egy másik címhez újra kell számítani. A dátum lehetővé teszi a címzett számára, hogy figyelembe vegye a nemrégiben kapott üzenetek fejléceit, és megbizonyosodjon arról, hogy a bejövő üzenet fejléce egyedi.

A feladó oldalán

A feladó elkészíti a fejlécet, és véletlen számot ad hozzá. Ezután kiszámítja a fejléc 160 bites SHA - 1 hash -jét. Ha a hash első 20 bitje nulla, akkor ez a fejléc elfogadható. Ellenkező esetben a küldő növeli a számlálót, és újra próbálkozik. A 2160 lehetséges hash-érték közül 2140 felel meg ennek a kritériumnak. Így annak a valószínűsége, hogy egy véletlenszerűen kiválasztott hash 20 nullával kezdődik, 1 a 2-hoz 20 . Geometriai eloszlás modellezi azoknak a próbálkozásoknak a számát, amelyeket a küldőnek meg kell tennie, mielőtt érvényes hash-értéket kapna . Ezért a küldőnek átlagosan 220 (valamivel több mint egymillió ) véletlen számot kell kipróbálnia, hogy megtalálja a megfelelő fejlécet. A hash kiszámításához szükséges idő ésszerű becslései alapján ez körülbelül 1 másodpercet vesz igénybe. Ugyanakkor nincs más hatékony módszer az érvényes cím megtalálására, mint a nyers erő.

Az átlagos PC-felhasználó nem tapasztal jelentős problémákat a hashcash karakterlánc létrehozásához szükséges idő miatt. Ugyanakkor a spammerek jelentős problémákkal szembesülnek, mivel nagyon sok levelet küldenek.

A címzett oldalán

Technikailag a rendszer megvalósítása a következő lépésekben történik: a címzett számítógépe kiszámítja a teljes karakterlánc 160 bites SHA-1 kivonatát (például "1:20:060408:[email protected]::1QTjaYd7niiQA/sc:ePa"). Ez körülbelül két mikroszekundumot vesz igénybe egy 1 GHz-es processzoron, ami sokkal kevesebb, mint az e-mail üzenet többi részének letöltéséhez szükséges idő. Ha az első 20 bit nem nulla, akkor a hash érvénytelen (a legutóbbi verziókban több nulla bitre lehet szükség a feldolgozási teljesítmény növekedésével). A címzett számítógépe ellenőrzi a dátumot a fejlécben (például , "060408"ami 2006. április 8-át jelenti). Ha az aktuális dátumtól való eltérés több mint két nap, a hash érvénytelen (a kétnapos ablak kompenzálja a különböző rendszerek közötti idő- és utazási idő különbségét a hálózaton). A címzett számítógépe ellenőrzi, hogy a hash sorban lévő e-mail egyezik-e a címzett által regisztrált e-mail címekkel, vagy a címzett által előfizetett listán szereplő bármely címmel. Ha nincs egyezés, a hash érvénytelen. A címzett számítógépe hozzáadja a hash karakterláncot az adatbázishoz. Ha egy ilyen karakterlánc már jelen van az adatbázisban (így kiderül, hogy megpróbálták újrafelhasználni a hash karakterláncot), akkor a hash érvénytelen. Ha a hash karakterlánc minden teszten megfelel, akkor érvényesnek minősül. Mindezek a tesztek nem foglalnak sok időt és lemezterületet az e-mail nagy részének megérkezéséhez képest.

Szükséges költségek

A hash ütközések kiszámításához szükséges idő exponenciálisan növekszik a null bitek számának növekedésével. Ez azt jelenti, hogy nulla bitet lehet hozzáadni mindaddig, amíg az új érvényes hash karakterláncok létrehozása túl drága lesz a spammerek számára (minden további nullával megkétszerezi a hash kiszámításához szükséges időt). A cím érvényességének megerősítése ugyanennyi időt vesz igénybe. Nem számít, hány nulla kell egy érvényes fejléchez, mivel csak egy hash műveletre van szükség.

Előnyök és hátrányok

A hashcash rendszer előnye az e-mailekre alkalmazott mikrofizetési ajánlatokkal szemben, mivel nem jár valódi pénz bevonásával. Sem a feladónak, sem a címzettnek nem kell fizetnie. Ily módon elkerülhető a mikrofizetésekkel kapcsolatos minden adminisztratív probléma.

Másrészt a hashcash jelentős számítási erőforrásokat igényel az egyes üzenetek elküldéséhez. Meglehetősen nehéz sikeresen megtalálni azt az átlagos időt, amelyet az ügyfelek hajlandóak a cím kiszámítására fordítani. Ez azt jelentheti, hogy az alacsony szintű beágyazott rendszerek vagy feláldozzák a rendelkezésre állást, vagy nem nyújtanak elegendő védelmet az ellenséges gazdagépekkel szemben a spam hatékony kiszűréséhez.

A Hashcash könnyen megvalósítható egyéni levelezőprogramokhoz és spamszűrőkhöz. Nincs szükség központi szerverre. A rendszer következetesen alkalmazható – az extra hashcash fejlécet figyelmen kívül hagyja, ha olyan levelezőkliens kapja meg, amely nem érti.

Az egyik elemzés [4] arra a következtetésre jutott, hogy nagy valószínűséggel vagy a feladó feldolgozási teljesítményének hiánya miatt akad el a levél, vagy a spam mégis átjut. Példák mindegyikre egy központi e-mail topológia (például egy levelezőlista ), amelyben egyes szervereknek hatalmas mennyiségű legitim e-mailt kell küldeniük; és botneteket vagy klaszterfarmokat, amelyekből a spammerek óriási mértékben növelhetik feldolgozási teljesítményüket. A legtöbb ilyen probléma megoldható. Például a botneteket gyorsabban lehet észlelni, mert a felhasználók észreveszik a magas CPU-használatot, és megtorolhatják, a levelezőlistát használó szervereket pedig az előfizetői kliensek engedélyezőlistára tehetik, így mentesülnek a Hashcash-problémák alól. Általában azonban komoly akadályokat jelentenek a Hashcash bevezetése előtt, amelyeket még meg kell oldani.

Egy másik előre látható probléma az, hogy a számítógépek teljesítménye a Moore-törvénynek megfelelően tovább növekszik . Így a szükséges számítások bonyolultságát növelni kell. A fejlődő országok azonban továbbra is régi berendezéseket fognak használni, ami azt jelenti, hogy nehézséget okoz számukra az e-mail rendszer használata. Ez vonatkozik a fejlett országok alacsony jövedelmű egyénekre is, akik nem engedhetik meg maguknak a legújabb felszerelést.

Alkalmazás

Bitcoin

A Hashcash elvileg hasonló a " Bitcoin "-ban használt érvényesítési rendszerekhez. Ha a levelezőalkalmazások azt feltételezik, hogy a címzett manuálisan szabályozza az érvényesítő rendszerek munkaterhelését, hogy a Moore-törvény szerint feldolgozási teljesítményt nyerjen, akkor a Bitcoin egy p2p hálózatot képvisel, amely belsőleg automatikusan beállítja a munkaterhelést. Ezenkívül a levéltől eltérően, amely 20 bitet használ (nagyságrendileg 1 millió próbálkozás a sikeres kereséshez), a bitcoin 67,5 bitet (nagyságrendileg 200 millió billió próbálkozásra van szükség) és változó nehézségi feltételt használ az egyik blokk létrehozásához, amely 10 percenként jönnek létre. A Bitcoinban az algoritmust úgy igazították, hogy támogassa a tört biteket (az eredeti HashCash specifikáció a 2-es egész hatványok beállítására korlátozódott), ezáltal nagyobb pontosságot ért el.

Spamszűrők

A Hashcash-t potenciális megoldásként használják az automatikus spamszűrés problémájára, mivel az átlagos felhasználó nem tapasztalja meg a megjelöléshez szükséges plusz időt. [5]

A SpamAssassin a 2.70-es verzió óta ellenőrzi a hashcash bélyegeket úgy, hogy negatív pontszámokat (azaz kevésbé spamszerűt) rendel a korábban nem használt hashcash bélyegekhez. A 3.3x verzióban (a cikk írásakor a legújabb verzió) a rendszer bónuszpontokat ad minden 20 bites vagy több pontért (maximum -5 pontot 26 bites vagy több pontért). Azonban egy kis büntetés kerül rögzítésre a már használt jelért. [6]

E-mail kliensek

A SourceForge Penny Post [7] a Hashcash-t implementálja a Mozilla Thunderbird e- mail klienshez . [8] A projekt egy megfizethető postaszolgáltatásról kapta a nevét, amely csak egy fillérbe került a feladónak (ilyen levelezőszolgáltatásokról a Penny Post oldalán olvashat ).

E-mail postai bélyegző

A Microsoft egy már elavult [9] nyílt specifikációt is tervezett és implementált, amely hasonló a hashcash-hez, de azzal nem kompatibilis, az Email Postmark [10] , amely a Coordinated Spam Reduction Initiative (CSRI) részévé vált. [11] A Microsoft által javasolt hashcash-változatot a Microsoft levelezőszolgáltatásainak összetevőiben valósítják meg, mint például az Exchange, az Outlook és a Hotmail. A hashcash és a Microsoft bélyegzők közötti formátumbeli különbség az, hogy a Microsoft bélyegzője az e-mail törzsét is kivonatolja, és egy módosított SHA-1- et is használ hash funkcióként.

Blogok

Nagyon hasonló módon a blogok a kommentspam áldozatává válnak. Egyes blogtulajdonosok JavaScriptben írt hashcash szkripteket használtak a spamküldők megjegyzéseinek lassítására. [12] Egyes szkriptek (mint például a wp-hashcash) azt állítják, hogy implementálják a Hashcash-t, de a JavaScript obfuszkációra támaszkodnak, hogy a klienst a megfelelő kulcs generálására kényszerítsék; bár némi feldolgozási teljesítményt igényel, nem használják a Hashcash vagy Hashcash bélyegző algoritmust.

Szellemi tulajdon

A Hashcash nincs szabadalmaztatva, a referencia megvalósítás [13] és a legtöbb egyéb megvalósítás ingyenes szoftver. A Hashcash számos Linux disztribúció része vagy elérhető . Az RSA IPR-nyilatkozatokat tett az IETF -nek a kliens-rejtvények algoritmusairól [14] egy RFC [ 15] kontextusában, amely különféle kliens-rejtvényeket (nem hashcash-t) ír le. Az RFC beépítette a hashcash-t a cikkbe, és megemlítette az algoritmust, de az abban leírt mechanizmus inkább egy interaktív problémát old meg, ami inkább a Client-Puzzle-hoz hasonlít. A Hashcash nem interaktív, ezért nincsenek ismert megoldásai. Mindenesetre az RSA IPR nyilatkozata nem alkalmazható hashcash-re, mivel a hashcash megelőzi [2] (1997. március), a Client-puzzle [16] (1999. február) és az US7197639 [17] (2000. február ) szabadalmi bejelentést .

Lásd még

Jegyzetek

  1. Kriptovaluták valós időben . Investing.com . Letöltve: 2017. augusztus 9. Az eredetiből archiválva : 2017. augusztus 9..
  2. 1 2 Részleges hash ütközésen alapuló postai séma (Txt). Hashcash.org. Letöltve: 2014. október 13. Az eredetiből archiválva : 2015. szeptember 24..
  3. hashcash - hashcash anti-spam / szolgáltatásmegtagadás ellenintézkedés eszköz (Txt). Hashcash.org. Letöltve: 2014. október 13. Az eredetiből archiválva : 2016. március 3.
  4. Hashcash munkaellenőrző papír (PDF). Hashcash.org. Letöltve: 2014. október 13. Az eredetiből archiválva : 2016. január 15.
  5. Hashcash GYIK . Hashcash.org (2003. június 26.). Letöltve: 2014. február 11. Az eredetiből archiválva : 2013. október 12..
  6. SpamAssassin: Elvégzett tesztek: v3.3.x (lefelé irányuló kapcsolat) . Spamassassin.apache.org (2006. december 21.). Letöltve: 2014. február 11. Az eredetiből archiválva : 2014. február 16.. 
  7. Penny Post szoftverprojekt a SourceForge-on . Pennypost.sourceforge.net. Hozzáférés időpontja: 2014. október 13. Az eredetiből archiválva : 2008. augusztus 21..
  8. Penny Post: Mit értesz postai bélyeg alatt? . Pennypost.sourceforge.net (2008. június 16.). Letöltve: 2014. február 11. Az eredetiből archiválva : 2014. február 19..
  9. Megszűnt szolgáltatások és módosított funkciók az Outlook 2010-ben . office.microsoft.com. Hozzáférés dátuma: 2014. október 13. Az eredetiből archiválva : 2014. október 18.
  10. E-mail postai bélyegző érvényesítési algoritmusa (PDF). download.microdoft.com. Letöltve: 2014. október 13. Az eredetiből archiválva : 2015. november 26..
  11. A koordinált levélszemét-csökkentési kezdeményezés: Technológiai és politikai javaslat (PDF). Letöltve: 2014. február 11. Az eredetiből archiválva : 2013. október 21..
  12. WP-Hashcash, a Wordpress blogszoftver beépülő modulja Archiválva : 2005. október 27. amely egy Hashcash-szerű szolgáltatást valósít meg, JavaScriptben írt, Elliott Back
  13. C referencia implementáció . hashcash.org. Letöltve: 2014. október 13. Az eredetiből archiválva : 2015. december 9..
  14. RSA Security Inc. szabadalmi bejelentést nyújtott be (09/496,824 amerikai sorozatszám) (Txt). ietf.org. Letöltve: 2014. október 13. Az eredetiből archiválva : 2008. szeptember 26..
  15. SIP számítási rejtvények . Tools.ietf.org. Letöltve: 2014. október 13. Az eredetiből archiválva : 2016. március 3..
  16. Ügyfélrejtvények . Hozzáférés időpontja: 2014. október 13. Az eredetiből archiválva : 2016. március 4.
  17. Ügyfélrejtvény szabadalmi bejelentés . Google.com. Letöltve: 2014. október 13. Az eredetiből archiválva : 2015. december 8..

Irodalom

Linkek