کنترل دسترسی در رایانه

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

موجودیت‌های نرم‌افزاری 
در هر مدل کنترل دسترسی، «فاعل» همان موجودیتی است که می‌تواند روی سامانه عملی انجام دهد، و «مفعول» موجودیتی است که نمایش‌دهنده منابعی است که دسترسی به آنها احتمالاً نیاز است تا کنترل گردد (ماتریس کنترل دسترسی را ببینید). هم فاعل و هم مفعول را باید موجودیت نرم‌افزاری درنظر گرفت، و نه کاربر انسانی: یعنی هر کاربر انسانی فقط توسط موجودیت‌های نرم‌افزاری که کنترل می‌کنند، می‌توانند روی سامانه تأثیر بگذارند.

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

در بعضی از مدل‌ها، مثل مدل مفعول-توانمند، هر موجودیت نرم‌افزاری می‌تواند به صورت بالقوه هم به صورت فاعل و هم به صورت مفعول عمل کند.

انواع مدل‌های کنترل دسترسی، تا سال ۲۰۱۴، در یکی از این دو کلاس قرار می‌گیرفتند: آن‌هایی که براساس توانمندی هستند، و آن‌هایی که بر اساس لیست کنترل دسترسی هستند (ACL).
 در مدل مبتنی بر توانمندی: یک ارجاع غیرقابل جعل‌کردن یا توانمندی را به یک مفعول، نگهداری می‌کند، که این ارجاع، دسترسی به مفعول را ممکن می‌سازد (تقریباً مشابه آنکه مالکیت خانه کسی توسط کلید خانه به او اعطا می‌شود)؛ دسترسی به دیگری با انتقال این توانمندی روی یک کانال امن به دیگری منتقل می‌شود.
 مدل مبتنی بر ACL: دسترسی یک فاعل به یک مفعول بستگی به آن دارد که آیا هویت او روی لیست همدست با مفعول وجود دارد یا نه (تقریباً شبیه آنکه یک دربان یک جشن، که IDها را چک می‌کند تا ببیند آیا نام او در لیست مهمان‌ها وجود دارد یا نه)؛ در اینجا دسترسی از طریق ویرایش لیست منتقل می‌شود. (سامانه‌های ACL مختلف، انواع مختلفی از روش‌ها در رابطه با اینکه چه کسی یا چه چیزی مسئول ویرایش لیست است و این لیست چگونه ویرایش می‌شود دارند).

هر دو این روش‌های مبتنی بر توانمندی و مبتنی بر ACL سازوکارهایی در رابطه با اعطای حق دسترسی به همه اعضای یک گروه از فاعل‌ها ارائه می‌دهند (که معمولاً خود گروه به صورت یک فاعل مدل می‌شود).

سرویس‌ها (خدمات) 
سامانه‌های کنترل دسترسی این خدمات اساسی را ارائه می‌دهند: مجوزدهی، شناسایی و احرازهویت (I&A)، تأیید دسترسی، و حسابرسی؛ که در آن:
 مجوزدهی: تعیین می‌کند که یک فاعل چه کاری می‌تواند انجام دهد.
 شناسایی و احرازهویت: اطمینان حاصل می‌کند که تنها «فاعل‌های مشروع» می‌توانند به سامانه وارد شوند.
 تأیید دسترسی: در مدت بهره‌برداری، دسترسی را اعطا می‌کند، این کار از طریق انتساب کاربران، به منابعی که اجازه دسترسی به آن را دارند انجام می‌شود، و این کار بر اساس سیاست‌های مجوزدهی انجام می‌شود.
 حسابرسی: این موضوع را تعیین می‌کند که یک فاعل (یا همه فاعل‌های مرتبط با یک کاربر) چه کار انجام داده‌اند.

مجوزدهی 
مجوزدهی یعنی عمل تعریف حق دسترسی به فاعل‌ها. یک سیاست مجوزدهی، عملیاتی را که فاعل‌ها اجازه اجرای آن‌ها را در یک سامانه دارند، را تعیین می‌کند.

