از آنجا که تعداد کاربران دارای بیت کوین در سراسر جهان در حال افزایش است, قطعا بحث امنیت نیز به طور گسترده ای رو به رشد خواهد بود و اهمیت پیدا خواهد کرد. در این خصوص بیشترین توصیه ای که به کاربران می توان کرد استفاده از کیف پول سخت افزاری برای نگهداری ارزهای دیجیتال است. درست است که این کیف پول ها امنیت بالایی دارند اما با رعایت یک سری نکات ریز می توان درصد امنیت آنها را بسیار بالا برد. با فیماچارت همراه باشید تا این نکات را یک به یک با هم بررسی کنیم.
امنیت یک کیف پول سخت افزاری را میتوان از دو منظر مورد تجزیه و تحلیل قرار داد:
۱- بعد اول امنیت فنی است که در جامعه بیت کوین زیاد از آن صحبت شده است. این به معنی نحوه جلوگیری از حملاتی مانند حمله شخص ثالث (man in the middle attack)، حملات کانال جانبی و غیره از منظر فنی است.
۲- دومین جنبه امنیتی مهم در این راستا، خطاهای انسانی است. تا کنون حداقل ۴ میلیون بیت کوین در اثر خطاهای انسانی برای همیشه از بین رفتهاند. البته امروزه ابزارهایی برای به حداقل رساندن این خطاها ایجاد شدهاند که از جمله آنها میتوان به کیف پولهای اچ دی (HD) اشاره کرد.
در این مقاله ابتدا پیشنهادهایی در مورد بهبود امنیت فنی ارائه میشود و سپس توصیههایی برای جلوگیری از خطاهای انسانی داده میشود.
معیار امنیتی شکاف هوا باید در یک کیف پول سخت افزاری کاملا مورد توجه قرار گیرد
همگی میدانیم که منطق اساسی پشت یک کیف پول سخت افزاری این است که کلیدهای خصوصی فرد را از اینترنت جدا میکند. نحوه اتصال این کیف پول به ابزار یا برنامه همتا در اینجا بسیار اهمیت دارد. این عامل معیار امنیتی شکاف هوا کیف پول سخت افزاری شما را تعیین میکند و میزان هزینهای که یک هکر (hacker) برای دزدیدن داراییهای شما باید متحمل شود به این عامل بستگی دارد.
در اینجا باید بگوییم که شکاف هوا یک مفهوم نسبی است و نحوه تعامل کیف پول سخت افزاری شما را با برنامه همتا اندازهگیری میکند. امروزه چهار راهحل اصلی در این میان وجود دارد و این چهار راهحل پورت یو اس بی (USB port)، بلوتوث (Bluetooth)، کارت مایکرو اس دی (Micro SD Card) و کدهای کیو آر (QR Codes) هستند. USB یا بلوتوث به شیوه متعامل متصل میشود و ریسک حمله بزرگتری را به همراه دارد. کارتهای Micro SD و کدهای QR راهحلهایی با امنیت بیشتر هستند.
یکی از مزیتهای برجسته کارت Micro SD و یا کد QR این است که اتصال به قدری فیزیکی است که ادغام کیف پول سخت افزاری با برنامه همتای شخص ثالث بسیار آسانتر است. در اینجا دیگر مشکلات اتصال و سازگاری مطرح نیست. کیف پول سخت افزاری تنها میتواند به عنوان یک امضاکننده عمل کند و این کیف پول فقط به کار تایید میپردازد.
ریزپردازنده امنیتی (secure element)
مباحثه زیادی در مورد استفاده از ریزپردازنده امنیتی (secure element) در کیف پول سخت افزاری مطرح است. ریزپردازنده امنیتی یک تراشه ریزپردازنده است که میتواند اطلاعات حساس را ذخیره کند و برنامه های ایمنی نظیر پرداخت ها را اجرا کند. بعضی بر این باورند که ریزپردازنده امنیتی توسط حکومت تایید میشود و جامعه بیت کوین هم به حکومتها اعتماد ندارد، پس چرا باید به این المانها اعتماد داشته باشد؟ لازم نیست که برای تایید امنیت یک المان، به حکومت اعتماد کنید؛ شما میتوانید خود نیز امنیت یک ریزپردازنده امنیتی را تایید کنید.
من اطلاع دارم که جامعه بیت کوین به این اجماع رسیدهاند که یک ریزپردازنده امنیتی نمیتواند متن باز باشد. اما حقیقت این است که این قضیه بستگی دارد و تا حدود زیادی وابسته به قدرت خرید شما است. چیزی که در اینجا میتوانیم انجام دهیم این است که سفت افزار آن ریزپردازنده امنیتی را متن باز کنیم.
با یک سفت افزار متن باز میتوانید به آسانی موارد زیر را تایید کنید:
۱- چگونه عبارت ریکاوری (recovery) و کلید خصوصی اصلی از آنتروپی (entropy) ایجاد میشوند؟
۲- کلیدهای خصوصی تولید شده و کلیدهای عمومی چگونه تولید میشوند؟
۳- اینکه فرآیند تایید کاملا در داخل ریزپردازنده امنیتی انجام میگیرد یا نه؟
۴- اینکه کلیدهای خصوصی شما هرگز ریزپردازنده امنیتی را ترک نمیکنند.
اما هنوز سه عملکرد موجود است که نمیتوان آنها را به صورت متن باز درآورد. این عملکردها به قرار زیر هستند:
۱- ایجاد شماره تصادفی (TRNG)
۲- الگوریتمهای رمزنگاری مانند ECDSA
۳- نحوه جلوگیری آن از حملات فیزیکی
TRNG را میتوان با انجام آزمایشی مانند FIPS 140-2 تایید کرد. برای الگوریتمهای (algorithm) رمزنگاری مانند ECDSA، به آسانی میتوان الگوریتم رمزنگاری ریزپردازنده امنیتی را آزمایش کرد.
از منظر حملات فیزیکی نیز، با توجه به تاریخچه حمله کیف پول سخت افزاری میتوان متوجه شد که ریزپردازنده امنیتی هزینه حمله را افزایش میدهد یا نه. امنیت مفهومی نسبی است و هیچگاه نباید آن را مطلق تلقی کرد. در کل باید گفت که اگر سفت افزار یک ریزپردازنده امنیتی متن باز باشد، همه فعالیتهای کلیدی را میتوان اثبات و یا تایید کرد.
پشتیبانی چند امضایی PSBT
بدون اینکه عمیقا وارد مبحث BIP 174 شویم که PSBT را تعریف میکند، میتوان گفت که دو سناریوی اصلی برای PSBT موجود است:
۱- Coinjoin که باعث میشود افراد بهتر از حریم خصوصی خود در برابر ردیابی توسط تحلیل تراکنش روی زنجیره محافظت کنند.
۲- PSBT پروتکل را بین کیف پولهای مختلف تراز میکند و این پردازش تراکنشهای چند امضایی را بین کیف پولهای مختلف ممکن میکند.
پشتیبانی PSBT یکی از ضرورتهایی است که در یک کیف پول سخت افزاری آینده باید موجود باشد.
ساختن سخت افزار خود
ساختن سخت افزار خود روشی عالی است و نیاز به اعتماد به فروشندگان کیف پول سخت افزاری را به حداقل میرساند. روشی رایج برای اینکه این امکان را برای افراد فراهم آورد تا سخت افزار خود را بسازند این است که کل محصول از جمله طراحی شماتیک (schematic) آن را متن باز کرد. اما دو مشکل در اینجا مطرح است:
۱- آن هزینه مورد نیاز برای دزدیدن بیت کوینها را توسط هکرها پایین میآورد.
۲- افراد کمی دارای مهارت لازم برای ساخت کیف پول سخت افزاری از مرحله طراحی شماتیک تا آخر هستند. این کار نیازمند مهارت در حیطه سخت افزار و نرم افزار است.
بنابراین بهترین راهحل این است که بورد (board) توسعه ریزپردازنده امنیتی را به کاربر فروخت و کاربر با استفاده از آن اقدام به ساخت کیف پول سخت افزاری خود کند.
چهار بهبود ذکر شده تا به اینجا از منظر امنیت فنی هستند. ColdCard از منظر امنیت فنی اقدامات تحسین برانگیزی را انجام داده است و پشتیبانی PSBT را در کنار معیار شکاف هوا کارت مایکرو اس دی فراهم آورده است.
متاسفانه در چند سال اخیر تنها به جنبه فنی کیف پول سخت افزاری اهمیت داده شده است و به جنبه خطاهای انسانی زیاد توجه نشده است. این در حالی است که این کیف پولها تنها برای کاربران فنی و پیشرفته تولید نمیشوند، بلکه برای عموم بازار ایجاد میشوند. خطای انسانی مفهومی نسبی است و نمیتوان آن را همزمان برای کاربران عادی و پیشرفته اعمال کرد. این یعنی بهبودهایی که برای کاربران عادی انجام میشود، ممکن است باعث کاهش انعطافپذیری برای کاربران ماهر شود.
صفحه لمسی بزرگ
کاربران مدتهای طولانی است که از دکمههای کوچک و صفحه لمسیهای مختلف رنج میبرند. این ناکارآمدیها در دراز مدت ممکن است باعث اشتباه انسانی و از دست رفتن بیت کوینها شود. این در حالی است که صفحه لمسی بزرگتر میتواند تایپ را آسان کند و امکان خطا را پایین بیاورد.
علاوه بر این، صفحات بزرگ به کاهش حملات نیز کمک خواهند کرد. این ممکن است برای کاربران حرفهای چندان خوشایند نباشد اما برای پذیرش عام بیت کوین باید کاربران جدید را نیز مد نظر قرار داد.
محافظت در برابر سفت افزار بدکار
متن باز بودن در این جهان غیر متمرکز بسیار اهمیت دارد. اما از منظر خطای انسانی باید بگوییم که متن باز بودن باعث ظهور حملات جدیدی خواهد شد. ما میدانیم که یک کیف پول سخت افزاری متن باز به کاربران اجازه میدهد که کد را سفارشی کنند و آن را جهت انجام مقاصد خود بر روی ابزار آپلود کنند.
اگرچه هشدارهای واضحی به کاربرانی که در حال نصب آپدیت غیر رسمی هستند داده میشود، اما تعدادی از مهاجمان سعی در اغفال کاربران در جاهایی مانند ردیت (Reddit) و تلگرام (telegram) دارند و آنها را به نصب سفت افزار بدکار متقاعد میکنند. محافظت از کاربران جدید لزوما به معنی فدا کردن انعطافپذیری نیست و فروشندگان کیف پول سخت افزاری میتوانند نسخههای جداگانهای را برای کاربران حرفهای فراهم کنند.
باید هشدارهایی جدی در هنگام خرید برای این منظور موجود باشد و ابزار باید در عمل بدون سفت افزار تحویل داده شود. این باعث میشود که کاربر خود نسخه خاصی را بسازد که با کلید دیگری تایید شود و به داخل ابزار آپلود شود. افراد میتوانند جفت کلید را در اینجا تغییر دهند و آن را به صورتی درآورند که تنها با سفت افزار خودشان تایید شود.
باتری ماژولار (Modular)
باتری در محصولات الکترونیک آسیبپذیرترین بخش است. افراد باید کیف پول سخت افزاری را برای مدتهای طولانی نگهداری کنند و حتی به وارثان خود منتقل کنند. اگر یک کیف پول سخت افزاری پس اندازهای افراد را در خود نگه دارد، در فاصله زمانی ۶ تا ۱۲ ماه مورد استفاده قرار خواهد گرفت.
امروزه کیف پولهای سخت افزاری بیشتر و بیشتری از بلوتوث پشتیبانی میکنند و این نیاز به تقویت باتری را بسیار مطرح میکند. ممکن است افرادی در این میان فکر کنند که این قضیه مهم نباشد و اگر باتری خراب شود، با ابزاری جدید میتوان ارزهای خود را بازیابی کرد. اما توجه داشته باشید که تا جایی که امکان دارد باید کلیدهای خصوصی خود را کمتر به کار گیرید. هر بار که کلیدهای خصوصی خود را وارد میکنید، لایهای جدید از ریسک را اضافه میکنید.
برنامه همتای موبایل
امروزه بیشتر برنامههای همتای کیف پول سخت افزاری برنامههای دسکتاپ و یا وب هستند. زیرا این برنامهها مزایای زیادی دارند و این مزایا برای کاربران حرفهای بسیار مناسب هستند. برای کاربران عادی، یک برنامه همتای موبایل ریسک کمتری دارد زیرا:
۱- برنامههایی که بر روی موبایل اجرا میشوند، توسط سند باکس (Sandbox) جدا میشوند. آنها تنها میتوانند به دادههای خود دسترسی داشته باشند.
۲- رمزگذاری سیستم فایل کامل به صورت پیش فرض فعال شده است.
۳- اجازه کاربران در موبایل بسیار محدودتر از برنامههای دسکتاپ است.
کاربران عادی در محافظت از خود در برابر لینکهای بدکار چندان ماهر نیستند. این لینکها منبع بزرگی برای خطاهای انسانی هستند. به دلیل سه ویژگی ذکر شده در بالا، برنامههای موبایلی خطرات کمتری در برابر فیشینگ (phishing) و حملات دیگر دارند. بسیاری از کارشناسان استفاده از ابزارهای موبایلی را در این فضا توصیه میکنند.
موجود بودن برای خرید آفلاین
بسیاری از افراد نمیتوانند از حریم خصوصی آنلاین خود محافظت کنند. اگر ما خرید آنلاین را به عنوان یک تهدید در نظر بگیریم، باز کردن کانال خرید آفلاین بسیار مناسب خواهد بود. پذیرش پرداخت نقدی و یا بیت کوینی در این میان بسیار بهتر از کارتهای اعتباری خواهد بود.
کلام آخر
ساخت یک کیف پول سخت افزاری آسان نیست و امنیت صد درصد ایجاد نمیکند. تنها کاری که ما در اینجا انجام میدهیم این است که هزینه را برای هکرها بالا میبریم. با توجه به بهبودهایی که امروزه انجام میگیرد، دو چیز را برای آینده کیف پول سخت افزاری مشتاقانه مورد توجه قرار میدهیم:
۱- ریزپردازنده امنیتی به کنترل و برقرار کردن ارتباط با همه ورودیها و خروجیها میپردازد و این بزرگترین تهدید را در یک کیف پول سخت افزاری از میان برمیدارد. این به معنی به حداقل رساندن نیاز به اعتماد است.
۲- ریزپردازنده امنیتی کاملا متن باز که نیاز به اعتماد را بسیار کاهش میدهد و خوشبختانه گوگل هم در حال کار کردن بر روی آن است.