GNUnet

GNUnet هو إطار برمجي لشبكات الند للند اللامركزية ، وهو حزمة رسمية من حزم GNU . يوفر هذا الإطار تشفير الروابط ، واكتشاف النظراء ، وتخصيص الموارد ، والتواصل عبر العديد من بروتوكولات النقل (مثل TCP و UDP و HTTP و HTTPS و WLAN و Bluetooth )، بالإضافة إلى خوارزميات أساسية متنوعة للند للند للتوجيه والبث المتعدد وتقدير حجم الشبكة. [ 5 ] [ 6 ]
تعتمد بنية شبكة GNUnet الأساسية على بنية الشبكة المتشابكة . تتضمن GNUnet جدول تجزئة موزع (DHT)، وهو نسخة عشوائية من Kademlia ، قادرة على توجيه البيانات بكفاءة في شبكات العالم الصغير . توفر GNUnet خيار " بنية F2F " لتقييد الاتصالات بأصدقاء المستخدم الموثوق بهم فقط. وبذلك، يستطيع أصدقاء أصدقاء المستخدم (وهكذا) تبادل الملفات بشكل غير مباشر مع جهاز المستخدم، دون استخدام عنوان IP الخاص به مباشرةً.
يستخدم GNUnet مُعرّفات الموارد الموحدة (غير معتمدة من قِبل هيئة IANA ، على الرغم من تقديم طلب بذلك). تتكون مُعرّفات GNUnet من جزأين رئيسيين: اسم الوحدة ومعرّفها الخاص. يكون مُعرّف GNUnet على الشكل التالي: حيث يُمثّل اسم الوحدة، بينما يُمثّل المعرّف سلسلة نصية خاصة بها.gnunet://module/identifier
كُتبت قاعدة الشفرة الأساسية بلغة C ، ولكن توجد روابط بلغات أخرى لتوفير واجهة برمجة تطبيقات (API) لتطوير إضافات بتلك اللغات. يُعدّ GNUnet جزءًا من مشروع GNU ، وقد اكتسب اهتمامًا في أوساط مجتمع المبرمجين بعد الكشف عن ثغرة PRISM . [ 7 ]
يتألف نظام GNUnet من عدة أنظمة فرعية، من أهمها نظام النقل ونظام النواة. [ 8 ] يوفر نظام النقل اتصالات غير آمنة على مستوى طبقة الربط، بينما يوفر نظام النواة اكتشاف النظراء والتشفير. [ 9 ] تُبنى تطبيقات متنوعة فوق نظام النواة.
يتضمن GNUnet تطبيقات P2P متنوعة في التوزيعة الرئيسية للإطار، بما في ذلك مشاركة الملفات والدردشة وشبكة VPN؛ بالإضافة إلى ذلك، تعمل بعض المشاريع الخارجية (مثل secushare) على توسيع بنية GNUnet التحتية.
لا علاقة لبروتوكول GNUnet ببروتوكول Gnutella P2P الأقدم. Gnutella ليس مشروعًا رسميًا من مشاريع GNU، بينما GNUnet كذلك. [ 10 ]
ينقل
في الأصل، استخدم برنامج GNUnet بروتوكول UDP للنقل الأساسي. [ 11 ] تم توسيع نظام النقل الفرعي لبرنامج GNUnet ليشمل خيارات إضافية، مثل TCP وSMTP. [ 12 ] تم إيقاف دعم الأخير لاحقًا بسبب نقص الصيانة. [ 13 ]
منفذ الاتصال، المسجل رسميًا لدى IANA ، هو 2086 ( TCP + UDP ). [ 14 ]
نظام الثقة
يوفر GNUnet نظام ثقة قائم على نموذج اقتصادي قائم على الفائض. [ 15 ] وقد استُمدت فكرة استخدام النظام الاقتصادي من شبكة MojoNation . [ 16 ]
لا توجد جهات موثوقة في شبكة GNUnet، لذا يستحيل الحفاظ على سمعة عالمية. بدلاً من ذلك، يحتفظ كل نظير بمستوى ثقته الخاص لكل رابط من روابطه المحلية.
عندما تكون الموارد، مثل عرض النطاق الترددي ووقت وحدة المعالجة المركزية، فائضة، يقوم النظير بتوفيرها لجميع الجيران الطالبين دون تقليل الثقة أو فرض أي رسوم عليهم. أما عندما يتعرض أحد العقد لضغط كبير، فإنه يرفض طلبات الجيران الأقل ثقة ويفرض رسومًا على الآخرين بتقليل ثقتهم به.
ملف
يتمثل التطبيق الأساسي حاليًا في مشاركة الملفات المجهولة والمحصنة ضد الرقابة ، مما يسمح للمستخدمين بنشر أو استرجاع المعلومات بجميع أنواعها بشكل مجهول. يُطلق على بروتوكول GNUnet الذي يوفر إخفاء الهوية اسم GAP (بروتوكول إخفاء الهوية في GNUnet). [ 17 ] كما يمكن لنظام ملفات GNUnet استخدام مكتبة GNU libextractor لإضافة بيانات وصفية تلقائيًا إلى الملفات المشتركة .
ترميز الملف
يتم ترميز الملفات التي تتم مشاركتها مع GNUnet باستخدام ECRS (الترميز لمشاركة الملفات المقاومة للرقابة). [ 18 ]
يتم تمثيل جميع المحتويات على شكل وحدات GBlock. تحتوي كل وحدة GBlock على 1024 بايت. توجد أنواع عديدة من وحدات GBlock، ولكل منها غرض محدد. أي وحدة GBlockيتم التعرف عليه بشكل فريد من خلال تجزئة RIPEMD-160 الخاصة به.
تخزن وحدات DBlocks محتويات الملف الفعلية فقط. يُقسّم الملف عند حدود 1024 بايت، وتُخزّن الأجزاء الناتجة في وحدات DBlocks. تُربط وحدات DBlocks معًا في شجرة Merkle باستخدام وحدات IBlocks التي تخزن مُعرّفات DBlocks.
يتم تشفير الكتل باستخدام مفتاح متماثل مشتق منعندما يتم تخزينها في الشبكة.
الاستفسارات والردود
يتألف بروتوكول إخفاء الهوية GNUnet من استعلامات وردود. وبناءً على حمل عقدة التوجيه، يتم توجيه الرسائل إلى صفر أو أكثر من العقد.
تُستخدم الاستعلامات للبحث عن المحتوى وطلب كتل البيانات.
يحتوي الاستعلام على مُعرّف المورد، وعنوان الرد، والأولوية، وTTL (مدة البقاء).
معرّف مورد البياناتهو تجزئة ثلاثية[ 19 ] يقدم النظير الذي يرد على الاستعلاملإثبات أنها تمتلك بالفعل المورد المطلوب دون تقديمإلى العقد الوسيطة، لذلك لا تستطيع العقد الوسيطة فك التشفير.
يُعدّ عنوان الردّ الفرقَ الرئيسيّ مقارنةً ببروتوكول Freenet . فبينما ينتشر الردّ في Freenet دائمًا عبر المسار نفسه الذي استخدمه الاستعلام، قد يكون المسار أقصر في GNUnet. يمكن للطرف المُستقبِل للاستعلام تجاهله، أو إعادة توجيهه دون تغيير عنوان الردّ، أو تحويله باستبدال عنوان الردّ بعنوانه الخاص. يُوفّر تحويل الاستعلامات غطاءً لحركة البيانات الخاصة به، بينما يُجنّب إعادة توجيهها الطرفَ أن يكون حلقةً في انتشار الردّ، ممّا يُحافظ على عرض النطاق التردديّ الخاصّ به. تُمكّن هذه الميزة المستخدم من الموازنة بين إخفاء الهوية والكفاءة. يُمكن للمستخدم تحديد مستوى إخفاء الهوية لكلّ عملية نشر وبحث وتنزيل. يُمكن استخدام مستوى إخفاء هوية صفر لاختيار مشاركة الملفات غير المجهولة. لا تُستخدم بنية DHT الخاصة بـ GNUnet إلا إذا تمّ تحديد مشاركة الملفات غير المجهولة. يُحدّد مستوى إخفاء الهوية مقدار حركة البيانات التي يجب أن يمتلكها الطرف لإخفاء أنشطة المستخدم.
تحدد الأولوية مقدار الثقة التي يرغب المستخدم في إنفاقها في حالة نقص الموارد.
يُستخدم TTL لمنع بقاء الاستعلامات في الشبكة لفترة طويلة جدًا.
عناوين URI لمشاركة الملفات
يتكون مُعرِّف وحدة نظام الملفات من أحد الرموز التالية: chk أو sks أو ksk أو loc ، متبوعًا بشرطة مائلة وقيمة خاصة بالفئة. تحتوي معظم عناوين URI على تجزئات، مُشفَّرة بنظام base32hex . [ 20 ]
- يقوم الأمر chk بتحديد الملفات، وعادةً ما يكون ذلك على النحو التالي:
gnunet://fs/chk/[file hash].[query hash].[file size in bytes]
- تجزئة الملف هي تجزئة الملف النصي الأصلي، والتي تسمح بفك تشفيره بعد تنزيله. أما تجزئة الاستعلام فهي تجزئة أعلى كتلة بيانات (GBlock)، والتي تسمح بتنزيل شجرة كتل البيانات الكاملة التي تحتوي على الملف المشفر. ويتطلب تحديد شكل الشجرة معرفة حجم الملف.
- يحدد sks الملفات داخل مساحات الأسماء، عادةً:
gnunet://fs/sks/NAMESPACE/IDENTIFIER - يحدد ksk استعلامات البحث، وعادةً ما تكون كالتالي:
gnunet://fs/ksk/KEYWORD[+KEYWORD]* - يُحدد loc بيانات على جهاز معين، عادةً:
gnunet://fs/loc/PEER/QUERY.TYPE.KEY.SIZE
أمثلة
نوع من أنواع معرّفات الموارد الموحدة (URI) لمشاركة الملفات في GNUnet يشير إلى نسخة محددة من نص رخصة GNU GPL : gnunet://fs/chk/9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VHORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3LKS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC6MVDL1K8GFKVBN69Q6T307U6O.17992
نوع آخر من عناوين URI لمشاركة ملفات GNUnet، يشير إلى نتائج البحث عن كلمة "gpl" الرئيسية: gnunet://fs/ksk/gpl
نظام أسماء جنو
يتضمن GNUnet تطبيقًا لنظام أسماء جنو (GNS)، وهو بديل لامركزي ومقاوم للرقابة لنظام أسماء النطاقات (DNS) . في GNS، يدير كل مستخدم نطاقاته الخاصة ، ويمكنه تفويض النطاقات الفرعية إلى نطاقات يديرها مستخدمون آخرون. تُجرى عمليات البحث عن السجلات التي يُعرّفها المستخدمون الآخرون باستخدام DHT الخاص بـ GNUnet. [ 21 ] تم توحيد GNS في RFC 9498 عام 2023. يدير سجل GANA نطاق المستوى الأعلى ".alt" في GNS. [ 22 ]
ترجمة البروتوكول
يُمكن لـ GNUnet توجيه حركة مرور بروتوكول الإنترنت (IP) عبر شبكة الند للند. وعند الضرورة، يُمكن لـ GNUnet إجراء ترجمة بروتوكولات IPv4 إلى IPv6 خلال هذه العملية. كما يُوفر GNUnet بوابة على مستوى التطبيق لنظام أسماء النطاقات (DNS) لتوجيه طلبات DNS وربط العناوين بعائلات العناوين المطلوبة حسب الحاجة. وبهذه الطريقة، يُقدم GNUnet تقنية مُمكنة لتسهيل الانتقال إلى IPv6 . علاوة على ذلك، وبالتكامل مع GNS، يُمكن استخدام نظام ترجمة البروتوكولات الخاص بـ GNUnet للوصول إلى الخدمات المخفية - وهي خدمات قائمة على بروتوكول الإنترنت تعمل محليًا على أحد النظراء في الشبكة، ولا يُمكن الوصول إليها إلا من خلال تحليل اسم GNS.
واجهة برمجة تطبيقات التواصل الاجتماعي
نشر غابور إكس توث في أوائل سبتمبر 2013 أطروحة [ 23 ] لعرض تصميم خدمة مراسلة اجتماعية لإطار عمل GNUnet الند للند، توفر قابلية التوسع والتمديد، بالإضافة إلى اتصال مشفر من طرف إلى طرف. تتحقق قابلية التوسع من خلال إرسال الرسائل متعددة البث، بينما يُتاح التمديد باستخدام بروتوكول PSYC (بروتوكول المؤتمرات المتزامنة)، الذي يوفر صيغة RPC (استدعاء الإجراءات عن بُعد) قابلة للتوسيع، يمكن تطويرها بمرور الوقت دون الحاجة إلى ترقية البرامج على جميع عُقد الشبكة. ومن الميزات الرئيسية الأخرى التي توفرها طبقة PSYC قنوات البث المتعدد ذات الحالة، والتي تُستخدم لتخزين بيانات مثل ملفات تعريف المستخدمين. أما الاتصال المشفر من طرف إلى طرف، فيُوفره نظام الشبكة المتداخلة في GNUnet، والذي تُبنى عليه قنوات البث المتعدد. يتمتع المستخدمون المجهولون والأماكن الاجتماعية في النظام بهويات تشفيرية - يتم تحديدها بواسطة مفتاحهم العام - ويتم ربط هذه الهويات بأسماء بشرية لا تُنسى باستخدام نظام أسماء جنو (GNS )، حيث يحتوي كل اسم مستعار على منطقة تشير إلى أماكنه.
هذا هو العنصر الأساسي المطلوب لتحويل إطار عمل GNUnet إلى منصة شبكات اجتماعية كاملة من نظير إلى نظير .
محادثة
تم تطبيق خاصية الدردشة في وحدة CADET، [ 24 ] والتي تتوفر لها واجهة GTK لبيئة GNOME ، [ 25 ] وهي مصممة خصيصًا لهواتف لينكس الناشئة (مثل Librem 5 أو PinePhone ). [ 26 ]
انظر أيضاً
ملحوظات
مراجع
- ↑ GNUnet.org – حول GNUnet eV
- ↑ مارتن شانزنباخ (17 يوليو 2026). "إصدار GNUnet 0.28.0" . info-GNUnet . تاريخ الاسترجاع: 17 يوليو 2026 .
- ↑ شفرة مصدر GNUnet
- ↑ « إشعار الترخيص موجود في أعلى أحد ملفات المصدر في مستودع المشروع، وربما في كل ملف من ملفات المصدر» . تم الاطلاع عليه بتاريخ 8 يونيو 2018.
برنامج GNUnet برنامج حر: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة جنو أفيرو العامة كما نشرتها مؤسسة البرمجيات الحرة، سواء الإصدار 3 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.
- ↑ EvansPolotGrothoff 2012 .
- ^ جروثوف ، كريستيان (2017/10/10). نظام GNUnet (أطروحة التأهيل). جامعة رين 1.
- ↑ غروتهوف 2013 .
- ↑ FerreiraGrothoffRuth 2003 ، الشكل 1.
- ↑ FerreiraGrothoffRuth 2003 ، الجزء الثاني. GNUNET وطبقة النقل: "الأساس مسؤول عن تشفير الرابط إلى الرابط، وربط هويات العقدة بالعناوين القابلة للتوجيه، واكتشاف النظراء."
- ↑ "برمجيات جنو" . البرمجيات - مشروع جنو - مؤسسة البرمجيات الحرة . مؤسسة البرمجيات الحرة، المحدودة . تم الاطلاع عليه بتاريخ 25 يناير 2020 .
- ↑ GrothoffPatrascuBennettStef 2002 , 3.1.1 UDP.
- ↑ FerreiraGrothoffRuth 2003 .
- ↑ "حول GNUnet — وثائق GNUnet" . docs.gnunet.org . تم الاطلاع عليه بتاريخ 13 أغسطس 2025 .
- ↑ سجل اسم الخدمة ورقم منفذ بروتوكول النقل، صفحة 38
- ↑ غروتهوف 2003 .
- ↑ GrothoffPatrascuBennettStef 2002 , 2.4 Mojo Nation.
- ↑ بينيت غروثوف 2003 .
- ↑ بينيت غروثوف هوروزوف باتراسكو 2002 .
- ↑ GrothoffPatrascuBennettStef 2002 ، 5.5 المزيد حول الاستفسارات.
- ↑ غروثوف، كريستيان. "معرّفات موارد موحّدة لمشاركة الملفات" . www.gnunet.org . مؤرشف من الأصل في 17 أغسطس 2016. تم الاطلاع عليه في 15 يوليو 2016 .
- ↑ Wachs, Schanzenbach & Grothoff 2014 .
- ↑ "RFC 9498: نظام أسماء جنو [ LWN.net ] " . lwn.net .
- ↑ توث، غابور إكس (5 سبتمبر 2013)، تصميم نظام مراسلة اجتماعية باستخدام البث المتعدد ذي الحالة ، مؤرشف في 22 فبراير 2014 على موقع Wayback Machine - تم الاطلاع عليه في 28 سبتمبر 2013
- ↑ وثائق GNUnet.org (14-11-2019) الدردشة مع عميل (بسيط) - تم الاطلاع عليه بتاريخ 14-11-2019
- ↑ cadet-gtk على GitLab
- ↑ GNUnet CADET لنظام لينكس على الأجهزة المحمولة – Reddit
مراجع إضافية
- غروثوف، كريستيان؛ باتراسكو، إيوانا؛ بينيت، كريستا؛ ستيف، تيبيريو؛ هوروزوف، تسفيتان (13 يونيو 2002). الورقة البيضاء لشبكة GNet (ملف PDF) (تقرير فني). جامعة بيردو.
- بينيت، كريستا؛ غروثوف، كريستيان؛ هوروزوف، تسفيتان؛ باتراسكو، إيوانا (2002-07-03). باتن، لين ؛ سيبري، جينيفر (محررون). المشاركة الفعالة للبيانات المشفرة . سلسلة محاضرات في علوم الحاسوب. سبرينغر برلين هايدلبرغ. الصفحات 107-120 . CiteSeerX 10.1.1.19.9837 . doi : 10.1007/3-540-45450-0_8 . ISBN 9783540438618.
- فيريرا، رونالدو؛ غروثوف، كريستيان؛ روث، بول (1 مايو 2003). "تجريد طبقة النقل لشبكات الند للند" (ملف PDF) . CCGrid 2003. المؤتمر الدولي الثالث لـ IEEE/ACM حول الحوسبة العنقودية والشبكة، 2003. وقائع المؤتمر . IEEE. الصفحات 398-405 . CiteSeerX 10.1.1.13.5086 . doi : 10.1109/CCGRID.2003.1199393 . ISBN 978-0-7695-1919-7. S2CID 1928711 .
- جروثوف ، دبلوم الرياضيات كريستيان (2003/06/01). “تخصيص الموارد في شبكات نظير إلى نظير”. Wirtschaftsinformatik . 45 (3): 285-292 . دوى : 10.1007 / BF03254946 . ISSN 0937-6429 . S2CID 4479637 .
- واكس، ماتياس؛ شانزنباخ، مارتن؛ غروثوف، كريستيان (2014). "نظام أسماء مقاوم للرقابة، معزز للخصوصية، ولا مركزي بالكامل" (ملف PDF) . علم التشفير وأمن الشبكات . سلسلة محاضرات في علوم الحاسوب. المجلد 8813. الصفحات 127-142 . doi : 10.1007/978-3-319-12280-9_9 . ISBN 978-3-319-12279-3.
- بينيت، كريستا؛ غروثوف، كريستيان (26 مارس 2003). "غاب - الشبكات المجهولة العملية". في دينغلداين، روجر (محرر). تقنيات تعزيز الخصوصية . سلسلة محاضرات في علوم الحاسوب. المجلد 2760. سبرينغر برلين هايدلبرغ. الصفحات 141-160 . CiteSeerX 10.1.1.125.9673 . doi : 10.1007/978-3-540-40956-4_10 . ISBN 9783540206101.
- إيفانز، ناثان؛ بولوت، بارتلومي؛ غروثوف، كريستيان (21 مايو 2012). "تقدير حجم الشبكة اللامركزية بكفاءة وأمان". في: بيستاك، روبرت؛ كينكل، لوكاس؛ لي، لي إران؛ ويدمر، يورغ؛ ين، هاو (محررون). الشبكات 2012. سلسلة محاضرات في علوم الحاسوب. المجلد 7289. سبرينغر برلين هايدلبرغ. الصفحات 304-317 . doi : 10.1007/978-3-642-30045-5_23 . ISBN 9783642300448.
- غروثوف، كريستيان (1 أغسطس 2013). "فيديو: لقد حطمتم الإنترنت. نحن نصنع لأنفسنا إنترنت جنو" . gnunet.org . حزب القراصنة الألماني ، برلين . تاريخ الاسترجاع: 4 أكتوبر 2013 .
- غروثوف، كريستيان (2015). "بنية جنو نت: 45 نظامًا فرعيًا في 45 دقيقة" (ملف PDF) . تم الاطلاع عليه بتاريخ 14 يوليو 2016 .
روابط خارجية
- برنامج مشروع جنو
- برنامج مجاني لمشاركة الملفات
- شبكات إخفاء الهوية
- شبكات مشاركة الملفات المجهولة
- برنامج مجاني مكتوب بلغة C
- برامج مجانية متعددة المنصات
- برنامج يستخدم رخصة جنو أفيرو العامة
- التوجيه القائم على المفاتيح
