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. إنشاء مفتاح إدارة الخدمات الرئيسية
أنشئ سلسلة مفاتيح في Cloud KMS. في Cloud KMS، سلسلة المفاتيح هي مجموعة منطقية من مفاتيح التشفير. يحتوي "مفتاح السلسلة" على بيانات وصفية عن المفاتيح، مثل موقعها الجغرافي. أنشئ سلسلة مفاتيح باسم my-keyring
في منطقة global
:
$ gcloud kms keyrings create "my-keyring" \ --location "global"
أنشئ الآن مفتاح تشفير باسم my-asymmetric-signing-key
بغرض asymmetric-signing
داخل سلسلة المفاتيح التي أنشأتها للتو.
$ gcloud kms keys create "my-asymmetric-signing-key" \ --location "global" \ --keyring "my-keyring" \ --purpose "asymmetric-signing" \ --default-algorithm "rsa-sign-pkcs1-4096-sha512"
5- بيانات التوقيع
على عكس التشفير، يتطلّب فك تشفير البيانات التي تم تشفيرها باستخدام مفتاح غير متماثل في Cloud KMS الوصول إلى خدمة Cloud KMS على الإنترنت. فك تشفير النص المشفَّر من الملف باستخدام أداة سطر الأوامر gcloud
:
أنشئ ملفًا يحتوي على البيانات المطلوب التوقيع عليها واستخدِم أداة سطر الأوامر gcloud
لتوقيع البيانات باستخدام مفتاح Cloud KMS:
$ echo "my-contents" > ./data.txt
$ gcloud kms asymmetric-sign \ --location "global" \ --keyring "my-keyring" \ --key "my-asymmetric-signing-key" \ --version "1" \ --digest-algorithm "sha512" \ --input-file ./data.txt \ --signature-file ./data.txt.sig
يتم حفظ التوقيع في data.txt.sig
على القرص. إذا فتحت ملف data.txt.sig
، ستلاحظ أنّه يحتوي على أحرف غريبة غير قابلة للطباعة. ويعود السبب في ذلك إلى أنّ البيانات الناتجة تكون بـ تنسيق ثنائي.
عند تخزين التوقيع في قاعدة بيانات أو نقله كجزء من طلب HTTP، قد تحتاج إلى ترميز البيانات. من آليات الترميز الشائعة هي base64.
6- التحقّق من البيانات
في حال استخدام مفاتيح غير متماثلة، لا تُجري خدمة 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-signing-key" \ --output-file ./key.pub
تحقّق من التوقيع مقارنةً بالمفتاح العام باستخدام أداة سطر الأوامر openssl
:
$ openssl dgst -sha256 \ -verify ./key.pub \ -signature ./data.txt.sig ./data.txt
ستطبع وحدة التحكّم رسالة نجاح تشير إلى أنّ التوقيع الرقمي صالح.
Verified OK
7- تهانينا!
لقد فعّلت واجهة برمجة التطبيقات Cloud KMS API، وأنشأت مفتاح توقيع غير متماثل، ووقّعت على البيانات وأثبتت صحتها. Cloud KMS هو منتج فعّال، ويشكّل التوقيع/التحقّق جزءًا بسيطًا من إمكاناته.
التنظيف
إذا انتهيت من الاستكشاف، يُرجى التفكير في حذف مشروعك.
- انتقِل إلى وحدة تحكّم Cloud Platform.
- اختَر المشروع الذي تريد إغلاقه، ثم انقر على "حذف" في أعلى الصفحة. يؤدي ذلك إلى تحديد موعد لحذف المشروع.
مزيد من المعلومات
الترخيص
يخضع هذا العمل للإصدار 2.0 من رخصة المشاع الإبداعي العامة مع نسب العمل إلى مؤلفه.