تشفير المحادثات الخاصة باستخدام OTR

xkcd Alice and Bob

بعد أن كتبت عن كيفية تشفير الملفات والرسائل لإرسالها بالبريد باستخدام GPG [في مقالGNU Privacy Guard Tutorial] وكذلك عن تشفير الملفات عن طريق إنشاء نظام ملفات مشفر باستخدام برنامج TrueCrypte [في مقال نظام ملفات مشفر باستخدام Truecrypt] أحببت أن أكتب عن تشفير المحادثات الآنية التي تكون على برامج المحادثات الفورية والتي أشهرها: MSN و Yahoo!

هناك العديد من طرق تشفير المحادثات، لكن أشهرها وأفضلها هي OTR (Off-the Record) إضافة Off-the-Record هي إضافة برمجية Plug-in لعدة برامج أو مكتبات برمجية لبرامج المحادثة ومنها مكتبة Libpurple التي يستعملها العديد من البرنامج لتشغيل تشغيل العديد من البروتوكولات في وقتٍ واحد مثل Pidgin (Gaim سابقاً) أو Adium (Pidgin لأنظمة Mac OSX) أو Finch (Pidgin للطرفيات وسطر الأوامر) أو BitlBee أو MinBif والكثير من البرامج الأخرى بعضها يستخدم Libpurple وبعضها لا.

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

بعد أن تنصب برنامج Pidgin وتعمل عليه يتوجب عليك تنصيب الإضافة OTR لكن قبل تنصيبها سنتكلم قليلاً عن طريقة عمل الإضافة إن بروتوكولات المحادثة الفورية إما ترسل النص بشكل عادي Plain Text أو تشفر جزءاً منه (المعلومات السرية ككلمة المرور مثلاً) وطالما أن هذه البروتوكولات ترسل النص بشكل عادي فيمكن لأي شخص يقف في الوسط التمتع بقراءتها.

وتستعمل OTR تشفيراً تناظرياً بمفتاح مؤقت AES-128، وخوارزمية Diffe-Hellman-1536 لنقل المفتاح، و SHA-1 كخوارزمية تجزئة Hashing.

طريقة عمل الإضافة

من موقع OTR الرسمي لنفرض أنه لدينا ثلاثة أشخاص[1]: بوب، أليس، ومالوري. يريد بوب التحدث مع أليس عندما تكون المحادثة بشكل عادي يمكن لمالوري الذي يعترض طريق الحزمة الشبكية ويتلصص على محتوياتها رؤية أي نص مرسل من أحدهما للآخر ويمكن أن يتم ذلك بكل سهولة: مراسلة غير محمية

الحالة الثانية عندما يدخل بوب وأليس المحادثة المشفرة لكن من غير توثيق بإحدى طرق التوثيق: ففي هذه الحالة يمكن لمالوري أن يتقمص شخصية كل واحدٍ منهما بالنسبة للآخر فسيكون هو أليس لبوب وبوب لأليس ثم يعيد إرسال النص للآخر. في حال فعل مالوري هذا فإن التشفير لن يفيد لأن أليس أرسلت المعلومات الكافية لمالوري لفك التشفير وهو بدوره أعاد إرسالها إلى بوب مراسلة محمية غير موثقة

الحالة الثالثة عندا يدخل بوب وأليس المحادثة المشفرة لكن مع توثيق للطرف الآخر بحيث يتعذر على مالوري أن يدخل بينهما وعندها الأمل الوحيد الذي لديه هو الحصول على النص المشفر والذي لن يفيده شيئاً: مراسلة محمية موثقة

التطبيق العملي

سنحاول الآن تشغيل الإضافة وبشكل عملي

الخطوة الأولى بالطبع هي تحميل الإضافة وتنصيبها: يمكنك ذلك من هذه الوصلة بعد تحميل الإضافة بما يناسب نظامك يمكنك تنصيبها بشكل عادي كأي برنامج آخر (تتطلب وجود Pidgin أولاً) الخطوة الثانية هي إعداد الإضافة للعمل: بعد تحميل الإضافة لا تحتاج إلى إعادة تشغيل البرنامج إن كنت تعمل عليه. فقط افتح قائمة الإضافات (Ctrl + U) Tools -> Plugins انزل قليلاً حتى تجد اسم الإضافة Off-the-Record Messaging علم الصندوق بجانبها لتصبح فعالة. ثم اضغط على Configure Plugin (أو ضغطتين على اسم الإضافة) لتحصل على خيارات الإضافة: نبدأ باللسان Tab الأيمن والذي هو: Known fingerprints وهو عبارة عن بصمات أصدقائك التي أضفتها من خلال محادثاتك وكما ترى هناك العديد من الخيارات المفيدة وحالة كل بصمة.

اللسان الثاني والذي هو Config يهمنا حالياً حيث يبين كما في الصورة أدناه أن الحساب المحدد لم نقم بتوليد بصمة له بعد

اضغط على Generate وانتظر قليلاً ليتم توليد بصمة ومفتاح خاص لهذا الحساب ويكون بهذا الطول كما

DC2AE255 81A14DBF 54C5BA30 4A6134DA 504C2BAD

الخيارات الأخرى تتعلق بسلوك البرنامج كألا يسجل المحادثات المشفرة وألا يستجيب إلا لمحادثات مشفرة الخ… يمكنك تعديلها كما تشاء

الآن الخطوة الثالثة وهي بدء محادثة مشفرة:

عندما تفتح نافذة الدردشة ستكون بهذا الشكل

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

ستلاحظ أن زر المحادثة تغير من not private button إلى محادثة مشفرة غير موثقة unverified button

الآن نأتي إلى الخطوة الأخيرة وهي التوثق من الطرف الآخر: اضغط على زر المحادثة الخاصة ثم اختر: Authenticate Buddy الآن سترى نافذة كما هنا:

توثيق صديق

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

وعند تطبيق واحدة من هذه الطرق بنجاح ستلاحظ تغير زر المحادثة إلى private button

يمكنك التأكد من الفارق باستخدام أي برنامج Sniffer مثل Wireshark أو tcpdump وكلاهما يحتاجان إلى WinPcap على نظام ويندوز.

س و ج

س. هل هذه الإضافة متوفرة باللغة العربية؟
ج. نعم.

س. هل من إضافات مشابهة تعمل مع Mac OS X؟
ج. نعم، الإضافة نفسها تعمل مع Adium.

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

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

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

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

~/.purple/otr.private_key

أو

C:\Documents and Settings\[USER NAME]\Application Data\.purpleotr.private_key

والبصمات المعروفة في الملف:

~/.purple/otr.fingerprints

أو

C:\Documents and Settings\[USER NAME]\Application Data\.purpleotr.fingerprints

س. أين يمكنني الحصول على المزيد من المعلومات؟
ج. من الموقع الرسمي للإضافة: https://otr.cypherpunks.ca


  1. أليس وبوب ومالوري ثلاث شخصيات وهمية اخترعها أول مرة Bruce Schneier عالم التشفير المعروف في كتابه المعروف Applied Cryptography من بين عدة شخصيات لتقريب عمليات التشفير. أصبحت هذه ا لشخصيات بعد ذلك أعلاماً على عمليات معلينة أثناء عمليات التشفير واستعملت في الكثير من الكتب والأبحاث.