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

1. نظرة عامة

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

ستتعلّم

  • كيفية تفعيل Cloud KMS API
  • كيفية إنشاء سلسلة مفاتيح
  • كيفية إنشاء مفتاح تشفير للتشفير أو فك التشفير غير المتماثل

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-asymmetric-encryption-key بغرض asymmetric-encryption داخل "سلسلة المفاتيح" التي أنشأتها للتو.

$ gcloud kms keys create "my-asymmetric-encryption-key" \
    --location "global" \
    --keyring "my-keyring" \
    --purpose "asymmetric-encryption" \
    --default-algorithm "rsa-decrypt-oaep-4096-sha512"

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

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

تنزيل المفتاح العام من Cloud KMS:

$ gcloud kms keys versions get-public-key "1" \
    --location "global" \
    --keyring "my-keyring" \
    --key "my-asymmetric-encryption-key" \
    --output-file ./key.pub

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

$ echo "my-contents" > ./data.txt
$ openssl pkeyutl -encrypt -pubin \
    -in ./data.txt \
    -inkey ./key.pub \
    -pkeyopt "rsa_padding_mode:oaep" \
    -pkeyopt "rsa_oaep_md:sha512" \
    -pkeyopt "rsa_mgf1_md:sha512" > ./data.txt.enc

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

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

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

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

على عكس التشفير، يتطلب فك تشفير البيانات التي تم تشفيرها باستخدام مفتاح Cloud KMS غير متماثل الوصول إلى خدمة Cloud KMS على الإنترنت. يمكنك فك تشفير النص المُرمَّز من الملف باستخدام أداة سطر الأوامر gcloud:

$ gcloud kms asymmetric-decrypt \


    --location "global" \
    --keyring "my-keyring" \
    --key "my-asymmetric-encryption-key" \
    --version "1" \
    --plaintext-file - \
    --ciphertext-file ./data.txt.enc

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

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

7. تهانينا!

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

إخلاء مساحة

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

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

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

الترخيص

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