رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
الگوریتم انکد / دیکد AES
#1
سلام دوستان میشه لطفا یه نمونه الگوریتم AES واسه انکد کردن مستقیم متن هام توی کد زیر معرفی کنین ؟ 
میخام با وارد کردن متن ، متن انکد و روی سرور ذخیره بشه . ممنون 

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>

<body>
<?php
  if(isset($_POST['submit'])){
  $imgbinary = $_FILES['MyFile']['tmp_name'] .filesize($_FILES['MyFile']['tmp_name']);
  $base64Data=base64_encode($imgbinary);
  $title =$_POST['title'];
  //echo $base64Data;
    $connection=mysqli_connect("localhost","ca_user","mona1234","ca_db");
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    mysqli_set_charset($connection,"utf8");

    //$result = mysqli_query($connection, "select * from flowers order by ID DESC limit $countt");

    $sql="INSERT INTO flowers (ID,Title) VALUES(NULL,'".$title."','".$base64Data."')";
  // echo $sql;

    $Result =  mysqli_query($connection,$sql) ;//or die( mysqli);//print"Execute Error!";
    //$id= $ds->ExequteQueryWithReturnId($sql);
    if($Result>0){
        print("Sucess");
    }else{
       echo $Result;
    }
}
?>
</body>
</html>
پاسخ
تشکر شده توسط:
#2
این کلاس رو ببینید:
class AES
{
    private $key;
    
    public function __construct($key)
    {
        $this->key = md5($key);
    }
    
    public function encrypt($value)
    {
        return rtrim(
            base64_encode(
                mcrypt_encrypt(
                    MCRYPT_RIJNDAEL_256,
                    $this->key,
                    $value,
                    MCRYPT_MODE_ECB,
                    mcrypt_create_iv(
                        mcrypt_get_iv_size(
                            MCRYPT_RIJNDAEL_256,
                            MCRYPT_MODE_ECB
                        ),
                        MCRYPT_RAND
                    )
                )
            ),
            "\0"
        );
    }

    public function decrypt($value)
    {
        return rtrim(
            mcrypt_decrypt(
                MCRYPT_RIJNDAEL_256,
                $this->key,
                base64_decode($value),
                MCRYPT_MODE_ECB,
                mcrypt_create_iv(
                    mcrypt_get_iv_size(
                        MCRYPT_RIJNDAEL_256,
                        MCRYPT_MODE_ECB
                    ),
                    MCRYPT_RAND
                )
            ),
            "\0"
        );
    }
}

یه مثال از نحوه‌ی استفاده از کلاس:
require_once 'AES.php';
$aes = new AES('ncis.ir');
echo '<p>' . $aes->encrypt('123456') . '</p>';
echo '<p>' . $aes->decrypt('J8UJXH42hCiZbk+qqMaWTWfjhVFM7xy9EGxlhP+HvhA=') . '</p>';

این هم نمونه‌ی خروجی:
J8UJXH42hCiZbk+qqMaWTWfjhVFM7xy9EGxlhP+HvhA=
123456
پاسخ
تشکر شده توسط: mona.ahmadi
#3
ممنون استاد ولی آیا امکان داره بگین چطوری باید تنظیمش کنم که فیلد title  که توی کد خودم وجود داره ، رو به انکدری که شما نوشتین وصلش کنم ؟ آیا این الگوریتم قابلیت دیکد شدن سمت اندروید رو داره ؟ 
ممنون از راهنماییتون .
پاسخ
تشکر شده توسط:
#4
اوف این کد پر از اشکاله!
با استانداردهای تخصصی امروزی کاملا غیرحرفه ایه و امنیتش از چیزی که میتونست باشه به مراتب پایین تر اومده (میتونه به شکسته شدن رمزها منجر بشه).
اشکالاتش اینهاست:
برای تبدیل پسورد به کلید از md5 استفاده کرده که البته خیلی ها بخصوص در گذشته این کار رو میکردن، ولی امروزه اصلا اصلا توصیه نمیشه و هیچ فرد متخصصی این کار رو انجام نمیده به دلایلی که دیگه توضیحش طولانی میشه و اینجا درج نمیکنم.
تازه! باید پارامتر raw_output اش رو هم فعال میکرد، چون کلید الگوریتم های رمزنگاری باید باینری باشه. خود این اشکال میتونه باعث پایین آمدن امنیت به میزان زیادی بشه، که شرحش بماند که چرا.
اشکال دوم اینکه این الگوریتم مجهز به MAC نیست. این هم اشکال نسبتا بزرگی است، چون تغییرات و دستکاری های کور در داده ها تشخیص داده نمیشه. الگوریتم های رمزنگاری جدید همه دارای MAC هستن، ولی یه زمانی قدیم ترها این مسئله اکثرا مورد غفلت واقع شده بود.
اشکال بعدی اینه که از مد ECB استفاده کرده که یک مد قدیمی و ضعیف هست که دیگه تقریبا هیچکس ازش استفاده نمیکنه. البته اشکال این مد فقط موقعی هست که طول داده ها از طول یک بلاک الگوریتم رمزنگاری بیشتر میشه و تنها در حالتی میشه ازش استفاده کرد که مطمئن باشیم طول داده ها از یک بلاک بیشتر نمیشه، ولی بهرصورت امروزه تقریبا هیچ فرد مطلعی ازش استفاده نمیکنه، چون با وجود مدهای بی نقص مثل CBC استفاده از این مد حکایت روزهء شک داره و در صورت تغییرات در برنامه و شرایط دیتا هم به مشکلی نمیخوریم.

