الآن أفهم لماذا لا يقوم أحد تقريبًا بتشفير بريدهم



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

لقد بدأت بتثبيت GnuPG على جهاز Linux الخاص بي.

يشبه GnuPG PGP في أنه يستخدم مفاتيح عامة وخاصة للتشفير وفك التشفير ، ولكنه يأتي مع رمز مفتوح المصدر ويأتي مع العديد من توزيعات Linux. آخر إصدار مفتوح المصدر من PGP هو OpenPGP.

يمكن تنزيل GnuPG لنظام التشغيل Windows يسمى Gpg4win من الموقع الرسمي . لقد اخترت طريقة عامة لتشفير الرسائل وفك تشفيرها ، والتي لا ترتبط بأي مزود بريد إلكتروني ، لأنني لم أرغب في قصر نفسي على القدرة على تشفير مزود واحد فقط. بالإضافة إلى ذلك ، فإن الطريقة الوحيدة للتأكد من أنه حتى موفر البريد لا يستطيع الوصول إلى رسائلك هو تشفيرها بنفسك. لقد وجدت دليل GnuPG الأكثر شمولاً حول How-To Geek .

لقد قمت باستيراد المفتاح العام لصديقي باستخدام هذا الأمر:

gpg --import her_public_key_file.key

her_public_key_file.keyيتم استبدال هذا الأمر بملف المفتاح العمومي الفعلي. ثم تحققت من استيراد مفتاحها بنجاح:

gpg --list-keys

ظهرت رسالة مثل هذه:

pub 2048R/FFE7947D 2019-10-11 [expires: 2021-10-10]
uid her_email@her_email_provider.com
sub 2048R/AB48FEC2 2019-10-11

هذا يعني أن GnuPG يتعرف على مفتاحه العام على أنه صالح ويحفظه للاستخدام في المستقبل.

ثم وقعت على مفتاحها العام:

gpg --sign-key her_email_address@email_provider.com

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

ثم حاولت إنشاء مفاتيحي:

gpg --output ~/temp.key --armor --export My Name 

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

gpg --gen-key

يسألك الأمر أعلاه سلسلة من الأسئلة. في البداية اخترت الخيار "1" ، ثم اخترت خيار طول المفتاح 2048 بت. حدد فترة صلاحية مفتاح غير محدودة. لم أشير إلى اللقب في حقل الاسم ، ولكن هناك أيضًا مساحات مدعومة هناك: يمكنك تحديد كل من الاسم واللقب. ثم أدخل عنوان بريده الإلكتروني. حقل التعليق فارغ وأخيرًا ، قدم عبارة مرور طويلة. عبارة المرور هي ببساطة مرادف لكلمة المرور. كتبتها حيث لن تضيع. في الواقع ، أضعه في ملف مشفر باستخدام Truecrypt. ستكون هناك حاجة إلى عبارة مرور في وقت لاحق لتشفير الرسائل في حالة إعادة تثبيت GnuPG على محرك الأقراص الثابتة وإعادة استيراد المفاتيح. ولا تنسى عمل نسخة احتياطية من المفاتيح نفسها!

بعد إنشاء المفاتيح ، نتحقق من النتيجة:

gpg --list-keys

ينتج عن هذا الأمر شيء مثل هذا:

pub 2048R/FFE7947D 2019-10-11 [expires: 2021-10-10]
uid her_email@her_email_provider.com
sub 2048R/AB48FEC2 2019-10-11


pub 2048R/3A785D3F 2020-02-22
uid My Name
sub 2048R/A7B384FE 2020-02-22

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

ثم حاولت تصدير مفتاحي العام إلى ملف. يجب إرسال المفتاح العام إلى كل شخص ترسل إليه رسالة مشفرة حتى يتمكن من فك تشفيرها. لست متأكدًا من الأمر الذي استخدمته ، ولكنه أنتج ملفًا نصيًا يبدأ به -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1. لقد أرسلت هذه الرسالة إلى صديقي فأجابت لي برسالة مشفرة.

حاولت فك تشفير الملف message.ascبخطابها:

gpg --decrypt message.asc > plain.txt

لكن GnuPG أعطى رسالة خطأ مفادها أنه لم يتمكن من العثور على المفتاح السري:

gpg: encrypted with RSA key, ID XXXXXXXX
gpg: decryption failed: secret key not available

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

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

gpg --output ~/my_public_gpg_key.key --armor --export My Name my-email@my-email-povider.com

ثم أرسل لصديق مفتاحا عاما جديدا. --armorتخبر المعلمة GnuPG بإنشاء ملف المفتاح العام في شكل نصي. اسم الملف - my_public_gpg_key.key.

قامت مرة أخرى بتشفير رسالتها وأرسلتها إلي. عندما حاولت فك تشفيرها ، رأيت مرة أخرى نفس رسالة الخطأ:

gpg: encrypted with RSA key, ID XXXXXXXX
gpg: decryption failed: secret key not available

هذه المرة ، لاحظت أن معرف المفتاح يتطابق مع مفتاحي العمومي القديم ، وليس المفتاح الجديد. قررت أنها كانت مخطئة ، وطلبت منها إعادة المحاولة باستخدام مفتاح جديد. بعد ذلك ، للتأكد من أنني لم أكن مخطئًا ، قررت التحقق من أن المفتاح الذي استخدمته هو حقًا مفتاحي الجديد. المفتاح الجديد الذي أرسلته لم يكن حتى أحد مفاتيحي العامة! كان مفتاحها العلني الذي بدأ -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1! بطريقة ما قمت بتصدير مفتاحها مع الإضافة Version: GnuPG v1! أعرف هذا لأنني ما زلت أملك ملفًا بمفتاحها أرسلته لي ، ويبدأ به -----BEGIN PGP PUBLIC KEY BLOCK-----. ليس هناك Version: GnuPG v1! ومفتاحها العام يطابق المفتاح الذي أرسلته إليه.

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

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

gpg --encrypt --sign --armor -r her-email@her-email-provider.com --passphrase my-pass-phrase my-msg.txt

بالطبع ، هذه ليست كلمة مروري الحقيقية ، لقد استبدلت بها my-pass-phrase، والرسالة غير المشفرة بها my-msg.txt. تم إنشاء نص مشفر وتم تسمية ملفه my-msg.tx.gpg. لم أتمكن من العثور على أي معلومات حول كيفية فك تشفير نص التشفير الخاص بي بنفسي ، لذلك كان علي إرساله إليها ، دون معرفة ما إذا كنت قد قمت بتشفيره بشكل صحيح. كنت أعلم فقط أنه يبدو أنه الحجم الصحيح. بعد أسبوعين ، تلقيت منها رسالة مشفرة جديدة حول موضوع مختلف. عندها فقط ظهرت الثقة أنني وصلت أخيرًا إلى النقطة التي يمكننا من خلالها التواصل بنجاح عبر البريد الإلكتروني المشفر. استغرقت العملية بأكملها من البداية إلى النهاية أكثر من شهر! ما زلت أحاول أتمتة أوامر GnuPG حتى أتمكن من استخدامها دون التفكير كثيرًا في ما أفعله.

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

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


All Articles