التشفير (ج)
دالة crypt هي دالة من مكتبة POSIX C. تُستخدم عادةً لحساب تجزئة كلمات مرور حسابات المستخدمين. تُخرج الدالة سلسلة نصية تُشفّر أيضًا الملح (عادةً ما يكون أول حرفين هما الملح نفسه، والباقي هو نتيجة التجزئة)، وتُحدد خوارزمية التجزئة المستخدمة (افتراضيًا الخوارزمية "التقليدية" الموضحة أدناه). تُشكّل سلسلة الإخراج هذه سجل كلمة مرور، والذي يُخزّن عادةً في ملف نصي.
بشكل أكثر رسمية، يوفر crypt وظائف اشتقاق المفاتيح المشفرة للتحقق من صحة كلمة المرور وتخزينها على أنظمة Unix.
العلاقة بأداة التشفير في نظام يونكس
يوجد في نظام يونكس أداة تشفير غير مرتبطة بالوظيفة المذكورة، والتي غالباً ما يتم الخلط بينها وبين دالة مكتبة لغة C. وللتمييز بينهما، يشير الكتّاب عادةً إلى برنامج الأداة باسم crypt(1) ، لأنه موثق في القسم 1 من صفحات دليل يونكس ، ويشيرون إلى دالة مكتبة لغة C باسم crypt(3) ، لأن توثيقها موجود في القسم 3 من الدليل. [ 1 ]
تفاصيل
تُستخدم وظيفة التشفير نفسها لإنشاء تجزئة جديدة للتخزين وأيضًا لتجزئة كلمة مرور مقدمة باستخدام ملح مسجل للمقارنة.
تدعم تطبيقات يونكس الحديثة لروتين مكتبة التشفير مجموعة متنوعة من خوارزميات التجزئة. ويمكن تحديد خوارزمية التجزئة المستخدمة من خلال بادئة رمزية فريدة في النص المجزأ الناتج، وذلك وفقًا لمعيار فعلي يُسمى تنسيق التشفير المعياري. [ 2 ] [ 3 ] [ 4 ]
crypt()تم تضمين وظيفة المكتبة أيضًا في لغات البرمجة Perl و [ 5 ] و PHP و [ 6 ] و Pike و [ 7 ] و Python [ 8 ] (على الرغم من أنها أصبحت مهملة اعتبارًا من الإصدار 3.11) و Ruby [ 9 ] .
وظائف اشتقاق المفاتيح التي يدعمها التشفير
بمرور الوقت، تم تقديم خوارزميات متنوعة. ولتمكين التوافق مع الإصدارات السابقة ، بدأ كل نظام باستخدام اصطلاح معين لتسلسل تجزئات كلمات المرور، والذي سُمي لاحقًا بتنسيق التشفير المعياري (MCF). [ 3 ] قد تختلف تجزئات crypt(3) القديمة، التي تم إنشاؤها قبل معيار MCF الفعلي، من نظام لآخر. تم إنشاء مجموعة فرعية محددة جيدًا من تنسيق التشفير المعياري خلال مسابقة تجزئة كلمات المرور . [ 3 ] يُعرَّف التنسيق على النحو التالي: [ 10 ]
$<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]]
أين
id: معرف يمثل خوارزمية التجزئة (مثل 1 لـ MD5 ، و5 لـ SHA-256 وما إلى ذلك).paramالاسمvalueومعاملات تعقيد التجزئة الخاصة به، مثل عدد الجولات/التكراراتsalt: الملح يتبع الأبجدية ذات الأساس 64 (يستخدم DES القيمة التي تم فك تشفيرها)hash: نتيجة تشفير كلمة المرور والملح باستخدام ترميز radix-64
يُطلق على ترميز radix-64 في لغة التشفير اسم B64، ويستخدم أبجدية ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzتختلف عن أبجدية base64 الأكثر شيوعًا وفقًا لمعيار RFC 4648.
| معرف المخطط | مخطط | مثال |
|---|---|---|
| ديس | Kyq4bCxAXJkbg | |
| _ | بي إس دي آي | _EQ0.jzhSVeUyoSqLupI |
| 1 | md5crypt | $1$etNnh7FA$OlM7eljE/B7F1J4XYNnk81 |
| 2 ، 2أ ، 2ب ، 2س ، 2ص | bcrypt | $2a$10$VIhIOofSMqgdGlL4wzE//e.77dAQGqntF/1dT7bqCrVtquInWy2qi |
| 3 | نثاش | $3$$8846f7eaee8fb117ad06bdd830b7586c |
| 5 | sha256crypt | $5$9ks3nNEqv31FX.F$gdEoLFsCRsn/WRN3wxUnzfeZLoooVlzeF4WjLomTRFD |
| 6 | sha512crypt | $6$qoE2letU$wWPRl.PVczjzeMVgjiA8LLy2nOyZbf7Amj3qLIL978o18gbMySdKZ7uepq9tmMQXxyTIrS12Pln.2Q/6Xscao0 |
| 7 | سكريبت | $7$DU..../....2Q9obwLhin8qvQl6sisAO/$sHayJj/JBdcuD4lJ1AxiwCo9e5XSi8TcINcmyID12i8 |
| 8 (سيسكو) | PBKDF2 مع SHA-256 | $8$mTj4RZG8N9ZDOk$elY/asfm8kD3iDmkBe3hD2r4xcA/0oWS5V3os.O91u. |
| 8 (JunOS) | PBKDF2 | $8$crypt-algo$hash-algo$iterations$salt$iv$tag$encrypted
|
| 9 (سيسكو) | scrypt (80-bit salt, 16384 iterations, r=1, p=1, dklen=32) | $9$haTNnnTnspcCiE$3we2J3rhnhdHKVPFM/iWg/bC8UGH6H/fyGns7jjQ/Lw |
| جي | gost-yescrypt | $gy$jCT$HM87v.7RwpQLba8fDjNSk1$VgqS7k2OZWhFbAJVBye2vaA7ex/1VtU3a5fmL8Wv/26 |
| MD5 | سولاريس إم دي 5 | $md5,rounds=5000$GUBv0xjJ$$mSwgIswdjlTY0YxV7HBVm0 |
| sha1 | PBKDF1 مع SHA-1 | $sha1$40000$jtNX3nZ2$hBNaIXkt4wBI2o5rsi8KejSjNqIq |
| y | يسكريبت | $y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7 |
تغطي مجموعة PHC الفرعية غالبية تجزئات MCF. يوجد عدد من الطرق الإضافية المحددة بواسطة التطبيق. [ 3 ]
التنفيذ الأصلي باستخدام كلمة المرور كمفتاح
كانت النسخة الأصلية من دالة crypt() في مكتبة يونكس [ 11 ] ، في الإصدار الثالث [ 12 ] ، تحاكي آلة التشفير M-209 . فبدلاً من تشفير كلمة المرور باستخدام مفتاح، مما كان سيسمح باستعادتها من القيمة المشفرة والمفتاح، استخدمت كلمة المرور نفسها كمفتاح، واحتوت قاعدة بيانات كلمات المرور على نتيجة تشفيرها بهذا المفتاح.
مخطط تقليدي قائم على DES
تبين أن نظام تشفير كلمات المرور الأصلي سريع للغاية، مما يجعله عرضةً لمحاولات التخمين العشوائي لكلمات المرور الأكثر احتمالاً. [ 11 ] في الإصدار السابع من يونكس ، [ 13 ] تم تغيير النظام إلى شكل مُعدّل من خوارزمية DES . كان الهدف من هذا التغيير هو إبطاء عملية التشفير. بالإضافة إلى ذلك، تضمنت الخوارزمية قيمة عشوائية (Salt) مكونة من 12 بت لضمان إجبار المهاجم على فك تشفير كل كلمة مرور على حدة، بدلاً من استهداف قاعدة بيانات كلمات المرور بأكملها في وقت واحد.
بالتفصيل، يتم اختصار كلمة مرور المستخدم إلى ثمانية أحرف، ثم تُحوّل هذه الأحرف إلى 7 بتات فقط لكل حرف؛ وهذا يُشكّل مفتاح DES ذو 56 بت. يُستخدم هذا المفتاح لتشفير كتلة جميع بتاتها أصفار، ثم يُعاد تشفير النص المشفر باستخدام المفتاح نفسه، وهكذا حتى 25 عملية تشفير DES. يُستخدم ملح (Salt) ذو 12 بت لتعطيل خوارزمية التشفير، لذا لا يمكن استخدام تطبيقات DES القياسية لتنفيذ دالة crypt(). يُشفّر الملح والنص المشفر النهائي في سلسلة نصية قابلة للطباعة بصيغة base64 .
هذا ليس تشفيرًا بالمعنى التقني، لأن البيانات (جميع بتاتها أصفار) ليست سرية؛ بل هي معروفة للجميع مسبقًا. مع ذلك، من خصائص خوارزمية DES أنها مصممة لتكون مقاومة لاستعادة المفتاح حتى في حالة معرفة النص الأصلي . من الممكن نظريًا أن ينتج عن كلمتي مرور مختلفتين نفس قيمة التجزئة تمامًا. لذا، لا يتم "فك تشفير" كلمة المرور أبدًا: بل تُستخدم فقط لحساب نتيجة، ويُفترض أن تطابق النتائج دليل على أن كلمتي المرور "متطابقتان".
تتمثل مزايا هذه الطريقة في إمكانية تخزين النص المشفر ونسخه بين أنظمة يونكس دون الكشف عن كلمة المرور الأصلية لمسؤولي النظام أو المستخدمين الآخرين. وقد أثبتت هذه الميزة فعاليتها على مدى أكثر من 30 عامًا عبر أجيال عديدة من بنى الحوسبة، وعبر إصدارات متعددة من يونكس من مختلف الموردين.
نقاط ضعف المخطط التقليدي
تم اختيار خوارزمية التشفير التقليدية القائمة على معيار DES في الأصل لأنها كانت مقاومة لاستعادة المفاتيح حتى في مواجهة هجمات "النص الصريح المعروف"، ولأنها كانت مكلفة حسابيًا. ففي أجهزة يونكس الأولى، استغرقت عملية حساب تجزئة كلمة المرور أكثر من ثانية كاملة. وهذا ما جعلها أيضًا مقاومة إلى حد معقول لهجمات القاموس في ذلك الوقت. في ذلك الوقت، كانت تجزئات كلمات المرور تُخزن عادةً في ملف حساب ( /etc/passwd) يمكن لأي شخص على النظام قراءته. (كان ملف الحساب هذا يُستخدم أيضًا لربط أرقام تعريف المستخدمين بأسمائهم، وأسماء المستخدمين بأسمائهم الكاملة، وما إلى ذلك).
في العقود الثلاثة التي تلت ذلك، ازدادت قوة الحواسيب بشكل هائل. وقد ظل قانون مور ساريًا بشكل عام، لذا تضاعفت سرعة الحاسوب وقدرته المتاحة لاستثمار مالي معين أكثر من 20 مرة منذ كتابة نظام يونكس. وقد جعل هذا منذ زمن طويل خوارزمية DES عرضة لهجمات القاموس، ولذا استخدمت أنظمة يونكس والأنظمة الشبيهة بها، مثل لينكس، ملفات "ظل" لفترة طويلة، حيث يتم نقل قيم تجزئة كلمات المرور فقط من ملف الحساب /etc/passwdإلى ملف (يُسمى عادةً /etc/shadow) لا يمكن قراءته إلا بواسطة العمليات ذات الصلاحيات الخاصة.
لزيادة التكلفة الحسابية لكسر كلمات المرور، بدأت بعض مواقع يونكس، بشكل غير رسمي، بزيادة عدد جولات التشفير بشكل مؤقت. نتج عن ذلك عدم توافقها مع المعيار : إذ احتفظت التجزئات بنفس الشكل النصي، ولكنها حُسبت باستخدام خوارزمية مختلفة. كما استغلت بعض المواقع هذا التباين، بتعديل الكتلة الأولية من الكتلة القياسية المكونة من أصفار فقط. لم يُؤدِّ هذا إلى زيادة تكلفة التجزئة، ولكنه حال دون تطبيق قواميس التجزئة المحسوبة مسبقًا والمبنية على دالة التشفير القياسية crypt() .crypt()crypt()
مخطط BSDi الموسع القائم على DES
استخدمت BSDi تعديلًا طفيفًا على نظام التشفير الكلاسيكي القائم على DES. قامت BSDi بتوسيع قيمة الملح إلى 24 بت، وجعلت عدد الجولات متغيرًا (حتى 2^ 24 - 1). يتم ترميز عدد الجولات المُختار في تجزئة كلمة المرور المخزنة، مما يتجنب عدم التوافق الذي كان يحدث عند تعديل المواقع لعدد الجولات المستخدمة في النظام الأصلي. يتم تحديد هذه التجزئات بالبدء بشرطة سفلية ( __)، متبوعة بأربعة أحرف تمثل عدد الجولات، ثم أربعة أحرف أخرى تمثل الملح.
تدعم خوارزمية BSDi أيضًا كلمات المرور الأطول، باستخدام DES لطي كلمة المرور الطويلة الأولية إلى البايتات الثمانية المكونة من 7 بت التي تدعمها الخوارزمية الأصلية.
مخطط قائم على MD5
صمّم بول هينينغ كامب خوارزمية معقدة ومكلفة حسابيًا (آنذاك) تعتمد على خوارزمية MD5 لتجزئة الرسائل. توفر MD5 قوة تشفيرية جيدة لتجزئة كلمة المرور، ولكنها مصممة لتكون سريعة الحساب نسبيًا مقارنةً بقوتها. صُممت دالة التشفير crypt() لتكون مكلفة حسابيًا، وذلك لإبطاء هجمات القاموس. يبدأ الشكل القابل للطباعة لتجزئات كلمات مرور MD5 بـ $1$.
تتيح هذه الآلية للمستخدمين استخدام كلمات مرور بأي طول، ويمكنهم استخدام أي أحرف يدعمها نظامهم (ليس فقط أحرف ASCII ذات 7 بت). (في الواقع، تحد العديد من التطبيقات من طول كلمة المرور، لكنها تدعم عمومًا كلمات مرور أطول بكثير مما قد يرغب أي شخص في كتابته). أما الملح (Salt) فهو أيضًا سلسلة نصية عشوائية، لا يحدها سوى اعتبارات مجموعة الأحرف.
أولًا، يتم دمج عبارة المرور والملح معًا باستخدام دالة التجزئة، مما ينتج عنه ملخص رسالة MD5. ثم يتم إنشاء ملخص جديد، يجمع بين عبارة المرور والملح والملخص الأول، بصيغة معقدة نوعًا ما. بعد ذلك، يُمرر هذا الملخص عبر ألف تكرار لدالة تعيد حساب تجزئته مع عبارة المرور والملح بطريقة تختلف بين الجولات. ناتج الجولة الأخيرة هو تجزئة عبارة المرور الناتجة.
أدى عدد التكرارات الثابت إلى فقدان هذه الخوارزمية للميزة الحسابية التي كانت تتمتع بها سابقًا، وأصبح عدد الجولات المتغير هو المفضل الآن. في يونيو 2012، أعلن بول هينينغ كامب أن الخوارزمية غير آمنة، وحث المستخدمين على الانتقال إلى برامج تشفير كلمات مرور أقوى. [ 14 ]
مخطط قائم على سمكة البخاخ
قام نيلز بروفوس وديفيد مازيير بتصميم مخطط تشفير يسمى bcrypt يعتمد على Blowfish ، وقدموه في USENIX في عام 1999. [ 15 ] يبدأ الشكل القابل للطباعة لهذه التجزئات بـ $2$، $2a$، $2b$، $2x$أو $2y$اعتمادًا على نوع الخوارزمية المستخدمة:
$2$– قديم.$2a$– المفتاح الحالي المستخدم لتحديد هذه الخوارزمية. منذ اكتشاف ثغرة أمنية خطيرة عام 2011 في تطبيق خوارزمية crypt_blowfish غير المتوافق مع نظام OpenBSD، [ 16 ] أصبحت التجزئات المشار إليها بهذه السلسلة غامضة، وقد تكون ناتجة عن التطبيق المعيب، أو عن تطبيق لاحق تم إصلاحه. قد تُفعَّل هذه الثغرة بواسطة بعض سلاسل كلمات المرور التي تحتوي على أحرف غير ASCII (البت الثامن مُفعَّل).$2b$– تُستخدم هذه التقنية في تطبيقات OpenBSD الحديثة لمعالجة مشكلة الالتفاف. [ 17 ] تعاني الإصدارات السابقة من الخوارزمية من مشكلة مع كلمات المرور الطويلة. بحسب التصميم، تُقتطع كلمات المرور الطويلة عند 72 حرفًا، ولكن توجد مشكلة التفاف بايتات صحيحة مع أطوال معينة لكلمات المرور، مما ينتج عنه تجزئات ضعيفة. [ 18 ]$2x$– تمت إضافة علامة بعد اكتشاف ثغرة crypt_blowfish . يمكن إعادة تسمية التجزئات القديمة للإشارة إلى أنها تم إنشاؤها باستخدام الخوارزمية المعيبة. لا تزال هذه التجزئات ضعيفة، ولكن على الأقل أصبح من الواضح أي خوارزمية تم استخدامها لإنشائها.$2x$$2y$– علامة في مكتبة crypt_blowfish لاستخدام الخوارزمية الجديدة المصححة بشكل قاطع. في الإصدارات القديمة التي تعاني من الخلل، لن تعمل هذه العلامة. أما في الإصدارات الأحدث والمُصلحة، فستُعطي نفس نتيجة استخدام علامة أخرى .$2y$$2b$
تُعرف خوارزمية بلوفيش بين خوارزميات التشفير الكتلي بمرحلة إعداد المفاتيح المكلفة. تبدأ الخوارزمية بمفاتيح فرعية في حالة قياسية، ثم تستخدم هذه الحالة لإجراء تشفير كتلي باستخدام جزء من المفتاح، وتستخدم نتيجة هذا التشفير (في الواقع، عملية تجزئة) لاستبدال بعض المفاتيح الفرعية. بعد ذلك، تستخدم هذه الحالة المُعدّلة لتشفير جزء آخر من المفتاح، وتستخدم النتيجة لاستبدال المزيد من المفاتيح الفرعية. وتستمر الخوارزمية بهذه الطريقة، باستخدام حالة مُعدّلة تدريجيًا لتجزئة المفتاح واستبدال أجزاء من الحالة، حتى يتم تعيين جميع المفاتيح الفرعية.
عدد جولات التشفير هو قوة للعدد اثنين، وهو مُدخل للخوارزمية. يتم ترميز هذا العدد في التجزئة النصية، على سبيل المثال$2y$10...
مخطط تجزئة NT
أضاف نظام FreeBSD دعمًا لخوارزمية التجزئة الخاصة بمدير شبكة NT LAN لتوفير توافق أسهل مع حسابات NT عبر MS-CHAP . [ 19 ] من المعروف أن خوارزمية NT-Hash ضعيفة، لأنها تستخدم خوارزمية التجزئة md4 القديمة بدون إضافة ملح. [ 20 ] استخدم FreeBSD $3$البادئة لهذا الغرض. لا يُنصح باستخدامها، لأنها قابلة للاختراق بسهولة. [ 1 ]
مخطط قائم على SHA2
أصبح نظام التشفير القائم على MD5، الشائع الاستخدام، أسهل اختراقًا مع ازدياد قوة الحوسبة. ورغم أن نظام Blowfish يتيح إضافة جولات، ما يجعله خوارزمية كلمات مرور صعبة، إلا أنه لا يستخدم خوارزمية معتمدة من المعهد الوطني للمعايير والتكنولوجيا (NIST) . في ضوء هذه الحقائق، قاد أولريش دريبر من شركة Red Hat جهودًا لإنشاء نظام تشفير قائم على دوال التجزئة SHA-2 (SHA-256 وSHA-512). [ 21 ] يبدأ الشكل القابل للطباعة لهذه التجزئات بـ $5$(لـ SHA-256) أو $6$(لـ SHA-512) حسب نوع SHA المستخدم. تصميمه مشابه لتشفير MD5، مع بعض الاختلافات الملحوظة: [ 21 ]
- فهو يتجنب إضافة البيانات الثابتة في بضع خطوات.
- كانت خوارزمية MD5 تضيف الحرف الأول من كلمة المرور بشكل متكرر؛ وقد تم تغيير هذه الخطوة بشكل كبير.
- تم إضافة وظيفة لتحديد عدد التكرارات (الجولات) التي تقوم بها الحلقة الرئيسية في الخوارزمية، وذلك استنادًا إلى تطبيق Sun's crypt() [ 22 ] [ 23 ].
- عدد التكرارات هو 5000 افتراضيًا، بحد أدنى 1000، وحد أقصى 999999999. [ 24 ]
تم نشر المواصفات ونموذج التعليمات البرمجية في المجال العام؛ وغالبًا ما يشار إليها باسم "SHAcrypt". [ 24 ]
أنواع أخرى من التجزئة
$y$- يُعدّ yescrypt امتدادًا لـ scrypt ،
$7$وهو من بين المرشحين النهائيين لجائزة PHC. يُستخدم في العديد من توزيعات لينكس كبديل للخوارزميات الحالية. [ 25 ] لاستخدام هذه الدالة،libcryptيتم استبدال الدالة الأصلية من مكتبة glibc بدالة متوافقة مع الإصدارات السابقة من مشروع "libxcrypt". [ 26 ] $argon2d$،$argon2i$،$argon2ds$- هذه أسماء مخصصة من قبل PHC لخوارزمية Argon2 ، ولكن لا يبدو أنها مستخدمة على نطاق واسع.
يتم وصف التنسيقات الإضافية، إن وجدت، في صفحات الدليل الخاصة بالتطبيقات. [ 27 ]
مخططات يونكس القديمة
BigCrypt هو نسخة معدلة من DES-Crypt المستخدمة في أنظمة HP-UX وDigital Unix وOSF/1. الفرق الرئيسي بينه وبين DES هو أن BigCrypt يستخدم جميع أحرف كلمة المرور، وليس فقط الأحرف الثمانية الأولى، وله تجزئة متغيرة الطول. [ 28 ]
Crypt16 هو تعديل طفيف لـ DES، يسمح بكلمات مرور تصل إلى 16 حرفًا. يُستخدم في Ultrix و Tru64. [ 29 ]
الدعم في أنظمة التشغيل
| معرف المخطط | مخطط | لينكس ( glibc ) | لينكس (libxcrypt) [ 30 ] [ 31 ] | لينكس ( musl ) | لينكس ( uClibc ) | فري بي إس دي | نظام التشغيل NetBSD | أوبن بي إس دي | سولاريس | نظام التشغيل macOS |
|---|---|---|---|---|---|---|---|---|---|---|
| ديس | نعم | نعم | نعم | نعم | نعم | نعم | لا | نعم | نعم | |
| _ | بي إس دي آي | لا | نعم | لا | لا | نعم | نعم | لا | لا | نعم |
| 1 | MD5 | نعم | نعم | نعم | نعم | نعم | نعم | لا | نعم | لا |
| 2، 2أ، 2ب، 2س، 2ص | bcrypt | لا | نعم | نعم | لا | نعم | نعم | نعم | نعم | لا |
| 3 | نثاش | لا | نعم | لا | لا | نعم | لا | لا | لا | لا |
| 5 | SHA-256 | 2.7+ | نعم | نعم | نعم | 8.3+ | لا | لا | نعم | لا |
| 6 | SHA-512 | 2.7+ | نعم | نعم | نعم | 8.3+ | لا | لا | نعم | لا |
| 7 | سكريبت | لا | نعم | لا | لا | نعم | لا | لا | نعم | لا |
| MD5 | سولاريس إم دي 5 | لا | نعم | لا | لا | لا | لا | لا | نعم | لا |
| sha1 | PBKDF1 مع SHA1 | لا | نعم | لا | لا | لا | نعم | لا | لا | لا |
| جي | gost-yescrypt | لا | نعم | لا | لا | لا | لا | لا | لا | لا |
| y | يسكريبت | لا | نعم | لا | لا | لا | لا | لا | لا | لا |
لينكس
توفر مكتبة GNU C (glibc)، المستخدمة في معظم توزيعات لينكس، تطبيقًا لدالة التشفير يدعم خوارزميات التجزئة DES وMD5، وSHA-2 (منذ الإصدار 2.7) المذكورة سابقًا. رفض أولريش دريبر، المسؤول عن صيانة glibc، دعم bcrypt (المخطط 2) لعدم اعتماده من قِبل المعهد الوطني للمعايير والتكنولوجيا (NIST) . [ 32 ] تتوفر مكتبة crypt_blowfish المجانية للأنظمة التي لا تدعم bcrypt، وقد تم دمجها في glibc في توزيعة SUSE Linux . [ 33 ]
في أغسطس 2017، أعلنت مكتبة glibc عن خططها لإزالة تطبيق التشفير الخاص بها بالكامل. واستجابةً لذلك، تحوّل عدد من توزيعات لينكس (بما في ذلك، على سبيل المثال لا الحصر، فيدورا وديبيان) إلى مكتبة libxcrypt ، وهي تطبيق متوافق مع واجهة التطبيق الثنائية (ABI) ويدعم أيضًا خوارزميات جديدة، بما في ذلك bcrypt وyescrypt. [ 34 ]
تدعم مكتبة musl C المخططات 1 و2 و5 و6، بالإضافة إلى مخطط DES التقليدي. يعتمد كود DES التقليدي على BSD FreeSec ، مع تعديلات تجعله متوافقًا مع glibc UFC-Crypt . [ 35 ]
نظام التشغيل macOS
يوفر نظام داروين الأصلي crypt()وظائف محدودة، إذ يدعم فقط خوارزميتي DES وBSDi. أما نظام التشغيل OS X فيستخدم عدة أنظمة لتجزئة كلمات المرور الخاصة به، بدءًا من نظام NeXTStep netinfo القديم وصولًا إلى نظام خدمات الدليل (ds) الأحدث. [ 36 ] [ 37 ]
انظر أيضاً
مراجع
- 1 2 – دليل وظائف مكتبة FreeBSD
- ↑ سيمسون غارفينكل، آلان شوارتز، جين سبافورد. "أمن يونكس والإنترنت العملي" . 2003. القسم "4.3.2.3 crypt16()، DES Extended، وModular Crypt Format" . "يحدد Modular Crypt Format (MCF) مخططًا قابلًا للتوسيع لتنسيق كلمات المرور المشفرة. MCF هو أحد أكثر تنسيقات كلمات المرور المشفرة شيوعًا".
- 1 2 3 4 "تنسيق التشفير المعياري - وثائق Passlib الإصدار 1.7.1" . Pythonhosted.org . تم الاطلاع عليه في 2 ديسمبر 2018 .
- ↑ "ademarre/binary-mcf" . GitHub.com . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- ↑ "crypt - perldoc.perl.org" . Perldoc.perl.org . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- ↑ "PHP: crypt - Manual" . Us.php.net . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- ↑ "crypt()" . مؤرشف من الأصل بتاريخ 2012-10-02 . تم الاطلاع عليه بتاريخ 2013-02-09 .
- ↑ "crypt — دالة للتحقق من كلمات مرور يونكس — وثائق بايثون 3.7.1" . Docs.python.org . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- ↑ "الفئة: سلسلة نصية (روبي 2.5.3)" . Ruby-doc.org . تم الاطلاع عليه في 2 ديسمبر 2018 .
- ↑ مسابقة تجزئة كلمات المرور. "تنسيق سلسلة PHC" . جيت هاب .
- 1 2 موريس، روبرت؛ طومسون، كين (3 أبريل 1978). "أمن كلمات المرور: دراسة حالة" . مختبرات بيل . تم الاسترجاع في 17 ديسمبر 2013 .
- ↑ "crypt – تشفير كلمة المرور" . دليل مبرمجي نظام يونكس، الطبعة الثالثة . 15-01-1973.
- ↑ "crypt, setkey, encrypt – تشفير DES" . دليل مبرمجي UNIX، الإصدار السابع . 1979.
- ↑ «لم يعد برنامج تشفير كلمات المرور Md5crypt آمنًا بحسب مؤلفه - PHKs Bikeshed» . Phk.freebsd.dk . مؤرشف من الأصل بتاريخ 17 مارس 2018. تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- ↑ بروفوس، نيلز؛ مازيير، ديفيد (1999). "مخطط كلمة مرور قابل للتكيف مع المستقبل" . وقائع المؤتمر التقني السنوي لـ USENIX لعام 1999 : 81-92 .
- ↑ مصمم، سولار (21-06-2011). "crypt_blowfish 1.1؛ تحديث أمني لمكتبة Owl glibc" .انظر أيضًا CVE - 2011-2483 .
- ↑ "src/lib/libc/crypt/bcrypt.c – عرض – 1.27" . Cvsweb.openbsd.org . تم الاطلاع عليه بتاريخ 14-05-2016 .
- ↑ مصمم، سولار (2012-01-02). "التفاف حول مفتاح bcrypt ذي 8 بت في OpenBSD" .
- ↑ "خوارزمية MD4 لتشفير كلمات المرور كطريقة جديدة لتشفير كلمات المرور في نظام FreeBSD" . Mail-archive.com . تاريخ الاطلاع: 2 ديسمبر 2018 .
- ↑ "بروتوكول مصادقة NTLM وموفر دعم الأمان" . Davenport.sourceforge.net . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- 1 2 دريبر، أولريش (19 سبتمبر 2007). "تشفير يونكس باستخدام SHA-256/512" . تم الاطلاع عليه بتاريخ 21 نوفمبر 2018 .
- ↑ شركة صن مايكروسيستمز. "صفحة دليل crypt_sunmd5(5)" . مؤرشفة من الأصل بتاريخ 16 أبريل 2008. تم الاطلاع عليها بتاريخ 5 مارس 2008 .
- ↑ موفيت، أليك (5 ديسمبر 2005). "أوبن سولاريس، التشفير القابل للتوصيل، وخوارزمية تجزئة كلمة المرور SunMD5" . تم الاسترجاع في 11 أغسطس 2012 .
- 1 2 دريبر، أولريش. "تشفير يونكس باستخدام SHA-256 و SHA-512" .
- ↑ " شركة FESCo توافق على استخدام Yescrypt لتشفير كلمات المرور المخفية في Fedora 35 - Phoronix" . www.phoronix.com
- ↑ "تغييرات/yescrypt كطريقة تجزئة افتراضية لـ shadow - ويكي مشروع فيدورا" . libxcrypt: قادر بالفعل على حساب تجزئات yescrypt منذ الإصدار 4.3 .
- ↑
- ↑ "passlib.hash.bigcrypt - BigCrypt — Passlib v1.7.1 Documentation" . Pythonhosted.org . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- ↑ "passlib.hash.crypt16 - Crypt16 — Passlib v1.7.1 Documentation" . Pythonhosted.org . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
- ↑ libxcrypt - مكتبة تشفير موسعة لـ descrypt و md5crypt و bcrypt وغيرها
- ↑ "صفحة دليل دبيان crypt" . manpages.debian.org . تم الاطلاع عليه بتاريخ 11 يناير 2022 .– يستخدم نظام Debian bullseye مكتبة libxcrypt. انظر https://tracker.debian.org/pkg/libxcrypt .
- ↑ "دعم bcrypt لكلمات المرور في /etc/shadow - بوابة عملاء Red Hat" . Access.redhat.com . 10 يوليو 2018. تم الاطلاع عليه في 2 ديسمبر 2018 .
- ↑ "تشفير كلمات المرور باستخدام bcrypt ("تشفير كلمات المرور") لبرامجك وخوادمك" . www.openwall.com
- ↑ "تغييرات/استبدال مكتبة glibc libcrypt بمكتبة libxcrypt - ويكي مشروع فيدورا" . fedoraproject.org .
- ↑ "crypt_r.c\crypt\src - musl - musl - تطبيق للمكتبة القياسية لأنظمة لينكس" . git.musl-libc.org .
- ↑ "كيفية تطبيق نظام التشغيل Mac OS X لمصادقة كلمة المرور" . Dribin.org . 7 أبريل 2006. تم الاطلاع عليه في 2 ديسمبر 2018 .
- ↑ "كيفية اختراق كلمات مرور نظام التشغيل Mac OS X - برنامج اختراق التجزئة عبر الإنترنت" . Onlinehashcrack.com . تم الاطلاع عليه بتاريخ 2 ديسمبر 2018 .
روابط خارجية
- شفرة المصدر لـ crypt(3) من الإصدار السابع لنظام يونكس (تنفذ خوارزمية DES المقترحة)
- نماذج لسلاسل ترميز تجزئة كلمات المرور
- تطبيق التشفير في .NET
- مصادقة كلمة المرور
- خوارزميات التشفير المعطوبة
- دوال التجزئة المشفرة
- بروتوكولات التحكم في الوصول إلى الحاسوب
- دوال الاشتقاق الرئيسية
