صرافی ارز دیجیتال
صرافی ارز دیجیتال و امنیت
گورستان بلاک چین فهرستی از صرافی های بیت کوین است که هک شده اند. این فهرست دائما در حال گسترش است و نه تنها اعتماد عموم مردم به ارزهای دیجیتال را خدشه دار میکند، بلکه اعتماد شرکت ها، مشتریان و سرمایه گذاران را نیز از بین میبرد.
دلایل اصلی این هک ها متفاوت و اغلب پیچیده است؛ اما اکثر این نفوذها با بهترین رویکرد امنیتی قابل پیشگیری یا حداقل محدود شدن است.
هنگامی که میگوییم بهترین اقدامات و رویکرد، به اقداماتی اشاره میکنیم که طی دهه های گذشته توسط موسسات بانکی، شرکت های مخابراتی و دولت استفاده شده است، یعنی سخت افزارهای ایمن.
ماژول های امنیتی سخت افزاری
ماژول امنیتی سخت افزاری (HSM) یک دستگاه محاسباتی فیزیکی است که کلیدهای رمزنگاری را مدیریت و از آنها محافظت میکند و اجرای ایمن کدهای مهم و حیاتی را ارائه میدهد. این ماژول ها به صورت کارت PCI است که مستقیما میتواند به شبکه متصل شود. HSM ها دارای فناوری داخلی ضدنفوذ است که تمام اطلاعات مخفی و پنهان را در شرایط نفوذ فیزیکی پاک میکند. معماری این دستگاه ها حول چیپ های پردازنده های ایمن و اقدامات امنیتی فیزیکی طراحی شده است تا حمله های کانال های جانبی را کاهش دهد. از این دستگاه ها در صنعت بانکداری و در تمام شرایطی که باید از اطلاعات مهم محافظت شود استفاده بسیار زیادی میشود.
صرافی های بیت کوین و HSM ها
تنها صنعت مهمی که از HSM ها استفاده نمیکند، صنعت صرافی های بیت کوین است (به غیر از صرافی جمینای). به دلایل نامشخص و اسرارآمیز، معماری های امنیتی کیف پول های آنلاین بر اساس راهکارهای اد هاک (ad hoc) است که پیرامون سخت افزار ایجاد شده اند و در مقابل FIPS 140 یا معیارهای رایج، کاملا نامعتبر است. هنگامی که با کلیدهای خصوصی سروکار دارید که نمیتوانید آنها را ابطال کنید و لو رفتن آنها منکر به ضررهای هنگفت میشود، نمیتوانید آنها را بر روی سرورهایی با معماری معمولی نگه دارید.
مقایسه کیف پول آنلاین (گرم) و آفلاین (سرد)
اکثر صرافی ها عمده دارایی خود را (بیش از 97 درصد) در کیف پول های آفلاین نگهداری میکنند. کلید این کیف پول ها کاملا آفلاین و دور از دست هکرها است. این روش، بهترین محافظت از ارزهای دیجیتال است. هرچند برای امکان پذیر شدن پرداخت های خودکار و داشتن عملکرد مناسب و معمولی، به کیف پول های آنلاین نیز نیاز است. این کیف پول ها از طریق API ها کنترل میشود و دستورات امضای تراکنش ها برای پرداخت به مشتریانی که میخواهند سرمایه خود را برداشت کنند از طریق این API ها دریافت میشود. از آنجایی که باید بتوان عملکرد این کیف پول ها را به صورت خودکار تعریف کرد، کلیدها باید آنلاین باشند، در نتیجه در معرض خطر قرار میگیرند.
معماری امنیتی مبتنی بر HSM برای صرافی ها
در این بخش به معماری مبتنی بر HSM توصیه شده برای ایمن سازی کیف پول آنلاین صرافی ها میپردازیم.
ماژول ها و خدمات مختلف
خدمات و ماژول های مختلف در این زمینه عبارتند از:
- موتور صرافی: دستورات پرداخت را درخواست میکند (مشتری درخواست برداشت میکند)
- منطق تجاری صرافی: API با دسترسی به تمام موجودی های مشتریان، سقف برداشت و سوابق پرداخت
- ماژول امنیتی سخت افزاری: کارت PCI متصل به سرور در دیتاسنتر صرافی
- لجر بلو (Ledger Blue): دستگاه ایمنی که توسط رمز عبور (PIN code) محافظت میشود و فقط توسط مدیران ارشد (مدیرعامل یا مدیر ارشد فنی) قابل دسترسی است.
- برنامه احراز هویت دو مرحله ای: کانال احراز هویت دو مرحله ای در گوشی موبایل کاربر (شامل کلید نامتقارن)
معماری HSM حول واحدهای زیر است:
- (هسته BOLOS): سیستم عامل لجر است و از سیدهای اصلی که تمام جفت کلیدها از آنها به دست میآید محافظت میکند و API را در دسترس قرار میدهد تا برنامه های تجاری داخلی بتوانند فعالیت کنند. این برنامه ها به صورت آفلاین آزمایش و امضا میشوند و هنگامی که سیستم به صورت آنلاین در حال اجرا است، غیرقابل تغییر است.
- محدود کننده سرعت: برای تعداد امضاهای مجاز HSM سقف تعیین میکند (برای مثال 1000 بیت کوین در ساعت یا 15,000 بیت کوین در روز). این عدد بسیار مهم است زیرا در صورت لو رفتن کل سیستم، حداکثر مقدار ضرر توسط این عدد مشخص خواهد شد. تنها راه اصلاح و تغییر قوانین محدود کننده از طریق مجوز امضا شده توسط لجر بلو است.
کانال احراز هویت دو مرحله ای:
- تمام درخواست های امضا باید توسط پلاگین داخلی تایید شود. این امر به دو تاییدیه نیاز دارد. یک تاییدیه از جانب منطق تجاری صرافی به این صورت که اطلاعات تجاری شما را درخواست میکند تا بتواند بررسی کند که آیا مطابق با وضعیت قبلی سیستم است یا خیر، و یک تایید از جانب خود کاربر تا اقدام مورد نظر را تایید کند.
- برنامه کیف پول بیت کوین: شامل کل منطق ایجاد و امضای تراکنش ها از استخر تراکنش خرج نشده است. قابل جایگزین شدن با کیف پول اتریوم یا هر ارز دیجیتال دیگری نیز میباشد.
آماده سازی سیستم امنیتی
شروع به کار HSM و ماژول های آن باید طبق مراحل زیر صورت بگیرد:
ماژول HSM در حالت آماده سازی: ماژول HSM با هسته BOLOS و تمام پلاگین های آن فلش میشود.
آماده سازی: یک مستر سید 256 بیتی توسط HSM تولید میشود. میتوان این مستر سید را با مکانیزم های استاندارد نظیر به اشتراک گذاری پنهان (Secret Sharing) تقسیم کرد و به عنوان مجموعه ای از BIP برای کلیدهای مختلف نمایش داد. یک بکآپ کاغذی ایجاد و بر اساس بهترین اقدامات محافظت میشود.
جفت سازی (Pairing): تبادل ایمن کلید با لجر بلو انجام میشود. از این لحظه به بعد فقط این دستگاه اجازه محدود کردن سرعت تراکنش ها را خواهد داشت. اطلاعات اولیه منطق تجاری مرتبط با موتور هماهنگ سازی نیز در این نقطه میتواند آماده سازی شود.
تولید: HSM به تاسیسات تولید منتقل و به حالت فعال و آنلاین وارد میشود. از این لحظه به بعد، حالت آماده سازی غیرفعال میشود و هرگونه تلاش برای انتقال یا حمله فیزیکی به HSM منجر به پاک شدن سید خواهد شد.
جریان درخواست پرداخت
فرض کنیم که کاربری میخواهد 50 بیت کوین (کل موجودی خود) را برداشت کند و به آدرس مورد نظر خود ارسال کند. وی به حساب خود در صرافی وارد میشود فرمی با درخواست پرداخت پر میکند. پس از آن، مراحل زیر رخ میدهد:
- درخواست پرداخت 50 بیت کوین با آدرس پرداخت و تمام متادیتاهای مشتری از طریق فراخواندن API از موتور صرافی به HSM ارسال میشود.
- ماژول HSM با محدود کننده سرعت تراکنش ها بررسی میکند که آیا این پرداخت 50 بیت کوین میتواند انجام شود یا خیر.
- اکنون HSM پلاگین احراز هویت 2 مرحله ای درخواست میکند: یک احراز برای منطق تجاری صرافی و یک احراز دیگر برای برنامه کاربر.
- منطق تجاری اطلاعات برداشت را دریافت و بررسی میکند که آیا تمام شرایط در دیتابیس مناسب است یا خیر. شرایطی نظیر مجاز بودن کاربر برای برداشت، محدودیت های موجود در قوانین ضدپولشویی، سرمایه کافی و غیره. سپس این اطلاعات را که توسط HSM تایید شدهاند را با اطلاعات انتقال جدید برمیگرداند.
- کاربر به سمت برنامه احراز هویت دو مرحله ای هدایت میشود. این برنامه از قبل دانلود شده است و از طریق رابط کاربری صرافی با HSM هماهنگ سازی انجام گرفته است. کاربر درخواست 50 بیت کوین را با آدرس پرداخت خود مشاهده میکند. سپس درخواست را تایید میکند و برنامه، تراکنش را با کلید خصوصی امضا میکند.
- پلاگین احراز هویت دو مرحله ای به پرداخت مورد نظر، چراغ سبز نشان میدهد و سپس آن را به کیف پول بیت کوین فوروارد میکند. سپس آن را به موتور صرافی ارائه میدهد. سپس موتور صرافی آن را منتشر میکند و سفارش های اولیه برای به روزرسانی دفتر حسابداری ثبت میشود.
بدترین شرایط مرتبط با هک
فرض کنید که حمله کننده، کنترل کامل تمام زیرساخت های صرافی ارز دیجیتال را در اختیار بگیرد. حمله کننده با وارد کردن جفت سازی اشتباه به آسانی میتواند احراز هویت دو مرحله ای را فریب دهد. در عین حال، حمله کننده در وارد کردن اطلاعات اشتباه به HSM باید مراقب باشد، زیرا اگر HSM نتواند بررسی های دوره ای خود را انجام دهد، پلاگین امضا را از کار میاندازد تا اپراتور مجددا آن را فعال کند. آخرین خط دفاعی، محدود کننده سی سرعت تراکنش است. هکر نمیتواند بیشتر از سقف تعیین شده در HSM برداشت کند. این سقف برداشت نیز غیرقابل تغییر است. پس از چند ساعت، مشتریان شروع به شکایت درباره حساب های خالی خود میکنند و تیم امنیتی میتواند به عنوان یک واکنش اضطراری، HSM را غیرفعال کند. هرچه جامعه سریعتر تشخیص دهد که مشکلی وجود دارد، سریعتر میتوان جلوی هک را گرفت.
کارت حافظه Safenet HSM در یک سرور قابل تعویض
بدترین شرایط، از دست رفتن ویژگی محدودکننده سرعت تراکنش در ساعت است. در این صورت، بدون آنکه کسی متوجه آن شود مقدار برداشت ها در ساعت توسط هکر چندین برابر میشود.
شرایطی که طی آن، هکرها بتوانند مستر سید (سید اصلی) را از HSM استخراج کنند بسیار بعید است. این ماژول های امنیتی به دقت آزمایش میشوند و اکثر سوء استفاده ها محدود به سوء استفاده یا سوء برداشت از رابط کاربری مدیریتی HSM است. البته همواره میتوان گفت که هر چیزی قابل هک کردن است. اما دشواری هک کردن HSM، چندین برابر در اختیار گرفتن کنترل زیرساخت IT است.
علاوه بر این، هم چنین میتوانیم شرایطی که در آن، لجر بلو در اختیار هکر است یا شرایطی که به بکآپ سید دسترسی دارد را در نظر نگیریم. به دلیل تمایل آدم ها به انجام اشتباهات احمقانه، این موضوع میتواند رخ دهد. به همین دلیل است که حتی بهترین فناوری های امنیتی نیز بدون داشتن منطق بررسی های دقیق ارزشی ندارد.