سیستم‌عامل‌های جدید، سیاست‌های مجوزدهی را به صورت مجموعه‌های «صوری» از مجوزها پیاده‌سازی می‌کنند، که این مجوزها انواع یا افزونه‌های سه نوع اصلی دسترسی هستند:
 خواندن (R): فاعل می‌تواند
 خواندن محتوای فایل
 لیست کردن محتوای دایرکتوری
 نوشتن (W): فاعل از طریق این عمل‌ها می‌تواند محتوای یک فایل یا دایرکتوری را تغییر دهد:
 اضافه کن Add
 روزآمد کن Update
 حذف کن Delete
 تغییر نام بده Rename
 اجرا (X): اگر فایل یک برنامه باشد، فاعل می‌تواند باعث اجرای برنامه شود. (در سامانه‌های مشابه Unix، مجوز «اجرا»، اگر در یک دایرکتوری اعطا گردد، مجوز "پیمایش دایرکتوری" را تکرار می‌کند).

این حقوق و مجوزها در سامانه‌های مبتنی بر کنترل دسترسی اختیاری (DAC) و کنترل دسترسی اجباری (MAC) به صورت متفاوتی پیاده‌سازی می‌شوند.

شناسایی و احرازهویت 
شناسایی و احرازهویت (I&A) همان فرایند «تصدیق پیوند» یک هویت به موجودیتی است که دربارهٔ هویت ادعایی را مطرح می‌کند. فرایند I&A فرض می‌کند که یک تصدیق اولیه از هویت وجود دارد، که معمولاً به آن «اثبات هویت» گفته می‌شود. انواع متنوعی از اثبات هویت وجود دارد، که از تصدیق بین فردی توسط شناسایی از طریق حکومت، تا روش‌های بدون نام، که به ادعا کننده امکان بی‌نام بودن را می‌دهد، را شامل می‌شود. روش استفاده شده برای اثبات هویت و تصدیق باید «سطح اطمینانی» متناسب با استفاده مورد انتظار هویت در سامانه ارائه کنند. در ادامه، موجودیت، «هویت» را همراه با احرازهویت کننده به عنوان روش تصدیق اعلام می‌کند. تنها نیازمندی برای شناسانه آن است که باید در دامنه امنیتی اش یکتا باشد.

احراز هویت‌ کننده‌ها معمولاً بر اساس حداقل یکی از این چهار فاکتور هستند:
 آنچه می‌دانید: مثل یک گذرواژه یا شماره شناسایی شخصی (PIN). این موضوع فرض می‌کند که تنها مالک حساب، گذرواژه یا PIN لازم برای دسترسی به حساب را می‌داند.
 آنچه دارید: مثل کارت هوشمند یا توکن امنیتی. در اینجا فرض می‌شود که تنها مالک حساب کارت هوشمند یا توکن مورد نیاز برای بازکردن حساب را دارد.
 آنچه هستید: مثل ویژگی‌های اثرانگشت، صدا، عنبیه، شبکیه.
 کجا هستید: برای مثال داخل یا بیرون از یک دیوارآتش سازمان، یا نزدیکی محل ورود به یک وسیله GPS شخصی.

تأیید دسترسی 
تأیید دسترسی، همان «تابعی است که در مدت بهره‌برداری دسترسی را اعطا یا رد می‌کند».

در مدت تاییدکردن دسترسی، سامانه نمایش صوری «سیاست مجوزدهی» را با «درخواست دسترسی» مقایسه می‌کند، تا تعیین کند که آیا درخواست باید اعطا یا رد گردد. به‌علاوه ارزیابی دسترسی می‌تواند به صورت برخط/در آینده انجام شود.