جدا این کد رو از کجا آوردید؟ بنظرم یا خیلی قدیمی هست یا توسط فردی بدون کمترین تخصص و اطلاعات در علم رمزنگاری مدرن طراحی شده.
پاسخ
تشکر شده توسط: mona.ahmadi , YN97
#5
سلام ، من یه کد میخام به مد CBC و یا هر مدی که قدرتمند باشه ، و میخام واسه اون قسمت title  که توی کد خودم نشون دادم یه انکریپتر بسازم که موقت وارد کردن متن ، انکریپت و ذخیره بشن توی جدول
پاسخ
تشکر شده توسط:
#6
mona.ahmadi نوشته: سلام وقت بخیر ، ممنون از راهنماییتون میشه لطفا یه نمونه کد در مد CBC به من بدین ؟
الان سر کارم، بعدا سر فرصت باید یه نمونه آماده کنم ارائه کنم. البته اصل کدش که آماده است ولی باید توضیحات و تست براش درست کنم طوری که بفهمید و بتونید استفاده کنید. کدهای خود بنده دو سه بار دچار تکامل شده و هر بار بهتر و قوی ترش کردم. آخرین نسخه اش رو هنوز توی وبلاگم هم نذاشتم ظاهرا (برای یک برنامهء شخصی خودم درست کردم).
البته مسلما حجم کد، حجم رمز خروجی، و میزان پردازشی که یک چنین کد حرفه ای نیاز داره با مثالی که آقای شهرکی درج کرد قابل مقایسه نیست، اما بهرحال امنیت واقعی و کافی فقط به این شکل بدست میاد؛ یعنی حداکثری که میتونیم براش تلاش کنیم و حداقل پشتوانهء علمی و تخصصی و محاسبات لازم رو داشته باشه، وگرنه هیچوقت در امنیت تضمین قطعی وجود نداره؛ ضمنا میگن امنیت مثل یک زنجیره که کافیهء یک حلقهء ضعیف درش باشه تا کل زنجیر از هم گسسته بشه. مثلا شما هرچی رمزنگاری کن، با قوی ترین الگوریتم ها، ولی جای دیگه برنامت حفره ای باشه یوقت میبینی که همهء این تلاش و رمزنگاری عملا بی فایده میشه! بخاطر همین در برنامه های افراد عادی اصولا این مسائل اهمیت زیادی نداره، ولی اگر کسی واقعا کار بلد باشه اونوقت براش ارزش پیدا میکنه و میتونه تاثیر زیادی داشته باشه.
بهرحال کدی که مهندس گذاشت از سطح مبتدی هم پایین تره چون مشخصا اشتباهات فاحشی درش وجود داره. جالبه از AES256 هم استفاده کرده، درحالیکه امنیتش بخاطر اشکالاتی که داره از AES128 هم به مراتب پایین تره و هیچ فایده ای نداره که شما در ظاهر از AES256 استفاده کنید.
ضمنا یک نکتهء مهمی هم که خیلی وقتا افراد غیرمتخصص حواسشون نیست و ازش غفلت میکنن اینه که امنیت رمز شما هیچوقت از پسوردی که انتخاب میکنید چندان بالاتر نمیره. مثلا اگر شما از پسورد 123456789 استفاده کنید، هیچ فرقی نمیکنه از قوی ترین الگوریتم رمزنگاری جهان هم اگر استفاده کنید امنیت بالایی نخواهید داشت.
پاسخ
تشکر شده توسط: YN97
#7
(06-11-1395، 12:30 ب.ظ)Eshpilen نوشته: اوف این کد پر از اشکاله!
با استانداردهای تخصصی امروزی کاملا غیرحرفه ایه و امنیتش از چیزی که میتونست باشه به مراتب پایین تر اومده (میتونه به شکسته شدن رمزها منجر بشه).
اشکالاتش اینهاست:
برای تبدیل پسورد به کلید از md5 استفاده کرده که البته خیلی ها بخصوص در گذشته این کار رو میکردن، ولی امروزه اصلا اصلا توصیه نمیشه و هیچ فرد متخصصی این کار رو انجام نمیده به دلایلی که دیگه توضیحش طولانی میشه و اینجا درج نمیکنم.
تازه! باید پارامتر raw_output اش رو هم فعال میکرد، چون کلید الگوریتم های رمزنگاری باید باینری باشه. خود این اشکال میتونه باعث پایین آمدن امنیت به میزان زیادی بشه، که شرحش بماند که چرا.
اشکال دوم اینکه این الگوریتم مجهز به MAC نیست. این هم اشکال نسبتا بزرگی است، چون تغییرات و دستکاری های کور در داده ها تشخیص داده نمیشه. الگوریتم های رمزنگاری جدید همه دارای MAC هستن، ولی یه زمانی قدیم ترها این مسئله اکثرا مورد غفلت واقع شده بود.
اشکال بعدی اینه که از مد ECB استفاده کرده که یک مد قدیمی و ضعیف هست که دیگه تقریبا هیچکس ازش استفاده نمیکنه. البته اشکال این مد فقط موقعی هست که طول داده ها از طول یک بلاک الگوریتم رمزنگاری بیشتر میشه و تنها در حالتی میشه ازش استفاده کرد که مطمئن باشیم طول داده ها از یک بلاک بیشتر نمیشه، ولی بهرصورت امروزه تقریبا هیچ فرد مطلعی ازش استفاده نمیکنه، چون با وجود مدهای بی نقص مثل CBC استفاده از این مد حکایت روزهء شک داره و در صورت تغییرات در برنامه و شرایط دیتا هم به مشکلی نمیخوریم.

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

