نمایش نتایج 1 تا 12 از 12

نام تاپیک: پیدا نکردن کلید رمز گذاری

  1. #1

    پیدا نکردن کلید رمز گذاری

    با عرض سلام خدمت دوستان بخش امنیت نرم افزار

    من برنامه دارم که به وسیله اون یک سری اطلاعات رو به DataBase وارد و بازخوانی می کنم. چون نمی خوام اطلاعاتم به دست کسی برسه اونو Encrypt کردم از طریق الگوریتم AES در دات نت . مشکلی که فکر می کنم بهش بر بخورم اینه که اگر کسی برنامه منو Decompile کنه و بتونه سورس رو مشاهده کنه خوب به راحتی با بدست آوردن کلید می تونه اطلاعات رو Decrypt کنه .

    حال سوالم اینه که من چی کار کنم که کسی نتونه به کلید من دسترسی پیدا کنه.
    (کلید یه آرایه 16 تائی بایت است)

    با تشکر

  2. #2
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: پیدا نکردن کلید

    شما بهتره از الگوریتم رمز نگاری RSA استفاده کنی که از دو مولفه Public key و Private key استفاده میکنه ، مولفه اول برای عموم قابل مشاهده هستش ولی مولفه دوم فقط شما ازش اطلاع داری و خدای خودت !
    بهتره یه سری به سایت Code Project بزنی ، مثالهای زیادی متونی درباره اون پیدا کنی ، لازم به ذکر هم هست که برنامه هایی که برای تولید کد فعالسازی از این الگوریتم استفاده میکنن به هیچ وجه ( تا 99 ٪‌ ) Keygen نمیشن.
    استفاده از این الگوریتم میتونه نهایت اطمینان رو برای شما به همراه داشته باشه.

  3. #3

    نقل قول: پیدا نکردن کلید

    [شما بهتره از الگوریتم رمز نگاری RSA استفاده کنی که از دو مولفه Public key و Private key استفاده میکنه ، مولفه اول برای عموم قابل مشاهده هستش ولی مولفه دوم فقط شما ازش اطلاع داری و خدای خودت !
    ----------------------------------------------------------
    با تشکر از پاسخ شما. ببخشید شاید سوالم خیلی ابتدائی باشه!
    ولی وقتی کسی که داره از برنامه استفاده می کنه باید برنامه 2 تا کلید رو در خود داشته باشه که بتونه اطلاعات رو decrypt کنه یا نه اصلا" این طور که من فکر نمی کنم نیست ؟

  4. #4

    نقل قول: پیدا نکردن کلید

    1-استفاده از الگوریتمهای غیر متقارن(با 2 کلید) و یا متقارن (با 1 کلید) از لحاظ کاربرد شما، هیچ فرقی نمی کنه.
    شما میخوای اطلاعات تو بانک داده قابل خوندن نباشه، نمیخوای که کسی بانک داده جدید واسه برنامت درست نکنه.

    برای اینکه کلید بازگشایی رمز رو به راحتی نشه پیدا کرد، باید چند تا چیز رو مد نظر داشته باشی.
    1-حتما از Obfuscator مطمئنی برای در هم و برهم کردن برنامت استفاده کن.
    2-روالهای ضد دیباگ برای برنامه اضافه کن (اگه اضافه نکنی با ابزارهای موجود، در دو سوت! رو اسمبلی(منظورم Net Assembly.ه) مربوط به روالهای رمزگذاری نقطه توقف میذارن و ...)
    3-کلید رو بصورت آماده تو برنامه قرار نده. وسط کلی دستورات گمراه کننده بسازش. مثلا عملیات ریاضی پیچیده ای که همیدگه رو خنثی میکنن تو فاصله های زیاد از هم روی اعداد اجراکن و در ضمن، خود کلید رو هم از نتیجه یک سری عملیات ریاضی عجیب و غریب - که باید طراحی کنی - بگیر.
    4-همیشه مد نظر داشته باش که نمیشه نفوذگر رو تا ابد پشت در محافظت های این دنیایی نگه داشت...

  5. #5

    نقل قول: پیدا نکردن کلید

    نقل قول نوشته شده توسط B-Vedadian مشاهده تاپیک
    1-استفاده از الگوریتمهای غیر متقارن(با 2 کلید) و یا متقارن (با 1 کلید) از لحاظ کاربرد شما، هیچ فرقی نمی کنه.
    شما میخوای اطلاعات تو بانک داده قابل خوندن نباشه، نمیخوای که کسی بانک داده جدید واسه برنامت درست نکنه.

    برای اینکه کلید بازگشایی رمز رو به راحتی نشه پیدا کرد، باید چند تا چیز رو مد نظر داشته باشی.
    1-حتما از Obfuscator مطمئنی برای در هم و برهم کردن برنامت استفاده کن.
    2-روالهای ضد دیباگ برای برنامه اضافه کن (اگه اضافه نکنی با ابزارهای موجود، در دو سوت! رو اسمبلی(منظورم Net Assembly.ه) مربوط به روالهای رمزگذاری نقطه توقف میذارن و ...)
    3-کلید رو بصورت آماده تو برنامه قرار نده. وسط کلی دستورات گمراه کننده بسازش. مثلا عملیات ریاضی پیچیده ای که همیدگه رو خنثی میکنن تو فاصله های زیاد از هم روی اعداد اجراکن و در ضمن، خود کلید رو هم از نتیجه یک سری عملیات ریاضی عجیب و غریب - که باید طراحی کنی - بگیر.
    4-همیشه مد نظر داشته باش که نمیشه نفوذگر رو تا ابد پشت در محافظت های این دنیایی نگه داشت...
    بله شما درست می فرمائید کاملا".
    فقط من هیچ تجربه ای در زمینه امنیت (Obfuscator) یا اضافه کردن روالهای ضد دیباگ ندارم . اگر یه سر نخ بهم بدی ممنون می شم یا بگی چی مطالعه کنم . باز هم تشکر

  6. #6
    VIP آواتار دنیای دلفی
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    یک جایی توی جنوب ایران
    پست
    1,298

    نقل قول: پیدا نکردن کلید

    اينهمه تايپك در اين بخش وجود داره يك مطالعه بكن ايده هاي خوبي وجود داره

  7. #7

    نقل قول: پیدا نکردن کلید

    من چند تا از برنامه های obfuscation رو امتحان کردم ! ولی باز هم کلید با برنامه ای مثل :#Dis
    قابل مشاهد ه است !

    من کلید رو اینطوری تعریف کردم :
    private byte[] SecretKey = new byte[32] { 20, 99, 108, 67, 28, 0, 13, 255 ,
    5 , 20, 100, 50, 87, 6, 45, 222,
    1, 12, 26, 37, 52, 76, 8, 19, 183,
    35, 120, 151, 247, 20, 125, 12 };

    من چیکار کنم که کلیدم تو سورس قابل مشاهده نشه ؟

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: پیدا نکردن کلید

    خوب میتونی کلید رو تیکه تیکه تعریف کنی ،‌رمزنگاری کنی و موقع استفاده کلید رو به هم وصل کن و رمزگشایی کنی ، این طوری همه چیز Runtime درست میشه و چیزی تو سورس نیست تا من ازش سر دربیارم.

  9. #9

    Lightbulb نقل قول: پیدا نکردن کلید

    نقل قول نوشته شده توسط Nima NT مشاهده تاپیک
    خوب میتونی کلید رو تیکه تیکه تعریف کنی ،‌رمزنگاری کنی و موقع استفاده کلید رو به هم وصل کن و رمزگشایی کنی ، این طوری همه چیز Runtime درست میشه و چیزی تو سورس نیست تا من ازش سر دربیارم.
    سلام استاد. با تشکر از پاسخ خوبت
    فقط اگه ممکن هست یه خورده بیشتر توضیح بده . من این کلید رو تو یه کلاس تعریف کردم و منظور شما اینه که تو اون کلاس بیام بصورت تیکه تیکه تمامی عناصر کلید رو تعریف کنم ؟
    مثلا تو یه تابع : 15=[1]Key
    ????

  10. #10
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    Smile نقل قول: پیدا نکردن کلید

    تقریبا" یه همچین چیزی ، در ضمن سعی کن مقادیر آرایه رو هم رمزنگاری کنی ، مثلا" قراره تو خونه 2 آرایه کلید عدد 6 قرار بگیره ، شما بیا اول این عدد رو تو خارج از برنامه رمزنگاری کن و مقدار اون رو تو خونه 2 قرار بده مثلا" اینطوری : Key[2]=AxEw5/S
    حالا هروقت خواستی از این کلید استفاده کنی همون موقع رمزگشائی بکن ، این طوری اگه من برنامه رو با برنامه هایی مثل Reflector باز کنم به جای عدد 2 تو آرایه کلید ، یه رشته غیر قابل فهم رو مشاهده میکنم ، یادت هم باشه که کلید رو یه بار رمزنگاری نکن ، سعی کن چند باز با الگوریتم های متفاوت رمزنگاریش بکنی.
    سوالی بود بازم در خدمتم ( بی کار ، بی آر ‌، میچرخم )

  11. #11

    نقل قول: پیدا نکردن کلید

    نقل قول نوشته شده توسط Nima NT مشاهده تاپیک
    تقریبا" یه همچین چیزی ، در ضمن سعی کن مقادیر آرایه رو هم رمزنگاری کنی ، مثلا" قراره تو خونه 2 آرایه کلید عدد 6 قرار بگیره ، شما بیا اول این عدد رو تو خارج از برنامه رمزنگاری کن و مقدار اون رو تو خونه 2 قرار بده مثلا" اینطوری : Key[2]=AxEw5/S
    حالا هروقت خواستی از این کلید استفاده کنی همون موقع رمزگشائی بکن ، این طوری اگه من برنامه رو با برنامه هایی مثل Reflector باز کنم به جای عدد 2 تو آرایه کلید ، یه رشته غیر قابل فهم رو مشاهده میکنم ، یادت هم باشه که کلید رو یه بار رمزنگاری نکن ، سعی کن چند باز با الگوریتم های متفاوت رمزنگاریش بکنی.
    سوالی بود بازم در خدمتم ( بی کار ، بی آر ‌، میچرخم )

    خیلی ممنون از جوابت دوست عزیز, خیلی کمک کردی.
    فقط می خواستم یه خورده بیشتر تو این موارد سر در بیارم . چون خیلی بلا سرم اومده به خاطر رعایت نکردن موارد امنیتی تو نرم افزار . اگر کتابی هست یا مرجعی هست که یه خورده راه بندازه منو ممنون میشم .
    با تشکر .

  12. #12
    کاربر دائمی
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    تهران
    پست
    2,397

    نقل قول: پیدا نکردن کلید

    واقعیتش رو بخوای در مورد برنامه نویسی دات نت هنوز کتابی در مورد کرک یا امنیت تو بازار نیست ، به نظر من هم شما برای اینکه بتونی یه برنامه امن بنویسی بهتره اول یه کرکر خوب بشی چون اون موقع روشهای کرک برنامت رو میتونی خیلی راحت خودت پیدا کنی و برای سخت تر کردن کار کراکر سنگ جلو پاش بندازی ، برای شروع میتونی از سایت Tust4you استفاده کنی ، یه سری مقاله آموزشی درباره نحوه کرک کردن فایلهای دات نت و یه سری فیلم های SWF ، این طوری دقیقا" با کاری که یه کراکر انجام میده بیشتر آشنا میشی و راههای زیادی به ذهنت برای درآوردن پیر کراکر به ذهنت خطور میکنه.
    لااقل اینکه من خودم این کار رو کردم ، برای اینکه بتونم برنامه های نسبتا" امنی بنویسم اول از یادگیری کرک شروع کردم.
    در ضمن به کتاب CrackProof your software هم یه سری بزن ( زبان اصلیه ) ، تو اینترنت خیلی راحت گیرش میاری ، توی این کتاب فقط نحوه سنگ انداختن جلوی پای کراکر رو آموزش میده.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •