مدل تهدید برنامه کیف پول

ساخت وبلاگ

این مدل تهدید برای کاربران فنی کنجکاو برنامه های کیف پول ECC و همچنین توسعه دهندگان که از SDK در برنامه های خود استفاده می کنند ، در نظر گرفته شده است. مدل تهدید در مورد کیف پول مرجع داخلی ECC اعمال می شود ، و باید در مورد هر کیف پول ZCASH ساخته شده در بالای SDK های ECC اعمال شود ، مگر اینکه تغییرات قابل توجهی انجام شده باشد. برای توضیح کامل در مورد روش مدل سازی تهدید که ما از آنها استفاده می کنیم ، به مدل سازی تهدید محور محور مراجعه کنید. در اینجا خلاصه ای از روش شناسی آورده شده است:

  • این سند "متغیر امنیتی" را که برنامه ها و SDK در حال حاضر ارائه می دهند ، لیست می کند. کاربران و توسعه دهندگان نباید به هیچ گونه ویژگی امنیتی یا حریم خصوصی که صریحاً در اینجا ذکر نشده اند ، اعتماد کنند. اگر یک ملک امنیتی یا حریم خصوصی وجود دارد که دوست دارید بتوانید به آن اعتماد کنید ، اما در اینجا ذکر نشده است ، لطفاً یک مسئله را در مورد GitHub مطرح کنید.
  • هدف ما این است که متغیرهای امنیتی را به زبانی بیان کنیم که کاربران نهایی آن را درک کنند. اگر یک ثابت امنیتی از زبان فنی استفاده کند یا شامل مفاهیم پیچیده باشد ، بعید است کاربران آن را درک کنند ، که این امر می تواند باعث شود که آنها در استفاده از نرم افزار بیش از حد ارتباط برقرار کنند.

اگر شما یک حسابرس امنیتی هستید ، لطفاً سعی کنید یکی از متغیرهای امنیتی را بشکنید یا فکر کنید کدام متغیر مهم امنیتی ممکن است از این لیست گم شود!

خصوصیات امنیتی که برنامه ها و SDK ها ارائه می دهند بستگی به این دارد که دشمن تلاش برای حمله به کاربر چقدر قدرتمند است. متغیرهای امنیتی این مدل تهدید در بخش هایی برای هر نوع دشمن سازماندهی می شوند. ما با قدرتمندترین نوع دشمن شروع می کنیم ، کسی که سرور LightWalletd را که کیف پول به آن متصل شده است ، کاملاً به خطر انداخته است ، می تواند ترافیک شبکه را رهگیری کند ، برنامه ها را روی تلفن کاربر و غیره نصب کند و با ضعیف ترین نوع دشمن ، کسی که به سادگی پایان می یابد ، پایان یابدآدرس کاربر را می شناسد و می تواند blockchain عمومی را مشاهده کند. به منظور ساده سازی این سند ، فرض می کنیم که مخالفان قوی تر همه قابلیت های مخالفان ضعیف را دارند. برای هر نوع دشمن ، ما لیست می کنیم:

  • کدام متغیر امنیتی را انتظار داریم در برابر آن طرف مقابل (و همه ضعیف تر) راضی هستند. اگر یکی از این موارد نادرست باشد ، این یک اشکال امنیتی است. اگر یک کاربر به یک ثابت امنیتی که در مدل تهدید نیست ، تکیه می کند ، این یک اشکال امنیتی نیز محسوب می شود.
  • نقاط ضعف شناخته شده: کدام متغیر امنیتی که می دانیم در برابر آن طرف مقابل (و همه قوی تر) راضی نیستند. اگر کاربر یکی از این نقاط ضعف را درک نکند ، این یک مشکل امنیتی در UX/مستندات برنامه است. ما جزئیات فنی مختصری از هر ضعف را در بر می گیریم.

نقاط ضعف مختلفی وجود دارد که ما معتقدیم بیشتر کاربران بر اساس تجربه خود با استفاده از سایر کیف پول های cryptocurrency یا zcashd ، ضد شهود می یابند. ما آن موارد را به صورت جسورانه برجسته کرده ایم.

