برای اطمینان از اینکه حتی در صورت گم شدن والت کریپتوی خودتان باز هم به موجودی آن دسترسی دارید، باید از کلیدهای خصوصی خودتان کپی بگیرید. معمولاً این کار با استفاده از عبارت بازیابی انجام میشود اما عبارتهای بازیابی به هیچ وجه امن نیستند چون هر شخصی که به آنها دسترسی داشته باشد، میتواند کل موجودی شما را تصاحب کند.
به همین دلیل، والت Tangem یک راهکار بسیار امن برای ذخیره کلیدهای خصوصی دارد. میتوانید از کلید خصوصی خودتان روی یک یا دو کارت Tangem بکاپ بگیرید بدون اینکه نیازی به نگرانی درباره گم شدن یا سرقت آنها داشته باشید.
برای آشنایی با این روش و امنیت آن، با ما همراه باشید.
ایجاد کلید خصوصی
والت Tangem پیش از شروع فرایند فعال سازی، کلید خصوصی ندارد. هنگام خرید والت Tangem ، کاربران پکیجی را دریافت میکنند که هنوز فعال نشده و کلید خصوصی ندارد در نتیجه میتوانند مطمئن باشند که از قبل برای والت مربوطه کلیدی ایجاد نشده است.
طی فرایند فعال سازی، تراشه Tangem یک کلید خصوصی جدید تولید میکند. این کلید، بر اساس یک دنباله عدد ایجاد میشود که توسط یک مولد اعداد تصادفی تأیید شده تولید شده است.
در این مرحله، تنها یک نمونه از کلید خصوصی وجود دارد. پس از آن، باید یک یا دو کپی از این کلید بگیرید که این کار باید به روشی امن انجام شود.
آمادگی برای پشتیبان گیری
طی این فرایند پشتیبان گیری، کلید خصوصی باید به کارتهای دیگر منتقل شود؛ طوری که امکان سرقت آن وجود نداشته باشد و کاربر کنترل کامل همه کپیهای موجود را در اختیار داشته باشد.
به همین دلیل، فرایند پشتیبان گیری از کلید خصوصی شامل دو مرحله دیگر است:
- اول باید کاملاً مطمئن شوید که کلیدها به یک کارت Tangem دیگر منتقل میشوند؛
- کلید باید حین انتقال به سایر کارتها به خوبی حفاظت شود و به همین دلیل، با استفاده از رمزنگاری اطمینان حاصل میشود که فقط کارت دریافت کننده توانایی رمزگشایی آن را دارد.
زمانی که کارتی در کارخانه تولید میشود، تراشه جفت کلید آن را تولید میکند یعنی کلید خصوصی Kcardpriv و کلید عمومی Kcardpub. این کلیدها برای هر کارتی منحصربفرد بوده و به هیچ روشی با والت کاربر آینده کارت در ارتباط نخواهند بود. وجود آنها صرفاً برای این است که کارت بتواند اصالت خودش را به اپلیکیشن نشان داده و تأیید کند که توسط Tangem تولید شده است.
کلید عمومی از این جفت کلید توسط Tangem و با استفاده از کلید خصوصی تولید کننده یعنی KTangempriv امضاء میشود. گواهینامه Cert_Card تولید شده، برای اعتبارسنجی کارت استفاده میشود.
کلید عمومی تولید کننده یعنی KTangempub هم روی تراشه نوشته میشود. این کلید برای همه کارتها یکسان است و نقطه شروع "زنجیره اعتماد" بین کارت مبدأ و مقصد را تشکیل میدهد.
اولین چالش: احرازهویت متقابل
برای اینکه حین فرایند بکاپ هر کارت مطمئن شود که کارت مقابل واقعی است، باید یک زنجیره اعتماد از امضاها و کلیدهای کارتها تشکیل شود.
حین فعال سازی، هر کارت برای ارتباط با سایر کارتها، یک جفت کلید یک بار مصرف تولید میکند – Klinkpub و Klinkpriv – و کلید عمومی را با کلید خصوصی Kcardpriv خودش امضاء میکند تا امضای Sign_Attest را تشکیل دهد.
سپس کارت، اطلاعات Sign_Attest، Klinkpub و Kcardpub را برای کارت دیگر ارسال میکند.
این فرایند منجر به ایجاد این زنجیره اعتماد میشود: KTangempub – Kcardpub – Klinkpub. کلید عمومی سازنده یعنی KTangempub برای همه کارتها مشخص است و از آن برای اعتبارسنجی گواهینامه Cert_Card استفاده میکنند. اگر تطبیق لازم با Kcardpub کارت دیگر وجود داشته باشد، از این کلید برای اعتبارسنجی امضای Sign_Attest آن کارت استفاده خواهد شد. اگر Sign_Attest با Klinkpub کارت دیگر تطبیق داشته باشد، این یعنی کارت مقابل توسط تنجم تولید شده، کلید Klinkpub آن توسط هیچ شخصی تغییر نکرده و میتوان از آن برای محاسبه کلید بکاپ مشترک Ktrans استفاده کرد.
چالش دوم: به دست آوردن کلید رمزنگاری مشترک
در این مرحله، هر دو کارت باید یک کلید مشترک متقارن یعنی Ktrans تولید کنند که کارت مبدأ از آن برای رمزنگاری کلید خصوصی کاربر استفاده کرده و کارت مقصد هم آن را رمزگشایی میکند. از آنجایی که کانال ارتباطی بین این کارتها توسط یک دستگاه غیر مورد اطمینان ارایه شده، نمیتوان به راحتی یک کلید در یک کارت تولید کرده و آن را به کارت دیگر منتقل کرد. این مسئله با استفاده از پروتکل کلید Diffie–Hellman حل شده است.
کارتها فقط کلیدهای Klinkpub تأیید شده و مورد اطمینان را مبادله کردهاند و هر کارت از Klinkpriv خودش و Klinkpub کارت مقابل برای تولید کلید رمزنگاری متقارن Ktrans استفاده میکند که در نهایت برای هر دو کارت یکسان خواهد بود. این جادوی Diffie–Hellman است!
بعلاوه، اگر مهاجمی کنترل گوشی کاربر را در اختیار گرفته و بتواند فرایند مبادله کارت را شنود کند، فقط به کلیدهای عمومی Klinkpub و Kcardpub دسترسی پیدا خواهد کرد چون تنها همین کلیدها توسط کارتها مبادله میشوند. کلیدهای Klinkpriv غیرقابل دسترس خواهند بود و مهاجمان امکان ساختن همان Ktrans را نخواهند داشت.
مبادله کلید رمزنگاری شده
اولین کارت، با استفاده از کلید متقارن Ktrans به دست آمده، یک مجموعه داده حاوی کد دسترسی، کلید خصوصی کاربر و تعداد بکاپهای کلید خصوصی (مجموعه 2 یا 3 کارت) را رمزنگاری میکند. کارت، پیام ENC رمزنگاری ایجاد شده را به کارت دوم ارسال میکند که آن را با استفاده از همان Ktrans رمزگشایی خواهد کرد. در این لحظه اگر کسی امکان تفسیر ENC را داشته باشد، قابلیت پیدا کردن هیچ اطلاعاتی را نخواهد داشت چون بدون کلید Ktrans، امکان رمزگشایی از پکیج وجود ندارد.
تکمیل بکاپ برای کارت سوم هم به همین روش صورت میگیرد اما کارتها، کلیدهای Klink جدید ایجاد میکنند و این یعنی کلید Ktrans با آنچه که هنگام پشتیبان گیری روی کارت دوم استفاده شده بود، تفاوت خواهد داشت.
میانافزار تراشه تنجم فرصت تکمیل یک بکاپ را فراهم میکند. پس از ارسال یا دریافت کلید خصوصی، کارت شروع فرایند بکاپ را متوقف میکند و کلید خصوصی غیرقابل بازیابی خواهد بود.
در صورتی که روی کارت تنجم عملیات ریست کارخانه را انجام دهید، کارت کلید Kpriv را فراموش کرده و میتوانید دوباره والت را فعال کرده، یک کلید جدید تولید کرده و یک فرایند بکاپ جدید را تکمیل کنید. اما دقت باشید که کلید قدیمی پس از ریست نابود خواهد شد.