حسابرسی 
حسابرسی از بعضی مولفه سامانه مثل دنباله‌های حسابرسی (رکوردها) و لاگ‌ها استفاده می‌کند تا یک فاعل را به عمل‌هایش مرتبط سازد. اطلاعات ذخیره شده باید برای نگاشت فاعل به کاربر کنترل شده کافی باشد. «دنباله حسابرسی» و «لاگ‌ها» برای این موارد مهم اند:
 تشخیص تخلف‌های امنیتی
 ساخت دوباره وقایع امنیتی

اگر کسی نیست که به صورت مرتب لاگ‌هایتان را بازبینی کند، و آن‌ها به صورت امن و سازگار نگهداشته نشده باشند، ممکن است به عنوان یک مدرک پذیرفته نشوند.

بیشتر سامانه‌ها می‌توانند گزارش‌های خودکار تولید کنند، این کار براساس ملاک‌ها یا آستانه‌های از قبل تعریف شده و معین انجام می‌شود، که مرحله چیدن (Clipping level) نامیده می‌شود. برای مثال، یک مرحله چیدن را می‌توان تنظیم کرد تا گزارشی را در صورت وقوع این موارد تولید کند:
 بیشتر از سه تلاش ورود ناموفق در یک بازه داده شده
 هر تلاش برای استفاده از حساب کاربری غیرفعال

این گزارش‌ها به مدیر سامانه یا مدیر امنیتی کمک می‌کند تا به صورت ساده‌تری تلاش‌های نفوذ ممکن را شناسایی کند.

تعریف مرحله چیدن: توانایی یک دیسک برای نگهداری از ویژگی‌های مغناطیسی و نگهداری از محتوایش. بازه سطح بالا برابر ۶۵ تا ۷۰ درصد است و کیفیت پایین، کمتر از ۵۵ درصد است.

کنترل‌های دسترسی 
مدل‌های کنترل دسترسی را گاهی به صورت اختیاری و غیراختیاری رده‌بندی می‌کنند. سه مدل شناخته شده‌تر شامل: کنترل دسترسی اختیاری (DAC)، کنترل دسترسی اجباری (MAC)، و کنترل دسترسی مبتنی بر نقش (RBAC) می‌باشد. MAC غیر اختیاری است.

کنترل دسترسی اختیاری 
کنترل دسترسی اختیاری (DAC) سیاستی است که توسط مالک یک مفعول تعیین می‌گردد. مالک تعیین می‌کند که چه کسی اجازه دسترسی به مفعول را دارد، و نیز او چه مجوزهایی دارد.

دو مفهوم مهم در DAC این موارد هستند:
 مالکیت فایل و داده: هر فاعل موجود در سامانه یک مالک دارد. در بیشتر سامانه‌های DAC، هر مالک ابتدایی مفعول همان فاعلی است که منجر به ایجاد آن مفعول شده‌است. سیاست دسترسی برای یک مفعول توسط مالک آن تعیین می‌شود.
 حق دسترسی و مجوزها: اینها همان کنترل‌هایی هستند که مالک می‌تواند به سایر فاعل‌ها برای منابع به‌خصوص منتسب نماید.

کنترل‌های دسترسی در سامانه‌های کنترل دسترسی مبتنی بر توانمندی یا مبتنی بر ACL می‌تواند اختیاری باشد. (در سامانه مرتبط با توانمندی، مفهوم صریح «مالک» وجود ندارد، بلکه سازنده یک مفعول دارای درجه کنترل مشابهی روی سیاست دسترسی اش است).

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

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

سامانه‌های کمی MAC را پیاده‌سازی می‌کنند؛ XTS-400 و SELinux مثال‌هایی از سامانه‌هایی هستند که MAC را پیاده‌سازی کرده‌اند.

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

