أمثلة هندسة أكرا | التوثيق والدروس | تثبيت | ردود فعل أكرا |
---|
Acra — مجموعة أمان قاعدة البيانات لحماية البيانات الحساسة والشخصية.
يوفر Acra تشفيرًا على مستوى التطبيق لحقول البيانات، والتحكم في الوصول متعدد الطبقات، ومنع تسرب قاعدة البيانات، وقدرات كشف التسلل في مجموعة واحدة. تم تصميم Acra خصيصًا للتطبيقات الموزعة (الويب والخادم والجوال) التي تخزن البيانات في واحدة أو أكثر من قواعد البيانات/مخازن البيانات.
تطبيقات مثالية متوافقة مع Acra | الصناعات النموذجية |
---|---|
تطبيقات الويب والهواتف المحمولة التي تخزن البيانات في قاعدة بيانات مركزية أو وحدة تخزين كائنات |
|
تطبيقات إنترنت الأشياء التي تجمع بيانات القياس عن بعد وتعالج البيانات في السحابة | |
تطبيقات معالجة البيانات عالية التحميل |
يمنحك Acra أدوات لتشفير كل سجل بيانات حساس (حقل البيانات، خلية قاعدة البيانات، json) قبل تخزينها في قاعدة البيانات/مخزن الملفات. ومن ثم فك تشفيرها في منطقة مقسمة آمنة (على جانب أكرا). يسمح Acra بتشفير البيانات في أقرب وقت ممكن والعمل على البيانات المشفرة.
يضمن تصميم التشفير الخاص بـ Acra عدم تسرب أي سر (كلمة المرور، المفتاح، وما إلى ذلك) من التطبيق أو قاعدة البيانات لفك تشفير البيانات المحمية. يعمل Acra على تقليل نطاق التسرب، واكتشاف السلوك غير المصرح به، ومنع التسرب، وإبلاغ المشغلين بالحادث الجاري.
هذا هو إصدار مجتمع Acra، وهو مجاني للاستخدام التجاري وغير التجاري إلى الأبد.
| التشفير من جانب العميل و/أو جانب Acra - يتم تشفير كل حقل بيانات باستخدام مفاتيح تشفير فريدة. |
| يمكنك تحديد الأعمدة التي تريد تشفيرها لتحقيق التوازن بين الأمان والأداء الجيد. |
| مظروفان للتشفير: AcraBlocks وAcraStructs. AcraBlocks عبارة عن حاويات سريعة ومتماثلة، استخدمها افتراضيًا. AcraStructs عبارة عن حاويات غير متماثلة، استخدمها للتشفير من جانب العميل. |
| البحث من خلال البيانات المشفرة دون فك التشفير. مصمم للاستعلامات الدقيقة ، استنادًا إلى AES-GCM والفهرس الأعمى. |
| استخدم الإخفاء الكامل أو الجزئي لإزالة البيانات الحساسة أو إخفاءها. |
| استبدال البيانات الحساسة برمز مميز ومطابقتها بالأصل فقط عند الحاجة. |
| أدوات مدمجة لإنشاء المفاتيح، والتصدير، والنسخ الاحتياطي، والتدوير، وما إلى ذلك. |
| من خلال جدار الحماية SQL المدمج. |
| استخدام سجلات السموم (رموز العسل) للتحذير من السلوك المشبوه. |
| متاح لمستخدمي Acra Enterprise. |
| |
|
توفر Acra طبقات مختلفة من الدفاع لأجزاء ومراحل مختلفة من دورة حياة البيانات. هذا هو المقصود بالدفاع المتعمق - مجموعة مستقلة من الضوابط الأمنية تهدف إلى تخفيف المخاطر المتعددة في حالة عبور مهاجم للمحيط الخارجي.
| جميع ميزات Acra معبأة في وكيل قاعدة البيانات الذي يوزع حركة المرور بين التطبيق وقاعدة البيانات ويطبق وظائف الأمان عند الاقتضاء. |
| خادم API، الذي يعرض معظم ميزات Acra مثل HTTP / gRPC API مع حماية حركة المرور. |
| خدمة اختيارية من جانب العميل للمصادقة وتشفير النقل. |
| متاح لمستخدمي Acra Enterprise. |
| |
| |
| |
|
| البنية التحتية الخاصة بك آمنة منذ البداية دون أي تكوين إضافي. |
| لا يوجد خطر في اختيار طول المفتاح الخاطئ أو حشوة الخوارزمية. |
| من السهل تكوين وأتمتة. |
| عبر الحزم الثنائية أو صور Docker. |
| يتطلب الحد الأدنى من التغييرات في رمز التطبيق. |
| في جميع أنحاء أكرا؛ متوافق مع ELK Stack، Datadog، Graylog، Prometheus، Grafana، Jaeger. |
| أدوات التراجع لفك تشفير قاعدة البيانات إلى نص عادي. |
| تتوفر العديد من المشاريع النموذجية المستندة إلى الويب والمستندة إلى Docker. |
| قم بتشغيل AcraServer في سحابة DigitalOcean الخاصة بك. |
| يمكننا إعداد وإدارة أكرا لك. |
تعتمد أكرا على مكتبة التشفير الخاصة بنا Themis، التي تطبق أنظمة تشفير عالية المستوى بناءً على أفضل التطبيقات المتاحة مفتوحة المصدر للشفرات الأكثر موثوقية. لا تحتوي Acra بشكل صارم على أوليات تشفير ذاتية الصنع أو شفرات غامضة.
لتقديم ضماناتها الفريدة، تعتمد Acra على مزيج من الأصفار المعروفة ونظام إدارة المفاتيح الذكية. راجع التشفير وإدارة المفاتيح.
المصدر الافتراضي للتشفير البدائي | OpenSSL |
مصادر التشفير البدائية المدعومة ᵉ | BoringSSL، LibreSSL، متوافق مع FIPS، متوافق مع GOST، HSM |
تشفير التخزين (AcraBlocks) | AES-256-GCM + AES-256-GCM |
تشفير التخزين (AcraStructs) | AES-256-GCM + ECDH |
تشفير النقل | TLS v1.2+ أو جلسة Themis الآمنة |
تكامل KMS ᵉ | Amazon KMS، وGoogle Cloud Platform KMS، وHashiCorp Vault، وKeywhiz، وما إلى ذلك |
ᵉ — متوفر في إصدار Enterprise من Acra فقط. أرسل لنا بريدًا إلكترونيًا للحصول على قائمة كاملة بالميزات والاقتباس.
تتكون أكرا من العديد من الخدمات والمرافق. تتيح لك خدمات Acra إنشاء تدفقات بيانات متطورة بشكل لا نهائي ومناسبة تمامًا للبنية التحتية الخاصة بك. اعتمادًا على البنية وحالة الاستخدام لديك، قد تحتاج إلى نشر الخدمات الأساسية فقط أو جميعها.
مكونات إنفاذ الأمن : الخدمات التي يحدث فيها "التشفير". مطلوب واحد منهم: AcraServer، AcraTranslator، AnyProxy، أو SDK من جانب العميل.
تخزين المفاتيح: مخازن البيانات حيث يحتفظ Acra بالمفاتيح المشفرة: Redis، الجدول في قاعدة البيانات الخاصة بك، أي مخزن KV. مطلوب واحد منهم.
تخزين المفتاح الرئيسي: KMS، Vault. ينصح بشدة واحد منهم.
الخدمات والأدوات الإضافية: أدوات الإدارة الرئيسية، والنصوص البرمجية لترحيل البيانات، وخدمة أمن النقل، وأدوات إدارة السياسات. أي منهم اختياري.
ارجع إلى Acra-in-detail / Architecture لمعرفة المزيد حول مكونات Acra. ارجع إلى Acra-independ / تدفق البيانات لرؤية المزيد من تدفقات البيانات وعمليات النشر النموذجية المستندة إلى Acra.
دعونا نرى أبسط تدفق البيانات مع AcraServer.
يعمل AcraServer كوكيل تشفير/فك تشفير شفاف مع قواعد بيانات SQL. لا يعرف التطبيق أن البيانات مشفرة قبل وصولها إلى قاعدة البيانات، ولا تعرف قاعدة البيانات أيضًا أن شخصًا ما قد قام بتشفير البيانات. ولهذا السبب نطلق على هذا الوضع غالبًا اسم "التشفير الشفاف".
لديك تطبيق من جانب العميل يتحدث إلى قاعدة بيانات SQL. يمكنك إضافة AcraServer في المنتصف، والعمل كوكيل SQL، وتوجيه التطبيق إليه.
هذا ما تبدو عليه عملية كتابة وقراءة البيانات من/إلى قاعدة البيانات:
يمكنك نشر AcraServer وتكوينه: الاتصال بقاعدة البيانات، وشهادات TLS، وتحديد الحقول المراد تشفيرها، أو إخفاءها أو ترميزها، وتمكين جدار حماية طلب SQL، وما إلى ذلك.
بمجرد نشر AcraServer، يصبح جاهزًا لقبول طلبات SQL.
يمكنك توجيه التطبيق من جانب العميل إلى AcraServer بدلاً من قاعدة بيانات SQL.
عند تلقي استعلامات SQL من التطبيق، يقوم AcraServer بتحليل كل استعلام وتنفيذ عمليات الأمان: التشفير والإخفاء والترميز. لمعرفة القيم المطلوب تغييرها، يستخدم AcraServer ملف تكوين حيث قمت بوصف الأعمدة التي يجب تشفيرها وإخفائها ورمزها.
بعد إجراء العملية، يقوم AcraServer بتمرير الاستعلامات المعدلة إلى قاعدة البيانات، واستجابة قاعدة البيانات – مرة أخرى إلى تطبيق العميل. لنفترض أنك حددت تشفير حقل البريد الإلكتروني: فهذا يعني أن السلسلة الأصلية مشفرة في حاوية تشفير وإرسالها إلى قاعدة البيانات كبيانات ثنائية.
عندما يريد تطبيق العميل قراءة البيانات، فإنه يرسل استعلام SELECT إلى AcraServer الذي يرسله إلى قاعدة البيانات.
عند استرداد استجابة قاعدة البيانات، يحاول AcraServer فك تشفير الحقول المحددة وإظهارها وإلغاء ترميزها وإعادتها إلى التطبيق.
يتلقى التطبيق البيانات في نص عادي.
باستثناء عمليات معالجة البيانات، يقوم AcraServer أيضًا بتحليل استعلامات SQL: حظر الاستعلامات غير المرغوب فيها باستخدام جدار حماية SQL المدمج القابل للتكوين، والكشف عن حقن SQL باستخدام السجلات السامة، وإرسال السجلات والمقاييس، وتنبيه فريق العمليات الخاص بك في الحالات المشبوهة.
راجع الدليل: دمج AcraServer في البنية التحتية لمعرفة المزيد حول ميزات AcraServer وكيفية استخدامها.
دعونا نرى أبسط تدفق البيانات مع AcraTranslator.
يعمل AcraTranslator كتشفير كخدمة باستخدام HTTP وgRPC API. يرسل التطبيق طلب API إلى AcraTranslator مع حقول البيانات والعمليات (التشفير، فك التشفير، الترميز، إزالة الرمز، إلخ). التطبيق مسؤول عن تخزين البيانات المشفرة في قاعدة البيانات (NoSQL، KV store، SQL، AWS S3 – أي) والتواصل مع AcraTranslator لفك تشفيرها مرة أخرى.
يعد AcraTranslator وAcraServer مكونين مستقلين تمامًا من جانب الخادم ويمكن استخدامهما معًا أو بشكل منفصل اعتمادًا على البنية الأساسية لديك.
لديك تطبيق من جانب العميل يعرف الحقول التي سيتم تشفيرها وفك تشفيرها وترميزها ومكان تخزينها. يمكنك إضافة AcraTranslator، وتعليم التطبيق إجراء مكالمات API لاستخدامه.
هذا ما تبدو عليه عملية كتابة وقراءة البيانات من/إلى قاعدة البيانات:
يمكنك نشر AcraTranslator في البنية الأساسية لديك وتكوين شهادات TLS.
بمجرد نشر AcraTranslator، يصبح جاهزًا لقبول طلبات API.
يقوم تطبيقك باستدعاء AcraTranslator ويرسل حقول البيانات والعمليات عليها (التشفير، وفك التشفير، والترميز، وإزالة الرمز).
عند تلقي طلبات واجهة برمجة التطبيقات، يقوم AcraTranslator بتنفيذ العملية المطلوبة ويرسل النتيجة مرة أخرى إلى التطبيق. لنفترض أن التطبيق يرسل حقل "البريد الإلكتروني" وعملية "التشفير". في هذه الحالة، يتم تشفير السلسلة الأصلية في حاوية تشفير وإرسالها مرة أخرى إلى التطبيق كبيانات ثنائية.
يأخذ التطبيق البيانات المشفرة ويخزنها في قاعدة البيانات/مخزن البيانات.
بمجرد أن يحتاج التطبيق إلى الحصول على بيانات نص عادي، فإنه يقرأ البيانات المشفرة من قاعدة البيانات/مخزن البيانات، ويرسل طلب API إلى AcraTranslator. لنفترض أن التطبيق يرسل حقل "البريد الإلكتروني" وعملية "فك التشفير". في هذه الحالة، يتم فك تشفير البيانات الأصلية (blob الثنائية) إلى سلسلة وإرسالها مرة أخرى إلى التطبيق.
باستثناء عمليات معالجة البيانات، يقوم AcraTranslator أيضًا بتحليل استعلامات واجهة برمجة التطبيقات: يكتشف عمليات التطفل باستخدام السجلات السامة، ويرسل السجلات والمقاييس، وينبه فريق العمليات الخاص بك في الحالات المشبوهة.
راجع الدليل: دمج AcraTranslator في البنية التحتية لمعرفة المزيد حول ميزات AcraServer وكيفية استخدامها.
Acra عبارة عن مجموعة من المكونات، معظمها "من جانب الخادم"، مما يعني أنك تقوم بنشر وتكوين AcraServer أو AcraTranslator أو AnyProxy، وتوصيل تطبيق العميل الخاص بك بها.
تتوافق مكونات Acra مع العديد من RDBMS ومخازن الكائنات وKV والمنصات السحابية وأنظمة إدارة المفاتيح الخارجية (KMS) وأنظمة موازنة التحميل.
المنصات السحابية | DigitalOcean، وAWS، وGCP، وHeroku، وأي منها |
نظام إدارة قواعد البيانات الراديوية (RDBMS). | MySQL v5.7+، PosgtreSQL v9.4-v11، MariaDB v10.3؛ جوجل كلاود SQL، أمازون RDS |
مخازن الكائنات | أنظمة الملفات، وقواعد بيانات KV، وAmazon S3، وGoogle Cloud DataStore |
موازنة التحميل | HAProxy، الموازنات السحابية |
المنصات من جانب الخادم | أوبونتو، ديبيان، سينت أو إس، RHEL؛ عامل ميناء |
لغة التطبيق من جانب العميل | أي :) |
يتمتع Acra مفتوح المصدر بدعم تكامل محدود، وتتوفر المزيد من الخدمات في Acra Enterprise Edition فقط.
يجب أن تعمل مكونات Acra من جانب الخادم (AcraServer، وAcraTranslator، وAnyProxy) على خوادم/أجهزة افتراضية منفصلة لتحسين العزل والتقسيم. عادةً ما يتم تشغيل أدوات إدارة المفاتيح ومساعدي قاعدة البيانات على نفس الخادم مثل AcraServer وAcraTranslator وAnyProxy.
تعمل مكونات Acra من جانب الخادم على معظم توزيعات Linux (Ubuntu وDebian وCentOS) وكصور Docker. لاحظ أن مكونات Acra من جانب الخادم غير متوافقة مع نظام التشغيل Windows كنظام تشغيل مضيف، فكر في استخدام Docker.
راجع البدء لمعرفة كيفية تثبيت Acra أو تجربة Acra بدون برمجة.
تعمل Acra مع أي تطبيقات للعميل. بغض النظر عن اللغات التي تستخدمها لكتابة تطبيقاتك، يمكنك توصيلها بـ AcraServer (عبر SQL) وAcraTranslator/AnyProxy (عبر واجهة برمجة التطبيقات) لتشفير البيانات وفك تشفيرها وترميزها وإخفائها.
توفر Acra مجموعة من أدوات تطوير البرامج (SDK) من جانب العميل والتي تكون مفيدة فقط في حالات استخدام محددة:
AcraWriter – SDK لتشفير حقول البيانات في AcraStructs. استخدمه عندما يكون تشفير البيانات على جانب التطبيق أمرًا مهمًا (لإنشاء تدفقات بيانات مشفرة من طرف إلى طرف أو العمل في بيئات معادية).
AcraReader – SDK لفك تشفير حقول البيانات من AcraStructs. استخدمه عندما يكون فك تشفير البيانات من جانب التطبيق أمرًا مهمًا (لإنشاء تدفقات بيانات مشفرة من طرف إلى طرف أو العمل في بيئات معادية).
SDK for AcraTranslator - SDK الذي يتضمن واجهة برمجة تطبيقات AcraTranslator لاستخدام أكثر ملاءمة.
تتوفر حزم SDK هذه لـ Ruby وPython وGo وC++ وNode.js وiOS (Swift وObjC) وAndroid (Java وKotlin) وJava لسطح المكتب وPHP.
راجع البدء لمعرفة كيفية تثبيت Acra أو تجربة Acra بدون برمجة.
توضح مشاريع Acra النموذجية دمج مجموعة حماية بيانات Acra في التطبيقات الحالية: تطبيقات الويب المستندة إلى أطر عمل Django وRuby on Rails، وتطبيقات CLI البسيطة. لقد أخذنا تطبيقات معروفة واكتشفنا بيانات حساسة هناك وأضفنا طبقة التشفير. تتسم حماية البيانات بالشفافية الكاملة للمستخدمين وتتطلب الحد الأدنى من التغييرات في البنية التحتية ورمز التطبيق.
المطورين والعمليات ودية:
تشغيل أمر واحد لنشر التطبيق وقاعدة البيانات ومكونات Acra والسجلات ولوحات المعلومات؛
قراءة تغييرات التعليمات البرمجية ومعرفة مدى ضآلة ما يتطلبه دمج التشفير في تطبيق العميل؛
تعرف على كيفية عمل Acra من خلال قراءة السجلات ومراقبة المقاييس في Prometheus والتحقق من أدوات التتبع في Jaeger ومشاهدة لوحات معلومات Grafana؛
فحص ملفات إنشاء Docker ومخططات الهندسة المعمارية وجداول قاعدة البيانات وغير ذلك الكثير.
المتطلبات: Linux أو macOS مع تثبيت Docker.
قم بتشغيل مشاريع أكرا النموذجية |
---|
تتوفر أحدث الإصدارات من الوثائق والبرامج التعليمية والعروض التوضيحية الخاصة بـ Acra على خادم توثيق Cossack Labs الرسمي.
للحصول على فهم أولي لمدينة أكرا، قد ترغب في القيام بما يلي:
ما هو أكرا للحصول على لمحة عامة عن الأشياء.
ضوابط أمان Acra لمعرفة المزيد حول التشفير والإخفاء والترميز وجدار حماية SQL واكتشاف التسلل وما إلى ذلك.
تدفقات البيانات النموذجية التي توضح مكونات Acra التي تحتاجها وما هي إيجابيات وسلبيات كل مجموعة.
اقرأ الملاحظات حول بنية Acra وتصميم الأمان لتفهم بشكل أفضل ما تحصل عليه عند استخدام Acra وما هو نموذج التهديد الذي يعمل فيه Acra.
يمكنك أيضًا الاطلاع على شرائح المتحدث للمحادثات التالية التي أجراها مهندسو Cossack Labs:
"تشفير بدون سحر، إدارة مخاطر بدون ألم" بقلم أناستازيا فويتوفا.
"تشفير البيانات لتطبيقات الويب روبي" بقلم دميترو شابوفالوف.
"بناء جدار حماية SQL (AcraCensor): رؤى من المطورين" بواسطة Artem Storozhuk.
قم بتشغيل مشاريع أكرا النموذجية |
---|
يمكن أن تساعدك Acra في الالتزام بلوائح الخصوصية الحالية، مثل:
اللائحة العامة لحماية البيانات (GDPR)
HIPAA (قانون قابلية نقل التأمين الصحي والمساءلة)
DPA (قانون حماية البيانات)
CCPA (قانون خصوصية المستهلك في كاليفورنيا)
سيغطي تكوين Acra واستخدامه في نموذج مخصص معظم المتطلبات الموضحة في المواد 25 و32 و33 و34 من اللائحة العامة لحماية البيانات (GDPR) ومتطلبات حماية بيانات تحديد الهوية الشخصية (PII) الخاصة بقانون HIPAA. قراءة المزيد عن أكرا واللوائح.
هذا هو إصدار Acra Community Edition، وهو إصدار مفتوح المصدر من Acra، وهو مجاني للاستخدام التجاري وغير التجاري. يرجى إعلامنا في المشكلات إذا عثرت على خطأ ما، أو شاهدت تحسينًا محتملاً، أو كان لديك تعليق على تصميم الأمان.
يتوفر أيضًا إصدار Acra Enterprise Edition. فهو يوفر أداءً أفضل، وموازنة للتكرار/الحمل، ويأتي مُهيأ مسبقًا بأساسيات التشفير من اختيارك (FIPS، وGOST)، ويتكامل مع أدوات إدارة المفاتيح/السرية في مجموعتك، وإدارة السياسات، وحزم تطوير البرامج (SDK) من جانب العميل، ولديه الكثير من الأدوات والأدوات اللازمة لعملياتك وSREs لتشغيل Acra بشكل ملائم. تحدث إلينا للحصول على قوائم الميزات الكاملة والاقتباس.
يستغرق الأمر أكثر من مجرد الحصول على رمز التشفير لتجميعه لتأمين البيانات الحساسة. لن يجعلك Acra "متوافقًا خارج الصندوق" مع جميع الأنظمة الأمنية الحديثة، ولن تفعل ذلك أي أداة أخرى.
نحن نساعد الشركات على تخطيط استراتيجية أمن البيانات الخاصة بها من خلال التدقيق، وتقييم تدفق البيانات، وتصنيف البيانات، وتعداد المخاطر. نحن نقوم بالجزء الأصعب والأقل حظًا في تحقيق الامتثال - وهو تحويله من "تكلفة ممارسة الأعمال" إلى "الإطار الأمني الذي يمنع المخاطر".
إذا كنت ترغب في المساهمة بالكود الخاص بك أو تقديم أي نوع آخر من المدخلات إلى Acra، فنحن نرحب بك بشدة. نقطة البداية للمساهمة هنا.
إذا كنت أحد مستخدمي أكرا، يرجى ترك تعليقات قصيرة.
تم ترخيص Acra Community Edition كبرنامج Apache 2 مفتوح المصدر.
إذا كنت تريد طرح سؤال فني، فلا تتردد في إثارة مشكلة أو الكتابة إلى [email protected].
للتحدث إلى جناح الأعمال في Cossack Labs Limited، أرسل لنا بريدًا إلكترونيًا على [email protected].