درسته این کلاس خیلی قدیمیه. شاید مال سه سال قبل باشه و چون خیلی وقته که در این زمینه فعالیت نمیکنم و کلاً نیازی بهش نداشتم، دنبال موارد جدیدترش نبودم. AES رو قطعاً میشه به شکلهای مختلفی پیاده‌سازی کرد و پیشنهاد میکنم بجای اینکه اینقدر به جوابهای دیگران ایراد بگیرین، راه‌حل بهتر رو خودتون پیشنهاد بدین تا دیگران هم بهره‌مند بشن Ywink
پاسخ
تشکر شده توسط:
#8
(06-11-1395، 01:54 ب.ظ)ADMIN نوشته: درسته این کلاس خیلی قدیمیه. شاید مال سه سال قبل باشه و چون خیلی وقته که در این زمینه فعالیت نمیکنم و کلاً نیازی بهش نداشتم، دنبال موارد جدیدترش نبودم. AES رو قطعاً میشه به شکلهای مختلفی پیاده‌سازی کرد و پیشنهاد میکنم بجای اینکه اینقدر به جوابهای دیگران ایراد بگیرین، راه‌حل بهتر رو خودتون پیشنهاد بدین تا دیگران هم بهره‌مند بشن Ywink
پس خودتون نوشتیدش Big Grin
ضمنا چیزهایی که بنده میگم سرشار از اطلاعات ناب هستن که افراد خیلی کمی در ایران ممکنه ازش اطلاع داشته باشن، همون چیزهایی که میگم سرنخی که میدم شاید بنظر شما ساده بیاد ولی واقعا چیز کمی نیست چون خودم چند سال زحمت کشیدم چقدر متون حجیم و سنگین خوندم، تحقیق کردم، توی سایتهای پرسش و پاسخ سوال پرسیدم یک به یک پاسخ ها و کامنت ها رو خوندم که بعضا گمراه کننده بودن تا بالاخره فهمیدم و بقدر کافی مطمئن شدم که روش و کد درست و بی نقص چیه و دقیقا چرا. اینها مطالب ساده و کم ارزشی نیست حالا شما دوست دارید به چشم ایراد صرف بهش نگاه کنید. اون موقع که من تنهایی واسه یادگیری و فهمیدن این چیزا زحمت کشیدم کلی وقت و انرژی گذاشتم حتی یک خط هم منبع و کمک فارسی نبود کوچکترین اشاره ای به بیشتر این مسائل و سرنخ ها نبود، تازه حتی منابع انگلیسی هم خیلی گسترده و پیچیده و پراکنده هستن و در هم و برهم و حتی توی اونا هم بعضا نقص و اشتباه و چیزهای ضد و نقیض پیدا میشه، منابع غیرتخصصی و غیرمعتبر هم زیاده که باید تشخیص بدید و همینطوری راحت به هر منبع و کدی نمیشه اعتماد کرد.
بهرحال کد هم که گفتم بعد میذارم الان وقت ندارم.
البته قبلا در وبلاگم کد رمزنگاری AES رو گذاشته بودم که گرچه از کدی که شما گذاشتید خیلی اصولی تره و بنابراین امن تره ولی الان چون بازهم جدیدتر و اصولی ترش رو نوشتم میخوام آخرین نسخه رو درج کنم.
ضمنا بنده پیشنهاد نمیکنم نظر شخصی صرف نمیدم همینطور از خودم روش و کد نمیدم، بلکه بر مبنای علم و اصول درست و بروز این رشته است که مطالعه و تحقیق کردم و پشتوانهء کافی داره. بحث این نیست که هرکس پیشنهاد خودش رو بده! اینجا در حال حاضر کسی جز بنده نیست که واقعا اطلاعات و تخصص و صلاحیت کافی در این زمینه داشته باشه.
بهرحال زحمتش رو کشیدم عقل و هوشش رو داشتم بینش داشتم. اون موقع که بقیه فقط دنبال بیزینس طبق کلیشه و شرایط داخلی بودن و پول درمیاوردن من رفتم دنبال این چیزا، بالاخره منم باید توی یه زمینه ای از اونها سر باشم پس یا نه؟
نقل قول:کلاً نیازی بهش نداشتم
بله شما در ایران به خیلی چیزها نیاز ندارید، ولی همون چیزها در کارهای بزرگ و مهم در سطح جهانی یا در خارج خیلی مهمه و ارزشمند میشه.
در ایران اصلا کسی از این چیزا اطلاع خاصی نداره و سیستم و بازار اونقدر قوی و غنی نیست که این چیزها کاربردی باشه چون نه دانشش هست نه متخصصش، نه تقاضایی نه بازاری.
کسی اگر دنبال بیزینس و پول باشه، این همه وقت و انرژی صرف یادگیری این چیزا کنه براش صرف نمیکنه، این یه واقعیته. ولی اون بینش و توانایی بهرحال ارزش و جایگاه خودشو داره. یه خوره ای مثل من خب نمیتونست از این چیزها بگذره.
البته میدونم آدمهایی مثل شما به این چیزا اهمیتی نمیدید و از دیدتون افرادی مثل من مشکل داریم و احمق یا بی عرضه هستیم! درواقع چند نفر تاحالا بهم همین رو گفتن، گفتن وقت و انرژیت رو هدر دادی که رفتی این چیزا رو یاد گرفتی بجاش میرفتی مثلا فلان چیزها رو یاد میگرفتی که نیاز بازاره و میشه ازش پول درآورد.
پاسخ
تشکر شده توسط:
#9
نقل قول: پس خودتون نوشتیدش Big Grin
نه اتفاقاً توی استک‌اوورفلو پیداش کردم (لینک) و تست کردم دیدم کار میکنه تبدیل به کلاس کردم و از همون موقع داشتمش. اگه دقت کنید میبینید که تاریخ جواب توی SO مربوط به سال 2010 هست.