سه قاعده اصلی برای RBAC تعریف شده‌است:
 انتساب نقش: یک فاعل فقط موقعی یک تراکنش را اجرا می‌کند که فاعل انتخاب شده باشد، یا به او یک نقش مناسب منتسب شود.
 مجوز دهی به نقش: نقش فعال یک فاعل باید برای فاعل مجوزدهی گردد. با قاعده ۱ بالا، این قاعده اطمینان حاصل می‌کند که کاربران فقط نقش‌هایی را می‌توانند بپذیرند که برای آن مجوزدهی شده‌اند.
 مجوزدهی به تراکنش: یک فاعل فقط موقعی یک تراکنش را می‌تواند اجرا کند که تراکنش برای نقش فعال فاعل مجوزدهی شده باشد. با قواعد ۱ و ۲، این قاعده اطمینان حاصل می‌کند که کاربران تنها تراکنش‌هایی را می‌توانند اجرا کنند که برای آن مجوزدهی شده‌اند.

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

بیشتر فروشندگان IT این کنترل RBAC را در یک یا بیشتر از محصولاتشان ارائه کرده‌اند.

کنترل دسترسی مبتنی بر ویژگی 
در کنترل دسترسی مبتنی بر ویژگی (ABAC) دسترسی بر اساس حق فاعل مرتبط با یک کاربر بعد از احرازهویت اعطا نمی‌شود، بلکه بر اساس ویژگی‌های کاربر حق اعطا می‌شود. کاربر باید به اصطلاح ادعاها را دربارهٔ ویژگی‌هایش اثبات کند تا به موتور کنترل دسترسی داشته باشد. یک سیاست کنترل دسترسی مبتنی بر ویژگی، ادعاهایی را برای اعطای دسترسی به یک مفعول، باید برآورده‌سازی کند. برای مثال ادعا می‌تواند «مسن تر از ۱۸ سال» باشد. به هر کاربری که می‌تواند این ادعا را اثبات کند، دسترسی اعطا می‌شود. کاربران موقعی بینام هستند که احرازهویت و شناسایی حتماً مورد نیاز نیست. راه‌هایی برای اثبات ادعا به صورت بینام می‌تواند مورد نیاز باشد. این موضوع از طریق اعتبارهای بینام قابل دستیابی است. XACML (زبان نشان‌گذاری کنترل دسترسی گسترش‌پذیر) یک استاندارد برای کنترل دسترسی مبتنی بر ویژگی است. ورژن ۳ برای XACML در ژانویه ۲۰۱۳ استانداردسازی شد.

مدل‌های کنترل دسترسی شکستن شیشه 
به صورت سنتی دسترسی، هدف محدودسازی دسترسی را دارد، بنابراین بیشتر مدل‌های کنترل دسترسی از «اصل انکار پیش‌فرض» پیروی می‌کنند، که این یعنی اگر یک تقاضای دسترسی خاص به صورت صریح اجازه داده نشود، آن دسترسی رد می‌شود. این رفتار می‌تواند با عملیات عادی یک سامانه ناسازگار باشد. در وضعیت‌های خاص، انسان‌ها باید ریسکی را بپذیرند، که در آن ریسک، یک سیاست کنترل دسترسی نقض می‌شود، این موضوع در صورتی رخ می‌دهد که مزیت‌های بالقوه ای که می‌توان به آن رسید، از آن ریسک مهمتر است. این نیازمندی مخصوصا در دامنه مراقبت‌های سلامتی قابل مشاهده است، که در آن دسترسی‌های رد شده به رکوردهای بیمار می‌تواند منجر به مرگ بیمار شود. «شکستن شیشه» می‌خواهد این موضوع را کاهش دهد این کار از طریق ایجاد امکان رونویسی تصمیم کنترل دسترسی توسط کاربر قابل انجام است. «شکستن شیشه» را می‌توان به روش خاص کنترل دسترسی (مثلاً توسط RBAC) یا به صورت عمومی (یعنی مستقل از مدل کنترل دسترسی زیربنایی) پیاده‌سازی کرد.

کنترل دسترسی مبنتی بر میزبان (HBAC) 
ابتکار HBAC برای «کنترل دسترسی مبتنی بر میزبان» به کار می‌رود.

پانویس

منابع 

کنترل دسترسی رایانه