تشفير البيانات وفك تشفيرها باستخدام Cloud KMS

1. نظرة عامة

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

ستتعلّم

  • كيفية تفعيل Cloud KMS API
  • كيفية إنشاء حلقة مفاتيح Cloud KMS
  • كيفية إنشاء مفتاح تشفير في Cloud KMS للتشفير/فك التشفير المتماثل
  • كيفية تدوير مفتاح تشفير Cloud KMS متماثل

2. الإعداد والمتطلبات

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. (إذا لم يكن لديك حساب على Gmail أو G Suite، عليك إنشاء حساب.)

dMbN6g9RawQj_VXCSYpdYncY-DbaRzr2GbnwoV7jFf1u3avxJtmGPmKpMYgiaMH-qu80a_NJ9p2IIXFppYk8x3wyymZXavjglNLJJhuXieCem56H30hwXtd8PvXGpXJO9gEUDu3cZw

ci9Oe6PgnbNuSYlMyvbXF1JdQyiHoEgnhl4PlV_MFagm2ppzhueRkqX4eLjJllZco_2zCp0V0bpTupUSKji9KkQyWqj11pqit1K1faS1V6aFxLGQdkuzGp4rsQTan7F01iePL5DtqQ

8-tA_Lheyo8SscAVKrGii2coplQp2_D1Iosb2ViABY0UUO1A8cimXUu6Wf1R9zJIRExL5OB2j946aIiFtyKTzxDcNnuznmR45vZ2HMoK3o67jxuoUJCAnqvEX6NgPGFjCVNgASc-lg

يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليها لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID.

  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.

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

بدء Cloud Shell

ستستخدم في هذا الدرس التطبيقي حول الترميز Cloud Shell، وهي بيئة افتراضية مجانية تعمل على Google Cloud. من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

vezHz_9nBUSt_0pD8eMHkzgHehRa83ILgMpcztEJtGZspECiZTk47O02PYk6Zp7jyStful3AIDEZU8qcCNbiXF4WcpkUdJi2LoUbxTWg4cZ4skDnvGKNywBZlDBzzWha111IZ1KqXQ

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

wQQCzLZ7_omk2cuoBaKVPnniKDFG6MsP8h2OA0j3Iw9LRSFQ9TkD6Ccq4dcUASPoD5UKe1Ur7bIgYn5gAh2r6BlQDnpFmgyAtv9x2D6ppXS0pfjfxViuEfoetgLvgVeduekc2hgU2Q

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

3- تفعيل خدمة Cloud KMS

قبل أن تتمكّن من استخدام Cloud KMS، عليك أولاً تفعيل الخدمة في مشروعك. يجب القيام بذلك مرة واحدة فقط لكل مشروع. لتفعيل خدمة Cloud KMS، شغِّل الأمر التالي:

$ gcloud services enable cloudkms.googleapis.com \
    --project "${GOOGLE_CLOUD_PROJECT}"

قد تستغرق عملية التفعيل مدة تصل إلى دقيقة واحدة. سيبلغ الأمر بنجاح عند الانتهاء منه.

4. إنشاء مفتاح KMS

أنشِئ حلقة مفاتيح Cloud KMS. في Cloud KMS، تكون حلقة المفاتيح (Key Ring) عبارة عن مجموعة منطقية من مفاتيح التشفير. تحتوي حلقة المفاتيح على بيانات وصفية حول المفاتيح مثل موقعها. أنشئ حلقة مفاتيح باسم "my-keyring" في منطقة global:

$ gcloud kms keyrings create "my-keyring" \
    --location "global"

يمكنك الآن إنشاء مفتاح تشفير باسم my-symmetric-key بغرض encryption داخل "سلسلة المفاتيح" التي أنشأتها للتو.

$ gcloud kms keys create "my-symmetric-key" \
    --location "global" \
    --keyring "my-keyring" \
    --purpose "encryption"

5- تشفير البيانات

أنشِئ ملفًا يتضمّن بيانات لتشفيره واستخدام أداة سطر أوامر gcloud لتشفير البيانات في الملف:

$ echo "my-contents" > ./data.txt
$ gcloud kms encrypt \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key" \
    --plaintext-file ./data.txt \
    --ciphertext-file ./data.txt.enc