ضمناً بنظر من شما اصلاً احمق یا بی‌عرضه نیستین و شخصاً برای دانش شما در زمینه‌ی امنیت احترام قائلم ولی این باعث نمیشه که فکر کنیم توی اغلب پروژه‌ها به اون سطح از امنیت نیاز داریم و بخوایم یه الگوریتم پیچیده‌ی امنیتی رو برای یه اپلیکیشن ساده‌ی موبایل یا یه سایت شخصی پیاده‌سازی کنیم. درضمن کمتر از واژه‌ی «من» استفاده کنید بهتره. چیزی که شما رو شاخص میکنه، علم شماست نه شخص شما. علم هم ازطریق مطالبی که میگذارین مشخصه و نیازی به بیان نیست.

مُشک آن است که خود ببوید / نه آنکه عطار بگوید
پاسخ
تشکر شده توسط: keshvari
#10
(06-11-1395، 03:52 ب.ظ)Eshpilen نوشته: پس خودتون نوشتیدش  Big Grin
ضمنا چیزهایی که بنده میگم سرشار از اطلاعات ناب هستن که افراد خیلی کمی در ایران ممکنه ازش اطلاع داشته باشن، همون چیزهایی که میگم سرنخی که میدم شاید بنظر شما ساده بیاد ولی واقعا چیز کمی نیست چون خودم چند سال زحمت کشیدم چقدر متون حجیم و سنگین خوندم، تحقیق کردم، توی سایتهای پرسش و پاسخ سوال پرسیدم یک به یک پاسخ ها و کامنت ها رو خوندم که بعضا گمراه کننده بودن تا بالاخره فهمیدم و بقدر کافی مطمئن شدم که روش و کد درست و بی نقص چیه و دقیقا چرا. اینها مطالب ساده و کم ارزشی نیست حالا شما دوست دارید به چشم ایراد صرف بهش نگاه کنید. اون موقع که من تنهایی واسه یادگیری و فهمیدن این چیزا زحمت کشیدم کلی وقت و انرژی گذاشتم حتی یک خط هم منبع و کمک فارسی نبود کوچکترین اشاره ای به بیشتر این مسائل و سرنخ ها نبود، تازه حتی منابع انگلیسی هم خیلی گسترده و پیچیده و پراکنده هستن و در هم و برهم و حتی توی اونا هم بعضا نقص و اشتباه و چیزهای ضد و نقیض پیدا میشه، منابع غیرتخصصی و غیرمعتبر هم زیاده که باید تشخیص بدید و همینطوری راحت به هر منبع و کدی نمیشه اعتماد کرد.
بهرحال کد هم که گفتم بعد میذارم الان وقت ندارم.
البته قبلا در وبلاگم کد رمزنگاری AES رو گذاشته بودم که گرچه از کدی که شما گذاشتید خیلی اصولی تره و بنابراین امن تره ولی الان چون بازهم جدیدتر و اصولی ترش رو نوشتم میخوام آخرین نسخه رو درج کنم.
ضمنا بنده پیشنهاد نمیکنم نظر شخصی صرف نمیدم همینطور از خودم روش و کد نمیدم، بلکه بر مبنای علم و اصول درست و بروز این رشته است که مطالعه و تحقیق کردم و پشتوانهء کافی داره. بحث این نیست که هرکس پیشنهاد خودش رو بده! اینجا در حال حاضر کسی جز بنده نیست که واقعا اطلاعات و تخصص و صلاحیت کافی در این زمینه داشته باشه.
بهرحال زحمتش رو کشیدم عقل و هوشش رو داشتم بینش داشتم. اون موقع که بقیه فقط دنبال بیزینس طبق کلیشه و شرایط داخلی بودن و پول درمیاوردن من رفتم دنبال این چیزا، بالاخره منم باید توی یه زمینه ای از اونها سر باشم پس یا نه؟
بله شما در ایران به خیلی چیزها نیاز ندارید، ولی همون چیزها در کارهای بزرگ و مهم در سطح جهانی یا در خارج خیلی مهمه و ارزشمند میشه.
در ایران اصلا کسی از این چیزا اطلاع خاصی نداره و سیستم و بازار اونقدر قوی و غنی نیست که این چیزها کاربردی باشه چون نه دانشش هست نه متخصصش، نه تقاضایی نه بازاری.
کسی اگر دنبال بیزینس و پول باشه، این همه وقت و انرژی صرف یادگیری این چیزا کنه براش صرف نمیکنه، این یه واقعیته. ولی اون بینش و توانایی بهرحال ارزش و جایگاه خودشو داره. یه خوره ای مثل من خب نمیتونست از این چیزها بگذره.
البته میدونم آدمهایی مثل شما به این چیزا اهمیتی نمیدید و از دیدتون افرادی مثل من مشکل داریم و احمق یا بی عرضه هستیم! درواقع چند نفر تاحالا بهم همین رو گفتن، گفتن وقت و انرژیت رو هدر دادی که رفتی این چیزا رو یاد گرفتی بجاش میرفتی مثلا فلان چیزها رو یاد میگرفتی که نیاز بازاره و میشه ازش پول درآورد.
پاسخ
تشکر شده توسط:
#11
(08-11-1395، 12:02 ب.ظ)ADMIN نوشته: نه اتفاقاً توی استک‌اوورفلو پیداش کردم (لینک) و تست کردم دیدم کار میکنه تبدیل به کلاس کردم و از همون موقع داشتمش. اگه دقت کنید میبینید که تاریخ جواب توی SO مربوط به سال 2010 هست.
مهندس آخه چرا کد همینطور برمیداری بقیهء متنش رو نمیخونی!
توی خود متن به وضوح اشاره کرده که این کد با اینکه کار میکنه اما امنیتش ضعیفه.

