آيا ميدانيد هر کاربرى که با ويندوز ارتباط برقرار ميکند دارى يک شناسه امنيت SID ميباشد !
در اين مقاله بخوانيد:
• SID و نمايش آن در رجيسترى
• ارتباط چند کاربر با ويندوز فقط با يک بار Logon کردن
• تنها کليد هاى واقعى HKLM و HKU مى باشند. بقيه کليد ها نوعى ارتباط با اين دو کليد هستند.
• GUID ها شناسه هاى منحصر به فرد عمومى
• SID چيست ؟
اکانت هاى کامپيوتر, اکانت هاى کاربرى, گروهها و ساير شىء هاى مرتبط با امنيت, اصول امنيتى به شمار مى آيند که ويندوز براى هرکدام از آنها يک شناسه امنيت SID در نظر ميگيرد. SID ها در محدوده خودشان منحصر به فرد هستند مثلا SID شخص من در ويندوزى که با آن کارميکنم برابر S-1-5-21-746137067-1390067357-1801674531-1004 ميباشد.
يک SID هميشه با حرف S آغاز ميشود, عدد بعدى نشان دهنده نگارش SID ميباشد که در اين مورد 1 است و مابقى اعداد شناسه مربوط به حوزه آن شىء مى باشند.

SID های مربوط به هر شیء در حوزه فعاليت آن منحصر به فرد هستند حتی اگر شما کاربری باشيد که با ويندوز ارتباط برقرار کرده و اقدام به پاک کردن اکانت اتصال خود کنيد, SID که قبلا ويندوز آن اکانت را با آن ميشناخت ديگر هيچ وقت برای هيچ شیء ديگری در آن حوزه در نظر گرفته نمی شود.
برخی از SID ها کوتاهتر از مثال بالا هستند مانند S-1-5-18 (به تصوير توجه کنيد) اين ها SID های متداول هستند و در تمام کامپوتر ها و حوزه ها يکسان ميباشند. دليل جالب بودن اين SID ها آن است که يک هکر (كاوشگر) را کمتر به زحمت مى اندازند و بارها و بارها در رجيسترى و جاهاى ديگر با آنها مواجه خواهيد شد.
در زير فهرست معروفترين آنها را ميبينيد:
SID نام کاربر يا گروه
_______________________________________
S-1-5-1 Dialup
S-1-5-2 Network
S-1-5-13 Terminal Service User
S-1-5-14 Remote Interactive Logon
S-1-5-18 System يا LocalSystem
S-1-5-19 LocalService
S-1-5-29 NetworkService
S-1-5-domain-500 Administrator
S-1-5-domain-501 Guest
S-1-5-domain-520 Group Policy Creator Owners
S-1-5-domain-545 Users
S-1-5-domain-546 Guests
S-1-5-domain-547 Power User
در اين فهرست SID مربوط به Administrator را به صورت S-1-5-domain-500 ميبينيد. منظور از domain در اينجا همان طور که گفته شد شناسه مربوطه در حوزه ميباشد. به طور مثالSID مربوط به Administrator در ويندوز من برابر S-1-5-21-746137067-1390067357-1801674531-500 ميباشد. SID بقيه کاربران هم به همين ترتيب قابل تشخيص است يعنى اگر ويندوز شما فقط به وسيله يک کاربر فراخوانى شده باشد شما ميتوانيد خيلي راحت از طريق کليد HKU در رجيسترى SID خود را ببينيد.
براى برنامه نويسان هم يك برنامه كه بوسيله آن ميتوانيد SID های یک سیستم را از طریق کد به دست آورید در همین سایت در Link قرار داده ام حتما استفاده کنید.
• چگونه ميتوانيد با يک بار Logon کردن از امکانات کاربرى چندين کاربر استفاده کنيد ؟
براى بهتر روشن شدن موضوع مثال زير را عنوان ميکنم.
زماني بود که ميخواستم يکي از برنامه هاى مديريت سيستم را با کاربرى که در گروه Power User قرار داشت اجرا کنم اما ويندوز اجازه اجراى آن برنامه را فقط براى کاربران گروه Admin آزاد گذاشته بود بنابراين, به من که با نام کاربرى Javad به ويندوز Logon کرده بودم اجازه اجراى آن را نميداد !
اما - کليد Shift را پائين نگه داشتم و روى آيکن برنامه مورد نظرم راست کليک کردم و از منويى که ظاهر شد گزينه Run As را انتخاب نمودم سپس کاربر Administrator را از ليست کاربران انتخاب كردم و بعد از وارد کردن کلمه عبور منو را تاييد کردم به اين ترتيب آن برنامه اجرا شد ! چطور ممکن است !؟!
در آن زمان وقتى به سراغ کليد HKU در رجيسترى رفتم علاوه بر تنظيمات SID خودم SID کاربر Administrator را نيز ملاحظه کردم. در واقع ويندوز اين امکان را فراهم مياورد که شما فقط با يک Logon بتوانيد از تنظيمات چندين کاربر استفاده کنيد.
من از اين امکان بهره هاى ديگرى نيز برده ام. وقتى روى پروژه برنامه Active Start JSP کار ميکردم, اين برنامه برنامه ای بود که براي هر کاربر تنظيمات مختص به آن کاربر را ارائه ميداد يعنی شما ميتوانستيد منو ها و تنظيمات دلخواه خود را بر روی آن برنامه کاملا مطابق سليقه خود تعريف کنيد و اين مجزا از تنظيمات بقيه کاربران بود. بنابراين در زمان برنامه نويسی آن مجبور بودم با هر تغيير و اصلاح کد بين حداقل دو کاربر موجود رفت و برگشت کنم اما با روشی که شرح دادم سرعت کار خود را به رقم قابل توجهی افزايش دادم (به تصوير نمونه توجه کنيد). اين تکنيک برای جلوگيری از بروز خطاهای انسانی و ويروس های احتمالی نيز کارا ميباشد.(بسيارى از ويروس ها فعاليت خود را درست زمان Logon آغاز ميکنند. با اين روش ميتوانيد تنظيمات کاربرى چند کاربر را به راحتى در يک محيط مشاهده و ويرايش نماييد)
البته اين نکته را هم خاطر نشان کنم که وضعيت فوق (ظاهر شدن تنظيمات چند کاربر در رجيسترى) زماني که به دو يا چند کاربر Switch ميکنيد نيز به وجود ميايد.
در حالت عادى يعنى زمانى که شما فقط با يک کاربر در حالت Logon هستيد شناسه امنيت SID تنها همين کاربر در شاخه HKU قابل مشاهده است.
اصتلاح: کاربر کنسول- کاربريست که در حال کار با صفحه کليد ميباشد.
بنابراين در يک لحظه فقط يک کاربر کنسول وجود دارد حتي اگر با چندين کاربر Login کرده باشيد يا حتى تنظيمات چندين کاربر را فراخوانى کرده باشيد.
• آيا ميدانيد رجيسترى فقط به دو کليد HKLM و HKU خلاصه ميشود !
بقيه کليد هايى که هم رديف اين دو Sub key ميبينيد در واقع نوعي ارتباط (Link) با اين دو کليد هستند.
به تصوير توجه کنيد. ميبينيد که بقيه کليد ها خود يک کليد يا زير مجوعه اى از دو کليد اصلي نامبرده شده هستند.
اين تصوير جريان مفصلى از ارتباطات را در رجيستري نمايش ميدهد.

