هاش كاش

**هاش كاش** هو نظام إثبات العمل يُستخدم للحد من البريد الإلكتروني غير المرغوب فيه وهجمات حرمان من الخدمة. تم اقتراح هاش كاش في عام 1997 من قبل آدم باك وتم وصفه بشكل أكثر رسمية في ورقة باك عام 2002 بعنوان "هاش كاش – إجراء مضاد لحرمان الخدمة. في هاش كاش، يجب على العميل ربط رقم عشوائي بسلسلة نصية عدة مرات وتجزئة هذه السلسلة الجديدة. ثم يجب عليه تكرار ذلك مرارًا وتكرارًا حتى يتم العثور على تجزئة تبدأ بعدد معين من الأصفار.

## الخلفية
فكرة مطالبة المستخدم بحساب دالة متوسطة الصعوبة، ولكن ليست مستعصية..." تم اقتراحها من قبل سينثيا دورك وموني نعور في ورقتهم البحثية عام 1992 التسعير عبر المعالجة أو مكافحة البريد غير المرغوب فيه.

## آلية العمل
هاش كاش هو خوارزمية إثبات العمل تعتمد على التجزئة التشفيرية وتتطلب قدرًا قابلًا للتحديد من العمل لحسابها، ولكن يمكن التحقق من الإثبات بكفاءة. لاستخدامات البريد الإلكتروني، تتم إضافة ترميز نصي لطابع هاش كاش إلى رأس البريد الإلكتروني لإثبات أن المرسل قد أنفق قدرًا متواضعًا من وقت وحدة المعالجة المركزية في حساب الطابع قبل إرسال البريد الإلكتروني. بمعنى آخر، نظرًا لأن المرسل استغرق قدرًا معينًا من الوقت لتوليد الطابع وإرسال البريد الإلكتروني، فمن غير المرجح أن يكون مرسل رسائل غير مرغوب فيها. يمكن للمستلم، بتكلفة حسابية ضئيلة، التحقق من أن الطابع صالح. ومع ذلك، فإن الطريقة الوحيدة المعروفة للعثور على رأس بالخصائص اللازمة هي هجوم القوة الغاشمة، أي تجربة قيم عشوائية حتى يتم العثور على الإجابة الصحيحة؛ على الرغم من أن اختبار سلسلة فردية سهل، إلا أن الإجابات المرضية نادرة بما يكفي لدرجة أنها ستتطلب عددًا كبيرًا من المحاولات للعثور عليها.

الفرضية هي أن مرسلي البريد غير المرغوب فيه، الذين يعتمد نموذج أعمالهم على قدرتهم على إرسال أعداد كبيرة من رسائل البريد الإلكتروني بتكلفة قليلة جدًا لكل رسالة، سيتوقفون عن تحقيق الربح إذا كانت هناك تكلفة صغيرة لكل رسالة غير مرغوب فيها يرسلونها. يمكن للمستلمين التحقق مما إذا كان المرسل قد قام بمثل هذا الاستثمار واستخدام النتائج للمساعدة في تصفية البريد الإلكتروني.

## التفاصيل التقنية
سطر الرأس يبدو كالتالي تقريبًا:
 X-Hashcash: 1:20:1303030600:adam@cypherspace.org::McMybZIhxKXu57jd:ckvi

يحتوي الرأس على:
* *الإصدار (ver)*: إصدار تنسيق هاش كاش، 1 (الذي يحل محل الإصدار 0).
* *البتات (bits)*: عدد البتات ذات القيمة صفر (الجزء الأولي من الصورة العكسية) في الكود الممغنط.
* *التاريخ (date)*: الوقت الذي تم فيه إرسال الرسالة، بالتنسيق .
* *المورد (resource)*: سلسلة بيانات المورد المنقول، مثل عنوان IP أو عنوان بريد إلكتروني.
* *الامتداد (ext)*: امتداد (اختياري؛ يتم تجاهله في الإصدار 1).
* *العشوائي (rand)*: سلسلة من الأحرف العشوائية، مشفرة بتنسيق base-64.
* *العداد (counter)*: عداد ثنائي، مشفر بتنسيق base-64.

يحتوي الرأس على عنوان البريد الإلكتروني للمستلم، وتاريخ الرسالة، ومعلومات تثبت أن الحساب المطلوب قد تم تنفيذه. وجود عنوان البريد الإلكتروني للمستلم يتطلب حساب رأس مختلف لكل مستلم. يسمح التاريخ للمستلم بتسليم الرؤوس المستلمة مؤخرًا والتأكد من أن الرأس فريد لرسالة البريد الإلكتروني.