نقل قول:این باعث نمیشه که فکر کنیم توی اغلب پروژه‌ها به اون سطح از امنیت نیاز داریم و بخوایم یه الگوریتم پیچیده‌ی امنیتی رو برای یه اپلیکیشن ساده‌ی موبایل یا یه سایت شخصی پیاده‌سازی کنیم.
خب میدونی مهندس چون شما مباحثی رو که بنده (بجای من بگم بنده خوبه؟ Big Grin ) مطالعه کردم مطالعه نکردی در نتیجه ببخشید ولی همینطور روی هوا داری نظر میدی یه چیزی میگی مثلا بنده که بنوعی آگاه و متخصص هستم برام اصلا زیاد مفهوم و معنی نداره و بیشتر کلی گویی و مبهم گویی محسوب میشه.
آخه این چیزی که شما میگی ابهام اندر ابهامه، اصلا سر و ته نداره، هیچ معیار روشن و محکمی نداره، قابل اندازه گیری نیست، در حالیکه امنیت و بخصوص رمزنگاری یک علم روشن و دقیقی هست باید همه چیز توش تا حد امکان روشن و محکم و محاسبه شده باشه. شما حتی نمیدونی روش و الگوریتمی که استفاده کردی واقعا چقدر امنیت داره، از کجا میدونی همون سطح پایین تری هم که خودت کافی میدونی رو هم تامین میکنه؟ اصلا اون سطح پایین تر رو چطوری بدست آوردی، چطور محاسبه کردی یا تخمین زدی، معیاری داره؟ فرمولی داره؟ عدد و رقمی داره؟ هرکس بقول معروف از ظن خودش میشه یار و یه حدسی میزنه، حدس غیرتخصص و روی هوا، و چیزی میگه، ولی بقول معروف میان ماه من تا ماه گردون تفاوت از زمین تا آسمان است!
اصلا شما بیای یه الگوریتم غیراصولی استفاده کنی، میدونی واقعا روشن نیست حتی تخمین زدن میزان امنیتش هم دشواره بعضی وقتا خیلی هم دشوار تقریبا غیرممکن، یکی بخاطر اینکه هیچ متخصصی روی چیزهای غیراصولی زیاد وقت و انرژی صرف نمیکنه و تحلیل کامل و دقیق نمیشه و محاسبه نمیشه عدد و رقم و روش و فرمولی برای برآورد امنیتش ارائه نمیدن. حالا چه برسه افراد ناآگاه و غیرمتخصص که اصلا نمیتونن برآورد هم بکنن یک حدس آگاهانه و تخصصی هم بزنن که واقعا امنیتش چقدره. امنیتش ممکنه از حدی باشه که یک نفر روی یک PC بتونه اون رو ظرف مدت کوتاهی بشکنه، و ممکنه خیلی بیشتر باشه، ولی بهرحال مخدوشه و روی هواست، حدس و تصوره.
مثل اینکه شما بیای یکسری تجهیزات ایمنی یک اتومبیل مدل بالا رو حذف کنی یا ضعیف ترش رو بذاری و بگی من همیشه توی شهر رانندگی میکنم و به این همه امنیت نیازی ندارم، ولی واقعا خودت هم سر از کار اون تجهیزات درنمیاری و هیچ دانش و تخصص و صلاحیتی در این زمینه نداری! از کجا معلوم چطور محاسبه کردی چطور تخمین زدی با چه معیاری چه دانشی چه صلاحیتی که واقعا امنیتش چقدره آیا همون حداقل رو هم که شما فکر میکنی تامین میکنه یا نه؟ و اصلا شاید بعدا مشکل و خطر جدی برات پیش بیاد و متوجه بشی از ابتدا ذهنیت غلطی داشتی و اون چیزی که فکر میکردی توی شهر ممکن نیست یا خیلی بعیده برات پیش بیاد واقعا اونطورها هم نبوده، شاید اصلا برخلاف پیشبینی و انتظار خودت نیازت بشه بری بیرون شهر توی جاده هم رانندگی کنی!
میگن کار از محکم کاری عیب نمیکنه. حالا ما الگوریتمی استفاده میکنیم که کم و بیش بی نقص باشه. چه اشکالی داره؟ البته پیچیدگی بیشتره، پرفورمنس هم کمتره، ولی بنده شخصا ترجیح میدم در این زمینه ریسک نکنم، چون امنیت مبحث مهم و موثری هست امروزه، و جذاب و خواستنی. ضمنا پیچیدگی رو هم که یک بار زحمت میکشی انجام میدی توی کلاسها یا تابع و اینها پیاده میکنی و بعدا ازش فقط استفاده میکنی. که من سعی کردم این کار رو بکنم. البته اینها رو باز میشه تمیزتر کرد و بهبود داد و باید هر از گاهی بروز کرد. لامصب این علم خیلی گسترده است و تغییر هم زیاد داره و جزییات مهم تا دلت بخواد توش هست.
درمورد سایت و برنامهء مردم هم نمیشه قضاوت مطمئنی داشت. البته بنده هم اشاره کردم که اکثر برنامه نویسان و برنامه هاشون به هیچ وجه در اون حدی نیست که رمزنگاری ضعیف ترین حلقهء زنجیر امنیت اونا بشه، ولی خب بازم این زیاد نمیشه مطمئن بود. مثلا طرف ممکنه داده های حساس رو رمزنگاری میکنه میفرسته روی سروری چیزی ذخیره میکنه، درحالیکه بقیهء برنامه روی دستگاه شخصی و کم و بیش در امنیت است. پس نفوذگر ممکنه فقط به داده های روی سرور دسترسی پیدا کنه و عملا به بقیهء برنامه دسترسی نداشته باشه، و اونوقت هست که اگر امنیت رمزنگاری شما پایین باشه میتونه بشکنه، البته اگر فرد وارد به کاری باشه، فرض گیریم که روش و الگوریتم مورد استفادهء شما رو هم میدونه در دسترسش هست یا بالاخره یجوری کشفش میکنه (در امنیت حرفه ای فرض باید همین باشه).
بنظر بنده جایی که مشکل پرفورمنس جدی نداریم از الگوریتم کامل و امن استفاده کنیم، ضرری نداره، شاید همین باعث شد از ضررهایی در آینده جلوگیری بشه. البته من شخصا این کار رو میکنم، ولی برای بقیه سخت تره چون هرچی هم کد میذاری و توضیح میدی بازم فهمیدن و استفاده و رعایت دقیق نکاتی که میگم برای آدمهای غیرمتخصص دشواره و احتمال اشتباه بالایی دارن.
پاسخ
تشکر شده توسط:
#12
ببین آقا حمیدرضای عزیز، بنده شما رو خوب میشناسم و شما هم بنده رو میشناسین و میدونین اهل اینکه رو هوا حرف بزنم نیستم و هرجا هم کدی که گذاشتم مشکل خاصی داشته قبول کردم. در اینکه الگوریتم‌های کلی مثل AES رو میشه به شکلهای مختلف با ضرایب ایمنی مختلف (ضعیف، قوی، متوسط و...) پیاده‌سازی کرد هیچ شکی وجود نداره. من هم ادعا نکردم کدی که گذاشتم (که خودم هم ننوشتمش) ایمن‌ترین الگوریتم موجوده. یکنفر میتونه بسته به نیاز خودش از هر روشی استفاده کنه. حالا شما اومدی گفتی امنیتش پایینه و روش دیگری رو ارائه کردی دستتم درد نکنه ولی دیگه اینقدر بحث و منم منم راه ننداز که نه این انجمن جای این حرفهاست و نه من اعصاب کافی برای تحملش دارم و اگه همچنان یادت باشه، دست به Delete کردنم درمورد کاربرانی که انجمن رو به حاشیه میکشونن همچنان خوبه.

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

