ReverseEngineering – Telegram
ReverseEngineering
1.24K subscribers
40 photos
10 videos
55 files
666 links
Download Telegram
ReverseEngineering pinned «دوستان لطفا تا جایی که میتونید کانال رو share کنید دم همه تون گرم🙏🏻🫶🏻»
الگوریتم‌های رمزنگاري کليد خصوصی

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

فرستنده S میخواهد پیام m1,….mi را به نوعی بفرسته که طرف گیرنده R بفرسته كه اون بتونه به محتوای پیام دسترسی داشته باشه و در عین حال حریف مخالف A نتونه محتوای پیام رو درک كنه حتی اگر A تمامی آنچه بین R و S انتقال پیدا میکنه رو دریافت کنه به همین منظور فرستنده S هر متن روشن mi رو به وسیله الگوریتم رمزگذاری E وكلید خصوصی به متن رمز شده تبدیل میکنه ودریافت كننده نیز كه متن رمز شده را دریافت كرده می‌تونه با الگوریتم رمز گشائی D و كلید خصوصی متن اصلی رو بدست بیاره
👍51
مقایسه رمزنگاری الگوریتم‌های متقارن و الگوریتم‌های کلید عمومی‌

بحثهای زیادی شده که کدوم یک از این الگوریتم‌ها بهترند اما جواب مشخصی‌ نداره البته بررسی‌ هایی‌ روی این ‏سوال شده به طور مثال Needham و Schroeder بعد از تحقیق به این نتیجه رسیدن که طول پیغامی‌ که با الگوریتم‌های متقارن ‏میتونه رمزنگاری شه از الگوریتم‌های کلید عمومی‌ کمتره و با تحقیق به این نتیجه رسیدند که الگوریتم‌های ‏متقارن الگوریتم‌های بهینه تری ان اما وقتی‌ که بحث امنیت پیش میاد الگوریتم‌های کلید عمومی‌ کارایی‌ بیشتری ‏دارن به طور خلاصه می‌تونیم بگیم که الگوریتم‌های متقارن دارای سرعت بالاتر و الگوریتم‌های کلید عمومی‌ دارای ‏امنیت بهتری هستن.

در ضمن گاهی‌ از سیستم ترکیبی‌ از هر دو الگوریتم استفاده می‌کنند که به این الگوریتم‌ها الگوریتم ‏های ترکیبی‌ (hybrid) گفته میشه اما اگر به طور دقیق تر به این دو نگاه کنیم اونوقت متوجه میشیم که الگوریتم‌های کلید عمومی‌ و الگوریتم‌های ‏کلید متقارن دارای دو ماهیت کاملاً متفاوتن و کاربردهای متفاوتی‌ دارن به طور مثال در رمزنگاریهای ساده که ‏حجم داده‌ها بسیار زیاده از الگوریتم متقارن استفاده میشه چون داده‌ها با سرعت بالاتری رمزنگاری و ‏رمزگشایی‌ میشن اما در پروتکل هایی‌ که در اینترنت استفاده میشه برای رمز نگاری کلید هایی‌ که نیاز به مدیریت ‏دارن از الگوریتم‌های کلید عمومی‌ استفاده میشه
👍81
معرفی انواع کلیدهای رمزنگاری

كلیدهای رمزنگاری

تکنیک‌های رمزنگاری پیچیده به راحتی از روش‌های جابه‌جایی یا جایگزینی استفاده نمیکنن در عوض از یک كلید محرمانه برای كنترل ی توالی طولانی از جابه‌جایی و جایگزینی‌های پیچیده استفاده می‌کنن كلیدهای رمزنگاری و الگوریتم‌های رمزنگاری با همدیگر همكاری می‌کنن تا یک متن اولیه رو به یک متن رمزی تبدیل كنن در اغلب موارد الگوریتم رمزنگاری ثابت و شناخته شده است و این كلید رمزنگاریه كه یک نسخه یكتا از اطلاعات رمزنگاری شده تولید می‌کنه
👍8
كلیدهای محرمانه

سیستم‌های كلید محرمانه تنها از یک كلید برای رمزنگاری و رمزگشایی اطلاعات استفاده میکنن در این شیوه رمزنگاری، لازمه كه هر جفت فرستنده و گیرنده اطلاعات كلید جدا ای رو برای رمزنگاری داشته باشند و حفظ كلید به صورت محرمانه بسیار اهمیت داره امنیت این روش در گرو حفظ امنیت كلیده الگوریتم Data Encryption Standard) DES) یک نمونه از الگوریتم‌های كلید محرمانه هست. چون فرض میکنیم كه الگوریتم شناخته شده و معلومه امن بودن انتقال و ذخیره كلید بسیار مهمه