### جانب المرسل
يقوم المرسل بإعداد رأس ويضيف قيمة عداد مهيأة برقم عشوائي. ثم يحسب تجزئة SHA-1 بطول 160 بت للرأس. إذا كانت أول 20 بت (أي أهم 5 أرقام ست عشرية) من التجزئة كلها أصفار، فهذا رأس مقبول. إذا لم يكن الأمر كذلك، فإن المرسل يزيد قيمة العداد ويحاول حساب التجزئة مرة أخرى. من بين 2160 قيمة تجزئة محتملة، هناك 2140 قيمة تجزئة تفي بهذا المعيار. وبالتالي فإن فرصة اختيار رأس عشوائيًا سيكون بداية تجزئته 20 صفرًا هي 1 من 220 (حوالي 106، أو حوالي واحد من مليون). عدد المرات التي يحتاج فيها المرسل إلى المحاولة للحصول على قيمة تجزئة صالحة يتم نمذجته بواسطة التوزيع الهندسي. وبالتالي، في المتوسط، سيتعين على المرسل تجربة 220 قيمة للعثور على رأس صالح. بالنظر إلى التقديرات المعقولة للوقت اللازم لحساب التجزئة، سيستغرق هذا حوالي ثانية واحدة للعثور عليه. لا توجد طريقة أكثر كفاءة من هذا النهج القائم على القوة الغاشمة معروفة للعثور على رأس صالح.

لن يتأثر المستخدم العادي على جهاز كمبيوتر شخصي بشكل كبير بوقت المعالجة المطلوب لتوليد سلسلة هاش كاش. ومع ذلك، سيعاني مرسلو البريد غير المرغوب فيه بشكل كبير بسبب العدد الكبير من الرسائل غير المرغوب فيها التي يرسلونها.

### جانب المستلم
يتم تنفيذ النظام تقنيًا بالخطوات التالية:
* يحسب كمبيوتر المستلم تجزئة SHA-1 بطول 160 بت للسلسلة بأكملها (مثل، ). يستغرق هذا حوالي ميكروثانيتين على جهاز بتردد 1 جيجا هرتز، وقت أقل بكثير من الوقت الذي تستغرقه بقية رسالة البريد الإلكتروني ليتم استلامها. إذا لم تكن أول 20 بت كلها صفرًا، فإن التجزئة غير صالحة. (قد تتطلب الإصدارات اللاحقة المزيد من البتات لتكون صفرًا مع زيادة سرعات معالجة الآلات.)
* يتحقق كمبيوتر المستلم من التاريخ في الرأس (مثل، ، الذي يمثل التاريخ 8 أبريل 2006). إذا لم يكن ضمن يومين من التاريخ الحالي، فهو غير صالح. (تعوّض نافذة اليومين عن اختلاف التوقيت ووقت توجيه الشبكة بين الأنظمة المختلفة.)
* يتحقق كمبيوتر المستلم مما إذا كان عنوان البريد الإلكتروني في سلسلة التجزئة يطابق أيًا من عناوين البريد الإلكتروني الصالحة المسجلة لدى المستلم، أو يطابق أيًا من قوائم البريد التي يشترك فيها المستلم. إذا لم يتم العثور على تطابق، فإن سلسلة التجزئة غير صالحة.
* يقوم كمبيوتر المستلم بإدخال سلسلة التجزئة في قاعدة بيانات. إذا كانت السلسلة موجودة بالفعل في قاعدة البيانات مما يشير إلى محاولة إعادة استخدام سلسلة التجزئة، فهي غير صالحة.

إذا اجتازت سلسلة التجزئة جميع هذه الاختبارات، فإنها تعتبر سلسلة تجزئة صالحة. تستغرق كل هذه الاختبارات وقتًا ومساحة قرص أقل بكثير من استلام محتوى جسم رسالة البريد الإلكتروني.

### الجهد المطلوب
الوقت اللازم لحساب مثل هذه الصورة الأولية الجزئية للتجزئة هو أسي بالنسبة لعدد البتات الصفرية. لذا يمكن إضافة بتات صفرية إضافية مضاعفة مقدار الوقت اللازم لحساب تجزئة مع كل بت صفري إضافي حتى يصبح مكلفًا جدًا لمرسلي البريد غير المرغوب فيه توليد أسطر رأس صالحة.

يكون التأكيد على أن الرأس صالح أسرع بكثير ويستغرق دائمًا نفس الوقت بغض النظر عن عدد البتات الصفرية المطلوبة للرأس الصالح، حيث أن هذا يتطلب عملية تجزئة واحدة فقط.

