1. نظرة عامة
Cloud KMS هي خدمة إدارة مفاتيح تتم استضافتها على السحابة الإلكترونية، وتتيح لك إدارة مفاتيح التشفير لخدمات السحابة الإلكترونية بالطريقة نفسها التي تستخدمها داخل مؤسستك. وتشمل إتاحة التشفير وفك التشفير والتوقيع والتحقق باستخدام مجموعة متنوعة من أنواع المفاتيح والمصادر، بما في ذلك Cloud HSM للمفاتيح المستنِدة إلى الأجهزة. يشرح لك هذا البرنامج التعليمي كيفية تشفير البيانات وفك تشفيرها باستخدام مفاتيح Cloud KMS غير المتماثلة.
ستتعلّم
- كيفية تفعيل Cloud KMS API
- كيفية إنشاء سلسلة مفاتيح
- كيفية إنشاء مفتاح تشفير للتشفير أو فك التشفير غير المتماثل
2. الإعداد والمتطلبات
إعداد بيئة ذاتية
- سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. (إذا لم يكن لديك حساب على Gmail أو G Suite، عليك إنشاء حساب.)
يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليها لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID
.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.
إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "الحذف سريعًا". الذي يقدم لك نصائح حول كيفية إيقاف تشغيل الموارد حتى لا تتكبّد أي فواتير خارج نطاق هذا البرنامج التعليمي. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج الفترة التجريبية المجانية التي تبلغ قيمتها 300 دولار أمريكي.
بدء Cloud Shell
ستستخدم في هذا الدرس التطبيقي حول الترميز Cloud Shell، وهي بيئة افتراضية مجانية تعمل على Google Cloud. من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:
من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بالبيئة بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك شيء مثل هذا:
يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. وتوفِّر هذه الآلة دليلاً رئيسيًا دائمًا بسعة 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 مع نسب العمل إلى مؤلف عام.