TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2330 1.54K
🎯‌فیدو (FIDO2) چیست و چرا مهم است؟

فیدو - FIDO2 استانداردی جهانی برای احراز هویت بدون رمز عبور است که توسط مایکروسافت و شرکت‌های بزرگ دیگر طراحی شده است تا امنیت ورود به حساب‌ها را بالا ببرد و جلوی حملات فیشینگ و هک رو بگیرد.

🔐‌ چگونه کار می‌کند؟
به جای رمز عبور، FIDO2 از یک جفت کلید رمزنگاری استفاده می‌کند:
- کلید عمومی برای سرور.
- کلید خصوصی که فقط روی دستگاه شما می‌ماند.
وقتی می‌خواهید وارد حساب کاربری خود شوید، دستگاه شما رمزنگاری را با کلید خصوصی امضا می‌کنه و امنیت را تضمین می‌کند.

📱‌ انواع احراز هویت‌کننده‌ها:
۱. قابل حمل (Roaming): مانند فلش امنیتی، گوشی یا ساعت هوشمند.
۲. داخلی (Platform): مثل اثر انگشت یا تشخیص چهره روی لپ‌تاپ یا موبایل.

✅‌ مزایای FIDO2:
- امنیت بالا در برابر فیشینگ و بدافزار.
- حفظ حریم خصوصی (اطلاعات بیومتریک فقط روی دستگاه ذخیره می‌شود).
- راحتی در ورود بدون نیاز به رمز.
- مقیاس‌پذیری برای شرکت‌ها و سازمان‌ها.

💻‌ نمونه کد ساده برای استفاده از FIDO2 در سی‌شارپ:

بخش ابتدایی جهت ایجاد کلیدها:
// 1. پیکربندی اولیه FIDO2
var fidoConfig = new Fido2Configuration
{
ServerDomain = "myapp.com",
ServerName = "My Secure App",
Origin = "https://myapp.com"
};

var fido2 = new Fido2(fidoConfig);

// 2. تعریف کاربر
var user = new Fido2User
{
DisplayName = "Hamed",
Name = "hamed123",
Id = Encoding.UTF8.GetBytes("unique-user-id")
};

// 3. ایجاد گزینه‌های ثبت‌نام
var options = fido2.RequestNewCredential(
user,
new List<PublicKeyCredentialDescriptor>(), // لیست دستگاه‌های قبلی
AuthenticatorSelection.Default,
AttestationConveyancePreference.None
);

// 4. ارسال گزینه‌ها به کلاینت برای ادامه ثبت‌نام
return Json(options);



بخش دوم برای احراز هویت کلیدهای از قبل ایجاد شده:

var success = await fido2.MakeAssertionAsync(
clientResponse, // پاسخ امضا شده از کلاینت
assertionOptions,
storedPublicKey, // کلید عمومی ثبت‌شده قبلی
storedUserHandle
);

if (success.Result.Status == "ok")
{
// ورود موفق
return Ok("ورود با موفقیت انجام شد!");
}
else
{
return BadRequest("احراز هویت ناموفق بود.");
}



🔗 داکیومنت ها ( ۱ و ۲ )

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

#حامد_حاجیلو (لینکدین)

کانال تلگرام:
@SoftwarePhilosophy

______
  • ❤ 14
  • 👍 7
  • 🔥 1
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →