رفتن به مطلب
بازگشایی انجمن! ×
GuardIran

پست های پیشنهاد شده

با سلام خدمت همه ی عزیزان

هدف بنده از ارسال این مطلب , آموزش یک فرایند نیست ، بلکه آشنایی با جزئیات این مباحث برای علاقه مندان می‌باشد

همان طور که همه میدونیم کدینگ و رمزنگاری اطلاعات اهمیت ویژه‌ ای در تست نفوذ پذیری دارد

و درک جزئیاتش خالی‌ از لطف نیست , پس بی‌ مقدمه میریم سر اصل مطلب

 

روش های کد کردن و یا در هم ریزی اطلاعات ( = Encoding ) معمولا بر خلاف آنچه عموم تصور میکنند 

برای رمزنگاری داده به کار نمی روند

و بیشتر جنبه تبدیل داده ها را از حالتی به حالت دیگر برای منظم کردن و تحت یک استاندارد ثابت در آوردن

به هم ریختن و یا الگوهای پایه برای الگوریتم های رمزنگاری را دارند. تقریبا تمامی الگوریتمهای کدینگ

دارای یک روش برگشت پذیر کردن اطلاعات یا دِکُدینگ ( = decoding ) می باشند

و یا به عبارت دقیق تر معکوس عملیات رفت در برگشت امکان پذیر است.

 

در یک تست نفوذ باید دقت کنید تا عملیات کدینگ را بشناسید و آن را از رمزنگاری تمییز دهید

و بعد از شناسایی روش کدینگ ، با استفاده از روش های دکدینگ به اصل داده ها برسید .

البته برخی از روش های کد کردن پیچیده بوده و بدون دسترسی به الگوریتم ریاضی آنها
عملیات دکدینگ شان بسیار سخت و پیچیده می نمایند

 

اولین روش کدینگ اطلاعات را شاید بتوان الگوریتم جابجایی سزار نامید
این نوع رمز ، از نوع جانشینی است  که هر حرف در متن اصلی با حرف دیگری با فاصله ثابت جابجا می شود.

برای مثال با مقدار انتقال 3 = ( shift ) A با D ، D با G و به همین ترتیبجانشین میشوند

به عنوان مثال: کلمه ALI با انتقال 3 میشود : DOL ، که اگذ دقت شود زمانی که ما مقدار انتقال را ( 3 - )
کنیم، به راحتی به پیام اصلی میرسیم

 

dKWcu.jpg

 

بعد ها کدینگ هایی همچون ROT13 که الهام گرفته از الگوریتم سزار بودند، بوجود آمدند که مقدار انتقال در آن سیزده بود.

 

نوع دیگری از کدینگ به نام جابه جایی نیز وجود دارد که به جابه جا کردن کاراکتر ها با هم اقدام میکند

به عنوان یک مثال ساده متنی رمز شده توسط الگوریتم جابه جایی داریم و میخواهیم به یک متن صلی بر گردانیم

This is the hidden content, please

در اینجا میتوانیم به راحتی در بیابیم که جابه جایی از نوع معکوس کردن کلمات و گرامر بوده است

 

ما حالت قرار گیری منظم را مورد بحث قرار دادیم و اگر روش های نامنظم را هم اعمال کنیم 

تشخیص کد با چشم سخت میشود

هر دوی این روش ها دارای امنیت بسیار پایینی می باشند و استفاده از آنها به صورت مستقیم فقط در حالت کدینگ اطلاعات مورد استفاده قرار میگیرد
همانطور که اشاره شد ، هدف کدینگ تغییر حالت داده ها و ایجاد به هم ریختگی و یا نظم نسبی درآنهاست

 

 

آموزش الگوریتم Base 64

برخی از کدگذاری ها همانند base64 برای انتقال فایل های الصاقی در پروتکل ایمیل SMTP

مورد استفاده قرارگرفته و به مرور همه گیر شده اند ، header های مربوط به الصاق فایل در پروتکل SMTP
فقط قادرند کدهای ASCII ( = ا سکی ) را جابه جا کنند

به همین خاطر از کدینگ بیس 64 استفاده گردید

 

این کدینگ قادر بود هر نوع کد از باینری و اسکی را توسط یک جدول 64 تایی تبدیل به کد های اسکی کرده ( جدول زیر )

 

wJFro.jpg

 

و انتقال دهد و دوباره با اعمال روش دکد به حالت باینری بر گرداند
ما عموما از کاراکتر های 8 بیتی استفاده میکنیم ، اما بیس 64 از
کاراکتر هایی که از 6 بیت به وجود آمده اند استفاده میکند

روند کار هیجان انگیز است ، مثلا میخواهیم کلمه MAN را تبدیل کنیم :

 

TsUJL.jpg

 

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 را جایگزین می کنند

 

BQJoR.jpg

 

 پس در اصل هر جفت کاراکتر هگز برابر 8 بیت = 1 بایت می باشد

 

---------------------------------------------------------------------------------------------------

 

پایان بحث الگوریتم های بازگشت پذیر

امیدوارم مفید واقع بشه

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر


به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • ایجاد مورد جدید...