کارت‌های هوشمند معمولاً برای ذخیره كلیدهای محرمانه استفاده میشن در این حالت تضمین اینكه قلمرو كلید محدوده مهمه: باید همیشه فرض كنیم كه یک كارت ممكنه توسط افراد غیرمجاز با موفقیت تحلیل شه و به این ترتیب كل سیستم در خطر قرار بگیره در شكل زیر یک عملیات انتقال اطلاعات با استفاده از كلید محرمانه نشون داده شده كه در اون یک كاربر بانک، اطلاعات رو با استفاده از كلید محرمانه رمزنگاری می‌کنه و برای كارمند بانک ارسال میکنه شخص نیز اطلاعات رو با كلید مشابهی رمزگشایی میکنه
👏9👍2
كلیدهای اصلی و مشتق شده (Master and derived keys)

یكی از ایراداتی كه به روش‌های پیشین وارده تعداد زیاد كلیدهاست كه طبیعتاً منجر به سخت‌تر شدن مدیریت كلید میشه یک روش برای كم کردن از تعداد كلیدهایی كه باید منتقل و ذخیره شن مشتق گرفتن از آن‌ها در زمان مورد نیازه در یک برنامه اشتقاق كلید یک كلید اصلی همراه با چند پارامتر مجزا برای محاسبه كلید مشتق ‌شده استفاده میشه كه بعداً برای رمزنگاری استفاده میشه. برای مثال، اگر یک صادر كننده با تعداد زیادی كارت سروكار داره

میتونه برای هر كارت، با استفاده از كلید اصلی، شماره كارت رو رمز كنه و به این ترتیب كلید مشتق شده حاصل می‌شود و به اون كارت اختصاص داده میشه شكل دیگری از كلیدهای مشتق شده با استفاده از tokenها به دست میان كه token ها محاسبه‌گرهای الكترونیكی با عملكردهای مخصوصن ورودی اونها ممكنه یک مقدار گرفته شده از سیستم مركزی یک PIN وارد شده توسط كاربر و یا تاریخ و زمان باشه خود token شامل الگوریتم و یک كلید اصلیه چنین token هایی اغلب برای دسترسی به سیستم‌های كامپیوتری امن استفاده میشن
9👍1
دوستان اگه براتون مقدوره لطفا ری اکشن هم بزنید ممنون
46👏2❤‍🔥1👍1
ReverseEngineering
دوستان اگه براتون مقدوره لطفا ری اکشن هم بزنید ممنون
خیلی عشقید منم تا جایی که بتونم براتون سنگ تموم میزارم و نمیزارم چیزی کم و کسر باشه دم تون گرم🫶🏼
32👏3
كلیدهای رمز كننده‌ كلید (Key-encrypting keys)

از اونجا كه ارسال كلید یک نقطه ضعف از نظر امنیتی در سیستم‌ها بشمار میره رمز کردن كلیدها هنگام ارسال و ذخیره اون ها به شکل رمز شده منطقی به نظر میرسه كلیدهای رمز کننده كلید هرگز به خارج از یک سیستم كامپیوتری (یا كارت هوشمند) ارسال نمیشن و می‌تونیم آسان‌تر محافظت شن اغلب برای تبادل كلیدها الگوریتم متفاوتی از اونچه كه برای رمز کردن پیام‌ها استفاده میشه، مورد استفاده قرار می‌گیره. از مفهوم دامنه كلید (key domain) برای محدود كردن میدان كلیدها و محافظت كردن از كلیدها در دامنه‌ شون استفاده میکنیم معمولاً یک دامنه یک سیستم كامپیوتری هست كه می‌توان به صورت فیزیكی و منطقی محافظت شه كلیدهای استفاده شده در یک دامنه توسط یک كلید رمز کننده كلید محلی ذخیره میشن هنگامی كه كلیدها میخان به یک سیستم كامپیوتری دیگه فرستاده بشن رمزگشایی و تحت یک كلید جدید رمز میشن كه اغلب به عنوان كلید كنترل ناحیه (zone control key) شناخته میشه با دریافت این كلیدها در طرف دیگه تحت كلید محلی سیستم جدید رمز میشن بنابراین كلیدهایی كه در دامنه‌های یک ناحیه قرار دارند از دامنه‌ای به دامنه دیگر به صورتی كه بیان کردیم منتقل میشن
4💋1💘1
كلیدهای نشست (Session keys)

برای محدود كردن مدت زمانی كه كلیدها معتبرن معمولا یک كلید جدید برای هر نشست یا هر تراكنش تولید میشه این كلید ممكنه یک عدد تصادفی تولید شده توسط ترمینالی باشه كه در مرحله تصدیق كارت قرار داره اگر كارت قادر به رمزگشایی روش كلید عمومی باشه یعنی كلید نشست می‌تونه با استفاده از كلید عمومی كارت رمز شه بخشی از تراكنش كه در اون كلید منتقل میشه اغلب در مقایسه با بقیه تراكنش کوتاه‌تره بنابراین بار اضافی این بخش نسبت به كل تراكنش قابل صرف نظره چنانچه بقیه تراكنش به سبب استفاده از كلید متقارن (محرمانه) با بالاسری كمتری رمز شه زمان پردازش برای فاز تایید هویت و انتقال كلید قابل پذیرش است (توضیح اینكه روش‌های رمز متقارن از نامتقارن به مراتب سریع‌تر هستن بنابراین می‌تونیم ابتدا یک كلید متقارن را با استفاده از روش نامتقارن انتقال بدیم و سپس از اون كلید متقارن برای انجام بقیه تراكنش استفاده بکنیم). شكل خاصی از كلید نشست، سیستم انتقال كلید است كه در برخی سیستم‌های پرداخت الكترونیک و مبادله دیتای الكترونیک استفاده میشه بدین صورت كه در پایان هر تراكنش یک كلید جدید منتقل میشه و این كلید برای تراكنش بعدی مورد استفاده قرار می‌گیره
3
کرک کردن نرم‌افزار یعنی دور زدن یا غیرفعال کردن مکانیزم‌های امنیتی یک نرم‌افزار برای استفاده بدون مجوز، روش‌های کرک کردن نرم‌افزار شامل موارد زیر میشه:

1 پچ کردن (Patching)

در این روش، فایل‌های اجرایی نرم‌افزار (مثل .exe یا .dll) دستکاری میشن تا مکانیزم‌های امنیتی مثل بررسی سریال یا لایسنس دور زده بشن معمولاً با ابزارهایی مثل OllyDbg، x64dbg یا IDA Pro انجام میشه

2 کیجن (Keygen)

کیجن (Key Generator) نرم‌افزاری است که یک سریال معتبر برای فعال‌سازی برنامه تولید می‌کنه معمولاً با تحلیل الگوریتم تولید کلید در نرم‌افزار اصلی ساخته میشه

3 سریال جعلی (Fake Serial)

بعضی از برنامه‌ها به‌صورت ساده یک سریال مشخص رو قبول میکنن کرکرها این سریال رو پیدا کرده و منتشر می‌کنن

4 امولیتور Dongle

بعضی نرم‌افزارها برای اجرا به یک دانگل سخت‌افزاری نیاز دارن کرکرها دانگل رو با نرم‌افزار شبیه‌سازی (emulator) جایگزین می‌کنند تا نرم‌افزار فکر کنه دانگل متصله

5 مهندسی معکوس (Reverse Engineering)

در این روش، سورس‌کد باینری برنامه بررسی و تحلیل میشه تا مکانیزم امنیتی اون شناسایی و دور زده شه

6 تغییرات رجیستری Registry changes

بعضی از نرم‌افزارها اطلاعات لایسنس رو در رجیستری ویندوز ذخیره می‌کنن با تغییر کلیدهای رجیستری میتونیم اون ها رو فعال کتیم

7 دور زدن سرور تایید لایسنس (License Server Bypass)

در این روش، ارتباط نرم‌افزار با سرور لایسنس مسدود شده یا به یک سرور جعلی هدایت میشه که پاسخ‌های معتبر ارسال می‌کننه

8 دی‌کامپایل و اصلاح سورس کد