## المزايا والعيوب
تمتلك نظام هاش كاش ميزة على مقترحات الدفع الصغير التي تنطبق على البريد الإلكتروني الشرعي حيث أنه لا تتضمن أموال حقيقية. لا يحتاج المرسل ولا المستلم إلى الدفع، وبالتالي يتم تجنب المشكلات الإدارية المشاركة في أي نظام دفع صغير والقضايا الأخلاقية المتعلقة بالتحصيل مقابل البريد الإلكتروني تمامًا. من ناحية أخرى، نظرًا لأن هاش كاش يتطلب موارد حسابية محتملة كبيرة لإنفاقها على كل رسالة بريد إلكتروني يتم إرسالها، فمن الصعب بعض الشيء ضبط متوسط الوقت المثالي الذي يرغب العملاء في إنفاقه لحساب رأس صالح. قد يعني هذا التضحية بإمكانية الوصول من الأنظمة المضمنة منخفضة الموارد أوالمخاطرة بعدم تحدي المضيفين المعاديين بشكل كافٍ لتوفير فلتر فعال للبريد غير المرغوب فيه.

هاش كاش بسيط إلى حد ما في التنفيذ في وكلاء مستخدمي البريد ومرشحات البريد غير المرغوب فيه. لا حاجة لخادم مركزي. يمكن نشر هاش كاش تدريجيًا - يتم تجاهل رأس هاش كاش الإضافي عند استلامه من قبل عملاء البريد الذين لا يفهمونه.

خلص أحد التحليلات المحتملة إلى أن أحد السيناريوهين التالين فقط هو المرجح: إما أن يتم حظر البريد الإلكتروني غير غير المرغوب فيه بسبب نقص قوة المعالجة لدى المرسل، أو أن البريد الإلكتروني غير المرغوب فيه سيستمر في المرور. تتضمن أمثلة لكل منهما، على التوالي، طوبولوجيا مركزية للبريد الإلكتروني مثل القائمة البريدية، حيث يتعين على بعض الخوادم إرسال عدد هائل من رسائل البريد الإلكتروني الشرعية، وشبكات البوتنت أو مزارع المجموعات التي يمكن لمرسلي البريد غير المرغوب فيها من خلالها زيادة قوة معالجتهم بشكل هائل.

يمكن معالجة معظم هذه المشكلات. على سبيل المثال، قد تنتهي صلاحية شبكات البوتنت بشكل أسرع لأن المستخدمين يلاحظون الحمل العالي لوحدة المعالجة المركزية ويتخذون إجراءات مضادة، ويمكن تسجيل خوادم القوائم البريدية في القوائم البيضاء على أجهزة المشتركين وبالتالي يتم إعفاؤها من تحديات هاش كاش.

المشكلة المتوقعة الأخرى هي أن أجهزة الكمبيوتر تستمر في أن تصبح أسرع وفقًا لقانون مور. لذا يجب زيادة صعوبة الحسابات المطلوبة بمرور الوقت. ومع ذلك، من المتوقع أن تستخدم البلدان النامية أجهزة قديمة، مما يعني أنها ستصعب عليها المشاركة في نظام البريد الإلكتروني. ينطبق هذا أيضًا على الأفراد ذوي الدخل المنخفض في البلدان المتقدمة الذين لا يستطيعون تحمل تكلفة أحدث الأجهزة.

مثل هاش كاش، تستخدم العملات المشفرة دالة تجزئة كنظام إثبات العمل الخاص بها. أدى ظهور العملات المشفرة إلى خلق طلب على أجهزة التعدين القائمة على الدوائر المتكاملة الخاصة بالتطبيقات . على الرغم من أن معظم العملات المشفرة تستخدم دالة التجزئة SHA-256، إلا أن نفس تكنولوجيا يمكن استخدامها لإنشاء محللي هاش كاش أسرع بثلاث مراتب قدرة من وحدة المعالجة المركزية للمستهلك، مما يقلل من العائق الحسابي لمرسلي البريد غير المرغوب فيه.

## التطبيقات
### تعدين البيتكوين
على عكس تطبيق هاش كاش في البريد الذي يعتمد على المستلمين لتحديده يدويًا بهدف *ردع* المرسلين الخبيثين، تستخدم شبكة عملة البيتكوين المشفرة تحديًا مختلفًا قائمًا على التجزئة كإثبات عمل لـ *تمكين* تعدين البيتكوين التنافسي. يقوم عامل منجم البيتكوين بتشغيل برنامج كمبيوتر يجمع المعاملات غير المؤكدة من المستخدمين على الشبكة. معًا، يمكن أن تشكل هذه "كتلة" وتحقق دفعًا للمعدّن، ولكن يتم قبول الكتلة من قبل الشبكة فقط إذا استوفى تجزئتها الهدف الصعوبة للشبكة، كما في هاش كاش، يجب على المعدنين اكتشاف العدد المستخدم لمرة واحدة عن طريق القوة الغاشمة والذي، عند تضمينه في الكتلة، يؤدي إلى تجزئة مقبولة.

