احراز هویت امن فقط نمایش یک دکمه ورود نیست. باید جریان ورود، طول عمر نشست، ذخیره توکن، خروج، بازیابی و سناریوی سرقت توکن از ابتدا طراحی شوند. هرچه منطق امنیتی در سمت سرور متمرکزتر و قابل ممیزیتر باشد، کنترل بهتر خواهد بود.
برای برنامههای عمومی، جریان کد مجوز همراه با سازوکار اثبات کلید انتخاب مناسبی است. پارامترهای پارامتر وضعیت و مقدار یکبارمصرف باید بررسی شوند تا حملات جعل درخواست و بازپخش پاسخ ورود کاهش پیدا کند.
تبادل کد اوث باید روی سرور انجام شود. صادرکننده، مخاطب، امضا، زمان انقضا و مقدار یکبارمصرف توکن هویتی را پیش از اعتماد به ادعاها بررسی کنید. مرورگر نباید رازهای سرویس یا توکن تازهسازی را در فضای قابل دسترس جاوااسکریپت نگه دارد.
توکن دسترسی را کوتاهعمر نگه دارید و برای نشست طولانیتر از توکن تازهسازی با چرخش استفاده کنید. توکن تازهسازی بهتر است در کوکی غیرقابل دسترس برای جاوااسکریپت، امن و با سیاست محدود به همان سایت مناسب قرار گیرد و هر بار استفاده، نسخه قبلی باطل شود.
جیدبلیوتی باید کوچک و هدفمند باشد. شناسه کاربر، شناسه نشست، زمان صدور، انقضا و محدوده دسترسی کافی است. اطلاعات پروفایل بزرگ یا داده حساس را داخل توکن قرار ندهید و برای چرخش کلید از شناسه کلید و مجموعه کلید عمومی استفاده کنید.
مکانیزم ابطال و تشخیص استفاده مجدد از توکن تازهسازی ضروری است. اگر توکن قدیمی پس از چرخش دوباره ارائه شد، نشست را مشکوک در نظر بگیرید و کاربر را وادار به ورود مجدد کنید.
امنیت وب به احراز هویت ختم نمیشود. سیاست امنیت محتوا، محافظت در برابر جعل درخواست بینسایتی، محدودیت نرخ، ثبت رخدادهای مهم و مدیریت امن کلیدها باید در کنار جریان ورود پیادهسازی شوند.
احراز هویت امن یعنی نشست کوتاه، رازهای دور از دسترس مرورگر، چرخش کنترلشده و امکان تشخیص رفتار غیرعادی.
از دکمه ورود تا احراز هویت آماده محیط واقعی
- تبادل کد اوث را فقط در سمت سرور انجام دهید.
- از سازوکار اثبات کلید، پارامتر وضعیت و مقدار یکبارمصرف استفاده و آنها را اعتبارسنجی کنید.
- توکن دسترسی را کوتاهعمر و توکن تازهسازی را قابل چرخش طراحی کنید.
- توکن حساس را در حافظه محلی مرورگر نگهداری نکنید.
- کوکیها را با غیرقابل دسترس برای جاوااسکریپت، امن و محدود به همان سایت مناسب تنظیم کنید.
- کلیدهای امضا را دورهای بچرخانید و کلید قبلی را موقتاً برای اعتبارسنجی نگه دارید.
- استفاده مجدد از توکن تازهسازی باطلشده را بهعنوان رخداد امنیتی ثبت کنید.
- برای مسیرهای ورود و تازهسازی، محدودیت نرخ و لاگ ساختاریافته داشته باشید.