البته در برخى موارد ويندوز يک کليد را از ادغام چندين کليد ديگر به وجود مياورد مانند کليد HKEY_Classes_ROOT که خود ترکيبى از حداقل سه کليد ديگر ميباشد !
J- در مقالات بعدى راجع به کليد ها به تفضيل توضيح خواهم داد.
• GUID ها شناسه هاى منحصر به فرد عمومى
شناسه هاى منحصر به فرد عمومى بيشتر تحت عنوان GUID (با تلفظ گو آى دى) شناخته ميشوند.
GUID ها اعدادى هستند که ويندوز به هر چيزى اختصاص ميدهد. در واقع ويندوز به کمک GUID ها ميتواند اشياء موجود در صحنه را از هم تميز دهد. شىء ها از جمله کامپيوترها, برنامه ها, اجزاء دروني و ساخت برنامه ها, وسايل سخت افزارى و ... هر کدام GUID منحصر به خود را دارند به عنوان مثال GUID سطل زباله Recycle bin درون همه کامپوتر ها برابر
{645FF040-5081-101B-9F08-00AA002F954E}
ميباشد.
J- صبر داشته باشيد در اينجا فقط مقدمه GUID را بيان ميکنم در مقاله اى به طور مفصل اين موضوع با اهميت براى کاربران وحداقل هکر ها را شرح خواهم داد. مثلا شما ياد ميگيريد که چگونه به کمک همين GUID کوچک آيکن سطل زباله را از روى دسکتاپ برداريد. فراموش نکنيد که براى اين کار ويندوز هيچ رابط کاربرى محيا نکرده بنابراين تنها راه موجود رجيستريست ! پس برنامه نويسان بخصوص مقاله مربوط به اشياء شل ShellObjects را بخوانند)
فرمت تمام GUID ها يکسان است. GUID ها اعداد 16 بايتى هگزادسيمال هستند كه در گروههاى
GUID format: 8-4-4-4-12
که هر بلوک به وسيله خط تيره از بلوک مجاور خود مجزا ميشود و کل GUID هم بين دو آکولاد باز و بسته قرار ميگيرد.
يعني ما 8+4+4+4+12 معادل 32 خانه داريم که در هر خانه اعداد 0 تا 9 و حروف A تا F (با توجه به 16 بايتى بودن GUID ها) را ميتوان نوشت. به اين ترتيب فراوانى GUID ها رقمى معادل 16 به توان 32 ميباشد !!! بيخود نيست که مايکروسافت منحصر به فرد بودن آنها را تضمين کرده است. يعنى امکان ندارد ويندوز درون يک سيستم براى دو شىء يک GUID را اختصاص دهد.
GUID ها بسيار مورد علاقه برنامه نويسان هستند چون به کمک GUID ميتوانند اجزاء مختلف برنامه شان را درون سيستم از هم و بقيه اجزاء سيستم جدا کنند.
J- من شخصا براى توليد GUID هاى مورد نياز برنامه هايم از نرم افزار Guidgen.exe استفاده ميکنم. منظورم آن است که خود GUID هاى مورد نياز برنامه تان را نسازيد اجازه دهيد اين کار به وسيله يك ابزار توليد تصادفى انجام شود. مطمئن باشيد GUID تصادفى توليدى منحصر به فرد خواهد بود.
و در آخر براى غنى تر ساختن شما رگه طلايى را در معدن رجيسترى معرفى ميکنم HKEY_CLASSES_ROOT\CLSID فقط مراقب باشيد با ديناميت معدن و ويندوز خود را منفجر نکنيد !
با تشکر جواد سلطانى