PDA

View Full Version : سوال: امنیت الگوریتم های رمز نگاری؟



moferferi
جمعه 27 شهریور 1388, 11:50 صبح
سلام
دوستان من یه سورسی از codeproject دانلود کردم برای encrypt و decrypt کردن یک رشته متنی.خوب حالا سوالم اینه که این روش به ازای کلمه ali مفدار b+vLm/Yw2dc= میده.
خوب حالا این چه امنیتی میتونه داشته باشه؟چون اگه کسی روشی که من باهاش این رشته را encrypt کردم را بدونه راحت میتونه اونا decrypt کنه.
ایا من باید خودم یک الگوریتم بنویسم تا کسی ازش سر درنیاره؟
یا از روش های ترکیبی (مثلا چند الگوریتم با هم )استفاده کنم؟

debugger
جمعه 27 شهریور 1388, 11:58 صبح
اگر اگوریتم اینکریپت را خودت نوشتی که می تونی دکریپتشم بنویسی(دیگران هم اگر کد های اینکریپت شما را بدونن می تونن پیدا کنن)

ولی اگر از hash هایی مثل MD5 یا RC4 یا .... استفاده کنی . از مقدار هش شده نمیشه به مقدار قبل از هش رسید

یعنی برگشت پذیر نیست

moferferi
جمعه 27 شهریور 1388, 12:10 عصر
ممنون.چور نمیشه به مقدار قبل از هش برگشت.پس چطور از مقدار هش شده استفاده کنیم؟

Vahid_moghaddam
جمعه 27 شهریور 1388, 13:53 عصر
فرض کنید شما کلمه عبور رو به صورت هش شده ذخیره کردید. کافیه وقتی کاربر کلمه عبور رو وارد می کنه، اون رو هش کنید و دو مقدار هش شده رو با هم مقایسه کنید. برای امنیت بیشتر در روش های رمزنگاری از ترکیب اونها استفاده کنید.

Sajjad.Aghapour
جمعه 27 شهریور 1388, 15:20 عصر
ولی اگر از hash هایی مثل MD5 یا RC4 یا .... استفاده کنی . از مقدار هش شده نمیشه به مقدار قبل از هش رسید

یه نگاهی به نرم افزار هایی مثل cain بندازید می بینید که میشه این مقادیر رو هم ک ر ک کرد......

Amir Oveisi
جمعه 27 شهریور 1388, 15:42 عصر
MD5 و SHA1 اره
اما SHA2 به اين سادگي ها نيست و تقريبا غيرممكنه

cardano7
پنج شنبه 06 آبان 1389, 13:30 عصر
نرم افزاری دارید که MD5 رو هک کنه؟
در ضمن، خود یاهو از چه روشی استفاده می کنه؟

Salar Ashgi
پنج شنبه 06 آبان 1389, 14:23 عصر
نرم افزاری دارید که MD5 رو هک کنه؟

ببینید MD5 یه متودی جهت Hashing یک متن ورودی است و نه چیز دیگری که بتوان آنرا هک نمود ، چون الزاما واژه هک معنای دیگری دارد ، در مبحث رمز نگاری Encrypt و Decrypt به معنای رمز گذاری و رمز گشایی استفاده میشوند . در ضمن گفتنی است بحث Cryptography یا رمز نگاری به زیر شاخه های مختلفی
تقسیم میشود ، جهت مطالعه بیشتر :
http://fa.wikipedia.org/wiki/%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C

موفق باشید ./

debugger
پنج شنبه 06 آبان 1389, 17:31 عصر
یه نگاهی به نرم افزار هایی مثل cain بندازید می بینید که میشه این مقادیر رو هم ک ر ک کرد......

میشه بگید مقدار قبل از هش شدن رشته زیر چی بوده ؟؟

چه رشته ای هش شده که اینی که می بینید شده ؟؟

C1D38D6EA399FC3D6962728B42F8A2C8

( راهنمایی : با الگوریتم MD5 هم هش کردم )

================================================

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

Salar Ashgi
پنج شنبه 06 آبان 1389, 17:48 عصر
لطفا همه ی دوستانی که فکر می کنند از مقدار هش شده میشه به مقدار اصلی رسید بیان اینجا این رشته ی هش شده را به مقدار اولیه برگردونن

دوست عزیز ، لطفا" سعی نکنید Off-Topic بحث بشود ؛ اصولی که در بحث رمز نگاری هست اینه که الگوریتم های هشینگ عموما بصورت یکطرفه اند ، یعنی فقط از رشته اصلی میتوان به رشته رمز شده
رسید و نه بالعکس ؛ هر چند ممکنه در بعضی حالات خاص یکسری Exception هایی وجود داشته باشند .

