ذكاء بيانات أفلاطون.
البحث العمودي و Ai.

كيف تعالج Kraken Wallet التحديات في أمان العملات المشفرة على الأجهزة المحمولة

التاريخ:

نحن نؤمن بأن محفظة التشفير المحمولة الأكثر أمانًا هي تلك التي تتغلب على القيود الكامنة في نظام تشغيل الهاتف المحمول الخاص بها. على سبيل المثال، على نظام التشغيل iOS، لا يدعم CryptoKit من Apple secp256k1 منحنى إهليلجي، وهو معيار للبيتكوين والإيثيريوم والعديد من سلاسل الكتل الأخرى.

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

وهذا يعني أنه يجب كشف المفاتيح الخاصة - على الأقل أثناء التوقيع - داخل ذاكرة بيئة التطبيق المعزولة. وهذا يجعلهم أكثر عرضة للتهديدات المحتملة من المحفظة التي تستخدم عنصرًا آمنًا لتوقيع المعاملات.

على الرغم من عدم القدرة على إجراء التوقيع على العناصر الآمنة مباشرة، الأمر الذي من شأنه أن يوفر حماية أكبر، فقد التزمنا بتوفير المصدر المفتوح محفظة تشفير متنقلة تعطي الأولوية للأمان والشفافية والتحكم في المستخدم.

تم تصميم البنية الأمنية لدينا خصيصًا لتحقيق ما يلي:

  • دعم سلاسل الكتل المتعددة
  • قم بإنشاء مفاتيح خاصة ذات إنتروبيا عالية، وهو مقياس لعدم القدرة على التنبؤ يعزز الأمان
  • الاستفادة من التشفير الذي تم اختباره في المعركة لتشفير المفاتيح الخاصة للمستخدمين بشكل آمن، مع الاستفادة من أجهزة الأمان للهواتف المحمولة وميزات أمان نظام التشغيل
  • توفير أمان محسّن باستخدام كلمة مرور أنشأها المستخدم للمستخدمين المتقدمين الذين يرغبون في مستوى إضافي من التشفير (بالإضافة إلى حماية سلسلة مفاتيح نظام التشغيل لمفتاح فك التشفير)
  • إنشاء أساس متين للدمج المستقبلي لأنواع الإدارة الرئيسية الجديدة، مثل محافظ الأجهزة والأنظمة المستندة إلى النصاب القانوني MPC

ميزة المصادر المفتوحة

باعتبارها أحد مبادئها الأمنية الأساسية، محفظة كراكن هو برنامج مجاني ومفتوح المصدر، موزعة تحت رخصة معهد ماساتشوستس للتكنولوجيا. بناء محفظة جديدة من الألف إلى الياء، كان من المهم بالنسبة لنا المساعدة في تعزيز النظام البيئي مفتوح المصدر والموزع.

بدون تعليمات برمجية مفتوحة المصدر، ستتطلب Kraken Wallet قدرًا كبيرًا من الثقة دون شفافية. وهذا من شأنه أن يمنح العملاء حماية أقل؛ لا يمكنك التحقق من العميل أو تعديله أو تشغيله بنفسك إذا أردت ذلك. "لا تثق، تحقق!" ليس مجرد مبدأ صناعي، بل هو أحد مبادئنا التوجيهية.

يحقق برنامجنا مفتوح المصدر هدفين أساسيين وضعناهما في البداية لهذا المنتج: تقليل الثقة بشكل يمكن التحقق منه والتدقيق:

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

توليد المفتاح واستيراد المفتاح

على الرغم من أن React Native أداة قوية، إلا أنها لا تحتوي على وحدة تشفير مدمجة. للتنقل حول هذا، استخدمنا تطبيق Pure-js (متصفح التشفير) لوحدة التشفير الخاصة بـ NodeJS. يتم التعامل مع طريقة crypto.randomBytes() - التي تولد البايتات العشوائية الفعلية التي نحتاجها أثناء إنشاء المفتاح - بواسطة رد الفعل الأصلي الحصول على قيم عشوائية polyfill.

تستخدم قيم React-native-get-random الكود الأصلي للاستفادة من مولد الأرقام العشوائية الآمنة تشفيرًا (CSPRNG) المتوفر على الجهاز لإنشاء أرقام عشوائية. على جميع الأجهزة الحديثة تقريبًا، يتم دعم منشئ الأرقام العشوائية هذا بواسطة مولد أرقام عشوائية آمن للأجهزة.

أثناء تهيئة المحفظة، نرسم الإنتروبيا من CSPRNG ونحولها إلى بذرة ذاكرية باستخدام حزم npm الراسخة (BIP32, BIP39).

