کلید خصوصی در توکن های سخت افزاری
در منظور از کلید خصوصی کلیدهای موجود در توکن های سخت افزاری است. که شامل یک قطعه اطلاعات رمزنگاری شده بسیار حساس که برای اثبات هویت شخص استفاده میشود.این کلید هرگز نباید فاش شود.کلید خصوصی هرگز توکن را ترک نمیکند.وقتی شما توکن را به کامپیوتر وصل میکنید و از آن برای احراز هویت استفاده میکنید عملیات رمزنگاری داخل خود توکن انجام میشود وکلید خصوصی به حافظه کامپیوتر شخص منتقل نمیشود.
مزایای این روش:
1. امنیت بالا: حتی اگر کامپیوتر شما آلوده به بدافزار باشد، مهاجم نمیتواند کلید خصوصی شما را بدزدد چون هرگز خارج از توکن نیست.
2. حملات فیشینگ سختتر: توکن فقط برای وبسایتهای واقعی عمل احراز هویت را انجام میدهد.
3. عامل دوم (2FA): برای استفاده از آن هم به "چیزی که دارید" (خود توکن) و هم معمولاً به "چیزی که میدانید" (مثلاً PIN توکن) یا "چیزی که هستید" (اثر انگشت) نیاز دارید.
کاربرد: احراز هویت بدون رمز (Passwordless Authentication)، کلیدهای دسترسی (Passkeys)، ورود دو مرحلهای (2FA) برای سرویسهایی مثل Google, GitHub, Microsoft و همچنین امضای دیجیتال اسناد.
---
کلید خصوصی در توکنهای نرمافزاری (مثل JWT)
در این مفهوم، توکن یک رشته متنی (مثلاً یک JSON Web Token یا JWT) است که برای مدیریت دسترسی (Access Management) استفاده میشود. این توکنها نرمافزاری هستند و روی سرورها و کلاینتها جابهجا میشوند.
در این سیستمها، دو نوع کلید وجود دارد:
1. کلید خصوصی (Private Key): این کلید بسیار محرمانه است و فقط روی سرور صادرکننده توکن نگهداری میشود. از این کلید برای امضا کردن (Signing) توکنها استفاده میشود.
2. کلید عمومی (Public Key): این کلید را میتوان به طور公開 در اختیار هرکسی که نیاز به بررسی اعتبار توکن دارد (مثلاً یک سرور دیگر) قرار داد.
نحوه کار:
1. کاربر credentials خود (مثلاً نام کاربری و رمزعبور) را به سرور احراز هویت ارسال میکند.
2. اگر اطلاعات درست باشد، سرور با استفاده از کلید خصوصی خود یک توکن JWT ایجاد و امضا میکند.
3. این توکن برای مرورگر کاربر ارسال میشود.
4. کاربر این توکن را در درخواستهای بعدی خود به سرورهای دیگر (مثلاً سرور API) ارسال میکند.
5. سرور API با استفاده از کلید عمومی سرور احراز هویت، امضای توکن را بررسی میکند. اگر امضا معتبر بود، یعنی توکن واقعی است و به کاربر دسترسی میدهد.
نکته کلیدی: در اینجا، "کلید خصوصی" داخل خود توکن جاسازی نمیشود. توکن فقط حاوی یک امضای دیجیتال است که با کلید خصوصی ایجاد شده و با کلید عمومی قابل verify کردن است. افشای این کلید خصوصی به معنای آن است که هرکسی میتواند توکنهای جعلی اما معتبر تولید کند و کل سیستم امنیتی از بین برود.
---
جمعبندی و مقایسه
ویژگی توکن سختافزاری (مثل YubiKey) توکن نرمافزاری (مثل JWT)
ماهیت یک دستگاه فیزیکی (USB, NFC) یک رشته متنی (کد)
کلید خصوصی داخل توکن ذخیره و محافظت میشود. هرگز خارج نمیشود. روی یک سرور امن ذخیره میشود. برای امضا کردن توکنها استفاده میشود.
کاربرد اصلی احراز هویت کاربر (Authentication) اعطای مجوز دسترسی (Authorization)
مثال استفاده از YubiKey برای ورود به Gmail دریافت یک Token پس از لاگین برای استفاده از API
نتیجهگیری
وقتی میپرسید "کلید خصوصی در توکن چیست"، به احتمال زیاد منظور شما مفهوم اول است: یک دستگاه سختافزاری که کلید خصوصی رمزنگاری شما را در خود به شکل بسیار امنی نگهداری میکند و مانع از سرقت آن میشود. این فناوری، هسته مرکزی احراز هویت مدرن و بدون رمزعبور است.