صفحه 3 از 3 اولاول 123
نمایش نتایج 81 تا 118 از 118

نام تاپیک: امنیت در #C

  1. #81
    کاربر دائمی آواتار Unknownlive
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    زیر آسمون شهر
    پست
    478

    نقل قول: امنیت در #C

    یه روش کلی برای غیر ممکن کردن دسترسی به برنامه از طریقه نرم افزارهای Restrator Hack که میان مثلا لوگو برنامه شما را عوض می کنند یا منو های شما و عکس ها را دستکاری می کنن اینه که شئ ها را در زمان اجرا ایجاد کنید یعنی به جای گذاشتن یک PictureBox در فرم ان را در کد نویسی ایجاد کنید.این خیلی مهمه و امنیت فوق العاده اپ می شه.

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

    نقل قول: امنیت در #C

    با سلام
    خدا رو شکر عملم موفقیت آمیز بود و راحت شدم.
    ولی در مورد جناب موسوی که گفته بودن وقتی ویندوز از حالت تریال در بیاد بهش میگن هک شد !
    این برداشت اشتباه هست , اینجا میگن کرک شد , کرک و مهندسی معکوس دو علم هستن که به موازات هم گسترش پیدا کردن و چون اهدافشون 100% مخرب هست از شاخه هک جدا شدن , چرا که هک امکان مفید واقع شدن هم وجود داره.
    و در مورد جناب ارژنگ خان , بنده ادعایی کردم و انجامش هم دادن , چند نمونه کرک می گذاشتند , کرک کردم و در مواردی سورس رو هم تحویل دادم ,حالا اگر شما مایل هستید که هنوز هم فکر کنید که سورس رو نمیشه در آورد یا اگر هم بشه کاربردی نیست , به خودتون مربوطه. ( البته منظورم همون آنپک می هاست )
    در مورد سوال جناب System32 هم که در مورد md5 پرسیدن , میتونم بگم که md5 هم دقیقا" مثل crc عمل میکنه و کاربرد مشابهی دارن , در حالت کلی میتونم توصیه کنم که بیشتر به جای CRC از MD5 استفاده کنید.

  3. #83

    نقل قول: امنیت در #C

    یه روش کلی برای غیر ممکن کردن دسترسی به برنامه از طریقه نرم افزارهای Restrator Hack که میان مثلا لوگو برنامه شما را عوض می کنند یا منو های شما و عکس ها را دستکاری می کنن اینه که شئ ها را در زمان اجرا ایجاد کنید یعنی به جای گذاشتن یک PictureBox در فرم ان را در کد نویسی ایجاد کنید.این خیلی مهمه و امنیت فوق العاده اپ می شه.
    كنترل ها در حالت عادی هم با كد درست ميشند.

    و Nima NT جان، اگر ميشه بگيد چطوری بايد مقدار MD5 يا CRC فايل رو به دست بياريم؟

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

    نقل قول: امنیت در #C

    سلام
    والا تو دات نت بلد نیستم این کار رو انجام بدم.

  5. #85
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    دوستان چند پست بالاتر یه سوال کردم اینم کمی اطلاعات که در این مورد بدست آوردم:

    یک public-key certificate یک امضای دیجیتالی است که از سوی یک نهاد یا موسسه ارائه می گردد. بیشتر از این مورد در مرورگرهای اینترنتی که پروتوکل SSL را پشتیبانی می کنند استفاده می گردد.
    X.509 تعیین می کند که چه اطلاعاتی به عنوان امضای دیجیتالی استفاده شود و چگونه آن ها باید نوشته شوند.

    اگه دوستان مطلب دیگری درباره نحوه کدنویسی و کاربردهای این مورد می دانند لطفا از گفتن آن دریغ ننمایند. ممنون.

    -----------------------------------
    انسان مجموعه ای از آنچه دارد نیست، بلکه مجموعه ای است از آنچه هنوز ندارد، اما می تواند داشته باشد.

  6. #86
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: امنیت در #C

    نقل قول نوشته شده توسط Nima NT مشاهده تاپیک
    و در مورد جناب ارژنگ خان , بنده ادعایی کردم و انجامش هم دادن , چند نمونه کرک می گذاشتند , کرک کردم و در مواردی سورس رو هم تحویل دادم ,حالا اگر شما مایل هستید که هنوز هم فکر کنید که سورس رو نمیشه در آورد یا اگر هم بشه کاربردی نیست , به خودتون مربوطه. ( البته منظورم همون آنپک می هاست )
    اینکه شبه کد راحت بدست میاد را کاملا قبول دارم، ولی این شبه کد تا چه حد برایه کارکردن باهاش سخت است (بدانه ابفسکیشن ) را میخواهم بدانم.

    آیا قبول دارید که ادعا این بود:
    "تبدیل به کد در دات‌نت آسان هست"؟

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

    بدست آوردن شبه کد با رفلکتر و کرک کردن و امنیت در دات‌نت مباحث مختلفی هستند و به هم ربط ندارند .نه اینکه هر کی در دات‌نت کد بنویسه یکی دیگر میتونه کدش را به راحتی بدست بیاره و پروژه‌اش را بدست بگیرد.
    من به قابلیت کرک کردن شما سوالی نکردم، فقط گفتم اگر میگید کد بدست آوردن ساده‌است با این مثال کوچیک اگر آسان بود من خودم انجام میدادم و از شما تقاضا نمیکردم.
    آخرین ویرایش به وسیله اَرژنگ : شنبه 31 مرداد 1388 در 18:54 عصر

  7. #87
    کاربر دائمی آواتار keivan mousavi
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    همه جای ایران سرای من است
    پست
    360

    نقل قول: امنیت در #C

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

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

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

  8. #88
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: امنیت در #C

    نقل قول نوشته شده توسط keivan mousavi مشاهده تاپیک
    دوست عزیز من یک تعریفی از هک میکنم
    هک در زبان انگلیسی به معنی کلنگ هستش و در کامپیوتر هر کاری که واسه خراب کاری باشه بهش هک مبگن
    هک به معنی سمبل کردن هم میباشد، خیلیها کد هک میکنند، یعنی اینکه کد را به هم میبافند بدانه اینکه از اصول برنامه ریزی استفاده کنند، به شکل کلی هر کسی که کد سرهم کنه برنامه‌نویس (پروگرمر )نیست، کد هکر است.
    برنامه نویس دیسیپلین میخواهد، هر کی که همینطوری فقط میافته به جان کد،کد هکر است.

    هکر به معنی کسی که ته و تویه چیزها را درمیارد هم هست، لازم نیست که فقط برایه خراب کاری باشد، مثلا اگر پارامترهایی به جستوجیه گوگل اضافه کنند میشه نتیجه‌هایه بخصوصی را بدست آورد، در این حالت با اینکه کاری که انجام شده برایه خراب کاری نبوده بهش هک کردن میگند (با هک کردن وب سایت فرق دارد).
    آخرین ویرایش به وسیله اَرژنگ : شنبه 31 مرداد 1388 در 20:53 عصر

  9. #89
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    دوستان اینم برای آخرین بار:

    لطفا مباحث مربوط به هک و کرک را در بخش خودش بحث کنید یا به هم پیام بزنید. اینجا فقط روی مباحث مربوط به امنیت در #C صحبت کنید. اگه مدیر بخش اینجا را قفل کنه بهش حق می دم. دیگه با خودتون. بای

  10. #90
    کاربر دائمی آواتار keivan mousavi
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    همه جای ایران سرای من است
    پست
    360

    نقل قول: امنیت در #C

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

    به نظر من به جای اینکه انقدر به مسائل حاشیه ای بپردازیم و اینقدر از هم ایراد بگیریم بهتره به فکر چاره ای باشیم
    آیا این بهتر نیست؟؟؟

    واقعاً جای تاسف داره در بزرگترین سایت برنامه نویسان ایران با وجود بزرگترین برنامه نویسان در زمینه OO هیچکس حرف کسیرو قبول نداره و هرکسی مدعی این هستش که حرف خودش درسته

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

    به راستی که اگر یک اجنبی بیاید و این تایپیکهارو ببیند پیش خودش چه فکری میکند؟؟؟

  11. #91
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    تا حالا دو سوال مطرح شده:

    سوال: چکار کنیم تا جلوی نفوذ به کدهایمان گرفته شود؟

    جواب و نتیجه: به نظر عده ای از دوستان نتیجه های زیر:

    1- به هیچ وجه امکان ندارد که جلوی نفوذ به کدهایمان گرفته شود. فقط می توان کاری کرد که این کار سخت تر انجام شود.
    2- شما می توانید بوسیله نرم افزارهای Obfuscator نفوذ به کدهایتان را مشکل نمایید. این کار با تغییر نام متغیرها و ... برنامه شما انجام می گیرد.

    و به نظر عده ای دیگر در مقابل نتیجه گیری بالا:

    ۱.نتیجه گیری اول بدست آوردن کدها را ساده جلوه میده، در حالی که که حتی یک نفر از کسانی که این نتیجه را قبول دارند نتوانستند کد یک تابع کوچک که در همین تالار فرستاده شده بود را دربیارند، پس نتیجه گیری را باید به این تغییر داد:
    ۱.با اینکه به هیچ وجه امکان ندارد که جلوی نفوذ به کدهایمان گرفته شود، اینکار کار آسانی نیست و یک پروژه کاملا را تبیدل به سورس نمیکنه، فقط یک شبه کد بدست میاد که بعدش هم باید با تلاش زیاد بشه ازش استفاده کرد.

    و حالا نتیجه گیری کلی با خودتون.

    سوال دومی که پرسیده شد:

    سوال: کسی راجع به X509Certificates که در فضای نام Security.Cryptography قرار داره می تونه یه سری اطلاعات در اختیار بقیه قرار بده.

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

    ببینید دوستان روند تاپیک مشخصه.... من آخرین صحبت هام رو قبلا در این پست نوشتم. دیگه حرفی ندارم.

    تا سوال بعدی بای.

  12. #92
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: امنیت در #C

    سوال: چکار کنیم تا جلوی نفوذ به کدهایمان گرفته شود؟
    با توجه به مطالبی که تا الان تو تاپیک خوندم یه زاه حلی که استفاده هم کردم و تا حد قابل قبولی کد ها رو امن نگه میداره اینه که برنامه رو از حافظه اجرا میکنیم نه از فایل؛ به این شکل:
    1- ابتدا برنامه مورد نظر رو به شکل یک Exe کامپایل میکنیم.
    2- حالا یه برنامه دیگه میسازیم که در نقش launcher عمل میکنه و کارش load کردن برنامه در حافظه و اجرای اون از حافظه هستش.
    3- محتویات این فایل exe رو میخونیم و به شکل یک
    byte[]
    که Encrypt میشه به resource های launcher اضافه میکنیم از نوع Embeded Resource
    4- حالا تو launcher یه همچین کدی برای load کردن برنامه اصلی می نویسیم:
     static void Main()
    {
    RunInternalExe("نام برنامه اصلی");
    }

    private static void RunInternalExe(string exeName)
    {
    //Get the current assembly
    Assembly assembly = Assembly.GetExecutingAssembly();

    //Get the assembly's root name
    string rootName = assembly.GetName().Name;

    //Get the resource stream
    Stream resourceStream = assembly.GetManifestResourceStream(rootName + "." + exeName);

    //Verify the internal exe exists
    if (resourceStream == null)
    return;

    //Read the raw bytes of the resource
    byte[] resourcesBuffer = new byte[resourceStream.Length];

    resourceStream.Read(resourcesBuffer, 0, resourcesBuffer.Length);
    resourceStream.Close();

    //Load the bytes as an assembly
    Assembly exeAssembly = Assembly.Load(resourcesBuffer);

    //Execute the assembly
    exeAssembly.EntryPoint.Invoke(null, null); //no parameters
    }


    با این کار برنامه ما از حافظه بصورت مستقیم اجرا میشه و چون حافظه در دات نت امنیت قابل قبولی داره خیلی کار سختی خواهد بود که بشه از تو حافظه کدهای برنامه رو درآورد. همچنین چون کد هارو بصورت encrypt شده در resource ها نگه داری میکنیم پس به این راحتی نمیشه از توی resource ها هم به کد برنامه اصلی دسترسی پیدا کرد.
    با این روش اگر برای Encrypt و Decrypt کردن resource مون دقت لازم رو داشته باشیم و از روش های امن استفاده کنیم میتونیم نتیجه قابل قبولی از این روش بگیریم.

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

    موفق باشید

  13. #93

    نقل قول: امنیت در #C

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

    در حالی که که حتی یک نفر از کسانی که این نتیجه را قبول دارند نتوانستند کد یک تابع کوچک که در همین تالار فرستاده شده بود را دربیارند
    توی این فوروم جای این کار نیست
    کافی شما توی تالار مربوطه تاپیک crack me بگذارید و 30 دقیقه بعد مراجعه کنید تا نتیجه رو ببینید
    __________________________________________________ _________________________________________
    نکته قابل اغماض

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

  14. #94

    نقل قول: امنیت در #C

    جناب Bermoda فكر كنم اين راهی كه گفتيد چندان هم خوب نباشه. فقط كافی هست كه برنامه آنپك بشه

    و اين هم دو مثال از X509Certificate.






    using System;
    using System.Security.Cryptography;

    using System.Security.Permissions;
    using System.IO;
    using System.Security.Cryptography.X509Certificates;



    class CertInfo
    {
    //Reads a file.
    internal static byte[] ReadFile (string fileName)
    {
    FileStream f = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    int size = (int)f.Length;
    byte[] data = new byte[size];
    size = f.Read(data, 0, size);
    f.Close();
    return data;
    }
    //Main method begins here.
    static void Main(string[] args)
    {
    //Test for correct number of arguments.
    if (args.Length < 1)
    {
    Console.WriteLine("Usage: CertInfo <filename>");
    return;
    }
    try
    {
    X509Certificate2 x509 = new X509Certificate2();
    //Create X509Certificate2 object from .cer file.
    byte[] rawData = ReadFile(args[0]);
    x509.Import(rawData);
    //Print to console information contained in the certificate.
    Console.WriteLine("{0}Subject: {1}{0}", Environment.NewLine,x509.Subject);
    Console.WriteLine("{0}Issuer: {1}{0}", Environment.NewLine,x509.Issuer);
    Console.WriteLine("{0}Version: {1}{0}", Environment.NewLine,x509.Version);
    Console.WriteLine("{0}Valid Date: {1}{0}", Environment.NewLine,x509.NotBefore);
    Console.WriteLine("{0}Expiry Date: {1}{0}", Environment.NewLine,x509.NotAfter);
    Console.WriteLine("{0}Thumbprint: {1}{0}", Environment.NewLine,x509.Thumbprint);
    Console.WriteLine("{0}Serial Number: {1}{0}", Environment.NewLine,x509.SerialNumber);
    Console.WriteLine("{0}Friendly Name: {1}{0}", Environment.NewLine,x509.PublicKey.Oid.FriendlyNam e);
    Console.WriteLine("{0}Public Key Format: {1}{0}", Environment.NewLine,x509.PublicKey.EncodedKeyValue .Format(true));
    Console.WriteLine("{0}Raw Data Length: {1}{0}", Environment.NewLine,x509.RawData.Length);
    Console.WriteLine("{0}Certificate to string: {1}{0}", Environment.NewLine,x509.ToString(true));
    Console.WriteLine("{0}Certificate to XML String: {1}{0}", Environment.NewLine,x509.PublicKey.Key.ToXmlString (false));
    //Add the certificate to a X509Store.
    X509Store store = new X509Store();
    store.Open(OpenFlags.MaxAllowed);
    store.Add(x509);
    store.Close();
    }
    catch (DirectoryNotFoundException)
    {
    Console.WriteLine("Error: The directory specified could not be found.");
    }
    catch (IOException)
    {
    Console.WriteLine("Error: A file in the directory could not be accessed.");
    }
    catch (NullReferenceException)
    {
    Console.WriteLine("File must be a .cer file. Program does not have access to that type of file.");
    }
    }

    }





    using System;
    using System.Security.Cryptography.X509Certificates;

    publicclassX509
    {
    publicstaticvoid Main()
    {
    // The path to the certificate.
    string Certificate = "Certificate.cer";
    // Load the certificate into an X509Certificate object.
    X509Certificate cert = newX509Certificate(Certificate);
    // Get the value.
    string resultsTrue = cert.ToString(true);
    // Display the value to the console.
    Console.WriteLine(resultsTrue);
    // Get the value.
    string resultsFalse = cert.ToString(false);
    // Display the value to the console.
    Console.WriteLine(resultsFalse);
    }
    }

  15. #95
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    دوست عزیز Armin060 این دو مثال چه کاری می کنند. در ضمن می شه کمی درباره کارایی این فضای نام توضیح بدید. ممنون.

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

    نقل قول: امنیت در #C

    با این کار برنامه ما از حافظه بصورت مستقیم اجرا میشه و چون حافظه در دات نت امنیت قابل قبولی داره خیلی کار سختی خواهد بود که بشه از تو حافظه کدهای برنامه رو درآورد.
    جناب برمودا , ره حل این برنامه ها استفاده از Generic Dumper ها هست که فایل رو تر و تمیز از رم بکشه بیرون. متاسفانه این کار امنیت نداره , مگر اینکه فایلی که قراره تو حافظه لود بشه , از پیش پک بشه.

  17. #97

    نقل قول: امنیت در #C

    دوست عزیز Armin060 این دو مثال چه کاری می کنند. در ضمن می شه کمی درباره کارایی این فضای نام توضیح بدید. ممنون.
    من اين دو تا كد رو از تو MSDN كپی كردم، گفتم شايد به كار بياد.

    http://msdn.microsoft.com/en-us/libr...rtificate.aspx

    http://msdn.microsoft.com/en-us/libr...tificate2.aspx

  18. #98
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    اینم یک سری اطلاعات که از سایت های مختلف جمع آوری شده است:

    Certificate يک فايل است که بر روي سرور وب نصب مي شود تا وب سايت را شناسايي کند اين روش براي شناساندن هويت يک شرکت يا تاجر به خريداران آنلاين کمک کرده تا به سايت اعتماد کنند براي بررسي صحت اين ادعا (براي اينکه باور کنيم آنچه ادعا مي کنند هستند ) شرکت ها و وب سايت هاي آنها توسط يک شرکت ثالث مانند Verisign و Thawte .

    وقتي صحت ادعاي شرکت ها و وب سايت آنها مورد تأييد قرار گرفت آنها يک گواهينام? SSL ( به مبلغ چند صد دلار ) به آنها اعطا مي کنند . اين گواهينامه ديجيتال بر روي وب سرور آنها نصب شده و توسط کاربراني که وارد سايت مي شوند قابل ديدن است . شما با نگاه کردن آدرس وب سايت مي توانيد متوجه اين گواهينامه شويد . وب سايت هايي که داراي گواهينامه هستند با HTTPS شروع مي شوند . براي ديدن گواهينامه مي توانيد بر روي آيکون قفل در گوش? مرورگر خود کليک کنيد .

    از آنجا که گواهينامه هاي ديجيتال وضعيت جاري يک شرکت را تأييد مي کنند اعتبار آنها دائمي نيست . گواهينامه هاي SSL معمولاً هر يک تا سه سال منقضي مي شوند . اگر Certificate در موئد مقرر تجديد نشود در حين مرور ، وب سايت شما با يک پيغام مبني بر اينکه گواهينام? اين وب سايت منقضي شده است مواجه مي شود اين خطا به شما و کامپيوتر شما مربوط نمي شود اما به معني آن است که وب سروري که شما به آن متصل شده ايد گواهينامه خود را تجديد نکرده است . هر چند که اين به معني اينکه وب سايت مذکور لزوماً کلاه بردار است ، نيست اما حداقل نشان دهند? آن است که وب سايت خيلي حرفه اي هم نيست . http://www.gamadirect.com/DicDef.aspx?ID=20

    تضميني براي آنکه نرم افزار دريافتي از طريق اينترنت از يک منبع قابل اطمينان است. هر گواهينامه ديجتال اطلاعاتي درباره نرم افزار فراهم مي کند –مثلاً اطلاعات شناسايي تهيه کننده نرم افزار و تاريخ ثبت آن بوسيله مسئول صدور گواهينامه(CA)، و نيز ميزان مقاومت در برابر سرقت.


    کارت شناسايي کاربر، يا " گواهينامه استفاده" در فضاي کامپيوتري. گواهينامه هاي ديجيتال که توسط مسئولين صدور گواهينامه صادر مي شوند، نوعي اعتبار الکترونيکي هستند که درستي و اعتبار يک کاربر را در اينترنت و اينترانت ها تائيد مي کنند. رسمي گواهينامه هاي ديجيتال با استفاده از تکنولوژي رمزگذاري عمومي، انتقال Online و قانوني اطلاعات محرمانه، پول يا ديگر اطلاعات حساس را تضمين مي کنند.

    دارنده هر گواهينامه ديجيتال دو کليد دارد (رشته اي از اعداد): يک کليد خصوصي که تنها کاربر براي "امضاي" پيام هاي ارسالي و رمزگشايي پيام هاي دريافتي در دست دارد، و يک کليد عمومي براي استفاده اشخاص ديگر، جهت رمز گذاري داده ها به منظور ارسال به يک کاربر خاص. http://www.gamadirect.com/DicDef.aspx?ID=239

    امضای دیجیتال
    امضای دیجیتال ، ماحصل رمزنگاری مقدار Hash داده مبادله شده بوده و روشی ایمن به منظور امضای الکترونیکی اطلاعات با استفاده از کدها ویا علائمی است که از لحاظ الکترونیکی معادل یک امضای دستی می باشند. امضای دیجیتالی، مبتنی بر ترکیب ایده سنتی Hashing داده و رمزنگاری کلید عمومی است .یک مرکز معتبر صدور گواهینامه های دیجیتال ، گواهینامه های دیجیتالی صادرشده را به کلیدهای عمومی مربوط به هر یک نسبت می دهد . فرآیند امضاء ، مخالف فرآیند رمزنگاری است : از کلید خصوصی به منظور رمزنگاری Hash و از کلید عمومی برای بررسی صحت امضاء ( رمزگشائی ) استفاده می شود .

    فرآیند امضای داده توسط فرستنده پیام :

    •دریافت پیام اولیه و محاسبه یک مقدار Hash با استفاده از یک الگوریتم hashing
    •رمزنگاری Hash توسط یک تابع رمزنگاری و اعمال کلید خصوصی توسط فرستنده پیام ( پیام اولیه به همراه مقدار Hash رمز شده ، یک پیام دیجیتالی امضاء شده را تشکیل می دهند ) .
    •ارسال پیام دیجیتالی امضاء شده برای گیرنده

    فرآیند بررسی صحت امضاء ارسالی همراه داده :

    •پس از دریافت پیام توسط گیرنده ، در ابتدا ، Hash رمز شده با استفاده از کلید عمومی فرستنده رمزگشائی می گردد ( Hash رمزگشائی شده ) .
    •محاسبه محلی مقدار Hash پیام ارسالی با استفاده از یک الگوریتم Hashing
    •مقایسه نتایج بدست آمده در مراحل قبل : Hash رمزگشائی شده با مقدارمحلی Hash مقایسه و در صورتیکه نتیجه یکسان باشد ، صحت و اعتبار پیام ارسال شده توسط فرستنده تائید می گردد .

    لازم است به این موضوع دقت شود که ضرورتی به رمزنگاری محتوی پیام وجود نداشته و صرفا" امضای دیجیتالی رمز می گردد( مگر اینکه شرایط خاصی در ارتباط با محرمانگی محتوی وجود داشته باشد که در چنین مواردی می بایست محتوی نیز رمزنگاری گردد ) . در صورتیکه به هر دلیلی محتوی پیام توسط افراد غیرمجاز تغییر داده شود ، Hash رمز شده اولیه با مقداری که بصورت محلی مجددا" محاسبه می گردد ، مطابقت نداشته و صحت امضای فرستنده تائید نمی گردد . همچنین ، ایجاد یک امضای تقلبی عملا" غیرممکن است ، چراکه افراد غیر مجاز آگاهی لازم در ارتباط با کلید خصوصی را دارا نمی باشند ( رمزنگاری مقدار محاسبه شده Hash با در نظر گرفتن کلید خصوصی فرستنده انجام خواهد شد ) .

    یک گواهینامه چیست ؟
    گواهیینامه دیجیتال ،رکوردی منحصربفرد مشتمل بر اطلاعاتی ضروری به منظور بررسی هویت یک فرد و یا یک سازمان می باشد . گواهینامه های دیجیتال از فرمت استاندارد X.509 تبعیت می نمایند . استاندارد فوق ، برخی از ملزومات موردنیاز گواهینامه را تشریح می نماید : فرمت نسخه استفاده شده توسط گواهینامه ، شماره سریال گواهینامه ، شناسه الگوریتم استفاده شده به منظور تائید گواهینامه ،مرکز صادرکننده گواهینامه ، تاریخ صدور و سررسید اعتبار گواهینامه ، مشخصات صاحب گواهینامه ، کلید عمومی صاحب گواهینامه ، امضای دیجیتال مرکز صادر کننده گواهینامه .
    هر یک از فیلدهای اطلاعاتی فوق متناظر با فیلدهای خاصی در ساختار تعریف شده برای یک گواهنیامه می باشد. گواهینامه ها ، ممکن است شامل اطلاعات دیگری نظیر آدرس پستی ، آدرس پست الکترونیکی ، نام کشور ، سن ، جنسیت نیز باشند . اطلاعات اضافی فوق اختیاری بوده و بستگی به نوع خاص گواهینامه دارد .

    مراکز صدور گواهینامه (CA:Certificate Authority

    مراکز صدور گواهینامه که از آنان با عنوان CA نیز نام برده می شود ،مراکزی امین و معتبر بوده که مسئولیت تطبیق کلیدها ی عمومی به منظور شناسائی و تائید هویت را برعهده دارند. به عبارت دیگر ، مراکز فوق تعلق یک کلید عمومی خاص به یک کاربر معتبر را تائید می نمایند . مراکز CA ، مسئولیت صدور ، ابطال و تمدید یک گواهینامه را برعهده دارند. مراکز CA ،همچنین می بایست رویه های بسیار دقیق و سختگیرانه ای را به منظور تائید افراد و سازمان ها ئی که درخواست گواهنیامه می نمایند را نیز دنبال نمایند .بدین ترتیب ، پس از تائید یک فرد و یا سازمان توسط یک مرکز معتبر و امین CA ، امکان تطبیق کلید ( انطباق کلید عمومی با کلید خصوصی مرتبط با آن ) آنان از یک مرکز ایمن ، فراهم می گردد. عملکرد چنین مراکزی نظیر دفاتراسناد رسمی در اینترنت است .
    در ساختار گواهینامه ، دو فیلد اطلاعاتی مرتبط با CA نیز وجود دارد : نام صادرکننده گواهینامه و امضای دیجیتالی صادرکننده . وجود فیلدهای فوق در گواهینامه صادر شده ، تضمین لازم در خصوص تعلق کلید عمومی به صاحب آن را ارائه می نماید.بدین ترتیب مسئله امین بودن از افراد به مراکز CA منتقل می گردد.وجود یک مرکز امین و معتبر ، از جمله مهمترین دلایل حضور CA ، محسوب می گردد . در حال حاضر ، سازمان های متعددی ، اقدام به صدور گواهینامه می نمایند و هر روز نیز تعداد آنان افزایش می یابد . زمانیکه دو کاربر و یا دو سازمان قصد مبادله گواهینامه را داشته باشند ، هر یک از آنان می تواند هویت طرف مقابل خود را با استفاده از تائیدیه مراکز CA و گواهینامه های صادرشده توسط مراکز CA ، انجام دهد. هر گواهینامه شامل کلید عمومی مربوط به خود نیز می باشد ، بنابراین می توان از آن به منظور رمزنگاری داده برای ارسال به صاحب گواهینامه استفاده نمود. گواهینامه ها همچنین شامل امضای دیجیتال مرکز CA صادرکننده گواهینامه نیز می باشند. یک امضای دیجیتال با استفاده از کلید خصوصی مولف سند ایجاد می گردد . بنابراین به منظور بررسی یک گواهینامه که توسط یک مرکز CA خاص تائید شده است ، به کلید عمومی مرکز CA نیز نیاز خواهد بود. کلید ها ی عمومی اکثر مراکز CA به همراه مرورگرها ، برنامه های پست الکترونیکی و سایر پکیج های نرم افراری توزیع می گردد .


    نمایش محتویات یک Certificate:

    شما بوسیله قطعه کد زیر می توانید محتویات یک فایل Certificate را مشاهده کنید:


    string Certificate = "path";
    // Load the certificate into an X509Certificate object.
    X509Certificate cert = newX509Certificate(Certificate);
    // Get the value.
    string resultsTrue = cert.ToString(true);
    // Display the value
    MessageBox.Show(resultsTrue);


    برای دریافت اطلاعات بیشتر می توانید از کلاس زیر استفاده نمایید:
    X509Certificate2

  19. #99
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: امنیت در #C

    متاسفانه این کار امنیت نداره , مگر اینکه فایلی که قراره تو حافظه لود بشه , از پیش پک بشه.
    خوب فکر نکنم که کار سختی باشه که فایل pack شده را در resource ها نگهداری کنیم. اما خوب باز هم مثل این میمونه که یه مرحله دیگه به کرک کردن اضافه میشه و اگر برنامه Unpack بشه دوباه همون آش و همون کاسه!

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

    نقل قول: امنیت در #C

    به همین خاطر بود که میگفتم Smart Assembly خوبه , چون این برنامه فایل رو هم پک میکنه هم رمزنگاری میکنه , و موقع لود کردن اون به حافظه Header رو حذف میکنه ؛ این کار باعث میشه وقتی شما فایل رو دامپ میکنن , یه فایل تخریب شده تحویل داده بشه , البته این برنامه یه نقطه ضعف هم داره و اون اینکه نسبت به رشته ها ضعیفه , بنابراین وقتی میخواهید از این برنامه استفاده کنید , خودتون رشته های موجود در برنامه خودتون رو , خودتون رمز کنید , تا اگر هم توسط ابزارهای De obfuscator رشته ها رمزنگاری شد ( از سیستم خود برنامه رد شد ) بازهم رشته های رمز شده استخراج بشن و نشه کاریشون کرد.

  21. #101
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    دوستان کسی می تونه توضیح بده ClickOnce چیه و به چه دردی می خوره؟

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

    نقل قول: امنیت در #C

    دوستان کسی می تونه توضیح بده ClickOnce چیه و به چه دردی می خوره؟
    کجا دیدید ؟ به نظر میاد به تکنولوژی های تریال سازی مربوط باشه ( از روی اسمش میگم ).

  23. #103
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    سلام.

    داشتم توی تنظیمات پروژم سرکشی می کردم. در برگه Security با این گزینه آشنا شدم. تا اونجا که متوجه شدم برای برقراری امنیت در برناممون خیلی مهم. من خودم زیاد از متن راهنما چیزی دستگیرم نشد. به همین خاطر گفتم از دوستان بپرسم آیا کسی باهاش آشنایی داره. در ضمن قسمتی از راهنما را اینجا می زارم مطالعه کنید:

    ClickOnce applications are based on the .NET Framework and are subject to code access security constraints. For this reason, it is important that you understand the implications of code access security and write your ClickOnce applications accordingly.
    Code access security is a mechanism in the .NET Framework that helps limit the access that code has to protected resources and operations. You should always configure the code access security permissions for your ClickOnce application to include only those permissions that your application requires. Visual Studio provides the tools necessary to determine and configure the permission set for your application.

  24. #104
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در #C

    دوستان پس خبری نشد؟

  25. #105
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: امنیت در #C

    ClickOnce is a deployment technology that allows you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. ClickOnce deployment overcomes three major issues inherent in deployment:
    #

    Difficulties in updating applications. With Microsoft Windows Installer deployment, whenever an application is updated, the user must reinstall the entire application; with ClickOnce deployment, you can provide updates automatically. Only those portions of the application that have changed are downloaded, then the full, updated application is reinstalled from a new side-by-side folder.
    #

    Impact to the user's computer. With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnce deployment, each application is self-contained and cannot interfere with other applications.
    #

    Security permissions. Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnce deployment allows non-administrative users to install and grants only those Code Access Security permissions necessary
    for the application.

    برای اطلاعات بیشتر به اینجا برید

  26. #106
    VIP آواتار Amir Oveisi
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    هر جا که حال کنم - فعلا یزد
    پست
    2,604

    نقل قول: امنیت در #C

    ClickOnce applications are based on the .NET Framework and are subject to code access security constraints
    منظور از این جمله این نیست که دسترسی به کد برنامه محدود میشه بلکه منظور اینه که میتونیم موقع deploy کردن برنامه مشخص کنیم که برنامه ما مثلا اجازه اجرای کدهای IO رو داره یا نداره و منظور از محدودیت دسترسی، محدودیت دسترسی کد به منابع هست نه محدودیت دسترسی افراد به کد.

    موفق باشید

  27. #107
    کاربر دائمی آواتار Unknownlive
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    زیر آسمون شهر
    پست
    478

    نقل قول: امنیت در C#‎‎

    نقل قول نوشته شده توسط Nima NT مشاهده تاپیک
    با سلام
    خدا رو شکر عملم موفقیت آمیز بود و راحت شدم.
    ولی در مورد جناب موسوی که گفته بودن وقتی ویندوز از حالت تریال در بیاد بهش میگن هک شد !
    این برداشت اشتباه هست , اینجا میگن کرک شد , کرک و مهندسی معکوس دو علم هستن که به موازات هم گسترش پیدا کردن و چون اهدافشون 100% مخرب هست از شاخه هک جدا شدن , چرا که هک امکان مفید واقع شدن هم وجود داره.
    و در مورد جناب ارژنگ خان , بنده ادعایی کردم و انجامش هم دادن , چند نمونه کرک می گذاشتند , کرک کردم و در مواردی سورس رو هم تحویل دادم ,حالا اگر شما مایل هستید که هنوز هم فکر کنید که سورس رو نمیشه در آورد یا اگر هم بشه کاربردی نیست , به خودتون مربوطه. ( البته منظورم همون آنپک می هاست )
    در مورد سوال جناب System32 هم که در مورد md5 پرسیدن , میتونم بگم که md5 هم دقیقا" مثل crc عمل میکنه و کاربرد مشابهی دارن , در حالت کلی میتونم توصیه کنم که بیشتر به جای CRC از MD5 استفاده کنید.
    خوب بستگی داره سورس از کجا بوده و برنامه نویسش کی بوده،ما برنامه های قدرتمندی داریم از جمله برنامه های که خود مایکروسافت با این زمینه می نویسد حتی من برنامه های امنیتی دیدم با دات نت نوشتن و هک هم نشدن حتی کرک هم نمی شن و اصلا نفوز غیر ممکن است به نظر من هیچ کس حتی برنامه نویسان دات نت نمی توانند ادعا کنند ما از تمامی قدرت دات نت برای نوشتن برنامه استفاده کنیم بهتره برید برنامه های را هک کنید که مطرح هستند و لیاقت هک شدن را داشته باشند

  28. #108
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: امنیت در C#‎‎

    نقل قول نوشته شده توسط Nima NT مشاهده تاپیک
    کجا دیدید ؟ به نظر میاد به تکنولوژی های تریال سازی مربوط باشه ( از روی اسمش میگم ).
    نه خیر این برنامه همراه خود ویژوال استدیو اراپه می شود برای درست کردن setup استفاده می شود

  29. #109
    کاربر دائمی آواتار tabatabaeefar
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    زمین خدا
    پست
    259

    نقل قول: امنیت در C#‎‎

    سلام
    ميخواستم بدونم نميشه برنامه رو تا سطح باينري كامپايل كرد؟

  30. #110
    کاربر دائمی آواتار keivan mousavi
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    همه جای ایران سرای من است
    پست
    360

    نقل قول: امنیت در #C

    این کارو چه بخوای چه نخوای کامپیوتر انجام میده

  31. #111
    کاربر دائمی آواتار tabatabaeefar
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    زمین خدا
    پست
    259

    نقل قول: امنیت در C#‎‎

    نقل قول نوشته شده توسط keivan mousavi مشاهده تاپیک
    این کارو چه بخوای چه نخوای کامپیوتر انجام میده
    ولي من متوجه شدم كامپايلر net. مقط تا سطح IL كامپايل ميكنه.

  32. #112
    کاربر دائمی آواتار esmaeily-hosein
    تاریخ عضویت
    مهر 1385
    محل زندگی
    شهر دودها
    پست
    227

    نقل قول: امنیت در #C

    من خودم از برنامه dotnet protector استفاده میکنم .
    یک نرم افزار فرانسوی فوق العاده است . این برنامه کد IL برنامه را Encrypt میکنه و در زمان اجرا با استفاده از Native Class های خودش اونو Decrypt میکنه .
    در ضمن در خودش روش obfuscate را نیز دارد .

  33. #113
    کاربر دائمی آواتار keivan mousavi
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    همه جای ایران سرای من است
    پست
    360

    نقل قول: امنیت در #C

    ولي من متوجه شدم كامپايلر net. مقط تا سطح IL كامپايل ميكنه.
    درسته ولی شما باید توجه کنی هر عملیاتی که بخواهید در کامپیوتر انجام شود در آخر باید به زبان دودویی تبدیل بشود تا قابل درک برای کامپیوتر شود

  34. #114
    کاربر دائمی آواتار tabatabaeefar
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    زمین خدا
    پست
    259

    نقل قول: امنیت در C#‎‎

    نقل قول نوشته شده توسط Armin060 مشاهده تاپیک
    امكان نداره بشه زبان دو دو یی رو به زبان های سطح بالا تبديل كرد. اين از نظر منطقی ثابت شده و چيزی نيست كه با پيشرفت علم امكان پذير بشه. ( البته اين يه تيكه رو از قول Inprise گفتم )
    به نظر ميرسه نميشه از روي كدهاي دودويي به سورس برنامه رسيد.
    ميخواستم بدونم ميشه كامپايلر طوري كدها رو كامپايل كنه كه رسيدن به سورسش غير ممكن باشه؟

  35. #115

    نقل قول: امنیت در C#‎‎

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

    بازهم از دوستانی که مطالب مفیدی بیان کردند معذرت خواهی می کنم.

  36. #116
    کاربر دائمی آواتار system32
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان
    سن
    35
    پست
    381

    نقل قول: امنیت در C#‎‎

    mohammadi4net
    ببخشید که چنین درخواستی دارم.
    بعد یک ساعت علافی فهمیدم این تایپک بار علمی نداره برای جلوگیری از اتلاف وقت دیگران و پر نشدن سایت برنامه نویس با مطالب غیر مفید، این تایپک رو حذف کنید.
    نویسنده تایپک، یک جدید ایجاد کنه و تایپک های مفید که از تعداد انگشت دست هم کمتر هستند رو به آنجا منتقل کنه.
    بازهم از دوستانی که مطالب مفیدی بیان کردند معذرت خواهی می کنم.
    به توجه به درخواست این دوست گرامی و دیگر دوستان این کار انجام شد:

    ************************************************** *********
    سلام به همگی.

    دوستان هدف از راه اندازی این تاپیک این است تا با هم دیگر شیوه های برقراری امنیت در برنامه نویسی به این زبان را بررسی کنیم. چونکه این مبحث بسیار گسترده است ابتدا از این سوال شروع می کنیم که:

    چکار کنیم که دستیابی به کدهای برنامه بوسیله نرم افزارهایی همانند Reflector سخت تر انجام شود؟ |---------------------------------------------------------|

    بقیه سوالات به تدریج در این تاپیک بحث خواهد شد. از دوستان نیز می خواهم در صورتی که سوالی در مورد این موضوع دارند بیان کنند تا با دوستان در جهت رفع آن اقدام گردد.
    پیشاپیش از همکاری شما در این بحث تشکر می کنم.

    ************************************************** *********
    گویا dotfuscator که نسخه ی Community ورژن 4 همراه vs 2008 نصب میشه واسه همین کاره
    ************************************************** *********

    ************************************************** *********
    این نرم افزار در منوی تولز ویژوال استدیو هست کارشم اینه که اسامی متغیرها و فرم ها و کلاس ها رو عوض میکنه. ضدش هم وجود نداره یعنی اگه شما یه متغیر رو Customer گذاشته باشید و بعدی رو Product این نرم افزار اسم اولی رو میکنه A و دومی رو میکنه B همین به همین ترتیب تمام متغیرها و فرم ها و کلاسها رو تغییر نام میده تا نا خونا تر بشه و کار دیگه ای انجام نمیده
    ************************************************** *********

    ************************************************** *********
    نه دوست من فقط اسم متغیرها و کلاس های تعریفی شما رو به صورت خودکار تغییر میده نه کلاسهای پایه دات نت رو
    روش کار: اول باید پروژه اصلی رو ترجمه کنید و فایل exe بسازید و بعد در برنامه Dotfus... کریت نیو پروجکت رو انتخاب میکنید
    حالا باید حداقل دو گزینه رو مشخص کنید یکی فایل های trigger و دیگری مسیر فایل مقصد (فایل ناخوانا شده
    در زبانه trigger فایل اجرایی خودتون رو انتخاب کنیدو بعد بر روی زبانه build کلیک کنید و مسیر مقصد رو وارد کنید.
    بعداز منوی فایل سیو پروجکت رو انتخاب کنید.
    برای انجام کار و ساختن فایل ناخوانا از منوی فایل build رو انتخاب کنید.
    تنظیمات دیگه هم داره اما من همینقدرشو بلدم.
    ************************************************** *********

    ************************************************** *********
    میتونید از Smart Assembly استفاده کنید.
    تاحدی سخت تر از بقیه هست.
    ************************************************** *********

    ************************************************** *********
    میشه از پکرهای موجود استفاده کرد.

    من خودم هنوز روی .net تست نکردم ببینم که آیا پکر جواب میده یا نه.

    ولی Exe های vb و delphi رو باهاش پک کردم.

    از دسترسی این جوجه کرکرها فایل رو محافظت میکنه.

    ولی برای جلو گیری از کرک شدن هیچ راهی وجود نداره(در هیچ زبونی).

    ************************************************** *********

    ************************************************** *********
    دیشب تو اینترنت گشت می زدم با نرم افزار Eazfuscator.NET 2.5 آشنا شدم. این نرم افزار نمرش روی فایل های Exe به نظر من 15 است ولی متاسفانه روی فایل های dll به خوبی جواب نمی ده. (می تونید امتحان کنید) نرم افزار دیگه ای که خواستم امتحان کنم xenocode postbuild 2008 بود ولی متاسفانه نتونستم شماره سریال برنامه مربوطه را بدست آورم. شاید اینجا جای مناسبی برای مطرح کردن این موضوع نباشه. پیشاپیش عذر می خواهم. لطفا اگه کسی شماره سریال این برنامه را داره لطفا به من هم بگه.
    ************************************************** *********

    ************************************************** *********
    هدف آنتی دامپ بودن برنامه نیست که اصلا" نشه ازش دامپ گرفت و ... , هدف این هست که کراکر نتونه به سورس کد برنامه دسترسی داشته باشه که برای این امر هم من Smart Assembly نسخه 4 رو توصیه میکنم که البته باید نسخه کرک شده اون رو پیدا کنید , این برنامه کدها رو به شکلی نامفهوم میکنه که حتی اگر کراکر حرفه ای باشه و بتونه کد اصلی رو استخراج کنه فقط 30% رو میتونه برگردونه.
    ************************************************** *********

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

    ************************************************** *********
    با سلام مجدد
    عنوان تاپیک "امنیت در سی C#‎‎‎" می باشد. این عنوان به نظر بنده بسیار کلی است(با توجه به ماهیت کلمه امنیت). به نظر من ابتدا می بایستی تعریفی جامع از امنیت ارائه می شد و پس از آن به بررسی روش ها و ابزارهای مورد نیاز در جهت رسیدن به امنیت بالاتر در برنامه ها بحث می شد.
    این تاپیک می توانست با عنوانی مثلا" امنیت در برنامه های دات نت " و در بخش کلی تری مطرح گردد. چرا که چهارچوبه زبان های برنامه نویسی که بر پایه پلت فرم دات نت می باشند یکی است.
    اما در متن تاپیک (اولین پست)، اشاره به این شده که به عنوان سوال اول، هدف جلوگیری از سورس شدن برنامه های دات نت می باشد.
    دوستان می توانند در این باره بحث کنند و به یک نتیجه واحد برسند.که فکر می کنم به اندازه کافی در این مورد بحث شده. کاربر ایجاد کننده تاپیک می توانند یک نتیجه گیری کلی در مورد سوال اول انجام داده و نتیجه را به سمع و نظر کاربران برساند.
    پس از آن می توانند به سوال دیگری بپردازند.

    اما در هر صورت توجه به نکات زیر می تواند روند مثبت تری به تاپیک دهد:
    1- پاسخ ها بدون تعصب نسبت به یک زبان، یک فریم ورک و ... باشند
    2-پاسخ ها همراه با مدرک و سند قابل استناد باشند
    3-از فرستادن پاسخ های نا مرتبط مثلا قرار دادن فایل های Crack Me و ... خودداری شود
    4-از کل کل کردن پرهیز شود
    5....
    ********
    موفق باشید
    پ و:
    شاید در اینده ای نزدیک، بسته به روند تاپیک، تاپیک را به محل مناسب تری و با عنوان مناسب تری انتقال دهم
    ************************************************** *********

    ************************************************** *********
    یک public-key certificate یک امضای دیجیتالی است که از سوی یک نهاد یا موسسه ارائه می گردد. بیشتر از این مورد در مرورگرهای اینترنتی که پروتوکل SSL را پشتیبانی می کنند استفاده می گردد.
    X.509 تعیین می کند که چه اطلاعاتی به عنوان امضای دیجیتالی استفاده شود و چگونه آن ها باید نوشته شوند.


    تا حالا دو سوال مطرح شده:

    سوال: چکار کنیم تا جلوی نفوذ به کدهایمان گرفته شود؟

    جواب و نتیجه: به نظر عده ای از دوستان نتیجه های زیر:

    1- به هیچ وجه امکان ندارد که جلوی نفوذ به کدهایمان گرفته شود. فقط می توان کاری کرد که این کار سخت تر انجام شود.
    2- شما می توانید بوسیله نرم افزارهای Obfuscator نفوذ به کدهایتان را مشکل نمایید. این کار با تغییر نام متغیرها و ... برنامه شما انجام می گیرد.

    و به نظر عده ای دیگر در مقابل نتیجه گیری بالا:

    ۱.نتیجه گیری اول بدست آوردن کدها را ساده جلوه میده، در حالی که که حتی یک نفر از کسانی که این نتیجه را قبول دارند نتوانستند کد یک تابع کوچک که در همین تالار فرستاده شده بود را دربیارند، پس نتیجه گیری را باید به این تغییر داد:
    ۱.با اینکه به هیچ وجه امکان ندارد که جلوی نفوذ به کدهایمان گرفته شود، اینکار کار آسانی نیست و یک پروژه کاملا را تبیدل به سورس نمیکنه، فقط یک شبه کد بدست میاد که بعدش هم باید با تلاش زیاد بشه ازش استفاده کرد.

    و حالا نتیجه گیری کلی با خودتون.

    سوال دومی که پرسیده شد:

    سوال: کسی راجع به X509Certificates که در فضای نام Security.Cryptography قرار داره می تونه یه سری اطلاعات در اختیار بقیه قرار بده.

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

    ببینید دوستان روند تاپیک مشخصه.... من آخرین صحبت هام رو قبلا در این پست نوشتم. دیگه حرفی ندارم.

    تا سوال بعدی بای.
    ************************************************** *********

    ************************************************** *********
    اینم یک سری اطلاعات که از سایت های مختلف جمع آوری شده است:

    Certificate يک فايل است که بر روي سرور وب نصب مي شود تا وب سايت را شناسايي کند اين روش براي شناساندن هويت يک شرکت يا تاجر به خريداران آنلاين کمک کرده تا به سايت اعتماد کنند براي بررسي صحت اين ادعا (براي اينکه باور کنيم آنچه ادعا مي کنند هستند ) شرکت ها و وب سايت هاي آنها توسط يک شرکت ثالث مانند Verisign و Thawte .

    وقتي صحت ادعاي شرکت ها و وب سايت آنها مورد تأييد قرار گرفت آنها يک گواهينام? SSL ( به مبلغ چند صد دلار ) به آنها اعطا مي کنند . اين گواهينامه ديجيتال بر روي وب سرور آنها نصب شده و توسط کاربراني که وارد سايت مي شوند قابل ديدن است . شما با نگاه کردن آدرس وب سايت مي توانيد متوجه اين گواهينامه شويد . وب سايت هايي که داراي گواهينامه هستند با HTTPS شروع مي شوند . براي ديدن گواهينامه مي توانيد بر روي آيکون قفل در گوش? مرورگر خود کليک کنيد .

    از آنجا که گواهينامه هاي ديجيتال وضعيت جاري يک شرکت را تأييد مي کنند اعتبار آنها دائمي نيست . گواهينامه هاي SSL معمولاً هر يک تا سه سال منقضي مي شوند . اگر Certificate در موئد مقرر تجديد نشود در حين مرور ، وب سايت شما با يک پيغام مبني بر اينکه گواهينام? اين وب سايت منقضي شده است مواجه مي شود اين خطا به شما و کامپيوتر شما مربوط نمي شود اما به معني آن است که وب سروري که شما به آن متصل شده ايد گواهينامه خود را تجديد نکرده است . هر چند که اين به معني اينکه وب سايت مذکور لزوماً کلاه بردار است ، نيست اما حداقل نشان دهند? آن است که وب سايت خيلي حرفه اي هم نيست . http://www.gamadirect.com/DicDef.aspx?ID=20

    تضميني براي آنکه نرم افزار دريافتي از طريق اينترنت از يک منبع قابل اطمينان است. هر گواهينامه ديجتال اطلاعاتي درباره نرم افزار فراهم مي کند –مثلاً اطلاعات شناسايي تهيه کننده نرم افزار و تاريخ ثبت آن بوسيله مسئول صدور گواهينامه(CA)، و نيز ميزان مقاومت در برابر سرقت.


    کارت شناسايي کاربر، يا " گواهينامه استفاده" در فضاي کامپيوتري. گواهينامه هاي ديجيتال که توسط مسئولين صدور گواهينامه صادر مي شوند، نوعي اعتبار الکترونيکي هستند که درستي و اعتبار يک کاربر را در اينترنت و اينترانت ها تائيد مي کنند. رسمي گواهينامه هاي ديجيتال با استفاده از تکنولوژي رمزگذاري عمومي، انتقال Online و قانوني اطلاعات محرمانه، پول يا ديگر اطلاعات حساس را تضمين مي کنند.

    دارنده هر گواهينامه ديجيتال دو کليد دارد (رشته اي از اعداد): يک کليد خصوصي که تنها کاربر براي "امضاي" پيام هاي ارسالي و رمزگشايي پيام هاي دريافتي در دست دارد، و يک کليد عمومي براي استفاده اشخاص ديگر، جهت رمز گذاري داده ها به منظور ارسال به يک کاربر خاص. http://www.gamadirect.com/DicDef.aspx?ID=239

    امضای دیجیتال
    امضای دیجیتال ، ماحصل رمزنگاری مقدار Hash داده مبادله شده بوده و روشی ایمن به منظور امضای الکترونیکی اطلاعات با استفاده از کدها ویا علائمی است که از لحاظ الکترونیکی معادل یک امضای دستی می باشند. امضای دیجیتالی، مبتنی بر ترکیب ایده سنتی Hashing داده و رمزنگاری کلید عمومی است .یک مرکز معتبر صدور گواهینامه های دیجیتال ، گواهینامه های دیجیتالی صادرشده را به کلیدهای عمومی مربوط به هر یک نسبت می دهد . فرآیند امضاء ، مخالف فرآیند رمزنگاری است : از کلید خصوصی به منظور رمزنگاری Hash و از کلید عمومی برای بررسی صحت امضاء ( رمزگشائی ) استفاده می شود .

    فرآیند امضای داده توسط فرستنده پیام :

    •دریافت پیام اولیه و محاسبه یک مقدار Hash با استفاده از یک الگوریتم hashing
    •رمزنگاری Hash توسط یک تابع رمزنگاری و اعمال کلید خصوصی توسط فرستنده پیام ( پیام اولیه به همراه مقدار Hash رمز شده ، یک پیام دیجیتالی امضاء شده را تشکیل می دهند ) .
    •ارسال پیام دیجیتالی امضاء شده برای گیرنده

    فرآیند بررسی صحت امضاء ارسالی همراه داده :

    •پس از دریافت پیام توسط گیرنده ، در ابتدا ، Hash رمز شده با استفاده از کلید عمومی فرستنده رمزگشائی می گردد ( Hash رمزگشائی شده ) .
    •محاسبه محلی مقدار Hash پیام ارسالی با استفاده از یک الگوریتم Hashing
    •مقایسه نتایج بدست آمده در مراحل قبل : Hash رمزگشائی شده با مقدارمحلی Hash مقایسه و در صورتیکه نتیجه یکسان باشد ، صحت و اعتبار پیام ارسال شده توسط فرستنده تائید می گردد .

    لازم است به این موضوع دقت شود که ضرورتی به رمزنگاری محتوی پیام وجود نداشته و صرفا" امضای دیجیتالی رمز می گردد( مگر اینکه شرایط خاصی در ارتباط با محرمانگی محتوی وجود داشته باشد که در چنین مواردی می بایست محتوی نیز رمزنگاری گردد ) . در صورتیکه به هر دلیلی محتوی پیام توسط افراد غیرمجاز تغییر داده شود ، Hash رمز شده اولیه با مقداری که بصورت محلی مجددا" محاسبه می گردد ، مطابقت نداشته و صحت امضای فرستنده تائید نمی گردد . همچنین ، ایجاد یک امضای تقلبی عملا" غیرممکن است ، چراکه افراد غیر مجاز آگاهی لازم در ارتباط با کلید خصوصی را دارا نمی باشند ( رمزنگاری مقدار محاسبه شده Hash با در نظر گرفتن کلید خصوصی فرستنده انجام خواهد شد ) .

    یک گواهینامه چیست ؟
    گواهیینامه دیجیتال ،رکوردی منحصربفرد مشتمل بر اطلاعاتی ضروری به منظور بررسی هویت یک فرد و یا یک سازمان می باشد . گواهینامه های دیجیتال از فرمت استاندارد X.509 تبعیت می نمایند . استاندارد فوق ، برخی از ملزومات موردنیاز گواهینامه را تشریح می نماید : فرمت نسخه استفاده شده توسط گواهینامه ، شماره سریال گواهینامه ، شناسه الگوریتم استفاده شده به منظور تائید گواهینامه ،مرکز صادرکننده گواهینامه ، تاریخ صدور و سررسید اعتبار گواهینامه ، مشخصات صاحب گواهینامه ، کلید عمومی صاحب گواهینامه ، امضای دیجیتال مرکز صادر کننده گواهینامه .
    هر یک از فیلدهای اطلاعاتی فوق متناظر با فیلدهای خاصی در ساختار تعریف شده برای یک گواهنیامه می باشد. گواهینامه ها ، ممکن است شامل اطلاعات دیگری نظیر آدرس پستی ، آدرس پست الکترونیکی ، نام کشور ، سن ، جنسیت نیز باشند . اطلاعات اضافی فوق اختیاری بوده و بستگی به نوع خاص گواهینامه دارد .

    مراکز صدور گواهینامه (CA:Certificate Authority

    مراکز صدور گواهینامه که از آنان با عنوان CA نیز نام برده می شود ،مراکزی امین و معتبر بوده که مسئولیت تطبیق کلیدها ی عمومی به منظور شناسائی و تائید هویت را برعهده دارند. به عبارت دیگر ، مراکز فوق تعلق یک کلید عمومی خاص به یک کاربر معتبر را تائید می نمایند . مراکز CA ، مسئولیت صدور ، ابطال و تمدید یک گواهینامه را برعهده دارند. مراکز CA ،همچنین می بایست رویه های بسیار دقیق و سختگیرانه ای را به منظور تائید افراد و سازمان ها ئی که درخواست گواهنیامه می نمایند را نیز دنبال نمایند .بدین ترتیب ، پس از تائید یک فرد و یا سازمان توسط یک مرکز معتبر و امین CA ، امکان تطبیق کلید ( انطباق کلید عمومی با کلید خصوصی مرتبط با آن ) آنان از یک مرکز ایمن ، فراهم می گردد. عملکرد چنین مراکزی نظیر دفاتراسناد رسمی در اینترنت است .
    در ساختار گواهینامه ، دو فیلد اطلاعاتی مرتبط با CA نیز وجود دارد : نام صادرکننده گواهینامه و امضای دیجیتالی صادرکننده . وجود فیلدهای فوق در گواهینامه صادر شده ، تضمین لازم در خصوص تعلق کلید عمومی به صاحب آن را ارائه می نماید.بدین ترتیب مسئله امین بودن از افراد به مراکز CA منتقل می گردد.وجود یک مرکز امین و معتبر ، از جمله مهمترین دلایل حضور CA ، محسوب می گردد . در حال حاضر ، سازمان های متعددی ، اقدام به صدور گواهینامه می نمایند و هر روز نیز تعداد آنان افزایش می یابد . زمانیکه دو کاربر و یا دو سازمان قصد مبادله گواهینامه را داشته باشند ، هر یک از آنان می تواند هویت طرف مقابل خود را با استفاده از تائیدیه مراکز CA و گواهینامه های صادرشده توسط مراکز CA ، انجام دهد. هر گواهینامه شامل کلید عمومی مربوط به خود نیز می باشد ، بنابراین می توان از آن به منظور رمزنگاری داده برای ارسال به صاحب گواهینامه استفاده نمود. گواهینامه ها همچنین شامل امضای دیجیتال مرکز CA صادرکننده گواهینامه نیز می باشند. یک امضای دیجیتال با استفاده از کلید خصوصی مولف سند ایجاد می گردد . بنابراین به منظور بررسی یک گواهینامه که توسط یک مرکز CA خاص تائید شده است ، به کلید عمومی مرکز CA نیز نیاز خواهد بود. کلید ها ی عمومی اکثر مراکز CA به همراه مرورگرها ، برنامه های پست الکترونیکی و سایر پکیج های نرم افراری توزیع می گردد .


    نمایش محتویات یک Certificate:

    شما بوسیله قطعه کد زیر می توانید محتویات یک فایل Certificate را مشاهده کنید:

    کد:

    string Certificate = "path";// Load the certificate into an X509Certificate object.X509Certificate cert = newX509Certificate(Certificate);// Get the value.string resultsTrue = cert.ToString(true);// Display the valueMessageBox.Show(resultsTrue);

    برای دریافت اطلاعات بیشتر می توانید از کلاس زیر استفاده نمایید:
    X509Certificate2
    ************************************************** *********

    ************************************************** *********
    دوستان کسی می تونه توضیح بده ClickOnce چیه و به چه دردی می خوره؟
    ************************************************** *********

    ************************************************** *********

    نقل قول:
    ClickOnce applications are based on the .NET Framework and are subject to code access security constraints. For this reason, it is important that you understand the implications of code access security and write your ClickOnce applications accordingly.
    Code access security is a mechanism in the .NET Framework that helps limit the access that code has to protected resources and operations. You should always configure the code access security permissions for your ClickOnce application to include only those permissions that your application requires. Visual Studio provides the tools necessary to determine and configure the permission set for your application.

    ClickOnce is a deployment technology that allows you to create self-updating Windows-based applications that can be installed and run with minimal user interaction. ClickOnce deployment overcomes three major issues inherent in deployment:
    #

    Difficulties in updating applications. With Microsoft Windows Installer deployment, whenever an application is updated, the user must reinstall the entire application; with ClickOnce deployment, you can provide updates automatically. Only those portions of the application that have changed are downloaded, then the full, updated application is reinstalled from a new side-by-side folder.
    #

    Impact to the user's computer. With Windows Installer deployment, applications often rely on shared components, with the potential for versioning conflicts; with ClickOnce deployment, each application is self-contained and cannot interfere with other applications.
    #

    Security permissions. Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnce deployment allows non-administrative users to install and grants only those Code Access Security permissions necessary
    for the application.

    برای اطلاعات بیشتر به اینجا برید
    ************************************************** *********

  37. #117
    کاربر دائمی آواتار tabatabaeefar
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    زمین خدا
    پست
    259

    نقل قول: امنیت در C#‎‎‎‎

    نقل قول نوشته شده توسط alireza_tavakol مشاهده تاپیک
    توی این فوروم جای این کار نیست
    کافی شما توی تالار مربوطه تاپیک crack me بگذارید و 30 دقیقه بعد مراجعه کنید تا نتیجه رو ببینید
    سلام دوست عزيز
    من چند وقت پيش يه برنامه توي تالار امنيت گذاشتم كه به توصيه Nima NT عزيز از {smartassembly} استفاده كردم.
    30 دقيقه كه سهله ، بعد از گذشت بيش از 40 روز هنوز هيچ خبري نشده!
    https://barnamenevis.org/showthread.php?t=178658

  38. #118
    کاربر دائمی آواتار tabatabaeefar
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    زمین خدا
    پست
    259

    نقل قول: امنیت در C#‎‎

    نقل قول نوشته شده توسط keivan mousavi مشاهده تاپیک
    هک در زبان انگلیسی به معنی کلنگ هستش و در کامپیوتر هر کاری که واسه خراب کاری باشه بهش هک مبگن
    سلام دوست عزيز
    بد نيست به اين تاپيك يه سري بزنيد.
    https://barnamenevis.org/showthread.php?t=179584
    موفق باشيد.

صفحه 3 از 3 اولاول 123

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

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