يتم تحويل المفاتيح وتخزينها وتقديمها للمستخدم بموجب معيار BIP39، والذي يوفر طريقة سهلة للنسخ الاحتياطي مع إمكانية التشغيل البيني لمعظم المحافظ في النظام البيئي. تدعم ميزة الاستيراد استرداد البذور المتوافقة مع BIP39، والتي توفر أفضل إمكانية للتشغيل البيني في النظام البيئي. 

ادارة المفاتيح 

تحتفظ Kraken Wallet بقيمتين سريتين – البذرة والتذكيرية – وقيم متعددة غير سرية (لكنها لا تزال خاصة) مثل عناوين المحفظة وأسماء المحفظة وأوصاف المعاملات.

يتم تخزين مادة المفتاح الخاص (البذرة/التذكيرية) في Keychain (على iOS) وKeystore (على Android). يتم تخزين مواد المفتاح العام والبيانات غير الحساسة (المفاتيح العامة الموسعة والعناوين والأوصاف) في قاعدة البيانات المشفرة للتطبيق (باستخدام المملكة).

هناك العديد من الضوابط الأمنية لحماية البيانات:

  • قفل التطبيق: سلسلة مكونة من 64 بايت تم إنشاؤها عشوائيًا ومخزنة في Keychain أو Keystore. الوصول إلى السر محمي بمتطلبات حضور المستخدم – المصادقة البيومترية أو رمز المرور.
  • كلمة المرور: مقدم من قبل المستخدم ولا يتم الاحتفاظ به على الجهاز. وبدلاً من ذلك، يجب على المستخدم تقديم كلمة المرور يدويًا عندما يطلبها التطبيق. تحدد المحفظة ما إذا كانت كلمة المرور مطلوبة من خلال استشارة علامتين (is_storage_encrypted وis_seed_encrypted) المخزنتين في Keychain أو Keystore. يتم استخدام خوارزمية Argon2 كوظيفة اشتقاق رئيسية.
  • تشفير قواعد البيانات: قاعدة البيانات (Realm) تستخدم لتخزين البيانات غير السرية. يتم تشفير البيانات بمفتاح عشوائي 64 بايت.
  • آلية القفل: يؤدي إدخال كلمة مرور غير صحيحة إلى حدوث تأخيرات قبل إجراء محاولات لاحقة لكلمة المرور. تعمل هذه الآلية على ردع هجمات القوة الغاشمة بشكل فعال. يتم تخزين المعلومات المتعلقة بمعلمات التأمين، مثل عدد المحاولات ومدة التأخير، بشكل آمن في Keychain أو Keystore.

يتم دائمًا تخزين مفتاح التشفير الأساسي والتذكيري وقاعدة البيانات في شكل مشفر

  • عندما لا يتم تمكين أي وسائل الحماية: يتم تخزين مفتاح التشفير الأصلي ومفتاح التذكر والعالم مباشرة في Keychain أو Keystore دون التحكم في الوصول لوجود المستخدم.
  • عندما يتم تنشيط قفل التطبيق: يتم تشفير التذكيرات والبذور أولاً باستخدام سر قفل التطبيق ثم يتم تخزينها بشكل آمن في Keychain أو Keystore. يتم أيضًا تخزين مفتاح تشفير Realm مباشرةً في Keychain أو Keystore.
  • عندما يتم تمكين الحماية بكلمة المرور: يتم تشفير التذكير والبذور باستخدام كلمة المرور، بينما يتم تشفير مفتاح تشفير Realm بكلمة المرور فقط إذا تم ضبط is_storage_encrypted على true.
  • عند تمكين كل من قفل التطبيق والحماية بكلمة مرور: يتم تشفير التذكيرات والبذور باستخدام كلمة المرور (الأولى) وقفل التطبيق (الثاني). يتم تشفير مفتاح تشفير Realm فقط باستخدام كلمة المرور وفقط إذا تم تعيين is_storage_encrypted على true.

استخدام المفتاح

يتم تخزين البذرة/التذكرة في Keychain أو Keystore وتلعب دورًا حاسمًا في عمليات التشفير. عندما يلزم إنشاء عنوان محفظة جديد أو يلزم توقيع معاملة، فإننا نستمد المعلومات الضرورية، مثل المفتاح الخاص، من هذه البذرة.

ومع ذلك، من المهم ملاحظة أنه يجب تحميل المفتاح الخاص في الذاكرة أثناء هذه العمليات. تنبع هذه الضرورة من القيود التي ذكرناها سابقًا بشأن المحافظ المحمولة وعدم الوصول المباشر إلى العنصر الآمن لتوقيع المعاملات.

  • توقيع المعاملة (إرسال الرموز)
  • توقيع بيانات WalletConnect (التعامل مع طلبات الجلسة)
  • إضافة محفظة جديدة
  • تمكين سلاسل testnet (إضافة محافظ testnet)
  • عرض ذاكري
  • التحقق من ذاكري
  • تمكين وتعطيل قفل التطبيق
  • تمكين وتعطيل كلمة المرور