موفق باشید ./

Amir Oveisi
پنج شنبه 06 آبان 1389, 20:07 عصر
میشه بگید مقدار قبل از هش شدن رشته زیر چی بوده ؟؟

چه رشته ای هش شده که اینی که می بینید شده ؟؟

C1D38D6EA399FC3D6962728B42F8A2C8

( راهنمایی : با الگوریتم MD5 هم هش کردم )

================================================

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

دوست گرامی الگوریتم های SHA-1 و MD5 اثبات شده که Collision resistant نیستند. یعنی ممکن هست که دو ورودی متفاوت دارای مقدار hash شده یکسان باشند و با حملات Brute Force قابل شکستن هستند.
این رو هم بخونید:
In an attack on MD5 published in December 2008, a group of researchers used this technique to fake SSL certificate validity. US-CERT of the U. S. Department of Homeland Security said MD5 "should be considered cryptographically broken and unsuitable for further use," and most U.S. government applications will be required to move to the SHA-2 family of hash functions after 2010

یک سری هم به این سایت بزنید: http://www.md5decrypter.com/

برای اطلاعات بیشتر به لینک زیر مراجعه کنید : http://en.wikipedia.org/wiki/MD5_Hash

موفق باشید

debugger
پنج شنبه 06 آبان 1389, 20:25 عصر
خب منظور من هم همین هست . همه ی الگوریتم های هش یک طرفه هستند . ولی دوستان از واژه کرک استفاده می کنند که اصلا در این موضوع صادق نیست

بحث Decrypt و Crack کاملا مجزاست

وقتی نرم افزاری مثل cain پسورد مثلا یک نرم افزاری را بهتون نشون میده ، که اون نرم افزار هم مثلا از الگوریتم md5 برای محافظت استفاده میکرده دلیل بر این نیست که نرم افزار Cain توانسته هش md5 را decrypt کنه !!! یا به اصطلاح شما کرک کنه

شما فرض کن یک نرم افزار برای محافظت اومده از هش md5 استفاده کرده . خب بالاخره یک جایی پسورد اصلی به تابع hash ارسال میشه و بعد هش میشه . و پسورد به طور مادر زادی که هش نبوده که

خب نرم افزار cain میاد جایی که پسورد اصلی به تابع hash فرستاده میشه وای می ایسته و یقه پسورد اصلی را میگرد و نمی گذارد به تابع هش پاس داده شود . اینطوری تصور میشه که cain توانسته رشته هش شده را به حالت اول برگردونه به این کار در اصطلاح علم کرکینگ میگن Serial Fishing

================================================== ===

در مورد اصطلاح کرک : فرض کنید برنامه ای نوشتیم که برای ورود نیاز به پسورد دارد وقتی کاربر پسورد را وارد میکنه و هش شده پسورد وارد شده توسط کاربر را با هش شده پسورد اصلی مقایسه می کنیم در صورت مساوی بودن اجازه ورود داده میشه و در صورت غلط بودن خیر

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

در این مورد هم باز هم الگوریتم هش بازگشایی نشده و کرک شدن برنامه دلیل بر decrypt شدن رشته هش نیست

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

============

اگر هم به امید Brute Force بشینیم که باید عمر حضرت نوح را قرض بگیریم . این جملات همشون نسبی هستند و تا حالا با قاطعیت در مورد اینا بحث نشده

اگر Brute Force روش ایده ال بود که الان هیچ فایل rar پسورد داری نداشتیم. این قضیه brute Force برای الگوریتم های هش هم این چنین هست . وقتی میخواهین یک هش را به حالت اولیه برگردونید مثل اینه که نشستین با brute force پسورد فایل rar را بدست بیارین (عمر حضرت نوح)

Amir Oveisi
جمعه 07 آبان 1389, 00:26 صبح
به این جمله دقت کنید:
US-CERT of the U. S. Department of Homeland Security said MD5 "should be considered cryptographically broken and unsuitable for further use,"

debugger
جمعه 07 آبان 1389, 10:20 صبح
به این جمله دقت کنید:
US-CERT of the U. S. Department of Homeland Security said MD5 "should be considered cryptographically broken and unsuitable for further use,"

بله حق با شماست

ممنونم

cardano7
شنبه 08 آبان 1389, 17:40 عصر
ببینید MD5 یه متودی جهت Hashing یک متن ورودی است و نه چیز دیگری که بتوان آنرا هک نمود ، چون الزاما واژه هک معنای دیگری دارد ...
این اصطلاح رو قبل از همه، خود دوست شما به کار برد:

یه نگاهی به نرم افزار هایی مثل cain بندازید می بینید که میشه این مقادیر رو هم ک ر ک کرد......





به این جمله دقت کنید:
US-CERT of the U. S. Department of Homeland Security said MD5 "should be considered cryptographically broken and unsuitable for further use,"
خود شما این جمله رو به چه شکل تفسیر می کنی؟

اینکه میگند روش MD5 جدیدا شکسته شده، تا چه حد واقعیت داره؟ و دقیقا چه اتفاقی افتاده؟


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

gholamrezaa
دوشنبه 01 آذر 1389, 15:09 عصر
سلام.
در بحث اينکه گفته مي شود يک الگوريتم هش شکسته شده است به اين منظور نيست که بتوانيم بطور عملي براي آن، با داشتن مقدار هش، مقدار پيام ورودي را بدست آوريم. يا بدين معني نيست که بتوانيم دو پيام متفاوت باهم پيدا کنيم که مقدار هش يکساني داشته باشند.
روي اين توابع هش يک سري حملات عام و حملات اختصاصي صورت مي گيرد که پيچيدگي بالايي دارند و گاها در حد تيوري مطرح مي شوند. گفته مي شود که اگر روي يک تابع هش حملات اختصاصي کارآتر از حملات عام باشد در اينصورت هش شکسته شده است. در حاليکه شايد در عمل هيچ نگراني بابت استفاده از اين الگوريتم نباشد.
براي مثال تابع هش md4 و md5 بطور عملي شکسته شده اند ولي توابع هش sha-0 و sha-1 بصورت تيوري شکسته شده اند.:متفکر:

dr_jacky_2005
دوشنبه 01 آذر 1389, 15:20 عصر
میشه بگید مقدار قبل از هش شدن رشته زیر چی بوده ؟؟

چه رشته ای هش شده که اینی که می بینید شده ؟؟

C1D38D6EA399FC3D6962728B42F8A2C8

( راهنمایی : با الگوریتم MD5 هم هش کردم )

================================================

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

دوست عزیزمون راست گفت.
با cain میشه.

الآن این هش رو دادین که بگین نمیشه!؟

منم به شما میگم که یه ابر رایانه بدین،کمتر از 3 دقیقه با همین cain دیکد کنم.:کف:

Amir Oveisi
دوشنبه 01 آذر 1389, 20:18 عصر
در بحث اينکه گفته مي شود يک الگوريتم هش شکسته شده است به اين منظور نيست که بتوانيم بطور عملي براي آن، با داشتن مقدار هش، مقدار پيام ورودي را بدست آوريم. يا بدين معني نيست که بتوانيم دو پيام متفاوت باهم پيدا کنيم که مقدار هش يکساني داشته باشند.
پس منظور چیست؟


روي اين توابع هش يک سري حملات عام و حملات اختصاصي صورت مي گيرد
منظورتون از حملات عام و اختصاصی چیست؟ لطفا معادل انگلیسی آن ها را بفرمایید تا منظورتان شفاف تر شود.


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