در برخی زبان‌های سطح بالا (مثل جاوا، پایتون، C#)، باینری‌های برنامه رو می‌تونیم دی‌کامپایل کنیم و مستقیما کد را تغییر بدیم

9 مانیتورینگ API

کرکرها با ابزارهایی مثل API Monitor یا Process Hacker درخواست‌های نرم‌افزار را بررسی میکنن تا بخش‌هایی که لایسنس رو بررسی می‌کند شناسایی و دستکاری کنن

10 حملات Brute Force

در برخی موارد که نرم‌افزار از مکانیزم‌های ساده‌ای برای اعتبارسنجی استفاده میکنه می‌تونیم با امتحان کردن ترکیب‌های مختلف، رمز عبور یا سریال صحیح رو پیدا کنیم
9🔥1
رمزنگاری از مبدا تا مقصد و رمزنگاری انتقال

دو تا سطح ارتباطی داریم که رمزنگاری می‌تونه توشون انجام بشه این رمزنگاری به دو دسته تقسیم میشه:

یکی رمزنگاری از مبدأ تا مقصد

و یکی هم رمزنگاری انتقال توی رمزنگاری از مبدأ تا مقصد

که بعضی وقتا بهش می‌گن رمزنگاری آفلاین پیغام‌ها وقتی که فرستاده می‌شن رمز می‌شن و بعد توی مقصد رمزگشایی می‌شن توی این روش نیازی نیست که شبکه بفهمه پیغام رمز شده گاهی اوقات کاربر می‌تونه این نوع رمزنگاری رو انتخاب کنه پیغام تا آخر مسیر رمز می‌مونه خوبیش اینه که لازم نیست همه جا امن باشه این روش الان توی سیستم‌های معروف مثل SSL و TLS استفاده میشه
حالا توی رمزنگاری انتقال که بعضی وقتا بهش می‌گن رمزنگاری آنلاین پیغام وقتی که فرستاده میشه رمز میشه اما هر بار که به یک نقطه توی شبکه می‌رسه رمزگشایی میشه و دوباره رمز میشه توی این روش رمزنگاری از چشم کاربر پنهانه و بخشی از پروسه انتقاله
👍2
ReverseEngineering
رمزنگاری از مبدا تا مقصد و رمزنگاری انتقال دو تا سطح ارتباطی داریم که رمزنگاری می‌تونه توشون انجام بشه این رمزنگاری به دو دسته تقسیم میشه: یکی رمزنگاری از مبدأ تا مقصد و یکی هم رمزنگاری انتقال توی رمزنگاری از مبدأ تا مقصد که بعضی وقتا بهش می‌گن رمزنگاری…
یک مثال که براتون خوب جا بیوفته

1 رمزنگاری مبدأ به مقصد (End-to-End یا آفلاین) :

فرض کن میخوای یه پیامو از نقطه A به نقطه B بفرستی تو این روش، پیام دقیقاً همونجا که فرستندس (همون نقطه A) قفل میشه، و فقط وقتی به دست گیرنده (نقطه B) میرسه، باز میشه مثلاً مثل این میمونه که تو خودت توی خونهت یه جعبه رو قفل کنی و کلیدشو فقط به دوستت بدی توی این روش حتی شبکه یا مسیری که پیام ازش رد میشه (مثل اینترنت یا سرورها) نمیدونن داخل پیام چیه چون از اول تا آخر مسیر پیام همون قفله. مثلاً سیستمهای معروفی مثل SSL یا TLS از این روش استفاده میکنن. خوبیش اینه که لازم نیست به تمام نقاطِ مسیر اعتماد کنی؛ حتی اگه یه هکر توی مسیر باشه نمیتونه پیامو بخونه

2 رمزنگاری انتقال (Link Encryption یا آنلاین) :

این روش یه کم فرق داره اینجا پیام بازم قفل میشه، ولی نه فقط توی مبدأ! هر بار که پیام به یه «گره» یا ایستگاهِ تو مسیر میرسه (مثلاً یه سرور یا روتر)، قفلش باز میشه و دوباره با یه قفل جدید بسته میشه تا به ایستگاه بعدی بره یعنی پیام کل مسیرو یه جورایی با قفلهای مختلف میره مثلا فرض کن پستچیه هر بار نامه رو به یه اداره پست میبره، اونجا نامه رو باز میکنن چک میکنن بعد با یه پاکت جدید میفرستن به اداره بعدی. بدی این روش اینه که توی هر ایستگاه، پیام رمزگشایی میشه پس اگه به اون ایستگاه ها اعتماد نداشته باشی خطر نفوذ وجود داره ولی خوبیش اینه که کاربر اصلاً درگیر نمیشه و همه چیز خودکشه

نکته مهم:

تو رمزنگاری مبدأ به مقصد خود کاربر میتونه انتخاب کنه چیو رمز کنه (مثلاً تو برنامه های چت)

تو رمزنگاری انتقال کاربر اصلاً متوجه نمیشه پیام رمز شده یا نه این کار خودِ شبکه انجام میده

هر دو روش خوبیها و بدیهایی دارن مثلا End-to-End امنتره ولی شاید سرعتش کمتر باشه رمزنگاری انتقال سریعتره ولی باید به همه گرههای شبکه اعتماد کنی!
2