شخصاً تا جایی که واقعاً نیاز نباشه، هرگونه پیچیدگی رو در برنامه مضر میدونم. شما هم نظرات شخصی خودت رو تعمیم نده چون بقول خودت با تمام جامعه‌ی اطرافت فرق میکنی. پس نظراتت رو هم شخصی نگهدار Ywink

هرگونه ادامه‌ی این بحث بی‌فایده هم منجر به حذف پست و درصورت تکرار، حذف کاربر خواهد شد.
پاسخ
تشکر شده توسط:
#13
کلا یک آدم هستی که فقط دنبال شهرت و پول هستی، ولی در ظاهر میخوای چیز دیگه وانمود کنی و اگر کاری هم برای دیگران میکنی بخاطر همون شهرت و محبوبیت هست که ازش استفاده کنی پول دربیاری یا اینکه کلا عقدهء محبوبیت داری و اینکه همه بگن اوه استاد شهرکیه ها چقدر باسواده.
مگه من چی گفتم که تقبیح و تهدید میکنی؟
هرچی گفتم از عین دانش و اطلاعات و تجربیات خودم بود با احترام و روشن براتون شرح دادم. تازه باید ممنون هم باشید که روشنتون کردم و دیدگاه حرفه ای و ناشناخته ای رو بهتون نشون دادم. ولی متاسفانه مشخص شد که امثال شما آدمهای جهت داری هستید و چیزی که در ظاهر میگید و وانمود میکنید با چیزی که واقعا در درونتون هست تفاوت میکنه!