Amir Oveisi
دوشنبه 01 آذر 1389, 20:42 عصر
A collision attack (http://en.wikipedia.org/wiki/Collision_attack) exists that can find collisions within seconds on a computer with a 2.6Ghz Pentium4 processor (complexity of 2^24.1)

there is also a chosen-prefix collision attack that can produce a collision for two chosen arbitrarily different (http://en.wikipedia.org/wiki/Chosen-prefix_collision_attack) inputs within hours, using off-the-shelf computing hardware (complexity 2^39

In April 2009, a preimage attack (http://en.wikipedia.org/wiki/Preimage_resistance) against MD5 was published that breaks MD5's preimage resistance. This attack is only theoretical, with a computational complexity of 2^123.4 for full preimage and 2^116.9 for a pseudo-preimage.

In 2005, researchers were able to create pairs of PostScript (http://en.wikipedia.org/wiki/PostScript)documents and X.509 (http://en.wikipedia.org/wiki/X.509)certificates with the same hash. Later that year, MD5's designer Ron Rivest wrote, "md5 and sha1 are both clearly broken (in terms of collision-resistance),"


جهت اطلاعات بیشتر به http://en.wikipedia.org/wiki/MD5#Security مراجعه نمایید.

درست است که Preimage Attack بصورت تئوری شکسته شده است اما همین امر نیز برای عدم استفاده از این الگوریتم کافی است.
Collision Attack ها هم که دیگه فکر نکنم احتیاج به توضیح داشته باشند و متن به اندازه کافی گویا هست.

موفق باشید

fidelio
دوشنبه 01 آذر 1389, 23:27 عصر
براي مثال تابع هش md4 و md5 بطور عملي شکسته شده اند ولي توابع هش sha-0 و sha-1 بصورت تيوري شکسته شده اند.:متفکر:

این حرف اصلا حرفه ای نیست.
نگاه کن به:
http://www.schneier.com/blog/archives/2005/02/sha1_broken.html

حملات تئوری و عملی چیه؟ :اشتباه:
ما یک سری حملات محدود داریم که توی اون حالت های خاص الگوریتم شکسته می شه، یا حملات اصلی که کل الگوریتم در تمام حالت ها شکسته می شه و sha-1 و sha-0 با حملات اصلی شکسته شد یعنی بی خیال برادر!

gholamrezaa
سه شنبه 02 آذر 1389, 13:26 عصر
دوست عزيز،
براي پيدا کردن مقدار پيام مربوط به يک مقدار هش (در يک تابع هش) نمي توان بصورت برگشت پذير عمل کرد. علاوه بر اين چون دامنه ورودي اين تابعها بسيار بزرگ است بنابراين نمي توان با استفاده از جستجوي تمام وروديها نيز پيام مربوط به مقدار هش را پيدا کرد. حتي با ابرکامپيوترها هم نمي توان اين کار را انجام داد.
منظور از حملات عام (generic attack)، حملاتي است که روي هر تابع هشي مي تواند صورت بگيرد. براي مثال اگر يک تابع هش خروجي با تعداد بيت خيلي کمتري داشته باشد در اينصورت با جستجوي جامع مي توان يک پيام پيدا کرد که هش آن برابر با مقدار مورد نظر باشد. در اينصورت گفته مي شود که اين تابع هش در برابر حمله عام جستجوي جامع آسيب پذير است. اما منظور از حمله خاص (Special Attack يا Dedicated Attack) ، حمله اي است که مي تواند روي يک تابع هش کارساز باشد ولي در عين حال روي يک تابع هش ديگر نه.

پيچيدگي محاسباتي براي پيدا کردن پيام يک مقدار هش که اندازه آن n بيت است، در يک روش حمله عام برابر با دو بتوان n بار محاسبه اين تابع هش است. (n معمولا بزرگتر از 128 است).
حال اگر حمله خاصي ثابت کند که براي پيدا کردن پيام مربوط به مقدار هش مشخص n بيتي ، پيچيدگي کمتر از دو بتوان n لازم است در اينصورت اين حمله موفقيت آميز بوده و گفته مي شود که تابع هش شکسته شده است. اما ممکن است اين پيچيدگي محاسباتي کاهش يافته باز هم آنقدر باشد که نتوان با ابر کامپيوترها محاسبه کرد (امروزه تعداد محاسبات بيش از دو بتوان 80 را دست نيافتني در نظر مي گيرند(
موفق باشيد

saeidnor
شنبه 27 آذر 1389, 22:06 عصر
درسته برگردوندن hash سخته ولی چه لزومی دازه حتما بخوای برگردونی... با Rainbow Table ها در (O(1 میشه متن اصلی رو پیدا کرد. نمونش سایت زیر:
http://www.stringfunction.com/md5-decrypter.html
تقریبا تمام رشته های انگلیسی رو به اصطلاح بر می گردونه
اینم برای SHA1
http://www.stringfunction.com/sha1-decrypter.html :بامزه:

tooraj_azizi_1035
دوشنبه 29 آذر 1389, 08:55 صبح
سلام،
به نظر شما روشی که می گم امنیت الگوریتم رو تضمین می کنه یا نه. ابتدا یک فرمول ریاضی تصادفی رو تولید میکنیم. در این فرمول عملگرها تصادفی تولید می شن یعنی از بین * یا + یا - یا تقسیم یا توابع دلخواه در یک حلقه هر بار یکی از آنها انتخاب می شود. سپس داده ها توسط این فرمول رمز می شوند. داده های رمز شده در کنار رشته فرمول تصادفی قرار می گیرند و سپس با یک الگوریتم کل این رشته رمز و ارسال می شود. گیرنده با همان الگوریتم این رشته را دیکد می کند و با استفاده ار فرمول رمز ریاضی تصادفی رشته رمز شده توسط آن فرمول را دیکد می کند.
نمونه فرمول ریاضی تصادفی: x*2+8*9-4/10*x^2