يتم إجراء مصادقة بيومترية إضافية للوظائف التالية:

  • تمكين قفل التطبيق
  • مسح كافة البيانات
  • حذف محفظة (حساب)
  • تمكين أو تعطيل كلمة المرور (بالإضافة إلى استرداد قفل التطبيق)
  • فتح التطبيق
  • نقل التطبيق إلى المقدمة
  • عرض المفاتيح العامة الموسعة
  • الاتصال بالتطبيق اللامركزي (dApp)

بالإضافة إلى ذلك، قد تكون كلمة المرور مطلوبة لفتح التطبيق. يتم استخدام Keychain وKeystore دائمًا من خلال رد الفعل الأصلي سلسلة المفاتيح غلاف:

  • يقوم المجمع بإنشاء مفتاح جديد في Keychain أو Keystore لكل عنصر
  • يعد المجمع مسؤولاً عن تمرير إشارات التكوين الصحيحة لـ Keychain و Keystore
  • تطلب المحفظة دائمًا من المجمع تكوين الأعلام بحيث يجب إلغاء قفل الجهاز للوصول إلى المفتاح
  • تم تكوين فحص حضور المستخدم (القياسات الحيوية) ليكون مستندًا إلى الوقت، ويكون الفحص صالحًا لمدة 5 ثوانٍ؛ لا يتم إجراء التحقق من وجود المستخدم لكل وصول

خوارزمية التشفير هي نفسها لجميع العناصر:

  • المفتاح مشتق من Argon2id من سر تم تطبيعه بواسطة NFC
  • الملح الخاص بـ Argon2id هو المعرف الفريد للجهاز
  • وضع التشفير هو AES-GCM
  • متجه التهيئة (IV) لـ AES هو 16 بايت عشوائي
  • يجب أن يبلغ طول علامة المصادقة الخاصة بـ AES 16 بايت

توقيع الصفقة

بالإضافة إلى التدابير المذكورة سابقًا فيما يتعلق بتخزين المفاتيح والقياسات الحيوية وحماية كلمة المرور، يظل توقيع المعاملات مجالًا بالغ الأهمية للتركيز على التحسين المستمر. وكخطوة أولية، قمنا بتنفيذ العديد من الإجراءات الجديرة بالملاحظة في هذا المجال، بما في ذلك:

محاكاة المعاملات

نحن نستخدم خدمات API الخارجية (مثل السمكة المنتفخة وغيرها) للتحقق من مستويات "الخطورة" المحتملة التي يمكن أن تجلبها المعاملة للمستخدم (درجة المخاطرة). ينتقل هذا من شاشة الحظر الكاملة للمعاملات الضارة المحتملة (أو توقيع الرسائل) إلى التحذيرات بمستويات مختلفة من الحذر يجب أن يتحلى بها المستخدم قبل التوقيع على المعاملة أو تأكيدها. 

تشمل التدابير الأخرى:

  • التحقق من صحة العنوان للتأكد من عدم الإرسال إلى عنوان خاطئ
  • العناوين التي تكون مرئية دائمًا في مجملها للتأكد من أن المستخدم لا يستهدف هجمات محددة تحيط بتكوين العنوان
  • التحقق من صحة الشبكة والتحذيرات للتأكد من أن المستخدم لا يرسل إلى الشبكة الخاطئة
  • التحقق من سلامة الرسوم للتأكد من أن المستخدم لا يدفع مبالغ زائدة مقابل المعاملة

خصوصية الشبكات

لحماية خصوصية المستخدمين وبياناتهم الشخصية بطريقة لا يتم فيها تسريب هذه البيانات عند طلبات الشبكة - خاصة لخدمات الجهات الخارجية - قمنا بتطوير بوابة API لطلبات الوكيل. يسمح لنا هذا الوكيل بعدم تمرير طلبات المستخدم إلى خدمات الجهات الخارجية ولا يكشف عن عنوان IP الخاص بالعميل لمقدمي الخدمات الخارجيين أو العامين. 

هذه الخدمة الخلفية هي في الأساس واجهة برمجة تطبيقات (API) للاستعلام عن بيانات blockchain العامة. ضمن بنية أمان المحفظة، يتمثل الغرض منها في تغليف هذه الوظيفة خلف واجهة برمجة تطبيقات مشتركة عبر جميع سلاسل الكتل بحيث لا يتعين على Kraken Wallet تنفيذ سلوكيات خاصة بـ blockchain للاستعلام عن البيانات.

تحدد خدمة الواجهة الخلفية واجهة برمجة التطبيقات المشتركة هذه. ويقوم في نهاية المطاف بإرسال طلبات إلى أطراف أخرى يجلب منها البيانات الفعلية. فهو لا يقوم بفهرسة blockchains نفسها ولا يحافظ على الحالة.