يتم حفظ البيانات المشفَّرة (المعروفة أيضًا باسم "النص المُشفَّر") في data.txt.enc على القرص. إذا فتحت ملف data.txt.enc، ستلاحظ أنّه يتضمّن أحرفًا غريبة وغير قابلة للطباعة. ويرجع ذلك إلى أنّ البيانات الناتجة تكون بتنسيق ثنائي.

عند تخزين النص المُشفر في قاعدة بيانات أو نقله كجزء من طلب HTTP، قد تحتاج إلى ترميز البيانات. وتتمثل آلية الترميز الشائعة في base64.

لا تخزِّن Cloud KMS أيًا من النصوص العادية التي تقدّمها. تحتاج إلى حفظ هذا النص المُشفر في مكان آمن لأنه سيكون مطلوبًا لاسترداد قيمة النص العادي.

6- فك تشفير البيانات

يمكنك فك تشفير النص المُرمَّز من الملف باستخدام أداة سطر الأوامر gcloud:

$ gcloud kms decrypt \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key" \
    --plaintext-file - \
    --ciphertext-file ./data.txt.enc

تقرأ أداة سطر الأوامر gcloud النص المُشفَّر من الملف وتفك تشفيره باستخدام Cloud KMS. لاحظ أن هذا المثال يحدد الوسيطة --plaintext-file على أنها -. يؤدي هذا إلى توجيه gcloud لطباعة النتيجة إلى الوحدة الطرفية.

ستطبع وحدة التحكّم my-contents، وهي قيمة النص العادي نفسها من الملف أعلاه.

7. تدوير المفاتيح

مفتاح التشفير في Cloud KMS هو في الواقع مجموعة من إصدارات مفتاح التشفير. يمكنك إنشاء إصدارات جديدة من مفتاح التشفير لإجراء تغيير المفاتيح. يمكن أيضًا لخدمة Cloud KMS تدوير المفاتيح تلقائيًا وفقًا لجدول زمني.

لتدوير مفتاح يدويًا، أنشئ إصدار مفتاح تشفير جديدًا واضبطه كإصدار أساسي:

$ gcloud kms keys versions create \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key" \
    --primary

ستستخدم جميع الطلبات المستقبلية لتشفير البيانات هذا المفتاح الجديد. لا تزال المفاتيح القديمة متاحة لفك تشفير البيانات التي تم تشفيرها في السابق باستخدام تلك المفاتيح. تحدِّد خدمة Cloud KMS مفتاح فك التشفير المناسب تلقائيًا استنادًا إلى النص المُشفَّر المقدَّم، ولا يمكنك تحديد إصدار مفتاح التشفير الذي تريد استخدامه في فك التشفير.

لمنع فك تشفير قيم النص المُشفر التي تم تشفيرها باستخدام إصدار مفتاح تشفير قديم باستخدام Cloud KMS، يمكنك إيقاف إصدار مفتاح التشفير هذا أو إتلافه. جدير بالذكر أنّ عملية الإيقاف هي عملية يمكن التراجع عنها بينما تتم عملية التدمير بشكل دائم. لإيقاف إصدار:

$ gcloud kms keys versions disable "1" \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-symmetric-key"

8. تهانينا!

لقد فعّلت واجهة برمجة التطبيقات Cloud KMS، وأنشأت مفتاح تشفير متماثل، وبيانات مشفّرة وغير مشفّرة. إنّ خدمة Cloud KMS هي منتج فعّال، ما يؤدّي إلى توضيح إمكانات التشفير وفك التشفير.

إخلاء مساحة

إذا كنت قد انتهيت من الاستكشاف، فيرجى التفكير في حذف مشروعك.

  • انتقِل إلى وحدة تحكُّم Cloud Platform
  • اختَر المشروع الذي تريد إيقافه، ثم انقر على "حذف". في أعلى الصفحة يؤدي هذا إلى جدولة المشروع للحذف.

مزيد من المعلومات

الترخيص

هذا العمل مرخّص بموجب رخصة المشاع الإبداعي 2.0 مع نسب العمل إلى مؤلف عام.