توکن دسترسی

در سیستم های کامپیوتری ،توکن دسترسی حاوی اعتبارنامه های امنیتی برای یک جلسه ورود (login session)به سیستم است و کاربر ،گروه های کاربر ،امتیازات کاربر  و در برخی موارد ،یک برنامه خاص را شناسایی میکند.در برخی موارد، ممکن است از شما توکن دسترسی(مثلا ۴۰ کاراکتر تصادفی) برای ورود خواسته شود به جای رمز عبور معمولی(بنابراین باید به صورت محرمانه مانند رمز عبور نگه داری شود.) 

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

توکن دسترسی توسط سرویس ثبت ورود وقتی ایجاد می‌شود که یک کاربر به سیستم وارد می‌شود و اعتبارنامه‌های ارائه شده توسط کاربر در مقابل پایگاه داده احراز هویت تایید می‌شوند. پایگاه داده احراز هویت شامل اطلاعات اعتباری است که برای ساخت توکن اولیه برای جلسه ورود لازم است، از جمله شناسه کاربر، شناسه گروه اصلی، تمام گروه‌های دیگری که کاربر عضو آن‌ها است و اطلاعات دیگر. توکن به فرآیند اولیه‌ای که در جلسه کاربر ایجاد می‌شود پیوست می‌شود و توسط فرآیندهای بعدی که توسط فرآیند اولیه ایجاد می‌شوند به ارث می‌رسد.  هر زمان که چنین فرآیندی دسترسی به هر منبعی که کنترل دسترسی فعال دارد را باز می‌کند، ویندوز داده‌های موجود در توصیف‌گر امنیتی شیء هدف را با محتوای توکن دسترسی موثر فعلی تطبیق می‌دهد.  نتیجه این ارزیابی بررسی دسترسی، نشانه‌ای از این است که آیا دسترسی مجاز است و در صورت مجاز بودن، چه عملیاتی (خواندن، نوشتن/تغییر و غیره) برنامه فراخوانی مجاز به انجام آن‌ها است.

## انواع توکن ها
دو نوع توکن وجود دارد:

**توکن اصلی**

توکن‌ های اصلی فقط می‌توانند به فرآیندها مرتبط شوند و نماینده موضوع امنیتی یک فرآیند هستند. ایجاد توکن‌های اصلی و ارتباط آن‌ها با فرآیندها هر دو عملیات دارای امتیاز هستند و نیاز به دو امتیاز مختلف در نام جداسازی امتیازی دارند - سناریوی معمول این است که سرویس احراز هویت توکن را ایجاد می‌کند و یک سرویس ورود آن را به پوسته سیستم عامل کاربر مرتبط می‌کند. فرآیندها ابتدا یک کپی از توکن اصلی فرآیند والد خود را به ارث می‌برند.

**توکن جانشینی**

جانشینی یک مفهوم امنیتی است که در ویندوز NT پیاده‌سازی شده و به یک برنامه سرور اجازه می‌دهد تا به طور موقت "مشتری" باشد از نظر دسترسی به اشیاء ایمن. جانشینی چهار سطح ممکن دارد: **ناشناس**، که به سرور دسترسی یک کاربر ناشناس/ناشناس را می‌دهد؛ **احراز هویت**، که به سرور اجازه می‌دهد هویت مشتری را بررسی کند ولی از آن هویت برای دسترسی به اشیاء استفاده نکند؛ **جانشینی**، که به سرور اجازه می‌دهد به نمایندگی از مشتری عمل کند؛ و **واگذاری**، همانند جانشینی اما به سیستم‌های راه دور که سرور به آن‌ها متصل می‌شود (از طریق حفظ اعتبارنامه‌ها) گسترش می‌یابد. مشتری می‌تواند حداکثر سطح جانشینی (در صورت وجود) موجود برای سرور را به عنوان یک پارامتر اتصال انتخاب کند. واگذاری و جانشینی عملیات دارای امتیاز هستند (جانشینی در ابتدا نبود، اما بی‌توجهی تاریخی در پیاده‌سازی API ‌های مشتری که نتوانستند سطح پیش‌فرض را به "احراز هویت" محدود کنند، اجازه داد یک سرور بدون امتیاز یک مشتری با امتیاز را به طور ناخواسته جانشینی کند، که نیاز به آن را ایجاد کرد). توکن‌های جانشینی فقط می‌توانند به رشته‌ها مرتبط شوند و نماینده موضوع امنیتی یک فرآیند مشتری هستند. توکن‌های جانشینی معمولاً به طور ضمنی توسط مکانیزم‌های IPC مانند DCE RPC، DDE و named pipes ایجاد و به رشته فعلی مرتبط می‌شوند.

## محتویات یک توکن
توکن ترکیبی از بخش های مختلف،عبارتند از:

* **یک شناسه**
* **شناسه مرتبط به جلسه ورود**: این جلسه(session) توسط سرویس احراز هویت نگهداری می‌شود و با مجموعه‌ای از تمام اطلاعات (اعتبارنامه‌ها) که کاربر هنگام ورود ارائه کرده، توسط بسته‌های احراز هویت پر می‌شود. اعتبارنامه‌ها برای دسترسی به سیستم‌های راه دور بدون نیاز به احراز هویت مجدد کاربر (شناسایی یگانه) استفاده می‌شوند، به شرطی که همه سیستم‌های درگیر یک مرجع احراز هویت مشترک داشته باشند (مثلاً یک سرور بلیط Kerberos).
* **شناسه کاربر**: این فیلد مهم‌ترین است و به صورت سختگیرانه فقط خواندنی است.
* **شناسه‌های گروه‌هایی که کاربر عضو آن‌ها است:** شناسه‌های گروه نمی‌توانند حذف شوند، اما می‌توان آن‌ها را غیرفعال یا فقط برای "منکر شدن" تنظیم کرد. حداکثر یک گروه به عنوان شناسه جلسه(session id) تعیین می‌شود، یک گروه متغیر که نماینده جلسه ورود به سیستم است و اجازه دسترسی به اشیاء متغیر(volatile) مرتبط با جلسه، مانند نمایشگر را می‌دهد.
* **شناسه‌های گروه‌های محدودکننده (اختیاری)**: این مجموعه اضافی از گروه‌ها دسترسی اضافی نمی‌دهند، بلکه آن را بیشتر محدود می‌کنند: دسترسی به یک شیء فقط در صورتی مجاز است که به یکی از این گروه‌ها نیز مجاز باشد. گروه‌های محدودکننده نمی‌توانند حذف یا غیرفعال شوند. گروه‌های محدودکننده یک افزوده جدید هستند و در پیاده‌سازی جعبه شنی (امنیت رایانه) استفاده می‌شوند.
* **امتیازات**: قابلیت‌های ویژه‌ای که کاربر دارد. بیشتر امتیازات به طور پیش‌فرض غیرفعال هستند تا از آسیب ناشی از برنامه‌های غیرامنیتی جلوگیری شود. از ویندوز  Service Pack 2، XP و ویندوز Server 2003، امتیازات را می‌توان با فراخوانی ()AdjustTokenPrivileges با ویژگی SE_PRIVILEGE_REMOVED به طور دائمی از توکن حذف کرد.
* **مالک پیش‌فرض،** گروه اصلی و ACL برای توکن ساخته شده توسط موضوع مرتبط به توکن.

## همچنین ببینید

* API key
* Claims-based identity
* Session ID
* JSON Web Token

## منابع

# 


رده:فناوری امنیت مایکروسافت ویندوز