الافتراضات الأمنية

تعمل بنية الأمان الخاصة بنا على بعض الافتراضات الأساسية لتوفير الحماية المثلى. نحن نفترض:

  • جهاز المستخدم ليس متجذرًا، ولا نظام التشغيل قديم وعرضة لنقاط الضعف الحرجة التي يمكن أن تمنح المهاجم إمكانية الوصول إلى ذاكرة الجهاز
  • توفر حزمة Keychain أو Keystore حماية قوية بما فيه الكفاية
  • يوفر نظام التشغيل المحمول وضع حماية قويًا بين عمليات التطبيقات، مما يضمن إدارة الذاكرة التي تحتوي على بيانات حساسة مثل البذور بشكل صحيح

وظائف إضافية

  • يعمل التطبيق على مبدأ تخزين الحد الأدنى من البيانات التي يحتاجها لتشغيل المحفظة فقط
  • لا يتم استخدام أي تحليلات تابعة لجهات خارجية أو مجموعات تطوير برامج تقارير الأعطال (SDKs) على العميل
    • في ظل جهودنا الرامية إلى عدم تسريب أي بيانات إلى أطراف ثالثة، لن يكون من المنطقي تضمين تتبع إضافي للبيانات - مما يعني أنك لن تجد أي برامج تحليلية أو برامج لتقارير الأعطال في العميل
  • لا يُسمح بأي تحديثات عبر الهواء (خارج تدفق تحديث AppStore/Play Store العادي) أو يتم تنفيذها على قاعدة التعليمات البرمجية
    • يمكن للمستخدم أن يتوقع جزءًا من البرنامج مجمعًا لا يمكن تحديثه دون موافقته على الاشتراك
  • قائمة الرموز ونظام السمعة
    • من أجل مساعدة المستخدمين على إدارة الرموز المميزة الخاصة بهم، قمنا بتنفيذ نظام قائمة وسمعة يعتمد على الأصول المقدمة من Kraken والجهات الخارجية الأخرى
  • البريد العشوائي NFTs
    • الجهد الأولي الذي نخطط لمواصلة تحسينه هو اكتشاف البريد العشوائي والهجمات المرتبطة به، حيث يتم أرشفة البريد العشوائي تلقائيًا في مجلد المستخدم

التدقيق الأمني ​​الخارجي

تم تقييم أمان محفظتنا الذاتية بشكل صارم من خلال عملية تدقيق أجرتها درب من بت، وهي شركة تدقيق أمني مرموقة في الصناعة. شمل هذا التدقيق فحصًا تفصيليًا لقاعدة التعليمات البرمجية وبنية العميل لدينا، بهدف تحديد ومعالجة الثغرات الأمنية المحتملة.

لضمان الشفافية وتقديم نظرة ثاقبة حول أمان منصتنا، فإن نتائج هذا التدقيق متاحة للجمهور. يتيح هذا الوصول المفتوح للمستخدمين والأطراف المهتمة مراجعة نتائج التحليل الأمني ​​الذي أجرته Trail of Bits. يعد التقرير بمثابة مورد مهم لفهم الإجراءات الأمنية التي نطبقها والتزامنا بالحفاظ على بيئة آمنة لمستخدمينا.

إعطاء الأولوية للأمن والشفافية ومراقبة المستخدم

تحقق Kraken Wallet توازنًا دقيقًا بين الراحة والحماية القوية في مواجهة قيود النظام الأساسي المتأصلة. كان نهجنا دائمًا هو البدء بهيكل محفظة قابل للتشغيل البيني ومعترف به على نطاق واسع. يمهد هذا الأساس المتين الطريق أمامنا للابتكار وإضافة إمكانات جديدة، بهدف تقديم حل أمني عالي المستوى ومتطور باستمرار لمستخدمينا للمحافظة على أصولهم المشفرة ذاتيًا.

هذه المواد مخصصة لأغراض المعلومات العامة فقط وليست نصيحة استثمارية أو توصية أو التماس لشراء أو بيع أو مشاركة أو الاحتفاظ بأي أصول مشفرة أو المشاركة في أي استراتيجية تداول محددة. لا تعمل Kraken ولن تعمل على زيادة أو خفض سعر أي أصل مشفر معين توفره. بعض منتجات وأسواق العملات المشفرة غير منظمة، وقد لا تكون محميًا بالتعويضات الحكومية و/أو خطط الحماية التنظيمية. يمكن أن تؤدي الطبيعة غير المتوقعة لأسواق الأصول المشفرة إلى خسارة الأموال. قد تكون الضريبة مستحقة الدفع على أي عائد و/أو على أي زيادة في قيمة أصولك المشفرة، ويجب عليك طلب مشورة مستقلة بشأن وضعك الضريبي. قد يتم تطبيق القيود الجغرافية.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