صرافي ارز ديجيتال و امنيت
گورستان بلاك چين فهرستي از صرافي هاي بيت كوين است كه هك شده اند. اين فهرست دائما در حال گسترش است و نه تنها اعتماد عموم مردم به ارزهاي ديجيتال را خدشه دار ميكند، بلكه اعتماد شركت ها، مشتريان و سرمايه گذاران را نيز از بين ميبرد.
دلايل اصلي اين هك ها متفاوت و اغلب پيچيده است؛ اما اكثر اين نفوذها با بهترين رويكرد امنيتي قابل پيشگيري يا حداقل محدود شدن است.
هنگامي كه ميگوييم بهترين اقدامات و رويكرد، به اقداماتي اشاره ميكنيم كه طي دهه هاي گذشته توسط موسسات بانكي، شركت هاي مخابراتي و دولت استفاده شده است، يعني سخت افزارهاي ايمن.
ماژول هاي امنيتي سخت افزاري
ماژول امنيتي سخت افزاري (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 است.
علاوه بر اين، هم چنين ميتوانيم شرايطي كه در آن، لجر بلو در اختيار هكر است يا شرايطي كه به بكآپ سيد دسترسي دارد را در نظر نگيريم. به دليل تمايل آدم ها به انجام اشتباهات احمقانه، اين موضوع ميتواند رخ دهد. به همين دليل است كه حتي بهترين فناوري هاي امنيتي نيز بدون داشتن منطق بررسي هاي دقيق ارزشي ندارد.