برو بابا برو به درک آدم نادان تهی!
از این حرصت گرفته که یکی واقعا از تو توی زمینه ای خیلی باسوادتره بیشتر میفهمه و توی بحث این مشخص شده؟
پاسخ
تشکر شده توسط:
#14
(12-11-1395، 01:47 ب.ظ)ADMIN نوشته: ببین آقا حمیدرضای عزیز، بنده شما رو خوب میشناسم و شما هم بنده رو میشناسین و میدونین اهل اینکه رو هوا حرف بزنم نیستم
چرا هستی با این چرندیات که به من گفتی و توی همین بحث ثابت کردی که هستی!
شاید موقعی که یکی نشون میده توی چیزی سواد نداری و اون از تو خیلی بالاتره اینطور میشی، شاید دلیلش حسادت باشه، شایدم بخاطر اینکه از لطمه خوردن به شهرت و اعتبارت خیلی میترسی!
بهرحال این رفتار جوانمردانه ای نیست آقای ادعای ادب و شعور!
بخاطر اینکه امثال شما آدمهای تک بعدی یا کم بعدی هستی توی زندگیتون فقط همین هستید و بس.


نقل قول:و هرجا هم کدی که گذاشتم مشکل خاصی داشته قبول کردم. در اینکه الگوریتم‌های کلی مثل AES رو میشه به شکلهای مختلف با ضرایب ایمنی مختلف (ضعیف، قوی، متوسط و...) پیاده‌سازی کرد هیچ شکی وجود نداره. من هم ادعا نکردم کدی که گذاشتم (که خودم هم ننوشتمش) ایمن‌ترین الگوریتم موجوده. یکنفر میتونه بسته به نیاز خودش از هر روشی استفاده کنه.
عزیزم توی کد شما اشتباهات و ضعف های بزرگی وجود داره.
حتی منبعی که خودت گذاشتی نوشته «Warning: insecure code follows»، یعنی «هشدار: این کد ناامن است».
دیگه مدرک و روشنی تا چه حد؟
بحث این هم که به شکلهای مختلف میشه پیاده کرد نیست، بلکه مشکل بیشتر از اینه. روشهای مختلف همینطور کشکی نیست، منتها خیلی ها اشتباه پیاده میکنن بخاطر همین توی اینترنت کد اشتباه هم زیاد هست، وگرنه اصول و روش های مختلف واقعی تا حد زیادی از نظر اصول و امنیت نزدیک هم هستن.
حالا یه نفر توی مملکتتون پیدا شده این چیزا رو یاد گرفته میفهمه شما بجای قدردانی باهاش اینطور با بغض و غرور شخصی برخورد میکنید. خب همینه مملکتتون پیشرفت نمیکنه چون لیاقتتون همینه که در همین سطح و جهل و خودخواهی باقی بمونید. اما من گیر شماها نشدم و نمیشم و فراتر میرم!
شما یه عده آدمهایی که خودتون رو بیشتر از اونچه واقعا هستید تصور میکنید.
ببخشید که باعث شدم خواب و رویاتون آشفته بشه!
شما از این عصبانی هستید یا بهرحال ظرفیت درک و پذیرش اون رو ندارید.
نقل قول:خیلی از برنامه‌ها بالابردن امنیتشون اشتباهه چون اصلاً ارزش خاصی ندارن و هیچ هکری وسوسه نمیشه که هکشون کنه و با افزایش بیش‌از حد امنیت که من اسمشو میذارم وسواس در امنیت (درست شبیه همون وسواس در پرفورمنس که خودت در جریانش هستی)، فقط و فقط باعث پایین‌آمدن راندمان برنامه میشیم که خودش باعث نارضایتی کاربران میشه.
صرفنظر از جزییاتش این حرف رو خود بنده هم بنوعی زدم و تایید کردم بارها، ولی اینکه آگاهی و تخصصی واقعی داشته باشی و واقعا تشخیص بدی درجهء امنیت مورد نیاز رو و بتونی این امنیت رو واقعا طبق علم و اصول و محاسبه، نه روی هوا و حدس و تصورات و نظرات شخصی، پیاده کنی، با اینکه چیزی ندونیم و کارمون حدس اندر حدس و تصور اندر تصور باشه تفاوت میکنه! یه برنامه نویس و پروژه اش باید خودش کشک و کورکورانه باشه تا اینطور قضاوت و عمل کنه. وگرنه هرچیزی تعریف داره اصول داره معیار داره دلیل نمیشه برنامه ات هک نشد یعنی تشخیص و کار شما درست بوده. اونوقت که یه آدم باسواد و توانا مثل من پیدا بشه وسط کار و شهرت برنامه و سایتت بزنه هکش کنه اونوقت نظرت شاید عوض بشه!
بارها گفتم، امنیت و رمزنگاری مثل برنامه نویسی عادی نیست که همینطور بشه با آزمون و خطا کار کرد، چون در برنامه نویسی عادی کد اشتباه بنویسی کار نمیکنه خطا میده باگ میده مشخص میشه، کدت رو درست میکنی کار میکنه و تاحد زیادی خیالت راحت میشه، ولی در مسائل امنیت و رمزنگاری راهی جز دانش و تحلیل حرفه ای و محاسبه برای تخمین و اطمینان از درجهء امنیت مورد نیاز وجود نداره. حالا خودت هم علاقه نداری تخصص نداری خب از فردی که این تخصص رو داره حداقل مشورت بگیر شده بهش دستمزد بده حتی استخدامش کن، کاریه که در کشورهای دیگر مثل آمریکا متداول هست هم استخدام میکنن هم از شرکتها و افرادی که تخصص و کارشون اینه کمک و مشاوره میگیرن.