### مرشحات البريد العشوائي
تم استخدام هاش كاش كحل محتمل لـالإيجابيات الخاطئة مع أنظمة تصفية البريد العشوائي الآلية، حيث نادرًا ما يتأثر المستخدمون الشرعيين بالوقت الإضافي الذي يستغرقه تعدين طابع. كان قادرًا على التحقق من طوابع هاش كاش منذ الإصدار 2.70 حتى الإصدار 3.4.2، مع تعيين درجة سالبة (أي أقل احتمالية أن تكون غير مرغوب فيها) للطوابع الصالحة وغير المنفقة. ومع ذلك، على الرغم من أن الإضافة مفعلة افتراضيًا، إلا أنها لا تزال تحتاج إلى التهيئة بقائمة أنماط العناوين التي يجب أن تطابق حقل المورد في هاش كاش قبل استخدامها. تمت إزالة الدعم من الجذع لـ سبام في 2019-06-26، مما أثر على الإصدار 3.4.3 وما بعده.

### عملاء البريد الإلكتروني
مشروع برنامج Penny Post على سورس فورج ينفذ هاش كاش في عميل البريد الإلكتروني موزيلا ثندربرد. تم تسمية المشروع على اسم التوافر التاريخي لخدمات البريد التقليدية التي تكلف المرسل بنس واحد فقط؛ انظر بيني بوست لمعلومات عن مثل هذه الخدمات البريدية في التاريخ.

### ختم بريد إلكتروني
صممت مايكروسوفت أيضًا ونفذت مواصفات مفتوحة قديمة أصبحت الآن مهملة  تسمى ختم البريد الإلكتروني. إنها تشبه هاش كاش. كان هذا جزءًا من مبادرة مايكروسوفت للحد من البريد العشوائي المنسق سي اس ار اي . يتم تنفيذ نوع ختم البريد الإلكتروني من مايكروسوفت من هاش كاش في مكونات البنية التحتية للبريد في مايكروسوفت إكستشينج، وآوتلوك، وهوتميل.

الاختلافات في التنسيق بين هاش كاش وختم البريد الإلكتروني من مايكروسوفت هي أن ختم البريد يقوم بتجزئة جسم الرسالة بالإضافة إلى المستلم، ويستخدم نسخة معدلة من اس اتش اي -1 كدالة التجزئة، ويستخدم ألغازًا فرعية متعددة لتقليل التباين في إثبات العمل.

### المدونات
مثل البريد الإلكتروني، غالبًا ما تتعرض المدونات لضحايا البريد العشوائي في التعليقات.

استخدم بعض أصحاب المدونات نصوص هاش كاش مكتوبة بلغةجافا سيكربت لإبطاء مرسلي التعليقات غير المرغوب فيها. تزعم بعض النصوص مثل دبليو بي هاش كاش تنفيذ هاش كاش ولكنها بدلاً من ذلك تعتمد على تعمية جافا سيكربت لإجبار العميل على توليد مفتاح مطابق؛ بينما يتطلب هذا بعض قوة المعالجة، إلا أنه لا يستخدم خوارزمية هاش كاش أو طوابع هاش كاش.

### السمعة
في السوق الرقمية، يمكن لمزودي الخدمات استخدام هاش كاش لبناء سمعة لجذب العملاء. لبناء السمعة، يختار موفر الخدمة أولاً مفتاحًا عامًا كمعرف له، ثم يكتشف عن طريق القوة الغاشمة رقم بحيث، عند ربطه بالمعرف، يؤدي إلى ملخص تجزئة به عدة أصفار في المقدمة. كلما زادت عدد الأصفار، ارتفعت السمعة.

## الملكية الفكرية
هاش كاش ليس محميًا ببراءة اختراع، والتنفيذ المرجعي ومعظم التطبيقات الأخرى هي برمجيات حرة. يتم تضمين هاش كاش أو هو متاح للعديد من توزيعات لينكس.

أدلتار اس اي ببيانات حول حقوق الملكية الفكرية إلىاي تي اي اف بخصوص ألغاز العميل في سياق طلب تعليقات الذي وصف ألغاز العميل وليس هاش كاش. تضمنت هاش كاش في العنوان وأشارت إلى هاش كاش، ولكن الآلية الموصوفة فيها هي تحدي تفاعلي مع حل معروف يشبه إلى حد كبير ألغاز العميل؛ هاش كاش غير تفاعلي وبالتالي لا يحتوي على حل معروف. على أي حال، لا يمكن أن ينطبق بيان اي بي ار الخاص بـ ار اس اي على هاش كاش لأن هاش كاش تسبق مارس 1997 نشر ألغاز العميل فبراير 1999 وملف براءة اختراع ألغاز العميل US7197639 فبراير 2000.

## انظر أيضًا
* بيني بلاك (مشروع بحثي)

## مراجع

تصنيف:بروتوكولات تعمية
تصنيف:مكافحة البريد العشوائي