Capability-based security
Capability-based security یک مفهوم در حوزه سیستم امنیت (secure computing) که درواقع یک مدل امنیتی است می باشد . capability (در بعضی سیستم ها به اسم کلید شناخته می شود) که یک رمز(token) قابل انتقال و غیر قابل جعل برای دست رسی می باشد. این رمز اشاره دارد به مقداری که خود آن مقدار به یک شئ همراه با مجموعه ی مجوز های دسترسی(Access rights) مرتبط اشاره می کند. یک برنامه کاربر در سیستم عامل های مبتنی برcapability باید از capability استفاده کند تا به یک شیئ دست درسی پیدا کند. Capability-based security به گونه ای به اصل طراحی برنامه های کاربر اشاره دارد که آن ها به طور مستقیم Cpability ها را بر اساس اصل کمینه سازی مجوزباهم به اشتراک می گذارند و برای ساختار سیستم عامل ضروریست تا انتقال بهینه و امن را فراهم کند. Capability-based security باید با رویکردی که از مجوزهای سنتی یونیکس و لیستهای کنترل دسترسی استفاده میکند، مقایسه شود.
با اینکه اکثر سیستم عامل ها ابزار هایی شبیه به capabilty ها فراهم می کنند, معمولا به طور کافی نمی توانند اجازه تبادل capability ها را میان نهاد های احتمالا غیرقابل اعتماد دوطرفه پشتیبانی کنند که هدف اصلی دادن و پخش کردن مجوز های دست رسی در میان سیستم باشند. در مقابل، یک سیستم مبتنی بر capability ، با در نظر گرفتن این هدف طراحی شده است.
capability هایی که در این مقاله مورد بحث قرار گرفت را نباید با رابط سیستم عامل قابل حمل(POSIX) اشتباه گرفت. POSIX ها مجوز های درشت دانه ای هستند که نمی توانند بین فرآیندها منتقل شوند.
مقدمه[ویرایش]
با جایگذاری capability ها به جای منابع قابل جعل, capability ها به هدف خود درمورد بهبود دادن امنیت سیستم می رسند. یک منبع قابل جعل(مثل, نام مسیر) یک شیئ را شناسایی می کنند اما مجوز دست رسی مناسب برای آن شیئ و برنامه کاربر که آن منبع را دارد را مشخص نمی کنند. درنتیجه هر تلاشی برای دسترسی منبع شیئ باید توسط سیستم عامل بر اساس دسترسی محلی(به انگلیسی: ambient authority) برنامه کاربر تایید شده باشد که معمولا از لیست کنترل دسترسی استفاده می شود. در عوض، در یک سیستم با capability ها، صرف این حقیقت که یک برنامه کاربر دارای آن capability است، به آن اجازه می دهد تا از شی ارجاع شده مطابق با مجوزی که توسط آن capability مشخص شده است استفاده کند. در تئوری، یک سیستم با capability ها ، همه نیاز به فهرست کنترل دسترسی یا مکانیسمهای مشابه را با دادن همه مجوز های مورد نیازی نهاد به آن نهاد از بین می برد.
یک capability معمولاً بهعنوان یک ساختمان داده مجوز پیاده سازی می شود که شامل بخشی است که مجوز دسترسی را مشخص میکند، و بخشی که به طور منحصربهفرد شی مورد نظر را مشخص میکند. کاربر مستقیماً به ساختار داده یا شیء دسترسی ندارد، بلکه از طریق یک handle دسترسی دارد . در عمل، مانند یک توصیفگر فایل در یک سیستم عامل قدیمی (یک handle قدیمی) استفاده می شود، اما برای دسترسی به هر شی در سیستم. قابلیتها معمولاً توسط سیستم عامل در یک لیست ذخیره میشوند، با بعضی مکانیزم های درجا برای جلوگیری از تغییر مستقیم محتویات capability توسط برنامه (به گونهای که مجوز دسترسی را جعل کند یا شیئی را که به آن اشاره میکند تغییر دهد). برخی از سیستمها نیز مبتنی بر آدرسدهی مبتنی بر capability (پشتیبانی سختافزاری از capability ها) هستند، مانند سیستم Plessey 250 .
برنامههایی که دارای capability ها هستند میتوانند عملکردهایی مانند انتقال آنها به برنامههای دیگر، تبدیل آنها به نسخهای با مجوز کمتر یا حذف آنها را بر روی آنها انجام دهند. برای حفظ یکپارچگی خط مشی امنیتی، سیستم عامل باید اطمینان حاصل کند که فقط عملیات های خاصی می تواند بر روی capability های سیستم انجام شود.
This article "Capability-based security" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Capability-based security. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.