اما اینجا برعکسه ظاهرا، ما حرف میزنیم بهمون پرخاش میکنن و تمسخر و توهین و میگن اهمیت نداره نیازی نیست، و تهدید به حذف و اینها میکنن!!

خب فرق اینجا و آدماش با آمریکا همینه دیگه!
پاسخ
تشکر شده توسط:
#15
نقل قول:حتی منبعی که خودت گذاشتی نوشته «Warning: insecure code follows»، یعنی «هشدار: این کد ناامن است».

اگه خوب به تاریخ درج پست و تاریخ آخرین ویرایشش (که خوشبختانه StackOverflow هر دو رو ثبت میکنه) دقت کنید متوجه میشین که این پست در سال 2010 درج شده و در سال 2015 ویرایش شده. اون زمان این هشدار نوشته نشده بود و من هم در این مدت دیگه استفاده‌ای نداشتم و دلیلی هم نداشت که هرروز سر بزنم ببینم این پست توی SO تغییر کرده یا نه چون کارم رو در حد نیازم راه مینداخت. منتها متأسفانه شما بدون توجه به این موارد، فقط و فقط بدنبال اثبات وجود شخصیت تهی و تک‌بعدی خودتون با توهین و تحقیر دیگران و بالابردن خودت با لفاظی و مواردی از این دست هستین. بار اول و آخرتون هم نیست و قبلاً هم دست‌کم دومرتبه خودم شخصاً شما رو از انجمن قبلی اخراج کرده بودم و این‌بار هم برای دفعه‌ی سومه که به این سرنوشت بخاطر نوع برخورد کودکانه‌ای که دارین دچار شدین.

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

بهرحال دلیلی نداره دیگه توی انجمن از حضورتون بهره‌مند باشیم چون قبلاً هشدار داده بودم. عضویت شما از همین لحظه لغو شد و این متن‌هایی هم که گذاشتین بعنوان آرشیوی برای قضاوت دیگران باقی خواهد ماند. شما هم میتونین توی همون انجمن‌های امریکایی فعالیتتون رو ادامه بدین.

ضمناً به این جمله هم بد نیست کمی دقت کنید (در خلوت خودتون) :

درخت هرچقدر پربارتر، افتاده‌تر
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان