<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های m_10961250</title><link>https://virgool.ir/feed/@m_10961250</link><description></description><language>fa</language><pubDate>2026-11-12 22:52:23</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>m_10961250</title><link>https://virgool.ir/@m_10961250</link></image><item><title>ساخت یک قفل دیجیتال</title><link>https://virgool.ir/@m_10961250/ساخت-یک-قفل-دیجیتال-bmpfjgclwnqf</link><description>مقدمه : در ابتدا لازم می دانم توضیحاتی در رابطه با دو نرم افزاری که قرار است با آن ها این پروژه را انجام دهیم ، بدهم . برای شبیه سازی سخت افزاری پروژه از نرم افزار Proteusو برای کد نویسی از نرم افزار CodeVision AVR استفاده می کنم.فرض را بر این می گذاریم که شما خواننده عزیز این مقاله نحوه استفاده و متصل کردن آن ها و آشنایی با زبان C دارید.در ابتدا و قبل از نوشتن کد های برنامه لازم است داخل نرم افزار Proteus یک پروژه جدید ایجاد کرده و شروع به شبیه سازی سخت افزار می کنیم.فصل اول : ابتدا من یک نمایشگر یا Display  با نام LM016L با مشخصات 16x2 ، Alphanumeric LCD از داخل کتابخانه نرم افزار انتخاب نموده و به پروژه اضافه می کنم.این نمایشگر برای نمایش دادن اطلاعات ورودی کاربر و تایید یا عدم تایید رمز عبور به کار می رود. تصویر این نمایشگر را در زیر می توانید مشاهده کنید :در ادامه به توضیح پایه های مورد نیاز برای انجام این پروژه می پردازیم.سپس به سراغ دومین المان یعنی صفحه کلید برای دریافت ورودی از کاربر می رویم.از صفحه کلید با نام Keypad-Phone که یک صفحه کلید 3x4 است استفاده می کنیم. این صفحه کلید دارای کلید های 0 تا 9 و همچنین * و # می باشد. که از اعداد برای دریافت ورودی و از دو نماد دیگر می توان برای دریافت تایید و یا پاک کردن استفاده نمود.تصویر این صفحه کلید را در زیر مشاهده می نمایید :تا اینجا فقط در رابطه با ورودی و خروجی قفل دیجیتالی مورد نظر صحبت کردیم. حال می رسیم به بخش اصلی یعنی بخش پردازش کننده اطلاعات.همانطور که می دانید ما برای پردازش اینکه آیا رمز وارد شده صحیح است یا خیر و سایر عملیات های لازم در این پروژه از میکروکنترلر AVR با نام ATMEGA8 که دارای 1088 بایت SRAM و 512 بایت EEPROMمی باشد استفاده می کنیم.تصویر این پردازنده را در زیر مشاهده می کنید :و در آخر برای نمایش صحیح بودن رمز وارد شده توسط کاربر یک LED قرار می دهیم که در صورت صحت سنجی رمز توسط پردازنده روشن خواهد شد که مدار آن به صورت زیر خواهد بود :از مقدمات و معرفی قطعات سخت افزاری که بگذریم به نحوه اتصال و ساخت مدار این قفل دیجیتالی می رسیم. بیایید با هم رفته رفته این مدار را تکمیل و تفسیر نماییم.در ابتدا برای دریافت ورودی از کاربر باید صفحه کلید را به میکروکنترل وصل نماییم. پایه ها را به ترتیب جدول به هم وصل می نماییم :بعد از متصل کردن پایه های گفته شده به یکدیگر مدار ما به صورت زیر خواهد شد :بعد ورود اطلاعات توسط کاربر عمل پردازش داخل میکروکنترلر صورت می گیرد که منطق آن را در ادامه داخل نرم افزار کد ویژن خواهیم نوشت.اما حال فرض می کنیم همه چیز مهیا است و ما باید خروجی مناسبی به کاربر نمایش دهیم برای این کار باید نمایشگر خود را هم به میکروکنترلر وصل نماییم.برای این کار هم مانند قبل پایه ها را طبق جدول زیر به یکدیگر وصل میکنیم :بعد از متصل کردن اتصالات گفته شده مدار به شکل زیر خواهد بود :آخرین بخش از رسم مدار بخش چراغ سبزاست که در صورت صحیح بودن رمز از سوی کاربر روشن خواهد شد و با متصل کردن این مورد مدار ما کامل شده و می توانیم به سراغ کد های این پروژه برویم.شکل کلی مدار به صورت زیر خواهد بود :فصل دوم : کد نویسی و توضیح خط به خط کد ها.همانطور که در تصویر زیر می بینید در ابتدا ما header و ماکرو های مورد نیاز را تعریف می کنیم. از کتابخانه string  برای کار با رشته ها و از کتابخانه delay برای استفاده از تاخیر و از alcdبرای کار با نمایشگر استفاده می کنیم.برای این پروژه سه ماکرو هم با نام های DELETE , ENTER , LOCK تعریف شده اند که کلید * به نام DELETE و با مقدار 10 و کلید # با نام ENTER و با مقدار 11 تعریف شده اند.در ادامه تابع GetKey() را مشاهده می کنید که برای رخداد مناسب جهت فشرده شدن کلید های * و # و عملیات های مربوط به صفحه کلید به کار می رود.در تصویر بالا تمام تابع GetKey() قابل رویت است. همانطور که مشاهده می کنید این تابع تمام کار های مربوط به صفحه کلید را انجام می دهد و در نهایت مقدار key_code برگشت داده می شود.برای نمونه می توان به تشخیص اینکه کاربر کدام کلید را فشار داده است اشاره کرد. ( اگر در درک کد ها مشکل دارید می توانید به منابع زبان C مراجعه نمایید.)تا اینجا به بررسی ورودی از صفحه کلید و تحلیل آن که مثلا کاربر چه کلیدی را فشرده است پرداختیم حال اجازه دهید به پردازش روی ادامه کد ها و تابع اصلی و پردازشگر کل پروژه بپردازیم.تابعی که رمز عبور از کاربر را دریافت و آن را با مقدار رمز عبوری که در ابتدا برای سیستم تعریف کرده ایم مقایسه می کند.چانچه رمز عبور تایید شد چراغ سبزی که در فصل طراحی آن را به میکروکنترلر متصل کردیم را روشن می کند.این تابع چون اهمیت بالایی دارد لازم می دانم آن را خط به خط تفسیر نمایم. در ابتدای این تابع متغیری با نام k تعریف شده است که مقدار برگشتی از تابع GetKey() در آن ذخیره می شود. DDRC.0 = 1 مقدار دهی شده است این بدان معنا است که پورت cروی میکروکنترلر به عنوان پورت خروجی تعریف شده است و همچنین ،مشاهده می کنید که DDRD = 0xF0 تعریف شده است که برای ارتباط با صفحه کلید می باشد.در ادامه به خط lcd_init(16); می رسیم که این بدان معناست که نمایشگرمان را به صورت 16 ستونی دسته بندی کرده ایم.اما اصل این تابع در حلقه while (1) وجود دارد. که نوعی حلقه بی نهایت است. روال کار در این حلقه به ان صورت است که ما منتظر فشرده شدن یک کلید از سمت کاربر می مانیم و بسته به اینکه کلید فشرده شده از سمت کاربر چه می باشد فعالیت های لازمه صورت می گیرد.قاعدتا کلیدی که کاربر انتخاب می کند یا کلید عددی است مانند 0 تا 9 و یا Enter، Deleteمی باشد.اگر این کلید ها عددی بودند قرار بر این است که ارقام را یک به یک از کاربر دریافت کرده و آن ها را در آرایه ای که تحت عنوان User_Code در ابتدای برنامه تعریف کردیم قرار دهد.اولین کاری که در حلقه while انجام دادیم این است که Lock = 0 قرار داده ایم این بدان معناست که خروجی خاموش باشد.بعد نمایشگر را پاک کردیم و مکان نما را به ستون شماره 3 و سطر 0 منتقل کرده ایم و عبارت Lock : OFF را در آن محل نمایش داده ایم.سپس مکان نما را به مختصات (1و0) منتقل کرده و عبارت Pass :  را نمایش داده ایم.عبارت GET_KEY یک برچسب می باشد که در ادامه متوجه علت نوشته شدن آن خواهید شد.در حلقه do همانطور که مشخص است در هر مرحله ورود اعداد از سمت کاربر آن ها را یکی یکی خوانده و در k قرار می دهیم. در واقع معنی کلی این حلقه این است که تا زمانی که کاربر هیچ عددی را فشار نداده است برنامه در همین حلقه درجا می زند.یک تاخیر نیم ثانیه ای در ادامه مشاهده می کنید که بدان معناست که منتظر می مانیم تا کاربر دست خود را از کلید فشرده شده بردارد و while زیر این تاخیر برای اطمینان از برداشته شدن دست کاربر از روی کلید می باشد.چنانچه کاربر دست خود را از روی کلید برندارد و کلید را رها نکند برنامه در همین حلقه درجا می زند.بعد از اینکه کاربر کلید را رها کرد برنامه ما به سه قسمت اصلی تقسیم می شود که عبارتند از :الف – آیا کلید فشرده شده عدد است ؟ب – آیا کلید فشرده شده Enter است ؟ج – آیا کلید فشرده شده Delete است ؟که جواب این سوالات با حقله های ادامه برنامه بررسی می شود.اگر مورد الف اتفاق بیافتد :در ابتدا تعداد ارقام ورودی را چک می کنیم که باید کوچکتر از آرایه تعریف شده باشد در صورتی که این شرط بر قرار باشد عملیات های زیر انجام می پذیرد.کد های اسکی ارقام را بدست آورده و آن را در آرایه ذخیره می کنیم اما بر روی نمایشگر کاراکتر * نمایش داده می شود.اگر مورد ب اتفاق بیافتد :در این مرحله کد وارد شده از سمت کاربر با کد پیش فرض مقایسه می گردد.چنانچه نتیجه مقایسه درست بود و کاربر کد را صحیح وارد کرده بود عبارتی مناسب بر روی صفحه نمایش نشان داده می شود و چراغ سبز روشن خواهد شد اما اگر چنانچه کد اشتباه باشد عبارت مناسبی به کاربر نمایش داده می شود و سپس متغیر User_Codeو اندیس ها و صفحه نمایش به طور کامل بعد از تاخیر تعریف شده پاک خواهند شد.اگر مورد ج اتفاق بیافتد :با تابع strcpyf مقدار User_Code به طور کل پاک خواهد شد و بعد از آن اندیس ها نیز پاک خواهند شد.توجه : این پست صرفا یک مقاله ی دانشجویی می باشد چنانچه غلط املایی یا علمی مشاهده نمودید به بنده اطلاع بدید.</description><category>m_10961250</category><author>m_10961250</author><pubDate>Thu, 03 Jun 2021 11:23:51 +0430</pubDate></item><item><title>داکر چیست ؟</title><link>https://virgool.ir/@m_10961250/داکر-چیست-h2hkcjtyhyjw</link><description>داکر چیست ؟داکر - : Docker‎  برنامه‌ای رایانه‌ای و ابزاری است که ایجاد، توسعه و اجرای اپلیکیشن‌ها را با استفاده از کانتینر(container)  آسان می‌کند.کانتینر به توسعه‌دهندگان این امکان را می‌دهد که تمام پیش‌نیازها و نیازمندی‌های اپلیکیشن خود را برای استفاده و اجرا جمع‌آوری کنند؛ مانند کتابخانه‌ها (Libraries) و زیرساخت‌های لازم.می‌توان گفت که داکر به توسعه‌دهندگان این اطمینان را می‌دهد که می‌توانند اپلیکیشن خود را بدون نگرانی از سیستم‌های میزبان برنامه خود در مرحله توسعه و تست و بر روی سیستم‌های مختلف، بدون هیچ‌گونه اشکال و به صورت کاملاً مشابه اجرا کنند و مشکلی از بابت تغییر سیستم‌عامل‌های اجراکننده برنامه خود نخواهند داشت.داکر تا حدی شبیه به ماشین مجازی (Virtual Machine) است با این تفاوت که در ماشین مجازی، قسمتی از سخت‌افزار سیستم به ماشین مجازی اختصاص داده می‌شود و روی آن یک سیستم‌عامل کامل نظیر ویندوز یا لینوکس نصب می‌شود.در واقع می‌توان گفت در ماشین مجازی امکانات سخت‌افزاری سیستم تقسیم می‌شود و بر روی هر قسمت، سیستم‌عامل بخصوصی بالا می‌آید اما در داکر این طور نیست. در داکر امکانات سخت‌افزاری به تناسب نیاز هر کانتینر به صورت موقت اختصاص داده می‌شود و داکر این امکان را فراهم می‌آورد که اپلیکیشن‌ها برای مثال روی کرنل لینوکس اجرا شوند. در این حالت دیگر نیازی به نصب پیش‌نیازها و نیازمندی‌هایی که اپلیکیشن ما می‌خواهد و به طور پیش‌فرض روی سیستم وجود ندارد، نیست.داکر ابزاری است متن‌باز (Open Source) و کدهای آن بر روی گیت‌هاب قرار دارد و هر فرد علاقه‌مند می‌تواند در توسعه آن مشارکت کند.داکر در سال ۲۰۱۳ شروع به کار کرد و توسط شرکت داکر توسعه داده می‌شود. این سرویس به دو نوع رایگان و پولی در دسترس است.داکر برای چه کسانی مناسب است ؟داکر طراحی شده است تا هم به توسعه‌دهندگان نرم‌افزارها سود برساند و هم به مدیران سیستم‌ها.داکر باعث می‌شود که توسعه‌دهندگان تمرکز خود را روی نوشتن کد بگذارند و نگران این نباشند که در نهایت قرار است اپلیکیشن آن‌ها روی چه سیستمی اجرا شود. همچنین به آن‌ها کمک می‌کند که پروژه خود را با استفاده از برنامه‌های از پیش طراحی شده در کانتینرها آغاز کنند که به عنوان بخشی از اپلیکیشن آن‌ها استفاده خواهد شد. ضمناً باعث انعطاف عمل تیم عملیات (Operation) شده و نیاز به سیستم‌های مورد نیاز را کم‌تر می‌کند.کانتینر – container :کانتینر، یک واحد استاندارد نرم‌افزار است که کدها و تمام نیازمندی‌های آن را جهت اجرا و توسعه اپلیکیشن‌ها، تجمیع می‌کند و باعث می‌شود که این اجرا به طور سریع و قابل اعتماد انجام شود. کانتینرها، نرم‌افزار را از محیط خودش ایزوله می‌کنند و اطمینان می‌دهند که علی‌رغم تفاوت‌های احتمالی در سیستم‌های میزبان، نرم‌افزار به طرز مشابه و یکسان اجرا خواهد شد.کانتینرهای داکر قسمتی از نرم‌افزار را در یک سیستم فایل کامل تعبیه می‌کند. به صورتی که شامل هر آنچه جهت اجرا شدن (مانند کد زمان اجرا، ابزارهای سیستم و تنظیمات سیستم) لازم است و هر آنچه که می‌تواند بر روی یک سرور نصب شود می‌باشد. این امر اجرای برنامه را به صورت ثابت در هر نوع محیطی تضمین می‌کند.به طور کلی می‌توان گفت داکر این قابلیت را به ما می‌دهد تا یک اپلیکیشن را در یک محیط ایزوله به نام کانتینر (Container) اجرا کنیم. ایزوله بودن و امنیت کانتینرها باعث می‌شود که بتوانیم تعداد زیادی کانتینر را روی ماشین میزبان اجرا کنیم. کانتینرها سبک و سریع هستند زیرا نیازی ندارند که مانند ماشین‌های مجازی سربار Hypervisor را به ماشین تحمیل کنند و مستقیما روی هسته (Kernel) کامپیوتر سرویس‌دهنده اجرا می‌شوند.موتور داکر :موتور داکر یک تکنولوژی Containerize برای ساختن و اجرای کانتینر اپلیکیشن‌هاست. این موتور اعمال خود را به عنوان یک اپلیکیشن کلاینت-سرور انجام می‌دهد با:الف - یک سرور که نوعی نرم افزار با مدت زمان اجرای طولانی است که به آن پروسه Daemon گفته می‌شود.ب - یک REST API که واسط کاربری نرم افزارها برای ارتباط و دادن دستورات به Daemon است.ج - یک کلاینت خط فرمان یا Command Line Interfaceکلاینت از APIهای داکر برای کنترل و تعامل با Daemon استفاده می‌کند. این استفاده از طریق اسکریپت‌ها یا فرمان‌های مستقیم کلاینت انجام می‌شود. Daemon وظیفه دارد که اشیای داکر مانند Imageها، Containe ها، شبکه‌ها و Volumeها را ایجاد و مدیریت کند.تفاوت داکر با ماشین مجازی :یک کانتینر به صورت native روی لینوکس اجرا می‌شود و به صورت مشترک با سیستم‌عامل از کرنل استفاده می‌کند. کانتینر یک فرآیند مجزا را اجرا می‌کند و مانند یک فرآیند معمولی حجم کمی از RAM را می‌گیرد.در مقابل، ماشین مجازی یا همان VM یک سیستم‌عامل کامل مجازی guest را با دسترسی مجازی و شبیه‌سازی شده به منابع اصلی سیستم، اجرا می‌کند. ماشین‌های مجازی مقدار بسیار زیادی سربار نسبت به حجم فرآیند مورد نیاز ما برای سیستم ایجاد می‌کنند.داکر فایل (Dockerfile) :هر Container داکر با یک فایل داکر شروع به کار می‌کند. Dockerfile یک فایل متنی بوده که داخل آن با یک سینتکس ساده و قابل فهم دستورالعمل‌های ساخت Docker Image قرار داده شده است (کمی جلوتر این مفهوم را بررسی خواهیم  کرد) این فایل اطلاعات بسیار مهمی را در برمی گیرد که برای راه اندازی داکر استفاده از آنها ضروری است.در واقع Dockerfile مشخص می‌کند که پشت Container ما چه سیستم عاملی قرار بگیرد، همینطور از چه زبان ها، متغیرهای محلی، پورت‌های شبکه یا غیره استفاده شود. و مهم‌تر از همه اینکه مشخص کند Container ما بعد از اینکه واقعا اجرا شد قرار است چه کاری انجام دهد.بخش مهم داکر یا Docker image : در واقع زمانی که کار نوشتن Dockerfile را تمام کردید، یک قابلیت به اسم Docker Build را فراخوانی می‌کنید که وظیفه دارد یک Image بر اساس محتویات Dockerfile شما بسازد. Dockerfile شامل یک سری دستورالعمل برای ساختن یک Image است، در حالی که Docker Image یک فایل قابل حمل است که شامل یک سری دستورالعمل بوده که مشخص می‌کند Container کدام کامپوننت‌های نرم افزاری را اجرا کند و اینکه چطور آنها اجرا شوند.به احتمال زیاد Dockerfile بخواهد تعدادی فایل را از مخزن‌های مختلف (Repository) دانلود کند و اینجا باید به طور واضح مشخص کنید که کدام نسخه‌ها دریافت شوند. همینطور Image ساخته شده استاتیک می‌باشد، یعنی یک بار ساختن آن کافی بوده و نیازی به تغییر آن ندارید. همانطور که از اسم آنها می‌توانید حدس بزنید، Image یک تصویر از سیستم عامل اصلی می‌باشد.نتیجه گیری :داکر یک ابزار اوپن سورس برای طراحی و ساخت برنامه‌ها به کمک Container است. Container به برنامه نویس کمک می‌کند که پروژه خود را با تمام بخش هایی که دارد (مثل کتابخانه ها، وابستگی‌ها و غیره) به صورت یک پکیج دربیاورد. به لطف این تکنیک، برنامه نویس خیالش راحت است که برنامه او می‌تواند در سیستم‌های دیگر بدون نیاز به تنظیمات خاص یا ابزارهای جانبی اجرا شود. داکر را شبیه به ماشین مجازی در نظر بگیرید، با این تفاوت که بازدهی بسیار بالاتری دارد.</description><category>m_10961250</category><author>m_10961250</author><pubDate>Thu, 03 Jun 2021 11:09:40 +0430</pubDate></item><item><title>حملات شبکه های کامپیوتری</title><link>https://virgool.ir/@m_10961250/حملات-شبکه-های-کامپیوتری-ofkklmntzqhm</link><description>یکی از موضوعاتی که امروزه، برای تمام ارگان و سازمان های دولتی یا خصوصی، بسیار مورد اهمیت می باشد، بحث امنیت اطلاعات می باشد. بحث امنیت اطلاعات، و مقاوم کردن شبکه در برابر انواع حملات شبکه، بر عهده کارشناس فناوری اطلاعات در هر سازمان، می باشد. در مرحله اول، باید یک برنامه ریزی امنیتی، برای کل شبکه، و تمام سرویس دهندگان در شبکه داشته باشند. باید حتما به این موضوع اهمیت دهیم که، نصب سرویس دهندگان را، به حداقل برسانیم. و همچنین از نصب پروتکل های غیر ضروری، خودداری کنیم.چون بیشتر مهاجمان، حملات خود را، در بین سرویس دهنده هایی که به درستی پیکربندی نشده است، انتخاب می کنند.امروزه به علت استفاده زیاد از اینترنت، اینگونه حملات بیشتر شده است. کارشناسان شبکه، باید با انواع حملات آشنا باشند، و از زمان و موقعیتی که مورد حمله قرار گرفته، با اطلاع باشند، تا راحت تر جلوی آنها را بگیرند. تمام این حملات زمانی که سرویس ها، و پروتکل های فعال، و پورت های باز وجود دارند، اتفاق می افتد.در ادامه مطلب، به بررسی انواع حملات شبکه می پردازیم:بد افزارها، معمولا یک نرم افزار نصب شده، بر روی کامپیوتر شما می باشد. بدین صورت که هکرها، با گذاشتن فایلی که برای کارمندان مناسب می باشد، از طریق کلیک شما برای دانلود این فایل، یا کلیک روی لینک های دیگر، باعث می شود، آنها بتوانند وارد سیستم و شبکه شما شوند. در این صورت می توانند، مدیریت سخت افزار شما را بدست بگیرند، داده های شما را استخراج کنند، حتی می توانند تمام فایل هایی که استفاده کردید را، ردیابی کنند. و در نهایت عملیات فیشینگ را انجام دهند.  این حمله می تواد اطلاعات حساس مثل رمزشبکه یا حساب های بانکی شما را شناسایی کند.در جدول زیر برخی از مهم ترین حملات ذکر شده اند که ما به اختصار برخی از آنها را توضیح می دهیم:انواع حملاتDenial of Service (DoS) &amp;   Distributed Denial of Service (DDoS)Back   DoorSpoofingMan in the MiddleReplayTCP/IP   HijackingWeak KeysMathematicalPassword GuessingBrute   ForceDictionaryBirthdaySoftware ExploitationMalicious   CodeVirusesVirus HoaxesTrojan HorsesLogic   BombsWormsSocial EngineeringAuditingSystem   Scanning1 – حملات تکذیب سرویس یا DOS و DDOS :این نوع حملات با هدف خارج کردن منبع اطلاعاتی از سرویس به گونه ای که دیگر آن منبع قادر به ارائه سرویس به دیگران نبوده و نتواند تبادل اطلاعات درستی با کاربرانش داشته باشد ، انجام می شود . حملات DDOS یا خارج از سرویس کردن بصورت توزیع شده ، برای حمله به هدف مورد نظر از چندین کامپیوتر مختلف استفاده می کنند ، در اینگونه حملات نرم افزارهای حمله به هدف بر روی تعداد زیادی از کامپیوترهای موجود در شبکه ارتباطی نصب می شوند.این نصب شدن حتی از دید مالک سیستم هم مخفی می ماند و صاحب سیستم از اینکه این نرم افزارها بر روی سیستم او نصب شده اند کاملا بی خبر است ، زمانی که تعداد اینگونه ماشین های طعمه زیاد شد ، مهاجم به این تعداد کثیر از کامپیوترها دستور می دهد که حملات خود را به یک هدف تعیین شده شروع کنند و سرور مورد نظر به دلیل عدم توانایی در پاسخگویی به این حجم زیاد از درخواست ها از سرویس خارج شده و به اصطلاح Overwhelm یا دستپاچه می شود . برخی از مهمترین و معروفترین نوع از این حملات DOS به شرح زیر هستند:الف - Buffer Overflow ب – SYN پ - Teardrop  ت – Smurf2-درب های پشتی یا Backdoor :حملات از نوع Backdoor معمولا از طریق مودم های Dialup و یا ADSL و یا هر وسیله ارتباطی انجام می شوند که مستقیما به داخل شبکه هدف متصل شده است .هر گونه ارتباط خارجی می تواند به نوعی در ایجاد یک Backdoor به هکر ها کمک کند . استراتژی اصلی در اینگونه حملات این است که یک مهاجم بتواند بدون درگیر شدن با مکانیزم های امنیت و کنترل های امنیت تعبیه شده در شبکه هدف وارد یک شبکه شود که معمولا اینگونه حملات از طریق همین ارتباطات شخصی درون سازمانی انجام می شوند .3-فریب دادن یا Spoofing :مهاجمین آدرس های IP و همچنین آدرس های سخت افزاری خود یا MAC ها را دستکاری کرده و به سیستم هدف اینطور القا می کنند که در حال برقراری ارتباط با سیستم درستی هستند و این در حالی است که سیستم هدف فریب اینکار را خورده است .در این حالت سیستم هدف به دلیل اینکه به آن آدرس IP و یا MAC اعتماد دارد به سیستم مهاجم اجازه دسترسی به منابع تعیین شده در سیستم را خواهد داد . دستکاری آدری IP یا IP Spoofing در سطح بسته های اطلاعاتی از نوع TCP انجام می شوند ، به این دلیل بیشتر از پروتکل TCP استفاده می شود که اکثر سیستم هایی که در اینترنت مورد استفاده قرار می گیرند از پروتکل TCP/IP به عنوان پروتکل ارتباطی خود استفاده می کنند در این روش مهاجم درخواستی برای سیستم هدف از طرف یک آدرس IP مورد اعتماد و شناخته شده برای سیستم هدف ارسال می کند و آدرس IP و سایر مشخصات خود را نیز مخفی نگه می دارد . سیستم هدف معمولا این درخواست درست و مورد اعتماد دانسته و به آن پاسخ می دهد .4-حملات MITM یا Man-In-The-Middle :حمله از نوع MITM از دو عنصر تشکیل شده است ، ابتدا از یک مهاجم یاAttacker که در اینجا به اختصار آنرا A می نامیم و دیگر از یک شخص دیگر یا Person که در اینجا به اختصار به آن P می گوییم .5-حمله  : Replayاین نوع حمله زمانی رخ می دهد که مهاجم اطلاعاتی از قبیل نام کاربری و رمز عبور را یافته و همچنین پیام های قبلی سیستم را در خود ذخیره می کند و در هنگام قطع شدن اتصال یا Session مربوطه مجددا اقدام به استفاده از این اطلاعات می کند و خود را به عنوان یکی از طرف های مورد اعتماد در ارتباط معرفی می کند . یکی از روش های مقابله در مقابل اینگونه حملات استفاده از یک مجموعه از شماره های تصادفی و ی رشته های تصادفی به نام Nonce است .اگر فرض کنیم که محمد بخواهد با شهاب ارتباط برقرار کند ، با اولین پیغام خود به شهاب یک Nonce برای وی ارسال می کند ، زمانی که شهاب به محمد پاسخ می دهدNonce را نیز به محمد باز می گرداند تا ثابت کند که این شهاب است که قصد ارسال مجدد اطلاعات به محمد را دارد . هر شخص دیگری که بخواهد وارد این ارتباط بشود نمی تواند از Nonce جدید استفاده کند .روش دیگری که برای ایمن سازی در مقابل اینگونه حملات وجود دارد ، این است که در هنگامی که محمد قصد ارسال اطلاعات را دارد به اطلاعات ایجاد شده فاکتور زمان را نیز اضافه می کند یا به قولی به اطلاعات خود Timestamp را نیز اضافه می کند . این پارامتر زمانی نشان دهنده زمانی است که پیام ارسال شده است ، بنابر این اگر کسی مجددا قصد استفاده از این اطلاعات را داشته باشد مشخص می شود که در همان زمان قبلی از این اطلاعات استفاده نشده است و اطلاعات جدید نامعتبر هستند .9-حدس زدن رمزهای عبور یا : Password Guessingبه دلیل اینکه استفاده از رمزهای عبور از معمولترین روشهای احراز هویت برای ورود افراد به سیستم های اطلاعاتی در همه جا می باشد ، بدست آوردن رمزهای عبور یکی از روشهای موثر و معمل برای انجام یک حمله است .بدست آوردن رمز عبور افراد می تواند به روش های متنوعی انجام شود ، این روش ها می توانند قرارگرفتن بصورت فیزیکی در کنار فرد و مشاهده رمز وارد شده در سیستم ، شنود شبکه برای بدست آوردن رمز های منتقل شده در شبکه ، مهندسی اجتماعی و فریب دادن کاربر ، سوء استفاده کردن از پایگاه های داده و در نهایت حدس زدن رمز های عبور کاربران باشد . مرحله آخر از این موارد می تواند به روشهای اصولی و یا تصادفی انجام شود .10-تکنیکBrute Force  :در این روش برای بدست آوردن و حدس زدن رمز عبور ، رمز های تصادفی تولید می شود و با Hash رمز اصی مقایسه می شود ، در این روش که معمولا زمانگیر نیز هست ، مهاجم امیدوار است که بتواند رمز مورد نظر را بصورت تصادفی حدس بزند.در این روش نیز می توان از یک سری منطق های استفاده کرد ، به این معنا که مثلا برای رمز های از نام های کاربری ، شماره های پرسنلی، عنوان های شغلی و نام افراد در حدس زدن رمزها استفاده شود که تا حد زیادی کارایی این تکنیک را بالا می برد.</description><category>m_10961250</category><author>m_10961250</author><pubDate>Thu, 03 Jun 2021 11:06:39 +0430</pubDate></item></channel></rss>