بیایید با قدرتمندترین نوع دشمن که توسط مدل ما در نظر گرفته می شود ، شروع کنیم.

lightwalletd-tocromising مخالف

توضیحات: سرویس LightWalletd که کاربر به آن متصل می شود به خطر افتاده یا آشکار است. علاوه بر اینکه کنترل کاملی بر LightWalleTD دارد ، دشمن می تواند تمام ترافیک شبکه برنامه را رهگیری کند و می تواند کد را به عنوان برنامه دیگری در تلفن کاربر (به عنوان مثال یک برنامه ماشین حساب جعلی) اجرا کند. دشمن برخی از آدرس های متعلق به کاربر را می داند. Reorgs تصادفی به طور مرتب اتفاق می افتد.

ما انتظار داریم که هنگام حمله کاربر توسط این نوع دشمن و همچنین هر یک از ضعیف تر در بخش های زیر ، متغیرهای امنیتی زیر راضی شوند. دشمن ...

  • نمی توان کد دلخواه را در تلفن کاربر اجرا کرد.
  • نمی توانم هیچ یک از مطالب کلیدی رمزنگاری کاربر (کلیدهای خرج ، کلیدهای مشاهده ، عبارت بذر و غیره را یاد بگیرم)
  • نمی توان بودجه کاربر را سرقت کرد.
  • نمی تواند کاربر را وقتی که قصد نداشت ، وجوه ارسال کند.
  • نمی توانید وجوه کاربر را بسوزانید یا در غیر این صورت آنها را غیرقابل تحمل کنید.
  • نمی تواند باعث ایجاد وجوهی شود که کاربر برای شخص دیگری ارسال می کند تا از کیف پول خود خارج شود اما توسط گیرنده غیرقابل تحمل باشد.
  • وقتی شخصی سعی در ارسال وجوه کاربر داشت ، نمی توان وجوه را به شخص دیگری رساند.
  • نمی تواند کاربر را به آدرس اشتباه ارسال کند.
  • نمی توانید بگویید که تعادل محافظ فعلی کاربر چیست (جدا از ایجاد کیف پول صفر).
  • نمی توانید اطلاعات مربوط به ارزش ، زمینه یادداشت و غیره از معاملات محافظ را که کاربر دریافت می کند ، بیاموزید.
  • نمی توانید اطلاعات مربوط به ارزش ، زمینه یادداشت و غیره از معاملات محافظ را که کاربر ارسال می کند بیاموزید.
  • نمی توانم یاد بگیرم که کاربر چه کسی وجوه را به/از/از/از معاملات کاملاً محافظت شده ارسال می کند تا زمانی که کاربر دیگر از همان ارائه دهنده خدمات LightWalletd استفاده نمی کند و هیچ تبانی بین طرف مقابل و ارائه دهنده خدمات دیگر وجود ندارد.
    • این یک امنیت مفید نیست ، زیرا درک کاربران برای کاربران دشوار است.
    • توجه داشته باشید که این دشمن می تواند بررسی کند که آیا آدرس آنها متعلق به کاربر است ، به نقاط ضعف در بخش های زیر مراجعه کنید.

    برخی از نقاط ضعف شناخته شده این طرف مقابل می تواند از آن استفاده کند. علاوه بر همه نقاط ضعف شناخته شده از بخش های زیر (که در مورد این دشمن نیز صدق می کند ، زیرا این یکی قادر به همه موارد مشابه و موارد دیگر است) ، دشمن می تواند…

    • باعث شود کاربر فکر کند که بودجه قابل خرج کردن (یا خواهد داشت) در صورت عدم استفاده از آنها.
      • آنها می توانند بارها معامله ای را به کیف پول کاربر تکرار کنند تا باعث شود کیف پول فکر کند تعادل بیشتری نسبت به آنچه در واقع می تواند هزینه کند.
      • آنها می توانند معاملات تعیین شده به کاربر را حذف کنند ، به طوری که کیف پول کاربر می تواند بودجه قابل توجهی برای آن داشته باشد که از آن آگاه نیست.
      • اگر معامله دوباره از بین برود یا هرگز استخراج نشود ، دشمن می تواند به نظر برسد که در واقع استخراج شده است.
      • آنها می توانند معامله را حذف کنند ، و به نظر می رسد که وقتی در واقع در شبکه ZCASH استخراج شد ، شکست خورد.

      ما قصد داریم در نهایت با اجرای هدر بلوک ، این مسائل را برطرف کنیم و اعتبار سنجی درخت تعهد را که در ZIP 307 مشخص شده است ، یادداشت کنیم.

      بیایید به دومین نوع قدرتمند از طرف مقابل که در نظر خواهیم گرفت حرکت کنیم.

      دشمن معمولی ¶

      توضیحات: بین کاربر و اپراتور سرور LightWalletd یک رابطه اعتماد وجود دارد. LightWalletd فقط تاکنون اطلاعات معتبری را از یک حالت سازگار با blockchain zcash ارائه می دهد. این اطلاعات اخیر تضمین نشده است ، و بخشی از آن ممکن است تغییر کند (به عنوان مثال پس از یک Reorg) و حتی به حالت قدیمی بازگردید. اتصال به Lightwallletd توسط TLS محافظت می شود ، که ما تصور می کنیم ایمن است. دشمن (A) می تواند تمام ترافیک شبکه برنامه را رهگیری کند ، (ب) می تواند کد را به عنوان یک برنامه در تلفن کاربر (به عنوان مثال برنامه ماشین حساب جعلی) اجرا کند ، و (ج) می تواند خصوصی را بخواند (اما به آن ننویسد) سرور LightWalletd خصوصیحافظهدشمن برخی از آدرس های متعلق به کاربر را می داند. Reorgs تصادفی به طور مرتب اتفاق می افتد. NB: اگر سرور LightWalletd به طور موقت به خطر بیاندازد ، که باید تصور کنیم سرانجام اتفاق می افتد ، خصوصیات امنیتی برای مدت زمان سازش به طرف مقابل با استفاده از Lightwalletd-tocromisising تبدیل می شوند و احتمالاً اگر اثرات حمله باقی بماند ، طولانی تر است.

      ما انتظار داریم که هنگام حمله کاربر توسط این نوع دشمن و همچنین هر یک از ضعیف تر در بخش های زیر ، متغیرهای امنیتی زیر راضی شوند. دشمن ...

      • نمی توان کاربر را فکر کرد که تعادل آنها پایین تر از آنچه در واقع است ، باشد.
      • نمی توان کاربر را فکر کرد که بودجه قابل خرج کردن (یا خواهد داشت) در صورت عدم استفاده از آنها.
      • نمی توان کاربر را به فکر معامله ای که ارسال کرده یا دریافت کرده است ، در واقع شکست.
      • نمی توان کاربر را به فکر معامله ای که ارسال کرده یا دریافت کرده است ، هنگام موفقیت در واقع شکست.

      هیچ ضعف شناخته شده ای وجود ندارد که به طور خاص در مورد این دشمن اعمال شود. تمام نقاط ضعف شناخته شده در بخش های زیر برای مخالفان ضعیف تر نیز در مورد این دشمن نیز اعمال می شود.

      شبکه- و LightWalletd-Suvililing مجاور APP APP مخالف

      توضیحات: دشمن فقط می تواند (الف) تمام ترافیک شبکه بین برنامه و اینترنت را رهگیری کند ، (ب) می تواند کد را به عنوان یک برنامه در تلفن کاربر (به عنوان مثال برنامه ماشین حساب جعلی) اجرا کند ، و (ج) ترافیک بین Lightwalletd را رهگیری کندسرور و اینترنت. دشمن برخی از آدرس های متعلق به کاربر را می داند. Reorgs تصادفی به طور مرتب اتفاق می افتد. ما فرض می کنیم که دفاعی برای تشخیص گرفتگی گره Lightwalletd وجود دارد.

      هیچ متغیر امنیتی وجود ندارد که انتظار داشته باشیم به طور خاص برای این دشمن راضی شود اما موردی که در بخش قبلی مورد بحث قرار گرفته است.

      چندین ضعف شناخته شده وجود دارد که این نوع دشمن می تواند از آن سوء استفاده کند. دشمن می تواند ...

      • این را بگویید و هنگامی که کاربر معامله کاملاً محافظ دریافت کرد.
        • این کیف پول یادداشت را از Lightwalletd به طور جداگانه واگذار می کند ، که از پهنای باند بیشتری استفاده می کند ، و حتی اگر اتصال رمزگذاری شود ، قابل مشاهده است.
        • اگر کانال های جانبی پهنای باند ثابت باشند ، عمل ارسال و دریافت معاملات برای سرور LightWalletd قابل مشاهده است ، بنابراین این به یک ضعف شناخته شده در سناریوی معمولی تبدیل می شود.
        • عمل ارسال معامله از پهنای باند بیشتری استفاده می کند ، که حتی اگر اتصال رمزگذاری شده باشد قابل مشاهده است.
        • اگر کانال های جانبی پهنای باند ثابت باشند ، عمل ارسال و دریافت معاملات برای سرور LightWalletd قابل مشاهده است ، بنابراین این به یک ضعف شناخته شده در سناریوی معمولی تبدیل می شود.
        • هنگامی که هر دو کاربر از همان نمونه LightWalletd استفاده می کنند ، حتی اگر اتصالات رمزگذاری شده باشند ، طرف مقابل قادر به همبستگی سنبله های پهنای باند است که به نظر می رسد مانند یک کاربر با سنبله های پهنای باند ارسال می شود که مانند دریافت کاربر از کاربر دیگر است.
        • اگر کانال های جانبی پهنای باند ثابت باشند ، عمل ارسال و دریافت معاملات برای سرور LightWalletd قابل مشاهده است ، بنابراین این به یک ضعف شناخته شده در سناریوی معمولی تبدیل می شود.
        • به همان دلایل فوق.
        • دشمن می تواند وجوه را به آن آدرس بفرستد و تماشا کند تا ببیند آیا سنبله های پهنای باند وجود دارد که شبیه کیف پول است ، در همان زمان یادداشتی را به دست آورد.
        • اگر کانال های جانبی پهنای باند ثابت باشند ، عمل دریافت معامله هنوز هم برای سرور LightWalletd قابل مشاهده است ، بنابراین این به یک ضعف شناخته شده در سناریوی معمولی تبدیل می شود.
        • دشمن آدرس IP کاربر را می شناسد ، که می تواند آنها را به سمت هویت واقعی کاربر سوق دهد.
        • دشمن می تواند آدرس IP کاربر را در یک پایگاه داده جغرافیایی جستجو کند تا مکان آنها را تقریبی کند.
        • آنها سنبله های پهنای باند را مشاهده می کنند که به نظر می رسد مانند ارسال ها/دریافت ها به دنبال همین الگوی.
        • با مسدود کردن اتصال به Lightwalletd.
        • اگر کاربر از همان آدرس IP جدا شود ، معمولاً می توانند فرض کنند که همان کاربر است.
        • با مسدود کردن اتصال تلفن به اینترنت یا فروشگاه App.
        • دشمن می تواند ببیند که این کیف پول به یک نمونه Lightwalletd متصل می شود ، که نشان می دهد آنها از مؤلفه ZCASH کیف پول استفاده می کنند.
        • آنها می توانند ببینند که این کیف پول هنگام استفاده فعال با Lightwalletd در حال برقراری ارتباط است.
        • این کیف پول فقط بلوک هایی را که از آخرین ایست بازرسی قبل از تولد آن شروع می شود ، بارگیری می کند. با مشاهده میزان پهنای باند در طول بارگیری اولیه ، دشمن می تواند تقریباً چند بلوک بارگیری شده را تعیین کند ، و بنابراین تقریباً تولد آن چیست.
        • آنها می توانند اتصال بین کیف پول و Lightwalletd را مسدود کنند.

        این نقاط ضعف همچنین در مورد مخالفان قوی تر در بخش های فوق اعمال می شود.

        بیایید به ضعیف ترین دشمن در نظر گرفته شده در این مدل حرکت کنیم.

        آگاهی از طرف مقابل

        توضیحات: دشمن فقط برخی از آدرس های Z و Addresses کاربران را می شناسد ، می تواند Blockchain عمومی را مشاهده کند ، و هیچ قابلیت ویژه دیگری ندارد.

        این ضعیف ترین دشمن در مدل ما است. متغیرهای امنیتی که انتظار داریم در برابر این دشمن راضی باشند این است که دشمن ...

        • نمی توانم این را بگوییم یا وقتی کاربر معامله ای کاملاً محافظ دریافت کرده است.
        • نمی توانم این را بگویم یا وقتی کاربر معامله ای کاملاً محافظ ارسال می کند.
        • نمی توانید یاد بگیرید که کاربر چه کسی در معاملات کاملاً محافظ به/از/از/دریافت می کند.
        • نمی توانید بگویید که کاربر با گذشت زمان چه تعداد معاملات ارسال یا دریافت کرده است.
        • نمی توان تعیین کرد که آیا کیف پول کاربر دارای یک آدرس خاص است یا خیر.
        • نمی توان گفت کاربر کیست (یعنی نام واقعی آنها).
        • نمی توان گفت کاربر کجاست.
        • نمی توان گفت که کاربر با توجه به یک الگوی خاص (به عنوان مثال پرداخت های مکرر) با استفاده از معاملات کاملاً محافظت شده ، پول را خرج می کند.
        • نمی تواند کاربر را به فکر خود منسوخ (معاملات ، تعادل و غیره) فکر کند.
        • نمی توان گفت کدام یک از کاربران نمونه LightWalletd کاربر است.
        • نمی توانید به سکوت مانع از دریافت به روزرسانی های امنیتی کیف پول یا اعلامیه های امنیتی شوید.
        • نمی توان گفت اگر SDK در یک کیف پول چند ارز استفاده می کند ، از چه ارزهای رمزنگاری شده کاربر استفاده می کند.
        • نمی توان گفت چه زمانی کاربر به طور فعال از کیف پول استفاده می کند.
        • نمی توان گفت چه زمانی کیف پول کاربر ایجاد شده است.
        • نمی تواند معامله ای را که کاربر برای عدم موفقیت ارسال می کند ایجاد کند.

        چندین ضعف شناخته شده وجود دارد که این دشمن می تواند از آن سوء استفاده کند. دشمن می تواند ...

        • بگویید چه زمانی کاربر بودجه محافظی را که توسط طرف مقابل برای آنها ارسال شده است ، خرج می کند.
          • حمله گرد و غبار: دشمن می تواند بسیاری از یادداشت های کم ارزش را ارسال کند ، که در معامله با بسیاری از ورودی های نهال (قابل مشاهده در blockchain) صرف می شود.
          • رفع این مسئله اجرای ادغام یادداشت است ، به طوری که یادداشت های گرد و غبار توسط کیف پول کاربر در پس زمینه به یکی ترکیب می شوند.
          • آدرس T خصوصی نیست ، کاربران باید از معاملات کاملاً محافظ برای به دست آوردن حریم خصوصی استفاده کنند.
          • تفاوت در انتخاب یادداشت ممکن است آن را از ZCASHD متمایز کند.

          این نقاط ضعف همچنین در مورد همه مخالفان قوی تر در بخش های فوق اعمال می شود.

          محدودیت ها¶

          این مدل تهدید ، به عنوان مثال ، در مورد:

          • مخالفانی که دسترسی فیزیکی به دستگاهی دارند که برنامه یا SDK در حال اجرا است.
          • قابلیت استفاده ایمن از API SDK.
          • فرضیات ضمنی در مورد نحوه استفاده SDK در یک برنامه شخص ثالث.
          • مدل های ریز و درشت تر مخالفان ، به عنوان مثالموردی که گره Lightwalletd را گرفتار کرده است اما نتوانسته است آن را به طور کامل سازش کند.

          این کاستی ها در به روزرسانی های آینده به مدل تهدید پرداخته می شود.

          © کپی رایت 2019 ، شرکت سکه برقی Revision C7E5CAAD.

پرسش و پاسخ بورس...
ما را در سایت پرسش و پاسخ بورس دنبال می کنید

برچسب : نویسنده : ماندانا اصلانی بازدید : <-PostHit-> تاريخ : يکشنبه 12 شهريور 1402 ساعت: 19:21