برای مطالعه بخش قبل روی این آدرس کلیک کنید.
امنیت پایگاه داده
آزمون جدید سکیوریتی پلاس از شما انتظار دارد که جنبههای مختلف مربوط به امنیت پایگاه داده را به درستی درک کرده باشید. نرمافزار مدیریت پایگاه داده سیستمی است که انبوهی از اطلاعات مربوط به یک شرکت یا نهاد را ذخیرهسازی میکند. پایگاه داده معمولاً اطلاعات حساسی را ذخیره میکند که باید ایمن شوند و شما به عنوان یک کارشناس امنیتی باید کنترل کنید که چه کسی به آن اطلاعات دسترسی دارد. بهطور معمول چند مرحله برای ایمنسازی محیط پایگاه داده به شرح زیر وجود دارد:
■ نقشها (Roles): نقشها در بیشتر سیستمهای پایگاه داده مثل Microsoft SQL Server وجود دارد. از نقشها برای اختصاص امتیازات در سیستم پایگاه داده استفاده میشود. به عنوان مثال، قرار دادن یک کاربر در نقش sysadmin به آنها قابلیتهای مدیریتی کامل در ارتباط با سرور SQL میدهد، اما قرار دادن آنها در نقش diskadmin فقط به آنها اجازه میدهد تا فایلهای دیسک را مدیریت کنند.
■ مجوزها (Permissions): هنگام ایمنسازی محیط پایگاه داده، میتوانید با استفاده از مجوزها مشخص کنید که کدام کاربران به کدام اشیا دسترسی دارند. برای مثال، میتوانید به Bob و Sue در جدول Orders مجوز انتخاب بدهید، اما به آنها مجوز بهروزرسانی یا حذف ندهید. این بدان معنی است که آنها می توانند به اطلاعات سفارش نگاه کنند، اما نمیتوانند دادهها را تغییر داده یا حذف کنند.
■ رمزگذاری (Encryption): هنگام ذخیره اطلاعات حساس در پایگاه داده، رمزگذاری دادهها مهم است. به عنوان مثال، هنگام ذخیره شماره کارت اعتباری یا شماره تامین اجتماعی در پایگاه داده، باید اطلاعات را به گونهای رمزگذاری کنید که در قالب غیرقابل فهم ذخیره شوند. این بدان معناست که وقتی دادهها را از پایگاه داده میخوانید، ابتدا باید آنها را رمزگشایی کنید.
■ حسابرسی (Auditing): یکی از نکات کلیدی که باید هنگام اجرای امنیت به خاطر بسپارید این است که باید مرحله حسابرسی را انجام دهید. هنگام برنامهریزی برای ممیزی پایگاه داده باید از خود سوال کنید آیا چیزی وجود دارد که بخواهم در مورد آن اطلاع داشته باشم؟ به عنوان مثال، آیا میخواهید از این موضوع مطلع شوید که چه کسی به دادهها نگاه کرده است؟ آیا میخواهید بدانید چه زمانی شخصی اطلاعات موجود در پایگاه داده را اصلاح یا به روز میکند؟ آیا می خواهید بدانید که چه زمانی فردی رکوردی را از پایگاه داده حذف میکند؟ شما میتوانید حسابرسی را در پایگاه داده پیکربندی کنید تا همه این فعالیتها را ردیابی کند.
مبحث ایمنسازی دادهها موضوع مهمی است، از اینرو پیشنهاد میکنم از طریق منابع دیگری نحوه رمزنگاری اطلاعات در یک پایگاه داده را بررسی کنید.
محدودیتهای حساب (Account Restrictions)
یکی دیگر از بخشهای مهم کنترل دسترسی، اعمال محدودیت بر روی حسابهای کاربری است. اولین محدودیت مهم این است که اطمینان حاصل شود که همه کارمندان یک حساب کاربری برای ورود به سیستم دارند و از یک رمز عبور قوی برای آن حساب کاربری استفاده میکنند.
انقضای حساب (Account Expiration)
همچنین، میتوانید انقضای حساب را با اکانت هماهنگ کنید تا یک حساب برای یک کارمند بهطور موقت غیر فعال شود. به عنوان مثال، یک شرکت حسابداری ممکن است تصمیم بگیرد که یک حسابدار موقت جدید برای فصل مالیاتی استخدام کند، اما زمانی که فصل مالیاتی تمام شد، با کارمند تسویه حساب کند. هنگام ایجاد این حساب در شبکه خود، حتما تاریخ انقضای حساب را تنظیم کنید تا زمانی که روز خروج فرا رسید، حساب دیگر معتبر نباشد.
محدودیتهای زمانی در روز (Time-of-Day Restrictions)
نمونه دیگری از محدودیتهایی که میتوان روی حساب کاربری اعمال کرد، محدودیت زمانی برای ورود به حساب کاربری است. اکثر محیطها به شما اجازه میدهند تا به عنوان ویژگی حساب کاربری مشخص کنید که کارمند در چه ساعاتی مجاز است به سیستم وارد شود. مزیت این کار این است که میتوانید اطمینان حاصل کنید که کارمند بعد از ساعت کاری به منابع شبکه دسترسی ندارد.
قفل کردن حساب (Account Lockout)
هنگام اعمال محدودیتها بر روی حسابهای کاربری خود، بسیار مهم است که به اجرای سیاست قفل کردن حساب توجه کنید. یک خطمشی قفل حساب مشخص میکند که پس از تعداد معینی تلاشهای ناموفق برای ورود به سیستم، حساب قفل شود و امکان استفاده از آن فراهم نشود. در این خطمشی، مدت زمان قفل شدن حساب را نیز باید مشخص میکنید که میتواند زمان را بر حسب دقیقه تنظیم کنید یا تعیین کنید که حساب قفل شود تا زمانی که سرپرست حساب را باز کند. شکل زیر تنظیمات خطمشی قفل حساب در ویندوز را نشان میدهد.
برای پیکربندی خطمشی قفل حساب از تنظیمات زیر استفاده میشود:
■ آستانه قفل کردن حساب (Account lockout): مشخص میکند که چه تعداد ورود ناموفق ممکن است قبل از قفل شدن حساب اتفاق بیفتد.
■ مدت قفل شدن حساب (Account lockout duration Specifies): مدت زمان قفل کردن حساب را مشخص میکند. در تنظیمات ویندوز، مقدار 0 قفل را پیکربندی میکند تا زمانی که سرپرست حساب را باز کند.
■ بازنشانی شمارنده قفل حساب (Reset account lockout): پس از اینکه کاربر نتواند به سیستم وارد شود، شمارنده یک مقدار افزایش مییابد تا زمانی که حساب قفل شود یا تا زمانی که کاربر با موفقیت وارد سیستم شود. میتوانید پیکربندی کنید که شمارنده به صفر برسد.
■ غیرفعال کردن حساب (Account Disablement): به عنوان یک متخصص امنیت مهم است که به مدیران شبکه تاکید کنید که حسابهای استفاده نشده باید غیرفعال شوند تا قابل استفاده نباشند. این رویکرد به محافظت از حساب در برابر استفاده غیرمجاز توسط کارمندان یا حتی هکرها کمک میکند. هنگام رفتن کارمندان به مرخصی، تعلیق از کار یا خاتمه، حتماً حسابها را غیرفعال کنید.
مشاهده جزئیات حساب
یکی از کاربردیترین دستوراتی که در هنگام کار با حسابهای کاربری یا عیبیابی حسابهای کاربری از آن استفاده میکنید دستور net user است. هنگام استفاده از دستور net user، میتوانید نام یک حساب کاربری را وارد کنید و سپس سوئیچ /domain را اضافه کنید تا این دستور اطلاعات حساب Active Directory مانند نام حساب، زمان انقضا حساب، اطلاعات رمز عبور و محدودیتهای ایستگاه کاری را بازیابی کند. لیست کد زیر جزئیات حساب کاربری تانیا را نشان میدهد:
درک رمزنگاری
رمزنگاری به معنای غیرقابل فهم کردن اطلاعات است، بااینحال، رمزنگاری از سه سرویس اصلی رمزگذاری، هش کردن و احراز هویت تشکیل شده است. سرویسهای رمزنگاری رایج به شما امکان میدهند با تبدیل متون ساده به فرمت غیر قابل خواندن، اصل محرمانگی دادهها را حفظ کنید. برای تبدیل اطلاعات به متن رمزی، باید از الگوریتمهای رمزنگاری برای غیر قابل خواندن کردن متون ساده استفاده کنید. برای روشن شدن موضوع به تصویر زیر دقت کنید:
در طول تاریخ، انواع مختلفی از مکانیزمهای رمزنگاری شده به کار گرفته شده است. بهطور کلی، دو الگوریتم رایج در این زمینه وجود دارد که substitution ciphers و transposition ciphers نام دارند.
Substitution Ciphers : یک رمز جایگزین شامل جایگزینی یک کاراکتر با کاراکتر دیگری است. به عنوان مثال، ممکن است هر حرف در پیام را با حرفی جایگزین کنید که پنج کاراکتر بعد از حروف الفبا باشد. این بدان معنی است که هر حرف e به حرف j تبدیل میشود، هر a به f تبدیل میشود و غیره. در اینجا نمونهای از نتیجه این رمز جایگزین را مشاهده میکنید:
دو نمونه کلاسیک از الگوریتمهایی که از رمزهای جایگزین استفاده میکنند، رمز Caesar و ROT13 هستند. رمز سزار با افزایش کاراکترها با یک عدد معین، مثلاً سه، جایگزین هر کاراکتر در پیام میشود. رمز ROT13 کاراکتر را 13 مقدار افزایش میدهد. مثالهای زیر نتایج به دست آمده از رمز سزار و ROT13 را نشان میدهد.
Transposition Ciphers: این تکنیک شامل جابجایی کاراکترهای پیام در تعداد معینی مکان است. به عنوان مثال، در مثال زیر، پیام با جابجایی کاراکترها از دو مکان به سمت راست رمزگذاری میشود.
هش کردن (Hashing)
هش برای حفظ یکپارچگی اطلاعات استفاده میشود. هدف از هش کردن، این است که ثابت کنیم از زمانی که دادهها برای گیرنده ارسال شده یا روی دیسک ذخیره شدهاند، تغییر نکردهاند. برای تأیید اینکه دادهها تغییر نکردهاند باید از یک الگوریتم هش استفاده کنیم تا یک مقدار هش (معروف به خلاصه پیام) ایجاد شود. سپس مقدار هش همراه با دادهها ذخیره شود.
هنگامیکه دادهها بعدا خوانده میشوند، دوباره از طریق الگوریتم هش اجرا میشوند تا یک مقدار هش جدید تولید شود. سپس مقدار هش جدید با مقدار هش ذخیره شده مقایسه میشود و اگر این دو یکسان باشند، نشان میدهد که دادهها تغییر نکردهاند.
احراز هویت (Authentication)
سرویسهای احراز هویت روشی را برای رمزنگاری ارائه میکنند تا ثابت کنند فرستنده اطلاعات کسی است که ادعا میکند. با احراز هویت فرستنده پیام، میتوانید از عدم انکار آن اطمینان حاصل کنید، یعنی اطمینان حاصل کنید که شخص نمیتواند بگوید: «من آنرا نفرستادم».
الگوریتمها و کلیدها (Algorithms and Keys)
برای درک رمزگذاری، ابتدا باید رابطه بین الگوریتمهای رمزگذاری و کلیدها را درک کنید:
■ الگوریتم (Algorithm): یک الگوریتم رمزگذاری، مجموعه عملیات ریاضی است که روی دادهها برای تبدیل دادهها از متن ساده به متن رمزی (یا برعکس) انجام میشود.
■ کلید (Key): قطعه متغیری از اطلاعات است که توسط الگوریتم رمزگذاری برای انجام رمزگذاری یا رمزگشایی دادهها استفاده میشود.
اجازه دهید از رمز سزار به عنوان مثالی برای درک رابطه بین الگوریتمها و کلیدها استفاده کنیم.
استفاده از رمز سزار (Caesar Cipher)
میتوان گفت که الگوریتم رمز سزار به این صورت است که "هر کاراکتر پیام را با <key> افزایش دهید." هدف کلید اطمینان از این است که اگر کسی الگوریتم را کشف کند، نمیتواند پیام را رمزگشایی کند، زیرا کلید را نمیداند. به عنوان مثال، وقتی باب پیامی را برای Su رمزگذاری میکند، ممکن است کلید را روی 5 تنظیم کند، به این معنی که فرآیند رمزگذاری اکنون "هر کاراکتر در پیام را 5 افزایش دهید" کار میکند. سپس باب کلید 5 را برای سو ارسال میکند تا زمانی که پیام رمزگذاری شده را دریافت کند و بداند که باید هر کاراکتر را 5 واحد کاهش دهد.
بدیهی است که رمز سزار الگوریتم قویای نیست که بتوان امروزه از آن استفاده کرد، اما به شما کمک میکند تا رابطه بین یک الگوریتم و یک کلید را تجسم کنید. یکی از مشکلات رمز جایگزینی مانند رمز سزار این است که به دلیل الگوهای زبانی، رمزگذاری به راحتی شکسته میشود. به عنوان مثال، حرف e در زبان انگلیسی نوشتاری زیاد ظاهر میشود، بنابراین هر کاراکتری را که به جای حرف e جایگزین کنید، یک کاراکتر غالب در متن رمزنگاری خواهد بود. کسی که سعی میکند رمزگذاری را بشکند متوجه کاراکتر تکراری میشود و بر اساس تنوع، حدسهای درستی در مورد اینکه برخی از کاراکترهای دیگر ممکن است چه باشند انجام میدهد. پیشنهاد میکنیم برای اطلاعات بیشتر در ارتباط با نحوه پیادهسازی عملی الگوریتم سزار تحقیقی در اینترنت انجام دهید.
کلید تکراری (Repeating Key)
بیشتر کلیدهایی که برای انجام رمزگذاری به نرمافزارها وارد می کنید، کلمات یا عبارات به جای اعداد ساده هستند. بیایید به مثالی از یک عملیات ریاضی که شامل یک کلمه به عنوان کلید است نگاه کنیم. فرض کنید که کلید "bad" است. هنگامی که یک پیام رمزگذاری میشود، کلید برای تعداد مشخصی تکرار میشود. الگوریتم در این مثال به صورت زیر عمل میکند:
1. کاراکترهای پیام را بر اساس موقعیت الفبا به عدد تبدیل کنید.
2. کاراکترهای کلید را بر اساس موقعیت آن در حروف الفبا به عدد تبدیل کنید.
3. دو عدد را با هم جمع کنید تا یک مقدار جدید بدست آورید.
4. مقدار جدید را به حرف متناظر آن در حروف الفبا تبدیل کنید (مثلاً 3 تبدیل به C می شود).
نمونهای از این فرآیند رمزگذاری را با استفاده از پیام "com security" مرور کنیم. فاصله را حذف میکنیم و پیام را مینویسیم. سپس کلید "bad" را در یک تعداد مشخص تکرار میکنیم:
در ادامه سپس پیام و کلید را به مقادیر عددی (بر اساس مقادیر نشان داده شده در شکل زیر) تبدیل میکنیم که نشاندهنده مکانی در الفبای جایی است که هر کاراکتر در آن قرار دارد.
به عنوان مثال، A تبدیل به 1، B تبدیل به 2، و غیره، به شرح زیر میشود. (برای جدا کردن اعداد فاصله گذاشتم تا به شما در تجسم فرآیند کمک کنم):
هنگامی که کاراکترها به خود شماره تبدیل شدند، میتوانیم شماره پیام را به شماره کلید مربوطه اضافه کنیم. پس از اینکه اعداد با هم جمع شدند، اعداد جدید را به کاراکتر تبدیل میکنیم تا متن رمزی پیام ایجاد شود:
در نتیجه، متن "com security" به صورت "epq ufgwsmvz" رمزگذاری میشود. باز هم، این یک مثال سادهشده از نحوه استفاده از یک الگوریتم با یک کلید است، اما نشان میدهد که چگونه کلید در طول مدت پیام تکرار میشود. برای رمزگشایی پیام، فرآیند برعکس را انجام میدهیم: متن رمز را بر میداریم و آنرا به مقادیر عددی تبدیل کنیم. سپس مقادیر مرتبط با کلید را از مقادیر رمز کم میکنیم تا به مقادیر متن ساده برسید. در نهایت، مقادیر متن ساده را به کاراکترهای مرتبط تبدیل میکنیم.
Vigenère Cipher
رمز رایج دیگری که سالها پیش مورد استفاده قرار میگرفت، رمز ویژنر بود. این نوع رمز شامل ایجاد یک جدول Vigenère برای تعیین اینکه کدام کاراکتر رمزی باید جایگزین کاراکتر متن ساده در هنگام استفاده از یک کلید شود. شکل زیر نمونهای از جدول Vigenère را نشان میدهد.
هنگام رمزگذاری اطلاعات با استفاده از رمز Vigenère، پیام خود را مینویسید و سپس کلید زیر پیام را برای مدت زمانی تکرار میکند. درست مشابه حالت قبل.
در این روش برای رمزگذاری پیام، هر بار با یک کاراکتر کار میشود. به عنوان مثال، برای رمزگذاری حرف h در پیام، ردیف h را در جدول Vigenère پیدا میکنیم و آنرا با ستون متقاطع که نشاندهنده کاراکتر در کلید است (ستون b در این مثال) جایگزین میکنیم. مقدار متقاطع به کاراکتر رمز شما تبدیل میشود که در این مورد i است. در زیر متن رمزی بدست آمده با استفاده از جدول Vigenère را مشاهده میکنید:
سایر اصطلاحات رمزنگاری
چند مفهوم مهم در ارتباط با رمزنگاری وجود دارد که برای گواهینامه سکیوریتی پلاس باید در مورد آنها اطلاع داشته باشید. قدرت کلید / طول کلید/ قدرت کلید (Key Strength/Key Length) قدرت کلید، همچنین به عنوان فضای کلید یا طول کلید شناخته میشود و به تعداد بیتها در کلید رمزگذاری اشاره دارد. هرچه فضای کلید بزرگتر باشد، رمزگذاری بهتر است. این به این دلیل است که یک فضای کلید بزرگتر دارای مقادیر احتمالی بیشتری است که اگر کسی سعی در شکستن کلید داشته باشد باید محاسبات زیادی را انجام دهد. بهطور مثال، یک فضای کلید 2 بیتی تنها چهار مقدار را مجاز میکند: 00، 01، 10، و 11. محاسبه تمام کلیدهای ممکن که یک کلید 2 بیتی میتواند داشته باشد به هیچ وجه زمان نمیبرد. اگر فضای کلید را افزایش دهید و به 3 بیت بروید، هشت مقدار ممکن وجود دارد: 000، 001، 010، 011، 100، 101، 110 و 111. فضاهای کلید رایج امروزه 64 بیتی، 128 بیتی، 256 بیتی و گاهی اوقات 512 بیتی است.
فاکتور کار (Work Factor)
اصطلاح فاکتور کار به مقداری اشاره دارد که زمان شکستن رمزگذاری را نشان میدهد. ضریب کار معمولاً در زمان اندازهگیری میشود و معمولاً مقدار بالاتری با فضای کلید بزرگتر است. برای مثال، شکستن یک کلید 64 بیتی زمان کمتری نسبت به شکستن یک کلید 128 بیتی دارد، بنابراین ضریب کار برای شکستن یک کلید 64 بیتی کمتر است.
پدهای یکبار مصرف (One-Time Pads)
پد یکبار مصرف (OTP) یک روش بسیار امن برای رمزگذاری اطلاعات است که شامل استفاده از یک کلید فقط یک بار است. کلید یک مقدار تولید شده تصادفی است که برای رمزگذاری دادهها استفاده میشود و دیگر استفاده نمیشود. مزیت استفاده از کلیدهای مختلف این است که اگر هکرها سعی کنند از دادههای مختلف برای استخراج کلید رمزگذاری استفاده کنند و حتا به سراغ مهندسی معکوس بروند، شانس کمی در حدس زدن موفق یک پد یکبار مصرف دارند.
سوئیتهای رمزی (Cipher Suites)
رمزهای جریانی و رمزهای بلوکی مجموعهای از رمزها را شکل میدهند. الگوریتمهای رمز جریانی، در هر زمان یک بیت از دادهها رمزگذاری میکنند. بیتهای متن ساده به متن رمزگذاری شده تبدیل میشوند. این روش معمولاً به اندازه تکنیکهای رمزگذاری بلوکی که در ادامه بحث شد، ایمن نیست، اما عموماً سریعتر اجرا میشود. علاوه بر این، متن رمزی همیشه به اندازه متن اصلی است و کمتر در معرض خطا است. اگر در طول فرآیند رمزگذاری خطایی رخ دهد، معمولاً به جای کل رشته، تنها یک بیت واحد را تحت تأثیر قرار میدهد. در مقابل، وقتی رمزهای بلوک حاوی خطا شوند، کل بلوک نامفهوم میشود. بیتهای متن ساده معمولاً با بیتهای یک کلید با استفاده از یک تابع OR (XOR) انحصاری رمزگذاری میشوند. به جای رمزگذاری در یک زمان، الگوریتم های رمز بلوکی دادهها را در بلوکها رمزگذاری میکنند. رمزهای بلوکی سربار بیشتری نسبت به رمزهای جریانی دارند. این سربار بسته به اجرا و اندازه بلوک قابل متغیر است (متداولترین اندازه 64 بیت است). از آنجایی که یک رمز بلاک، رمزگذاری را در سطح بالاتری انجام میدهد، به طور کلی ایمنتر است. نکته منفی این است که زمان اجرا را بیشتر میکند.
برای مطالعه بخش بعد اینجا کلیک کنید.
برای مطالعه تمام قسمتهای آموزش سکیوریتی پلاس اینجا کلیک کنید.
معرفی آموزشگاه شبکه و امنیت
تهران: آموزشگاه عصر رایان شبکه
مهندس اطلاعات
تلفن: 02188549150 کانال: Asrehshabakeh@
تبلیغات لینکی:
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