پسکی چیست؟ راهنمای کامل ورود بدون رمز عبور برای همه
پسکی چیست و چرا جای رمز عبور را میگیرد؟ سازوکار رمزنگاری کلید عمومی، مقاومت در برابر فیشینگ و پیادهسازی WebAuthn را با مثال کد یاد بگیرید.

فهرست مطالب
پسکی چیست و چرا غولهای فناوری آن را آیندهی ورود به حسابها میدانند؟ پسکی (Passkey) روشی برای ورود بدون رمز عبور است که بهجای چیزی که باید به خاطر بسپارید، از یک جفت کلید رمزنگاری و قفل صفحهی دستگاهتان (اثر انگشت، چهره یا پین) استفاده میکند. نتیجه ورودی سریعتر و در برابر فیشینگ مقاوم است.
در این مقاله اول سازوکار پسکی را به زبان ساده توضیح میدهیم، بعد سراغ کاربران عادی میرویم و در پایان پیادهسازی آن را با Web Authentication API برای توسعهدهندهها نشان میدهیم.
مشکل رمز عبور کجاست؟
رمز عبور یک «راز مشترک» است: شما آن را میدانید و سرور هم نسخهای از آن (معمولاً درهمسازیشده) را نگه میدارد. همین ویژگی سه ضعف بزرگ ایجاد میکند:
- فیشینگ: کاربر رمز را در صفحهی جعلی وارد میکند و مهاجم آن را میدزدد.
- استفادهی مجدد: یک رمز در ده سایت؛ نشت یکی یعنی خطر برای همه.
- نشت پایگاه داده: درهمسازی ضعیف، رمزها را در معرض شکستن قرار میدهد.
طبق گزارش ۲۰۲۶ اتحادیهی FIDO، ۳۳ درصد از مصرفکنندگان در سال گذشته نفوذ به حساب یا اعلان نشت داده را تجربه کردهاند.
پسکی چیست و چطور کار میکند؟
پسکی بر پایهی رمزنگاری کلید عمومی (Public-Key Cryptography) و استانداردهای FIDO2 و WebAuthn ساخته شده است. وقتی برای یک سایت پسکی میسازید، دستگاه شما یک جفت کلید تولید میکند:
- کلید خصوصی که هرگز دستگاه یا مدیر گذرواژهی شما را ترک نمیکند.
- کلید عمومی که به سرور سایت فرستاده و ذخیره میشود.
مراحل ورود با پسکی
- سرور یک رشتهی تصادفی یکبارمصرف به نام چالش (Challenge) میفرستد.
- مرورگر از شما میخواهد قفل دستگاه را باز کنید (اثر انگشت، چهره یا پین).
- دستگاه چالش را با کلید خصوصی امضا میکند.
- سرور امضا را با کلید عمومی ذخیرهشده بررسی میکند و در صورت صحت، شما را وارد میکند.
در این فرایند هیچ رازی روی شبکه جابهجا نمیشود. دادهی بیومتریک هم فقط روی خود دستگاه برای باز کردن قفل کلید استفاده میشود و به سایت نمیرسد.
چرا پسکی ضد فیشینگ است؟
هر پسکی به شناسهی سایت (Relying Party ID)، یعنی دامنهی واقعی مثل devna.ir، گره میخورد. اگر وارد صفحهی جعلی devna-login.com شوید، مرورگر اصلاً پسکی devna.ir را پیشنهاد نمیدهد. کاربر حتی اگر فریب بخورد، چیزی برای لو دادن ندارد.
پسکی در برابر رمز عبور و پیامک
| معیار | رمز عبور | رمز عبور + کد پیامکی | پسکی |
|---|---|---|---|
| مقاومت در برابر فیشینگ | ندارد | ضعیف | کامل |
| نیاز به حفظ کردن | دارد | دارد | ندارد |
| خطر نشت از سرور | بالا | بالا | عملاً صفر |
| سرعت ورود | متوسط | کند | سریع |
| وابستگی به شبکهی موبایل | ندارد | دارد | ندارد |
وضعیت پذیرش پسکی در ۲۰۲۶
اتحادیهی FIDO در روز جهانی پسکی (۷ مه ۲۰۲۶) گزارش داد که:
- حدود ۵ میلیارد پسکی در جهان در حال استفاده است.
- ۹۰ درصد مردم با پسکی آشنا هستند و ۷۵ درصد دستکم روی یک حساب آن را فعال کردهاند.
- ۴۸ درصد از ۱۰۰ وبسایت برتر جهان پسکی ارائه میکنند.
- ۶۸ درصد سازمانها پسکی را برای ورود کارکنان مستقر کرده یا در حال استقرار آن هستند.
راهنمای کاربران: چطور پسکی بسازیم؟
در بیشتر سرویسها مسیر مشابه است: به بخش امنیت حساب بروید و گزینهای مثل «ایجاد پسکی» (Create a passkey) را بزنید. چند توصیهی عملی:
- اول برای ایمیل اصلی پسکی بسازید؛ ایمیل کلید بازیابی همهی حسابهای دیگر است.
- از یک مدیر گذرواژهی همگامشونده استفاده کنید تا پسکیها روی دستگاههای شما در دسترس باشند.
- برای حسابهای حساس (ایمیل کاری، گیتهاب، کلاد) یک کلید امنیتی سختافزاری پشتیبان هم ثبت کنید.
- کدهای بازیابی را جایی امن و آفلاین نگه دارید.
راهنمای توسعهدهندگان: پیادهسازی پسکی با WebAuthn
پیادهسازی پسکی دو بخش دارد: ثبت (Registration) و ورود (Authentication). در هر دو، سرور چالش میسازد و پاسخ را اعتبارسنجی میکند؛ مرورگر هم با Web Authentication API کار را انجام میدهد.
ثبت پسکی در سمت کاربر
// challenge و userId باید از سرور دریافت شوند (Uint8Array)
const credential = await navigator.credentials.create({
publicKey: {
challenge,
rp: { id: "devna.ir", name: "DevNA" },
user: {
id: userId,
name: "ali@example.com",
displayName: "Ali",
},
pubKeyCredParams: [
{ type: "public-key", alg: -7 }, // ES256
{ type: "public-key", alg: -257 }, // RS256
],
authenticatorSelection: {
residentKey: "required", // پسکی قابل کشف
userVerification: "preferred",
},
timeout: 60000,
},
});
// credential را برای اعتبارسنجی و ذخیرهی کلید عمومی به سرور بفرستید
ورود با پر شدن خودکار (Conditional UI)
بهترین تجربهی کاربری وقتی است که پسکی مثل پیشنهاد پر شدن خودکار، زیر فیلد نام کاربری ظاهر شود. برای این کار فیلد ورودی باید مقدار autocomplete مناسب داشته باشد:
<input type="text" name="username" autocomplete="username webauthn" />
if (await PublicKeyCredential.isConditionalMediationAvailable?.()) {
const assertion = await navigator.credentials.get({
mediation: "conditional",
publicKey: {
challenge, // چالش تازه از سرور
rpId: "devna.ir",
userVerification: "preferred",
},
});
// assertion را برای بررسی امضا به سرور بفرستید
}
نکتههای سمت سرور
- اعتبارسنجی WebAuthn جزئیات زیادی دارد؛ بهجای پیادهسازی دستی از کتابخانههای شناختهشدهی زبان خود استفاده کنید.
- چالش را یکبارمصرف و با انقضای کوتاه نگه دارید.
originوrpIdرا دقیقاً بررسی کنید.- برای هر کاربر اجازهی ثبت چند پسکی بدهید تا از دست رفتن یک دستگاه به قفل شدن حساب منجر نشود.
- مسیر بازیابی حساب را هم محکم کنید؛ ضعیفترین مسیر ورود، سطح امنیت واقعی شماست.
پسکی مستقیماً به دستهی «شکستهای احراز هویت» در فهرست OWASP پاسخ میدهد؛ برای تصویر کاملتر، راهنمای OWASP Top 10 نسخهی ۲۰۲۵ را بخوانید.
محدودیتها و چالشهای پسکی
پسکی بینقص نیست و شناخت محدودیتهایش به تصمیم بهتر کمک میکند:
- جابهجایی بین اکوسیستمها: پسکیهایی که در iCloud Keychain ذخیره شدهاند، بهطور طبیعی در اکوسیستم اپل میمانند و انتقال آنها به مدیر گذرواژهی دیگر هنوز به سادگی جابهجایی رمزهای عبور نیست. استفاده از مدیر گذرواژهی مستقل و چندسکویی این مشکل را کم میکند.
- دستگاههای اشتراکی: روی رایانهی عمومی یا مشترک نباید پسکی ذخیره کنید؛ در این حالت از گزینهی ورود با گوشی از طریق کد QR استفاده کنید تا کلید روی گوشی خودتان بماند.
- بازیابی حساب: اگر سایتی پسکی را فعال کند اما بازیابی حساب را همچنان با یک پیامک ساده انجام دهد، مهاجم از همان در پشتی وارد میشود.
- آشنایی کاربران: بخشی از کاربران هنوز نمیدانند پسکی کجا ذخیره میشود و با دیدن پنجرهی سیستمعامل گیج میشوند. متن راهنمای کوتاه و روشن در لحظهی ساخت پسکی، نرخ پذیرش را بالا میبرد.
توصیهی عملی برای محصولها این است که پسکی را در کنار روش فعلی ورود ارائه کنید، بعد از ورود موفق با رمز عبور ساختن پسکی را پیشنهاد دهید و بهتدریج آن را روش پیشفرض کنید.
جمعبندی
پسکی دیگر فناوری آزمایشی نیست؛ میلیاردها حساب از آن استفاده میکنند و مرورگرها و سیستمعاملهای اصلی از آن پشتیبانی میکنند. اگر کاربر هستید، از امروز برای حسابهای مهمتان پسکی بسازید. اگر توسعهدهندهاید، افزودن پسکی در کنار روش فعلی ورود، یکی از کمهزینهترین و پربازدهترین ارتقاهای امنیتی است که میتوانید به محصولتان بدهید.



