R3DN4X314 ارسال شده در فِوریه 27 2016 گزارش اشتراک گذاری ارسال شده در فِوریه 27 2016 با سلام خدمت همه ی عزیزان هدف بنده از ارسال این مطلب , آموزش یک فرایند نیست ، بلکه آشنایی با جزئیات این مباحث برای علاقه مندان میباشد همان طور که همه میدونیم کدینگ و رمزنگاری اطلاعات اهمیت ویژه ای در تست نفوذ پذیری دارد و درک جزئیاتش خالی از لطف نیست , پس بی مقدمه میریم سر اصل مطلب روش های کد کردن و یا در هم ریزی اطلاعات ( = Encoding ) معمولا بر خلاف آنچه عموم تصور میکنند برای رمزنگاری داده به کار نمی روند و بیشتر جنبه تبدیل داده ها را از حالتی به حالت دیگر برای منظم کردن و تحت یک استاندارد ثابت در آوردن به هم ریختن و یا الگوهای پایه برای الگوریتم های رمزنگاری را دارند. تقریبا تمامی الگوریتمهای کدینگ دارای یک روش برگشت پذیر کردن اطلاعات یا دِکُدینگ ( = decoding ) می باشند و یا به عبارت دقیق تر معکوس عملیات رفت در برگشت امکان پذیر است. در یک تست نفوذ باید دقت کنید تا عملیات کدینگ را بشناسید و آن را از رمزنگاری تمییز دهید و بعد از شناسایی روش کدینگ ، با استفاده از روش های دکدینگ به اصل داده ها برسید . البته برخی از روش های کد کردن پیچیده بوده و بدون دسترسی به الگوریتم ریاضی آنها عملیات دکدینگ شان بسیار سخت و پیچیده می نمایند اولین روش کدینگ اطلاعات را شاید بتوان الگوریتم جابجایی سزار نامید این نوع رمز ، از نوع جانشینی است که هر حرف در متن اصلی با حرف دیگری با فاصله ثابت جابجا می شود. برای مثال با مقدار انتقال 3 = ( shift ) A با D ، D با G و به همین ترتیبجانشین میشوند به عنوان مثال: کلمه ALI با انتقال 3 میشود : DOL ، که اگذ دقت شود زمانی که ما مقدار انتقال را ( 3 - ) کنیم، به راحتی به پیام اصلی میرسیم بعد ها کدینگ هایی همچون ROT13 که الهام گرفته از الگوریتم سزار بودند، بوجود آمدند که مقدار انتقال در آن سیزده بود. نوع دیگری از کدینگ به نام جابه جایی نیز وجود دارد که به جابه جا کردن کاراکتر ها با هم اقدام میکند به عنوان یک مثال ساده متنی رمز شده توسط الگوریتم جابه جایی داریم و میخواهیم به یک متن صلی بر گردانیم This is the hidden content, please ورود یا ثبت نام در اینجا میتوانیم به راحتی در بیابیم که جابه جایی از نوع معکوس کردن کلمات و گرامر بوده است ما حالت قرار گیری منظم را مورد بحث قرار دادیم و اگر روش های نامنظم را هم اعمال کنیم تشخیص کد با چشم سخت میشود هر دوی این روش ها دارای امنیت بسیار پایینی می باشند و استفاده از آنها به صورت مستقیم فقط در حالت کدینگ اطلاعات مورد استفاده قرار میگیرد همانطور که اشاره شد ، هدف کدینگ تغییر حالت داده ها و ایجاد به هم ریختگی و یا نظم نسبی درآنهاست آموزش الگوریتم Base 64 برخی از کدگذاری ها همانند base64 برای انتقال فایل های الصاقی در پروتکل ایمیل SMTP مورد استفاده قرارگرفته و به مرور همه گیر شده اند ، header های مربوط به الصاق فایل در پروتکل SMTP فقط قادرند کدهای ASCII ( = ا سکی ) را جابه جا کنند به همین خاطر از کدینگ بیس 64 استفاده گردید این کدینگ قادر بود هر نوع کد از باینری و اسکی را توسط یک جدول 64 تایی تبدیل به کد های اسکی کرده ( جدول زیر ) و انتقال دهد و دوباره با اعمال روش دکد به حالت باینری بر گرداند ما عموما از کاراکتر های 8 بیتی استفاده میکنیم ، اما بیس 64 از کاراکتر هایی که از 6 بیت به وجود آمده اند استفاده میکند روند کار هیجان انگیز است ، مثلا میخواهیم کلمه MAN را تبدیل کنیم : 1 - کاراکتر های - ASCII را در ابتدا توسط جدول اسکی به شماره مربوط به آن تبدیل میکنیم ( در برخی از جداول به کدهای اسکی لقب Dec داده اند که مخفف decimal یا اعشاری است و بیان کننده در مبنای ده بودن کد های اسکی است ) 2 - مقادیر اسکی ( که در مبنای 10 است ) به مبنای 2 یا همان باینری می بریم . 3 - باینری ظرف های 8 بیتی برای 1 و 0 ها در نظر میگیرد ، اما بیس 64 یک قالب 6 بیتی دارد : پس کدها را به هم چسبانده و 6 تا 6 تا جدا کرده و دوباره مقادیر به دست آمده را به مبنای 10 برده و از جدول کد های اسکی کاراکتر های متناظر با آن اعداد را استخراج میکنیم و Base64 شکل میگیرد برخی از اوقات 4 بیت آخر پر نمی شود ، پس به ازاء هر دو بیت پر نشده ما از یک ( = ) در کد بیس 64 مان استفاده میکنیم و به جای بیت های خالی 0 قرار میدهیم مثالی از حالتی که 2 بیت آخر پر نشده اند : =ok -> 111 107 -> 01101111 01101011 -> 011011 110110 101100 -> b2s آموزش الگوریتم HEX برخی سیستم های عددی همانند HEX که بر مبنای 16 هستند ( از اعداد 0 تا 15 تشکیل شده اند ) نیز خود به نوعی انکدینگ محسوب می شوند . هگز ابتدا مقادیر باینری را که در دسته های 8 بیتی قرار دارند به صورت 4 تا 4 تا جدا میکند و سپس هر یک از دسته ها را در مبنای ده ( دسیمال ) می برد ، در اینجا مقادیر به دست آمده از اعداد 1 تا 9 را مستقیم به کاربرده و اعداد 10 تا 15 را معادل های حرفی A=10 , B=11 , C=12 , D=13 , E=14 , F=15 را جایگزین می کنند پس در اصل هر جفت کاراکتر هگز برابر 8 بیت = 1 بایت می باشد --------------------------------------------------------------------------------------------------- پایان بحث الگوریتم های بازگشت پذیر امیدوارم مفید واقع بشه واکنش ها : C0d3!Nj3ct!0n، faylor، sezar1370 و 9 نفر دیگر 12 نقل قول لینک به دیدگاه به اشتراک گذاری در سایت های دیگر گزینه های به اشتراک گذاری بیشتر...
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .