صفحه 2 از 3 اولاول 123 آخرآخر
نمایش نتایج 41 تا 80 از 86

نام تاپیک: پروژه نظارت و کنترل از راه دور

  1. #41
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    tabriz tehran
    پست
    80

    نقل قول: پروژه نظارت و کنترل از راه دور

    خودد ssL رو هم میشه جعل کرد - شما اگر بخاین کلید رو از کانالی که داده رو ارسال میکنین،کلید رو ارسال بکنین هر کاریم بکنین کلید لو میره(اگر از اول نشست فرد میانی تو جریان کار باشه کلید رو میتونه ببینه ولی کانال مجزا باشه نمیتونه کلید رو بگیره مگه اینکه از اون یکی کانال هم خبر داشته باشه). برای این کار باید دو کانال مجزا باشه شایم بهتر باشه دو پروتکل با دو کانال و تکنولوژی ارتباطی مجزا.

  2. #42
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    والا ما که نفهمیدیم چی گفتی و چندتا چیز رو قاطی هم کردی، padding oracle attack چه ربطی به اشتقاق کلید داره، و این هردوتا هیچ ربطی به جواب سوال بنده هم نداشتن!
    تو اصلا نمیفهمی padding oracle attack واقعا چطور کار میکنه در چه مواردی مصداق پیدا میکنه!
    امیدوارم اینجا یه نفر آدم متخصص و باسواد پیدا بشه بفهمه پرت و پلاهای شما رو.
    البته طرف حساب من شما نیستی... برای دوستان دیگه میگم

    از ویکی پدیا:
    In symmetric cryptography, the padding oracle attack can be applied to the CBC mode of operation, where the oracle (usually a server) leaks data about whether the padding of an encrypted message is correct or not. Such data can allow attackers to decrypt (and sometimes encrypt) messages through the oracle using the oracle's key, without knowing the encryption key.

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

  3. #43
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    آن کس که نداند و نداند که نداند .... در جهل مرکب ابدالدهر بماند

    یک چیزجالب در رابطه با شخصیت عجیب استارتر هست که ایشون میره سوالاتش رو در نهایت ادب و تواضع در crypto.stackexchange.com مطرح میکنه و وقتی یک سری افراد بهش جواب میدن و اشتباهاتش رو بیان میکنن میاد اینجا و با یک لحن بسیار بی ادبانه و بصورت پز دادن برای افراد این سایت مطرح میکنه !!!
    http://crypto.stackexchange.com/users/15036/user40602

    مثلا بهش میگم:
    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    پیشنهاد میکنم در کار بعدیت بجای استفاده از sha256 از PBKDF2 استفاده کنی. احتمالا بدونی چرا اینو میگم...
    کلی بی ادبانه جواب میده ولی میره اینجا مودبانه میپرسه
    http://crypto.stackexchange.com/ques...key-stretching

    یا مثلا از من در مورد اینکه چرا باید در کنار AES128 از SHA256 استفاده بشه سوال میپرسه (اونهم با لحن توهین آمیز)
    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    گفتم وقتی از رمزنگاری 128 بیتی متقارن استفاده کردم و امنیتش بنظرم کافی است، پس چرا از HMAC از نوع 256 بیتی استفاده کرده ام؟ آیا نمیشد HMAC هم 128 بیت باشه؟ نمیشد 160 بیت باشه؟
    الان این سوال رو شما یا کس دیگری جواب بده تا سوالات بعدی رو طرح کنم براتون
    وقتی بهش جواب میدم و یک مقاله بهش پیشنهاد میکنم:
    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    وقتی sha256 استفاده میکنی باید aes 128 باشه چون هش 256 به دو بخش 128 شکسته میشه تا بتونه کلید رو برای mac و aes فراهم کنه
    این کار برای تایید هویت در مقصد هست. (reg key)
    البته این مال موقعی است که شما از مد قدیمی cbc استفاده میکنی.
    .
    .
    https://tools.ietf.org/html/draft-ie...iph-sha-256-01
    بعد میبینم رفته اون سوال رو مودبانه از خارجیا میپرسه (با تواضع)
    http://crypto.stackexchange.com/ques...hmac-truncated
    آخرین ویرایش به وسیله golbafan : یک شنبه 24 بهمن 1395 در 00:38 صبح

  4. #44

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط prans68 مشاهده تاپیک
    خودد ssL رو هم میشه جعل کرد - شما اگر بخاین کلید رو از کانالی که داده رو ارسال میکنین،کلید رو ارسال بکنین هر کاریم بکنین کلید لو میره(اگر از اول نشست فرد میانی تو جریان کار باشه کلید رو میتونه ببینه ولی کانال مجزا باشه نمیتونه کلید رو بگیره مگه اینکه از اون یکی کانال هم خبر داشته باشه). برای این کار باید دو کانال مجزا باشه شایم بهتر باشه دو پروتکل با دو کانال و تکنولوژی ارتباطی مجزا.
    با این حرفتون کلا رمزنگاری نامتقارن رو زیر سوال بردید. نخیر دوست عزیز اینجوری که میگید نیست. حتی توی ناامن ترین کانال ارتباطی هم با رمزنگاری نامتقارن میشه ارتباط کاملا امن ایجاد کرد و اصلا کار سخت و پیچیده ای نیست و نیازی به دو تا کانال مجزا هم نداره.
    برای دور زدن ssl هم خوشحال میشم روشش رو توضیح بدید چون فکر نمیکنم عملی باشه.

  5. #45
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط Bad Programmer مشاهده تاپیک
    با این حرفتون کلا رمزنگاری نامتقارن رو زیر سوال بردید. نخیر دوست عزیز اینجوری که میگید نیست. حتی توی ناامن ترین کانال ارتباطی هم با رمزنگاری نامتقارن میشه ارتباط کاملا امن ایجاد کرد و اصلا کار سخت و پیچیده ای نیست و نیازی به دو تا کانال مجزا هم نداره.
    برای دور زدن ssl هم خوشحال میشم روشش رو توضیح بدید چون فکر نمیکنم عملی باشه.
    سلام
    بهش میگن MITM attacks که میاد یک سری ssl جعل شده (forged ssl) رو توی کانال ارتباطی قرار میدن. اگر مسیر شبکه امنیت کافی نداشته باشه امکانش هست ولی البته سخته! این مساله مربوط میشه به زمانی که از SSL2 استفاده میشد و حتی زمانی که از MD5 در SSL استفاده میشد ولی امروزه دیگه از SHA در SSL استفاده میکنن
    سابقاً نیز به همین روش جیمیل اسنیف میشد که البته گوگل متوجه شد و الگوریتم ها رو آپدیت کرد...
    https://nakedsecurity.sophos.com/2013/12/09/serious-security-google-finds-fake-but-trusted-ssl-certificates-for-its-domains-made-in-france/

    دریافت certification رایگان موقت
    https://www.cloudflare.com/

    برای پیاده کردنش هم این کمک میکنه
    https://gist.github.com/bradmontgomery/6487319

    توی این مقاله هم یک ادعاهایی شده که اگه درست باشه باید فاتحه امنیت رو خوند...
    https://freedom-to-tinker.com/2008/1...-certificates/

    اینم جالبته چند تا مثالم زده: برای مثال هم از سایتهای paypal و apple itunes اسم برده
    https://news.netcraft.com/archives/2...-internet.html
    آخرین ویرایش به وسیله golbafan : یک شنبه 24 بهمن 1395 در 00:06 صبح

  6. #46

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    سلام
    بهش میگن MITM attacks که میاد یک سری ssl جعل شده (forged ssl) رو توی کانال ارتباطی قرار میدن. اگر مسیر شبکه امنیت کافی نداشته باشه امکانش هست ولی البته سخته! این مساله مربوط میشه به زمانی که از SSL2 استفاده میشد و حتی زمانی که از MD5 در SSL استفاده میشد ولی امروزه دیگه از SHA در SSL استفاده میکنن
    سابقاً نیز به همین روش جیمیل اسنیف میشد که البته گوگل متوجه شد و الگوریتم ها رو آپدیت کرد...
    https://nakedsecurity.sophos.com/2013/12/09/serious-security-google-finds-fake-but-trusted-ssl-certificates-for-its-domains-made-in-france/

    دریافت certification رایگان موقت
    https://www.cloudflare.com/

    برای پیاده کردنش هم این کمک میکنه
    https://gist.github.com/bradmontgomery/6487319

    توی این مقاله هم یک ادعاهایی شده که اگه درست باشه باید فاتحه امنیت رو خوند...
    https://freedom-to-tinker.com/2008/1...-certificates/

    اینم جالبته چند تا مثالم زده: برای مثال هم از سایتهای paypal و apple itunes اسم برده
    https://news.netcraft.com/archives/2...-internet.html
    در ssl ضعیف ترین حلقه همون CA ها هستن (البته نظر تخصصی و معتبری نیست چون من متخصص نیستم )
    اینکه یک CA برای امضای گواهینامه هاش از md5 استفاده میکنه یا هنوز هم گواهی نامه هایی که از md5 استفاده کردن توسط مرورگر تایید میشن یه جورایی ربطی به ssl نداره.
    یا اینکه شما اجازه بدی بیان رو سیستمت trusted root CA نصب کنن شبیه اینه که بزاری رو سیستم مثلا کیلاگر نصب کنن. (البته مثالش خیلی بی ربط شد ولی در کل منظورم رو که میفهمید)
    در کل خود پروتوکل امنه ولی اینکه چجوری پیاده بشه و چجوری استفاده بشه ازش ممکنه باعث ضعف امنیتی بشه.

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

  7. #47
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط Bad Programmer مشاهده تاپیک
    در ssl ضعیف ترین حلقه همون CA ها هستن (البته نظر تخصصی و معتبری نیست چون من متخصص نیستم )
    اینکه یک CA برای امضای گواهینامه هاش از md5 استفاده میکنه یا هنوز هم گواهی نامه هایی که از md5 استفاده کردن توسط مرورگر تایید میشن یه جورایی ربطی به ssl نداره.
    یا اینکه شما اجازه بدی بیان رو سیستمت trusted root CA نصب کنن شبیه اینه که بزاری رو سیستم مثلا کیلاگر نصب کنن. (البته مثالش خیلی بی ربط شد ولی در کل منظورم رو که میفهمید)
    در کل خود پروتوکل امنه ولی اینکه چجوری پیاده بشه و چجوری استفاده بشه ازش ممکنه باعث ضعف امنیتی بشه.
    بازم میگم که نظرات و حرفای من در این مورد اصلا تخصصی نیست و ممکنه اشتباه کنم. من صرفا با یه سری مفاهیم اولیه آشنا هستم.
    سلام
    ما هم خیلی آشنا نیستیم جدی نگیر
    آره من هم با اینکه خود ssl امن هست کاملا موافقم. و اینکه صرفا روی شبکه های نا امن میشه از این نفوذها انجام داد.
    بطور کلی باید گفت که همه این موارد در کنار هم باید باشن تا امنیت برقرار بشه. (پروتکل مناسب - بستر امن - الگوریتمهای بی نقص و ...)

  8. #48

    نقل قول: پروژه نظارت و کنترل از راه دور

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

  9. #49
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط Bad Programmer مشاهده تاپیک
    این جمله کلا ایراد داره.
    الگوریتم های رمزنگاری و پروتوکل های امنیتی طراحی میشن تا روی شبکه های ناامن امنیت رو برقرار کنن. اگه قرار باشه شبکه امن باشه که دیگه این کارا معنی نداره
    روی شبکه امن که نمیشه از این حملات انجام داد. میشه؟

  10. #50

    نقل قول: پروژه نظارت و کنترل از راه دور

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

    از ویکی پدیا:
    In symmetric cryptography, the padding oracle attack can be applied to the CBC mode of operation, where the oracle (usually a server) leaks data about whether the padding of an encrypted message is correct or not. Such data can allow attackers to decrypt (and sometimes encrypt) messages through the oracle using the oracle's key, without knowing the encryption key.

    بطور خلاصه یعنی در مد cbc و رمزنگاری متقارن مورد استفاده، هکر میتونه حتی بدون داشتن کلید کار رمز گشایی رو انجام بده
    بله عزیزم ولی این فقط بخشی از قضیه است!

    گفته: The attack relies on having a "padding oracle" who freely responds to queries about whether a message is correctly padded or not
    یعنی این حمله روی padding oracle ای جواب میده که به کوئری ها درمورد اینکه آیا یک پیام padding درست داره یا نه جواب میده. یعنی حمله کننده میتونه پیامهایی رو که خودش ساخته/دستکاری کرده به سیستم بده و جواب سیستم بهش نشون میده که آیا padding اون پیامها از نظر سیستم درست بوده یا نه! ضمنا یادت باشه طبق متنی که خودت گذاشتی، این حمله مربوط به عملیات AES-CBC میشه و نه چیز دیگه.

    و اما چه زمانی سیستم اصولا این padding رو میتونه چک کنه؟ قبل از شروع decryption؟ خیر! زمانی سیستم padding رو چک میکنه که عملیات decryption شروع شده باشه. از متن توضیحات جزیی ای که درمورد روش کار این حمله داده و مثالی که زده، این مسئله واضح و مبرهن است:
    Then the server checks the padding of the last decrypted block (which is P2), and returns whether or not the padding is correct

    ولی شما دقت نمیکنی وقتی ما از AES+HMAC استفاده کردیم، اول درستی HMAC چک میشه، و اگر HMAC درست نبود اصولا عملیات decryption دیگه انجام نمیشه؛ یعنی به اون مرحله نمیرسه! ما در عملیات چک کردن HMAC هیچ decryption ای نداریم. پس شما راهی نداری جز اینکه اول بتونی از چک HMAC عبور کنی (که این در عمل بدون داشتن کلید HMAC غیرممکنه). حملهء Padding oracle attack روی HMAC قابل اعمال نیست چون تمام این توضیحات که داده واضح روشن کرده که این حمله مربوط به AES-CBC (و البته padding بعضی رمزنگاری های دیگر) میشه.
    پس متوجه میشیم احتمالا این حمله نسبت به سیستمهایی قابل اعمال بوده که مثل سیستم ما نیستن و شاید مثلا MAC نداشتن، یا بهرصورت یک ضعفی در طراحی اونا بوده که اجازهء این حمله رو به شکلی میداده.

    شما فقط یک قسمت از متن رو خوندی بعد همینطور کورکورانه و سرخود بسط دادی کلیش کردی! درحالیکه هر حمله ای شرایط و نقاط ضعف خاص خودش رو طلب میکنه و لزوما روی هر سیستمی با هر جزییاتی قابل انجام نیست.
    اصلا فکر کن اگر این حمله در تمام شرایط قابل اعمال بود که کلا کسی از AES-CBC دیگه استفاده نمیکرد! ولی میدونیم که این الگوریتم بصورت گسترده خیلی جاها همچنان استفاده میشه.

  11. #51

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط Bad Programmer مشاهده تاپیک
    با این حرفتون کلا رمزنگاری نامتقارن رو زیر سوال بردید. نخیر دوست عزیز اینجوری که میگید نیست. حتی توی ناامن ترین کانال ارتباطی هم با رمزنگاری نامتقارن میشه ارتباط کاملا امن ایجاد کرد و اصلا کار سخت و پیچیده ای نیست و نیازی به دو تا کانال مجزا هم نداره.
    برای دور زدن ssl هم خوشحال میشم روشش رو توضیح بدید چون فکر نمیکنم عملی باشه.
    ببینید ایجاد کانال امن به معنی این هست که دو party که از طریق یک کانال ناامن با هم ارتباط برقرار میکنن میتونن بین خودشون یک کلید مشترک رو تولید کنن بدون اینکه دیگرانی که ممکنه به کانال ارتباطی بین اونها دسترسی داشته باشن (و حتی بتونن داده های رد و بدل شده رو دستکاری بکنن یا خودشون داده های جعلی بفرستن) به این کلید دست پیدا کنن.
    اما این قضیه از حمله های MITM جلوگیری نمیکنه! چون درسته مثلا فرد X با فرد Y ارتباط برقرار میکنه و کلیدی رو با هم ایجاد میکنن، ولی خود فرد Y ممکنه واقعا فرد Y نباشه و فقط فردی باشه که وانمود میکنه Y است و در اصل Z باشه. یعنی ما در این روشهای رمزنگاری احراز هویت (authentication) نداریم! برای احراز هویت باید از روش دیگری استفاده بشه. یک روش استفاده از یک shared secret است که قبلا این دو party به شکلی (مثلا از طریق یک کانال جانبی امن) با هم سرش به توافق رسیدن و به اشتراک گذاشتن؛ بطور مثال یک پسورد. اما روشهای دیگر هم وجود داره و چیزی که مثلا برای وب سایت ها در اینترنت استفاده میشه و پروتکل SSL/TLS، استفاده از گواهینامه های دیجیتال است که این گواهینامه ها بر اعتماد به یکسری CA های شناخته شده معتبر (مراجع صدور گواهینامه ها) بنا شدن و ما یکسری CA certificate رو داریم که از قبل همراه سیستم عامل یا مرورگر هستن (البته کاربر خودش هم میتونه گواهینامه های جدیدی رو نصب کنه یا یکسری رو حذف کنه) و و بواسطهء اونهاست که امضاهای دیجیتالی که party ها در جریان پروتکل های ایجاد کلید مشترک ارائه میدن، شناسایی و معتبر شناخته میشن. پس در اینجا هم مشاهده میکنید که ما از قبل یک مبنا و شناسه ای جداگانه برای احراز هویت طرف مقابل داریم (که از طریق دیگری بهمون رسیده). در غیر این صورت راهی برای احراز هویت طرف مقابل نیست. ما میتونیم مطمئن باشیم که کلید مشترکی که بین ما و Y ایجاد شده رو هیچکس دیگری نمیتونه خونده باشه یا جعل و دستکاری کرده باشه، ولی نمیتونیم مطمئن باشیم که Y واقعا همونی باشه که ادعا میکنه و Z نباشه! شاید Z بین ما (X) و Y واقع شده و به ما وانمود میکنه که Y است و به Y هم وانمود میکنه که X است! اینطوری میتونه تمام ارتباطات بین ما و Y رو براحتی بخونه و حتی دستکاری و جعل کنه.

    مثلا پروتکل Diffie–Hellman key exchange نقل از ویکیپدیا میگه:
    Diffie–Hellman exchange by itself does not provide authentication of the communicating parties and is thus vulnerable to a man-in-the-middle attack.
    ترجمه: «Diffie–Hellman key exchange خودش به تنهایی احراز هویت طرفهای ارتباط را فراهم نمیکند و بنابراین درمقابل حملهء MITM آسیب پذیر است».

  12. #52

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط prans68 مشاهده تاپیک
    خودد ssL رو هم میشه جعل کرد - شما اگر بخاین کلید رو از کانالی که داده رو ارسال میکنین،کلید رو ارسال بکنین هر کاریم بکنین کلید لو میره(اگر از اول نشست فرد میانی تو جریان کار باشه کلید رو میتونه ببینه ولی کانال مجزا باشه نمیتونه کلید رو بگیره مگه اینکه از اون یکی کانال هم خبر داشته باشه). برای این کار باید دو کانال مجزا باشه شایم بهتر باشه دو پروتکل با دو کانال و تکنولوژی ارتباطی مجزا.
    در SSL/TLS حضور فرد میانی بواسطهء همون گواهینامه های دیجیتال هست که مشخص میشه!
    گواهینامه های دیجیتال CA ها از قبل در سیستم عامل و مرورگر نصب هستن. بواسطهء این گواهینامه هاست که درستی گواهینامه ها و امضاهای دیجیتال که دیگران ارائه میدن مشخص میشه.
    مثلا دقت کرده باشید در بعضی سایتها مرورگر هشدار میده که این گواهینامه self-signed است و بنابراین نمیشه از درستی هویتش مطمئن بود و آیا این ریسک رو قبول میکنید و این گواهینامه رو میپذیرید یا نه!
    این بخاطر اینه که اون گواهینامه توسط یک CA certificate معتبر که از قبل در مرورگر نصب شده باشه امضاء نشده و بنابراین اعتبار مشخصاتش (اینکه آیا واقعا به دامین و اسم و مشخصات درج شده در اون تعلق داره یا نه) قابل اثبات نیست.

    تعجب میکنم ظاهرا هیچکدام هنوز این مسائل اولیه رو نمیدونید!!

  13. #53

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    آن کس که نداند و نداند که نداند .... در جهل مرکب ابدالدهر بماند
    حکایت خودتونه

    یک چیزجالب در رابطه با شخصیت عجیب استارتر هست که ایشون میره سوالاتش رو در نهایت ادب و تواضع در crypto.stackexchange.com مطرح میکنه و وقتی یک سری افراد بهش جواب میدن و اشتباهاتش رو بیان میکنن میاد اینجا و با یک لحن بسیار بی ادبانه و بصورت پز دادن برای افراد این سایت مطرح میکنه !!!
    البته بهرحال زبان انگلیسی نوشتنش حتی واسه من هم راحت نیست اینه زیاد وقت و انرژی بحث و جدل آنچنانی ندارم اونطور جاها، وگرنه مواردش بوده خیلی دوست داشتم با بعضی خارجی ها هم سرشاخ بشم با خشونت بیشتری صحبت کنم
    بعدم اونجا بالاخره دوتا آدمی که سواد حداقلی داشته باشن پیدا میشه، ولی شما سوادتون خیلی پایینه حتی در الفبا هم مشکل دارید بعد میاید پرت و پلا هم میگید و کل کل و کنایه با فردی مثل من که صد برابر شما مطالعه کردم سوادش رو دارم، اینه عصبانی میشم!
    آخرین ویرایش به وسیله SZsXsZS : یک شنبه 24 بهمن 1395 در 12:01 عصر

  14. #54

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    ببینید ایجاد کانال امن به معنی این هست که دو party که از طریق یک کانال ناامن با هم ارتباط برقرار میکنن میتونن بین خودشون یک کلید مشترک رو تولید کنن بدون اینکه دیگرانی که ممکنه به کانال ارتباطی بین اونها دسترسی داشته باشن (و حتی بتونن داده های رد و بدل شده رو دستکاری بکنن یا خودشون داده های جعلی بفرستن) به این کلید دست پیدا کنن.
    اما این قضیه از حمله های MITM جلوگیری نمیکنه! چون درسته مثلا فرد X با فرد Y ارتباط برقرار میکنه و کلیدی رو با هم ایجاد میکنن، ولی خود فرد Y ممکنه واقعا فرد Y نباشه و فقط فردی باشه که وانمود میکنه Y است و در اصل Z باشه. یعنی ما در این روشهای رمزنگاری احراز هویت (authentication) نداریم! برای احراز هویت باید از روش دیگری استفاده بشه. یک روش استفاده از یک shared secret است که قبلا این دو party به شکلی (مثلا از طریق یک کانال جانبی امن) با هم سرش به توافق رسیدن و به اشتراک گذاشتن؛ بطور مثال یک پسورد. اما روشهای دیگر هم وجود داره و چیزی که مثلا برای وب سایت ها در اینترنت استفاده میشه و پروتکل SSL/TLS، استفاده از گواهینامه های دیجیتال است که این گواهینامه ها بر اعتماد به یکسری CA های شناخته شده معتبر (مراجع صدور گواهینامه ها) بنا شدن و ما یکسری CA certificate رو داریم که از قبل همراه سیستم عامل یا مرورگر هستن (البته کاربر خودش هم میتونه گواهینامه های جدیدی رو نصب کنه یا یکسری رو حذف کنه) و و بواسطهء اونهاست که امضاهای دیجیتالی که party ها در جریان پروتکل های ایجاد کلید مشترک ارائه میدن، شناسایی و معتبر شناخته میشن. پس در اینجا هم مشاهده میکنید که ما از قبل یک مبنا و شناسه ای جداگانه برای احراز هویت طرف مقابل داریم (که از طریق دیگری بهمون رسیده). در غیر این صورت راهی برای احراز هویت طرف مقابل نیست. ما میتونیم مطمئن باشیم که کلید مشترکی که بین ما و Y ایجاد شده رو هیچکس دیگری نمیتونه خونده باشه یا جعل و دستکاری کرده باشه، ولی نمیتونیم مطمئن باشیم که Y واقعا همونی باشه که ادعا میکنه و Z نباشه! شاید Z بین ما (X) و Y واقع شده و به ما وانمود میکنه که Y است و به Y هم وانمود میکنه که X است! اینطوری میتونه تمام ارتباطات بین ما و Y رو براحتی بخونه و حتی دستکاری و جعل کنه.

    مثلا پروتکل Diffie–Hellman key exchange نقل از ویکیپدیا میگه:
    Diffie–Hellman exchange by itself does not provide authentication of the communicating parties and is thus vulnerable to a man-in-the-middle attack.
    ترجمه: «Diffie–Hellman key exchange خودش به تنهایی احراز هویت طرفهای ارتباط را فراهم نمیکند و بنابراین درمقابل حملهء MITM آسیب پذیر است».
    منظور ایشون این بود که نمیشه تبادل کلید امن انجام داد و دقیقا اشاره کرده بودن به لو رفتن کلید نه جعل هویت.
    اگر پیام ایشون رو دقیق بخونید متوجه میشید.
    در مورد توضیحاتی هم که دادید، چند پست قبل توضیح توضیح دادم:
    نقل قول نوشته شده توسط Bad Programmer مشاهده تاپیک
    در زمان تبادل کلید بله حق با شماست ممکنه این اتفاق بیفته. ولی با تعریف یک پرتوکل و تبادل کلید درست میشه از این نوع ضعف امنیتی هم در امان بود (مثلا یه چیزی شبیه گواهینامه های ssl).
    حتی میشه با تخصیص یوز نیم و پسورد به کلاینت و سرور همون اول کار هر دو کلاینت و سرور توسط سرور واسط تایید بشن.
    بهتر بود که فقط از اصطلاح "رمزنگاری نامتقارن" استفاده نمیکردم و کامل توضیح میدادم. اگر کسی تاپیک رو کامل بخونه میدونه که چی میگم.


    مثلا دقت کرده باشید در بعضی سایتها مرورگر هشدار میده که این گواهینامه self-signed است و بنابراین نمیشه از درستی هویتش مطمئن بود و آیا این ریسک رو قبول میکنید و این گواهینامه رو میپذیرید یا نه!
    این بخاطر اینه که اون گواهینامه توسط یک CA certificate معتبر که از قبل در مرورگر نصب شده باشه امضاء نشده و بنابراین اعتبار مشخصاتش (اینکه آیا واقعا به دامین و اسم و مشخصات درج شده در اون تعلق داره یا نه) قابل اثبات نیست.

    تعجب میکنم ظاهرا هیچکدام هنوز این مسائل اولیه رو نمیدونید!!
    منم تعجب میکنم که استفاده از گواهینامه self-signed رو دور زدن ssl به حساب میارید.

  15. #55

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط Bad Programmer مشاهده تاپیک
    منظور ایشون این بود که نمیشه تبادل کلید امن انجام داد و دقیقا اشاره کرده بودن به لو رفتن کلید نه جعل هویت.
    خب اینم باز خودش باعث تعجبه!
    کسی که بدونه پروتکل SSL/TLS چطور کار میکنه نباید چنین اشتباهی بکنه
    فهم این مطلب زیاد هم چیز پیچیده ای نیست اصلا نیازی نیست وارد جزییات و مثلا ریاضیاتش بخوایم بشیم.

  16. #56

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط Bad Programmer مشاهده تاپیک
    منم تعجب میکنم که استفاده از گواهینامه self-signed رو دور زدن ssl به حساب میارید.
    کلا همتون حرف زدن هاتون مغرضانه و بچه گانه است!
    فقط میخواید کل کل الکی بکنید بگید من اشتباه میکنم و چیزی بارم نیست
    حرف توی دهن آدم میذارن شما کی هستید به خدا
    من کجا گفتم این دور زدن SSL است؟!
    توضیح دادم ساختار و سلسله مراتب گواهینامه ها و طرز کار این پروتکل در وب چطور است، این مورد رو هم مثال زدم بعنوان نشانه و شواهدی بر صحت مطالبی که بیان کردم.
    وقتی گفتم مرورگر به کاربر هشدار میده میگه امن نیست ولی اگر خودت تایید میکنی قبولش کنیم، این چه ربطی به دور زدن SSL داره؟! تصمیمی هست که کاربر خودش میگیره چون ممکنه اون مورد امنیت براش مهم نباشه یا ممکنه از طریق دیگری مطلع هست که مشکلی وجود نداره و اون گواهینامه جعلی نیست.

  17. #57

    نقل قول: پروژه نظارت و کنترل از راه دور

    البته خود پروتکل SSL/TLS نقطهء ضعفش دقیقا در همین CA ها است. چون در امنیت معنا نداره شما به یک Third party اعتماد کنید. یعنی از این کار تا میشه اجتناب میکنن. ولی خب بهرحال ظاهرا راه دیگری نداشته روش بهتری کسی نتونسته ارائه کنه برای امنیت ارتباط کاربر با وبسایت ها در اینترنت جهانی.
    ضمنا خطر هک و سوء استفاده از CA ها همیشه وجود داره که قبلا هم نمونه اش رخ داده. بطور مثال: https://en.wikipedia.org/wiki/DigiNo...t_certificates

  18. #58
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    سلام به همه
    من اومدم...
    خب بحث امروز چی هست؟؟؟

  19. #59
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    البته خود پروتکل SSL/TLS نقطهء ضعفش دقیقا در همین CA ها است. چون در امنیت معنا نداره شما به یک Third party اعتماد کنید. یعنی از این کار تا میشه اجتناب میکنن. ولی خب بهرحال ظاهرا راه دیگری نداشته روش بهتری کسی نتونسته ارائه کنه برای امنیت ارتباط کاربر با وبسایت ها در اینترنت جهانی.
    ضمنا خطر هک و سوء استفاده از CA ها همیشه وجود داره که قبلا هم نمونه اش رخ داده. بطور مثال: https://en.wikipedia.org/wiki/DigiNo...t_certificates
    خب این همونیه که من در چند پست قبل اشاره کردم و روش کاربردی رو هم به همراه تعریف MITM براتون نقل کردم...
    مساله همینه
    امنیت باید همه جانبه باشه.
    اشکالی هم که من از برنامه شما گرفتم مربوط به روش رمز نگاریتون نیست. بلکه مربوط به روش PPP در ارتباط رایانه هاست... حتی این مشکل در حالت P2P هم که معمولا در شبکه های داخلی شرکت ها و ادارات پیاده میشه موجوده
    شما وقتی ارتباط این نرم افزارها رو برقرار میکنی بالاخره باید به فایر وال اجازه بدی که از این درگاهها اطلاعات رد و بدل بشه.

    یک تست بهت میگم انجام بده...
    نرم افزارت رو با حالت run as admin اجرا کن و ببین چه پیامی میده؟
    اونوقت میبینی که فایر وال به خود نرم افزار این اجازه رو نمیده (چون امضا نداره) بلاکه داره درگاه رو برات باز میکنه و این خطرناکه

  20. #60
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

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

  21. #61

    نقل قول: پروژه نظارت و کنترل از راه دور

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

    نقل قول نوشته شده توسط prans68 مشاهده تاپیک
    خودد ssL رو هم میشه جعل کرد - شما اگر بخاین کلید رو از کانالی که داده رو ارسال میکنین،کلید رو ارسال بکنین هر کاریم بکنین کلید لو میره(اگر از اول نشست فرد میانی تو جریان کار باشه کلید رو میتونه ببینه ولی کانال مجزا باشه نمیتونه کلید رو بگیره مگه اینکه از اون یکی کانال هم خبر داشته باشه). برای این کار باید دو کانال مجزا باشه شایم بهتر باشه دو پروتکل با دو کانال و تکنولوژی ارتباطی مجزا.
    صرفا روی شبکه های نا امن میشه از این نفوذها انجام داد
    گفتنی‌ها رو bad programer عرض کرد البته من هم مثل ایشون خودم رو متخصص نمیدونم فقط در اندازه دانسته‌های خودم صحبت می‌کنم که ممکنه درست یا اشتباه باشه.
    حمله مرد میانی بر روی SSL زمانی‌ می‌تونه اجرا بشه که قبلا برای آدرس هدف یک گواهینامه معتبر صادر شده باشه مثل حمله ایی که چند سال پیش با هک کردن کمودو یه گواهینامه برای آدرس login.yahoo.com صادر کرده بودن که مدتی‌ بعد لو رفت. اینجور اتفاق‌ها حوادث خاصی‌ هستند که فقط چند نمونه می‌شه پیدا کرد و عمر اینجور حمله‌ها هم خیلی‌ کوتاهه
    اینکه امنیت SSL رو زیر سوال ببریم یعنی‌ امنیت کّل اینترنت رو بردیم زیر سوال و این ادعای خیلی‌ خیلی‌ بزرگیه!

  22. #62

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    جوش نزن...
    شاید و البته فقط شاید در حوزه رمزنگاری مطالعه بیشتری نسبت به من داشته باشی. حتی شاید و فقط شاید سوادت در رمزنگاری بیشتر باشه ولی فکر نکنم جایز باشه این رو کلا بست بدی به هر نوع مطالعه و سواد!!!
    اگر مودبانه با مردم صحبت کنی هیچ کس حرفی نمیزنه که عصبانی بشی و کسی هم موضع گیری در مقابلت نمیکنه. اتفاقا همه ازت متشکر خواهند شد که اطلاعاتت رو شیر میکنی.
    من به شخصه آدم صبوری هستم و اگه یادت باشه قبلا هم توی پیام خصوصی بهت تبریک گفتم که با تلاش خودت این مطالعات رو انجام دادی و فکر میکنم حداقل این کار من نشون بده حسن نیت دارم و از روی لجبازی و کل کل نیست که باهات بحث میکنم. قبلا هم باز در پیام خصوصی بهت گفتم که این بحث های علمی و فنی رو با روابط دوستانه قاطی نکن!!!
    ببخشید ولی شما اصلا رفتار و اصول حرفه ای رو رعایت نمیکنی آدم هم بهت میگه، نمیدونم متوجه نمیشی باور نداری گوش نمیکنی خلاصه!
    اصلا یه چیزایی هست آدم باید خودش بدونه رعایت کنه زشته آدمهای بالغ و عاقل که ادعای تخصص و سواد و تحصیلکرده بودن هم دارن هنوز رفتار اصولی و منطقی و حرفه ای و تخصصی نداشته باشن.
    مثلا من نمیدونم چطور وقتی چیزی رو واقعا کامل و دقیق نخوندی و درکش نکردی میای و با کس دیگه سرش بحث و جدل میکنی و جواب میدی. مثلا همین padding oracle attack بر اساس شواهد بعید میدونم کلش رو دقیق و کامل خونده و فهمیده باشی. بعد فقط یه جمله و یه بخش رو ترجمه کردی فکر میکنی با همون میشه کلی قضاوت کرد و مطمئن نظر داد! بنظر من که این رفتار خیلی ناشیانه است.

    اصلا ملت ما اینطوری هستن نمیدونم چرا همه اینقدر سرخود ادعاشون میشه از خودشون هم مطمئن هستن، بعد منی که مطالعه و تحقیق واقعی و اصولی کردم زحمت کشیدم یه چیزی رو ته و توش رو واقعا درآوردم فهمیدم، میام چیزی میگم توهین و تمسخر هم میکنن، چون خودشون نمیفهمن، مثلا میگن نه اینطور نیست یا من اغراق میکنم یا میخوام خودنمایی کنم!
    یک نمونه از این موارد رو در این تاپیک مطرح کردم: https://barnamenevis.org/showthread.php?534917
    یک قسمت از حرفایی که توش زدم:
    حالا جالبه ایشان قبول دارن که تخصص خاصی به در این زمینه ندارن چون بقول خودشون علاقه و نیاز چندانی به این موارد نداشتن. ولی در عین حال نظرات بنده رو نقد میکنن و میگن اغراق هست یا صرفا اصطلاحات فنی قلمبه سلمبه استفاده میکنم که خودمو مطرح کنم! باید از ایشون بپرسم دوست عزیز، شما که تخصص و صلاحیتی در این فیلد که باید بدونید به شدت تخصصی و علمی است، و رشتهء سخت و پیچیده ایست، ندارید، پس چطور درمورد گفته های من قضاوت میکنید و اتهام میزنید و فتوا میدید؟! از کجا مطمئن هستید؟ سند و دلایل شما کجاست؟
    یعنی ملت اینقدر بی اطلاع و سطح پایین هستن نمیدونن اصلا دنیا چه خبره چه دانش ها و پیشرفت ها و اصولی وجود داره، بعد یکی مثل من که رفته فهمیده حداقل که بابا فلان چیز خیلی حساب و کتاب داره خیلی داستان بیشتر و پیچیده تر از اونی داره که اکثریت فکر میکنن، باورشون نمیشه میگن اینا اغراق هست یا قلمبه سلبمه حرف میزنه فقط میخواد خودشو خیلی باسواد و باهوش نشون بده!

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

  23. #63

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    خب این همونیه که من در چند پست قبل اشاره کردم و روش کاربردی رو هم به همراه تعریف MITM براتون نقل کردم...
    مساله همینه
    امنیت باید همه جانبه باشه.
    اشکالی هم که من از برنامه شما گرفتم مربوط به روش رمز نگاریتون نیست. بلکه مربوط به روش PPP در ارتباط رایانه هاست... حتی این مشکل در حالت P2P هم که معمولا در شبکه های داخلی شرکت ها و ادارات پیاده میشه موجوده
    شما وقتی ارتباط این نرم افزارها رو برقرار میکنی بالاخره باید به فایر وال اجازه بدی که از این درگاهها اطلاعات رد و بدل بشه.

    یک تست بهت میگم انجام بده...
    نرم افزارت رو با حالت run as admin اجرا کن و ببین چه پیامی میده؟
    اونوقت میبینی که فایر وال به خود نرم افزار این اجازه رو نمیده (چون امضا نداره) بلاکه داره درگاه رو برات باز میکنه و این خطرناکه
    برنامه من اشکالش از نظر خودم کمبودهای مهمش ایناست:
    - باید برای هر جلسه ارتباطی یک session key جدید ایجاد و استفاده بشه (الان همیشه از master key استفاده میشه).
    - مسئلهء پیچیده تر forward secrecy که نداره. برای این منظور باید از الگوریتم ها/پروتکل های پیشرفته ای استفاده کرد که باعث میشن اگر کلید اصلی دست نفوذگر بیفته با این حال نتونه ارتباطات قبلی رو رمزگشایی کنه. البته این یک ویژگی پیشرفته است که فکر میکنم خیلی از نرم افزارهای دیگر هم ندارن، ولی بهرصورت چیز خوبیه دیگه!! من دنبالش نرفتم دقیق نمیدونم چطور باید پیاده اش کرد، اونم برنامهء من که ارتباطش از طریق HTTP است و حالت سوکت مستقیم و پایدار نداره شاید به همین خاطر از یکسری کتابخانه های مربوطه نشه درش استفاده کرد.
    - امکانی برای تغییر کلید از راه دور (از طریق سمت مانیتورینگ) باید بهش اضافه کنم ویژگی مفیدیه (هم کلید کلاینت ها و هم کلید سرور واسط رو بشه توسط برنامهء کنترل تغییر داد).

    بقیش دیگه نمیفهمم چی میگی اصلا منظورت چیه! بنظرم باید بیشتر توضیح بدی. دقیقا بگو اشکال برنامهء من کجاست چطوری چه حمله و نفوذ یا سوء استفاده ای ازش ممکنه.

  24. #64
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    برنامه من اشکالش از نظر خودم کمبودهای مهمش ایناست:
    - باید برای هر جلسه ارتباطی یک session key جدید ایجاد و استفاده بشه (الان همیشه از master key استفاده میشه).
    - مسئلهء پیچیده تر forward secrecy که نداره. برای این منظور باید از الگوریتم ها/پروتکل های پیشرفته ای استفاده کرد که باعث میشن اگر کلید اصلی دست نفوذگر بیفته با این حال نتونه ارتباطات قبلی رو رمزگشایی کنه. البته این یک ویژگی پیشرفته است که فکر میکنم خیلی از نرم افزارهای دیگر هم ندارن، ولی بهرصورت چیز خوبیه دیگه!! من دنبالش نرفتم دقیق نمیدونم چطور باید پیاده اش کرد، اونم برنامهء من که ارتباطش از طریق HTTP است و حالت سوکت مستقیم و پایدار نداره شاید به همین خاطر از یکسری کتابخانه های مربوطه نشه درش استفاده کرد.
    - امکانی برای تغییر کلید از راه دور (از طریق سمت مانیتورینگ) باید بهش اضافه کنم ویژگی مفیدیه (هم کلید کلاینت ها و هم کلید سرور واسط رو بشه توسط برنامهء کنترل تغییر داد).
    فکر نمیکنم بشه forward secrecy رو براحتی روی http پیاده کنی. بنظرم باید همون ssl/tls رو با یک روش رمزنگاری مثل ECDHE پیاده کنی. اگه یک چیز آماده بخوای، کتابخانه openssl تمام موارد مورد نیاز شما رو داره.

    بقیش دیگه نمیفهمم چی میگی اصلا منظورت چیه! بنظرم باید بیشتر توضیح بدی. دقیقا بگو اشکال برنامهء من کجاست چطوری چه حمله و نفوذ یا سوء استفاده ای ازش ممکنه.
    خود نرم افزار به تنهایی مشکلی نداره. مشکل موقعی پیش میاد که شما بخوای مثلا از طریق اینترنت این ارتباط ها رو انجام بدی (یک جا خوندم که از یک کانتر بصورت هش شده استفاده کردی تا یک سری ارتباطات رو سازماندهی کنی) خب اگر شبکه اینترنت باشه و نا امن باشه میشه خیلی راحت ارتباط رو جعل کرد و نفوذ رو انجام داد!!!
    پس راه درست همون استفاده از ssl/tls هست با یک رمزنگاری نامتقارن مثل ECDHE که قابلیت forward secrecy رو بهت بده


    اینم ببین:
    http://sublimerobots.com/2015/01/sim...xample-python/

    اومده از روشهای Key Exchange استفاده کرده

  25. #65

    نقل قول: پروژه نظارت و کنترل از راه دور

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

  26. #66

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط negative60 مشاهده تاپیک
    با توجه به درخواست بی‌ پاسخ از روند امن سازی و با توجه به ادعا‌های موجود انتظار بالایی وجود داشت و تصور بر این گذاشته شد که از یک تکنیک قوی استفاده شده
    منظور من از امنیت بالا، همون AES+HMAC بود. البته قبول دارم اغراق بوده، یعنی مقداری گمراه کننده. منظورم این نبود که برنامم از همه جهت کامل و خیلی پیشرفته است. منظورم همین رمزنگاری متقارن بود که اگر درست انجام بشه و اشتباهی توش نباشه کسی قادر نیست بشکنه. چون در عمل خیلی رمزنگاری هایی که دیگران استفاده میکنن در جزییاتشون ایرادها و اشتباهاتی دارن که باعث میشه امنیتشون به مراتب پایین تر بیاد. مثلا بعضیا MAC ندارن، بعضیا از مدهای ضعیف مثل ECB استفاده میکنن، بعضیا از الگوریتم های ضعیف یا حتی شکسته شده مثل DES استفاده میکنن، بعضیا از پسوردها یا کلیدهای ضعیف استفاده میکنن (چون نسبت به اهمیت و روش محاسبهء میزان امنیت اونا آگاه نیستن)، بعضیا در جزییات دیگری مشکل دارن مثلا در روش اشتقاق کلید اشتباهاتی رو مرتکب میشن، بعضیا از توابع رندوم ناامن استفاده میکنن، خلاصه رمزنگاری در عمل خیلی جزییات داره که باید دربارهء هرکدام اطلاعات کافی داشته باشی و خوب روشن باشی بینش داشته باشی حواست باشه که اشتباهی نکنی. یک علت هم که این مسائل رو تشدید میکنه اینه که خیلی وقتا در کدهای رمزنگاری وقتی اشتباهی میشه، برنامه همچنان کار میکنه و در ظاهر هیچ مشکل و نشانه ای مشاهده نمیشه که فرد بتونه براحتی متوجه اشتباهش بشه؛ فرض مثلا ممکنه شما یه اشتباهی در جایی از کدها و الگوریتم بکنی که باعث بشه کلید شما بجای 128 بیت بشه 64 بیت، در خیلی موارد میبینی برنامه با هیچ مشکلی در ظاهر مواجه نمیشه، و هیچکس هم از روی متن رمز شده نمیتونه بفهمه امنیتش کمتر شده، بطور معمول هیچ ابزار و تست و مثلا اسکنر امنیتی هم برای اینطور مسائل وجود نداره و استفاده نمیشه. افراد غیرمتخصص احتمال اشتباهاتشون در این زمینه واقعا زیاده، و اینو کسی که اطلاعات و تجربهء کافی داشته باشه میفهمه.
    بهرحال این برنامه هم با اینکه از امکانات حداقلی استفاده کرده ولی کسی بدون بدست آوردن کلید رمزنگاری نمیتونه کاری بکنه. ولی از روشهای دیگر ممکنه نفوذ و هک صورت بگیره، مثلا از طریق حفره های سیستم عامل به سیستم عامل کلاینت ها نفوذ کنن، یا فرضا در یک بخشی از مفسر یا کتابخانه های استفاده شدهء پایتون باگ buffer overflow باشه که اونا مباحث دیگریست و لزوما به برنامهء بنده مربوط نمیشه بلکه تامین امنیت بخشهای دیگریست.
    خلاصه رمزنگاری به حرف خیلی آسون تره، ولی در عمل هست که باید دید! چون اطلاعات کلی رو همهء ما ظاهرا میدونیم، همه میتونیم از پیشرفته ترین روشهای رمزنگاری اسم ببریم و اشاره کنیم، ولی خیلی جاها همون جزییات هست که اطلاع یا حضور ذهن و دقت کافی نسبت بهشون نیست و اشتباه میشن. حتی بعضی کتابخانه های رمزنگاری که بنده دیدم درشون چنین ضعف هایی وجود داشته. مثلا همین phpseclib که بنده در سمت php استفاده کردم، تابع رندومش ضعیف بود که بنده پیشنهاد و نظرهایی به توسعه دهنده اش دادم (چند سال پیش) که فکر میکنم یکیش رو اعمال هم کرد. ولی من تابع رندوم خودم رو از اون هم کاملتر سعی کردم درست کنم و حتی دربست به توابع رندوم امنیتی سیستم عامل یا کتابخانهء خاصی اعتماد نکردم. یک کتابخانهء رمزنگاری اگر تابع رندومش ضعیف باشه، ضعف مهمی است چون خیلی جاها اساس امنیت بر همین تابع رندوم بنا شده و فرض شما از قوی ترین و جدیدترین الگوریتم ها هم استفاده کنید ولی تابع رندوم شما امنیت بالایی نداشته باشه، امنیت شما از امنیت تابع رندوم هرگز بالاتر نمیره، و بدیش اینه کسی هم بدون بررسی دقیق این کدها از چشم یک متخصص و آدم مطلع، متوجه ضعف موجود نمیشه.
    البته PHP بخصوص در چندین سال پیش از نظر توابع و کتابخانه های رمزنگاری ضعف و نقص زیاد داشت، یعنی به هیچ وجه کامل نبود، ولی الان وضع ظاهرا بهتر شده، ولی همچنان نسبت به زبانهای دیگری مثل سی++ هنوزم امکانات محدودتر و قدیمی تری داره و خیلی جزییات و کارها رو خودت باید دقت کنی و انجام بدی. البته پایتون هم تاجاییکه دیدم چندان کامل و بروز نیست.
    بهرحال بنده فکر میکنم در این برنامه بازهم خوب کار کردم، بطور مثال جلوی Replay attack رو گرفتم، که این کار زیاد هم ساده نبود و کلی کار و کدم بخاطر این پیچیده شد، البته بعدا به روش بهتری رسیدم و کدم رو خیلی ساده تر و مختصرتر کردم ولی اولش که تجربه نداشتم همین مسئله کلی پیچیدگی و کار افزوده ایجاد کرد چون یکسری مسائل مثل امکان چند درخواست HTTP همزمان رو پیشبینی نکرده بودم و میخواستم همه کار رو بصورت synchronous انجام بدم ولی بعد دیدم نمیشه و باید درخواستهای Asynchronous هم داشته باشم، و از اون طرف بنظرم خیلی برنامه ها میشه پیدا کرد که جلوی این حمله رو نگرفتن، بعد مثلا میتونستم از یک کلید رمزنگاری مشترک در کلاینت ها و سرور استفاده کنم، ولی گفتم بهتره به سرور هم اعتماد نشه و اگر به سرور نفوذ شد (یا مثلا خود وبمستر و مالک سرور و افراد دیگری که ممکنه براحتی به کدها و کلید ما روی سرور دست پیدا کنن) امنیت برنامه از بین نره، بخاطر همین کلید و رمزنگاری بین کلاینت ها و سرور جدای از رمزنگاری بین کلاینت هاست، اینطور مجبور شدم جلوگیری از Replay attack رو هم دوبار پیاده سازی کنم؛ و همهء اینها در دو زبان متفاوت، یکی PHP و یکی پایتون. خب میتونم بگم واقعا کار برد این برنامه و علاوه بر سواد و اطلاعات و دقت کافی در علم رمزنگاری، نیاز به مهارت و دانش برنامه نویسی بالایی هم داشت و کسی که هم برنامه نویسی دسکتاپ بلد بشه هم سمت سرور وب با PHP و هم از یکسری مسائل سیستم عامل سردربیاره (بعضی کارها در این برنامه از طریق دستورات پیشرفتهء خط فرمان سیستم عامل انجام میشه که نکات و مشکلات خودش رو داشت) و بتونه همهء اینا رو با هم ارتباط بده و ترکیب و سازگار کنه. بخاطر همین من فکر میکنم از نظر ارزش کدنویسی این برنامه ارزش کمی نداره، چون برنامهء کلیشه ای و روتینی نبوده بگیم مثلا نمونه و کدش براحتی هرجایی پیدا میشه و همینطور برمیداری کپی و پیست میکنی یا هرکسی میتونه بنویسه. برنامه های دیگر آماده و مثلا بازمتن هم مطمئن هستم بهرحال تمام خصیصه ها و امکانات مورد نظر منو همینطور از قبل و راحت آماده ندارن و اگر بخوای دستکاری کنی یا امکاناتی بهشون اضافه کنی بهرحال خودش کار زیادی میبره؛ دوما از نظر امنیت نمیشه همینطور به برنامهء دیگران اعتماد کرد و باید بشینی کدهاش رو بخونی و سردربیاری که اشتباه و ضعفی درش نباشه (اشاره کردم فقط به اسم و ادعا و کلیت روش های استفاده شده نیست که مثلا این برنامه از فلان الگوریتم های خفن پفن استفاده میکنه مطمئن بشی پس امنیتی رو که فکر میکنی داره). خلاصه باید به چشم یک کار سفارشی خاص به اینطور پروژه ها نگاه کرد، چون هم برنامش با بقیهء برنامه های بازاری و کلیشه ای فرق میکنه هم و برنامه نویسی که نیاز داره از بین صدتا برنامه نویس شاید یک نفر دانش و مهارت های کامل چنین کارهایی رو داشته باشه.

  27. #67

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    توی این مقاله هم یک ادعاهایی شده که اگه درست باشه باید فاتحه امنیت رو خوند...
    https://freedom-to-tinker.com/2008/1...-certificates/
    اینکه همون قضیهء سوء استفاده از MD5 است.
    تاریخ مقاله هم مال 2008.
    Certificate های جدید از MD5 استفاده نمیکنن.
    در ضمن فکر کنم بیشتر مرورگرهای جدید اصلا گواهینامه هایی رو که از MD5 استفاده کرده باشن قبول نمیکنن!
    کلا به تاریخ پیوست!
    البته SHA1 هم همچین امن نیستا

  28. #68
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    ارتباط رو بدون داشتن کلید رمزگذاری چطور میشه جعل کرد؟!!
    وای خداااااا
    چند بار باید توضیح بدم؟؟؟

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

    بحث نفوذ به رایانه هست. رایانه ای که در بستر اینترنت داره ارتباط میگیره و با روش کار شما بایستی یک درگاه و کانال ارتباطی رو هر از گاهی و یا دائما باز کنه...

    نقل قول نوشته شده توسط golbafan مشاهده تاپیک
    اشکالی هم که من از برنامه شما گرفتم مربوط به روش رمز نگاریتون نیست. بلکه مربوط به روش PPP در ارتباط رایانه هاست... حتی این مشکل در حالت P2P هم که معمولا در شبکه های داخلی شرکت ها و ادارات پیاده میشه موجوده
    شما وقتی ارتباط این نرم افزارها رو برقرار میکنی بالاخره باید به فایر وال اجازه بدی که از این درگاهها اطلاعات رد و بدل بشه.

  29. #69

    نقل قول: پروژه نظارت و کنترل از راه دور

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

  30. #70

    نقل قول: پروژه نظارت و کنترل از راه دور

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

    ضمنا برنامهء من اصلا P2P به اون معنا نیست، چون از یک سرور واسط برای ارتباط استفاده میکنه. شاید از اصطلاح نادرست یا مبهمی استفاده کردم. منظور من از P2P صرفا رمزنگاری بین کلاینت ها بود که با یک کلید مشترک که در دسترس سرور واسط هم نیست انجام میشه و بخاطر همین گفتم P2P.
    ضمنا ارتباط P2P هم اگر بود بهرحال مشکلی درش نمیبینم و این حرفا که شما میزنید عجیبه چون این همه برنامه های مختلف هست دارن از همین بند و بساط و داستان استفاده میکنن اگر قرار بود مشکل جدی داشته باشه که تمام سیستم ها و امنیت دنیا بهم میریخت!

  31. #71
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    ضمنا برنامهء من اصلا P2P به اون معنا نیست، چون از یک سرور واسط برای ارتباط استفاده میکنه. شاید از اصطلاح نادرست یا مبهمی استفاده کردم. منظور من از P2P صرفا رمزنگاری بین کلاینت ها بود که با یک کلید مشترک که در دسترس سرور واسط هم نیست انجام میشه و بخاطر همین گفتم P2P.
    در مورد P2P منظورت رو متوجه نمیشم! اگر منظورت اینه که سرور واسط فقط داره نقش روتر رو بازی میکنه که میشه گفت ارتباط ppp هست و سرور فقط بعنوان یک گره در شبکه هست.

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

    اینو ببین
    https://en.wikipedia.org/wiki/Private_network

  32. #72
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    آخرین ویرایش به وسیله golbafan : دوشنبه 25 بهمن 1395 در 13:34 عصر

  33. #73

    نقل قول: پروژه نظارت و کنترل از راه دور

    بله اینا که گفتی اطلاع دارم.
    اینا همونطور که خودت اشاره کرده به برنامهء من ربطی نداره و سطوح و لایه های دیگر است که اگر جایی نیاز بود خب میتونن پیاده کنن! اگر واقعا بنظرشون ارزشش رو داشت و صرف میکرد. وظیفهء من بعنوان یک برنامه نویس نوشتن یک برنامهء امن است که در شرایط و امکانات حداقلی هم حداکثر امنیتی رو که میشه تامین کرد داشته باشه. در خیلی موارد و جاها شاید صرف نکنه یا امکانات و منابع و دسترسی های لازم رو نداشته باشن که بتونن لایه های افزوده و این پیچیدگی ها رو اضافه و مدیریت کنن. هرچی لایه اضافه بشه و پیچیدگی زیاد بشه، طبیعتا هزینه ها و دردسرهای فنی و ناپایداری ها هم بطور معمول بیشتر میشن. حتی ممکنه خود اون پروتکل ها و برنامه های اضافی که استفاده میکنن ضعف هایی داشتن باشن و خودشون یجورایی راه نفوذ به سیستم رو باز کنن. بطور مثال طبق اسنادی که اسنودن فاش کرده، NSA تونسته به اکثر ارتباطهای V*P*N نفوذ کنه (میدونی که این ارتباطها خودشون رمز شده هستن). اینه گاهی استفاده از این فناوریها و لایه ها ممکنه خودشون یک توهم امنیت ایجاد کنن و باعث میشه در پایه و لایه های پایین تر و اصلی زیاد کار نشه و نرم افزارها خودشون از نظر امنیت ضعیف باشن. یا همون نرم افزارهای سمت سرور و کلاینت که شما برای تونل و V*P*N و این حرفا استفاده میکنی هم بالاخره ماهیتا نرم افزاری هستن مثل نرم افزارهای دیگر، و پورت و ارتباطات خودشون رو روی سیستم عامل و در شبکه/اینترنت باز میکنن، و از کجا میشه کاملا مطمئن بود خودشون باگ و حفره ای ندارن که از اون طریق مثلا به سیستم عامل کلاینت و سرور نفوذ بشه؟ خب احتمالش شاید زیاد نباشه، ولی بهرحال غیرممکن نیست و میدونیم که در دنیای کامپیوتر و نرم افزارها بارها حفره ها و ضعف ها در تمام نرم افزارها کشف شدن و میشن و این وسط هیچ نرم افزاری استثناء نیست.

    بهرحال هم شما یک بحث دیگر رو پیش کشیدی و خوب هم روشن نکردی؛ ببین چطور صحبت کردی:
    مشکل موقعی پیش میاد که شما بخوای مثلا از طریق اینترنت این ارتباط ها رو انجام بدی خب اگر شبکه اینترنت باشه و نا امن باشه میشه خیلی راحت ارتباط رو جعل کرد و نفوذ رو انجام داد!!!
    الان در این متن انگار داری میگی ارتباط نرم افزار بنده رو براحتی میشه جعل کرد، درحالیکه چنین چیزی نیست!
    سعی کن روشن و دقیق صحبت کنی! حرف زدنت خیلی مبهم و غیرحرفه ایه. اینطور حرف زدن هیچ کجای درست و حسابی و بحثهای علمی و تخصصی به دردی نمیخوره.
    آخرین ویرایش به وسیله SZsXsZS : سه شنبه 26 بهمن 1395 در 09:58 صبح

  34. #74

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    برنامه من اشکالش از نظر خودم کمبودهای مهمش ایناست:
    - باید برای هر جلسه ارتباطی یک session key جدید ایجاد و استفاده بشه (الان همیشه از master key استفاده میشه).
    - مسئلهء پیچیده تر forward secrecy که نداره. برای این منظور باید از الگوریتم ها/پروتکل های پیشرفته ای استفاده کرد که باعث میشن اگر کلید اصلی دست نفوذگر بیفته با این حال نتونه ارتباطات قبلی رو رمزگشایی کنه. البته این یک ویژگی پیشرفته است که فکر میکنم خیلی از نرم افزارهای دیگر هم ندارن، ولی بهرصورت چیز خوبیه دیگه!! من دنبالش نرفتم دقیق نمیدونم چطور باید پیاده اش کرد، اونم برنامهء من که ارتباطش از طریق HTTP است و حالت سوکت مستقیم و پایدار نداره شاید به همین خاطر از یکسری کتابخانه های مربوطه نشه درش استفاده کرد.
    - امکانی برای تغییر کلید از راه دور (از طریق سمت مانیتورینگ) باید بهش اضافه کنم ویژگی مفیدیه (هم کلید کلاینت ها و هم کلید سرور واسط رو بشه توسط برنامهء کنترل تغییر داد).

    بقیش دیگه نمیفهمم چی میگی اصلا منظورت چیه! بنظرم باید بیشتر توضیح بدی. دقیقا بگو اشکال برنامهء من کجاست چطوری چه حمله و نفوذ یا سوء استفاده ای ازش ممکنه.
    فکر کردم دیدم وقتی forward secrecy رو پیاده نمیکنیم، چه ضرورتی برای session key هست؟
    حقیقتش هم نیازی نیست!
    اینجا هم پرسیدم گفتن ضرورت نداره: http://crypto.stackexchange.com/ques...-key-each-time
    البته اینکه میگیم ضرورت نداره یعنی حیاتی نیست، ولی تحت بعضی شرایط میتونه فوایدی داشته باشه بهرحال، ولی در کاربردهایی که خیلی مهم و حساس نیستن فکر نمیکنم ارزش پیاده سازی داشته باشه.
    البته در برنامهء بنده کلید اصلی هم مستقیما استفاده نشده و توسط HKDF، دو کلید یکی برای AES و دیگری برای HMAC ازش مشتق شده. ولی حتی این هم مطمئن نیستم ضرورت داشته باشه، ولی خب ضرری هم نداره و بهرحال وقتی میخوایم از کلید اصلی یک کلید دیگر هم مشتق کنیم (برای HMAC)، بهرحال باید از HKDF استفاده کنیم و بنابراین از نظر کد فرق چندانی نمیکنه که از کلید اصلی مستقیم استفاده کنیم یا نه.

  35. #75
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    فکر کردم دیدم وقتی forward secrecy رو پیاده نمیکنیم، چه ضرورتی برای session key هست؟
    حقیقتش هم نیازی نیست!
    اینجا هم پرسیدم گفتن ضرورت نداره: http://crypto.stackexchange.com/ques...-key-each-time
    البته اینکه میگیم ضرورت نداره یعنی حیاتی نیست، ولی تحت بعضی شرایط میتونه فوایدی داشته باشه بهرحال، ولی در کاربردهایی که خیلی مهم و حساس نیستن فکر نمیکنم ارزش پیاده سازی داشته باشه.
    خب این برای p2p و شبکه های محلی درسته البته...
    ولی وقتی بخوای این رو در اینترنت پیاده سازی کنی باید به تولید سیشن ها دقت کنی تا هر کسی نتونه خودشو جای تو جا بزنه و یک سیشن جعلی درست کنه و نرم افزار رو گول بزنه. ولی همونطور که گفتی این مساله رو باید بزاری روی الاکلنگ تا بر اساس اهمیت نرم افزار و معروف بودنش در جامعه جهانی روی امنیتش هم از سرمایه وقت و انرژی صرف کنی! مثلا نرم افزار تلگرام به علت وجود تعداد زیادی کاربر در دنیا و البته تبادل حجم زیاد اطلاعات مجبوره forward secrecy رو رعایت کنه. چون اعتبارش به اینه که بتونه امنیت کاربراش رو تامین کنه... (حالا کاری نداریم که خودش ممکنه اطلاعات کاربراشو بفروشه)

    البته در برنامهء بنده کلید اصلی هم مستقیما استفاده نشده و توسط HKDF، دو کلید یکی برای AES و دیگری برای HMAC ازش مشتق شده. ولی حتی این هم مطمئن نیستم ضرورت داشته باشه، ولی خب ضرری هم نداره و بهرحال وقتی میخوایم از کلید اصلی یک کلید دیگر هم مشتق کنیم (برای HMAC)، بهرحال باید از HKDF استفاده کنیم و بنابراین از نظر کد فرق چندانی نمیکنه که از کلید اصلی مستقیم استفاده کنیم یا نه.
    اینکه فرق چندانی میکنه یا نه رو دقیقا نمیدونم. ولی فکر میکنم این که کلید ها رو به این شکل مشتق میکنن یک استاندارد هست برای رعایت بهتر فکر کنم randomness و اعتماد بیشتر به سیستم...

  36. #76

    نقل قول: پروژه نظارت و کنترل از راه دور

    دیروز که به crypto.stackexchange.com سر زدم تعدادی موضوع جالب دیدم که خوندم، همینطور سرنخ ها رو گرفتم رسیدم به مقاله های دیگه، خلاصه یه 20 تایی موضوع و بحث رو خوندم، گذارم به ویکیپدیا هم افتاد، اونجا هم یه 20 تا مقالهء دیگه خوندم! خلاصه روز پرباری بود
    علم رمزنگاری خیلی گسترده است و مدام هم بروز میشه؛ آدم توی این رشته باید چند وقت یک بار دوباره تحقیق و مطالعه بکنه تا بروز باشه.
    راستی یه الگوریتم رمزنگاری دیدم توی ویکیپدیا که فقط چند خطه
    https://en.wikipedia.org/wiki/Speck_%28cipher%29
    اینم کدش:
    #include <stdint.h>

    #define ROR(x, r) ((x >> r) | (x << (64 - r)))
    #define ROL(x, r) ((x << r) | (x >> (64 - r)))
    #define R(x, y, k) (x = ROR(x, 8), x += y, x ^= k, y = ROL(y, 3), y ^= x)
    #define ROUNDS 32

    void encrypt(uint64_t const pt[static 2],
    uint64_t ct[static 2],
    uint64_t const K[static 2])
    {
    uint64_t y = pt[0], x = pt[1], b = K[0], a = K[1];

    R(x, y, b);
    for (int i = 0; i < ROUNDS - 1; i++) {
    R(a, b, i);
    R(x, y, b);
    }

    ct[0] = y;
    ct[1] = x;
    }

    موضوع اینه الگوریتم درست و حسابی هم هست ظاهرا، چون توسط متخصصان NSA طراحی شده.
    البته فکر نمیکنم امنیتش بتونه با AES برابری بکنه!

  37. #77
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    ممممممم
    خیلی جالب بود. تاحالا بهش برنخورده بودم...
    همونطور که از الگوریتم مشخصه، بسیار سریع هست!

    در مقاله زیر از این روش برای استفاده در حوزه اینترنت اشیا و سخت افزارها و نرم افزارهای سبک (از نظر پردازش) نام میبره:
    در مقدمه میگه که NSA این الگوریتم ها رو برای جاهایی که نمیشه از AES استفاده کرد طراحی کرده. پس میشه حدس زد که قدرتش کمتر از AES هست و سرعتش بسیار بیشتر و استفاده از منابع سیستم بسیار کمتر!
    http://csrc.nist.gov/groups/ST/lwc-w...hors-paper.pdf

    یکی از دلایلی که میاره اینه که مثلا میگه AES-128 میتونه روی GE>2400 و یا میکرو کنترلرهای 8 بیت به بالا پیاده بشه
    در حالی که برای برخی سخت افزارها و میکرو کنترلرهای حوزه Beacon و اینترنت اشیا که پردازنده 4 بیت دارند نمیشه از AES بهره برد!
    ---

    Untitled.jpg
    آخرین ویرایش به وسیله golbafan : شنبه 30 بهمن 1395 در 13:35 عصر

  38. #78

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط SZsXsZS مشاهده تاپیک
    راستی یه الگوریتم رمزنگاری دیدم توی ویکیپدیا که فقط چند خطه
    https://en.wikipedia.org/wiki/Speck_%28cipher%29
    اینم کدش:
    #include <stdint.h>

    #define ROR(x, r) ((x >> r) | (x << (64 - r)))
    #define ROL(x, r) ((x << r) | (x >> (64 - r)))
    #define R(x, y, k) (x = ROR(x, 8), x += y, x ^= k, y = ROL(y, 3), y ^= x)
    #define ROUNDS 32

    void encrypt(uint64_t const pt[static 2],
    uint64_t ct[static 2],
    uint64_t const K[static 2])
    {
    uint64_t y = pt[0], x = pt[1], b = K[0], a = K[1];

    R(x, y, b);
    for (int i = 0; i < ROUNDS - 1; i++) {
    R(a, b, i);
    R(x, y, b);
    }

    ct[0] = y;
    ct[1] = x;
    }

    موضوع اینه الگوریتم درست و حسابی هم هست ظاهرا، چون توسط متخصصان NSA طراحی شده.
    البته فکر نمیکنم امنیتش بتونه با AES برابری بکنه!
    خیلی‌ وقت بود دنبال یه الگوریتم سریع و با امنیت متوسط/خوب میگشتم احتمالا به درد من میخوره (بهتره برای موضوعاتی که به این تاپیک ربطی‌ نداره تو بخش خودش تاپیک ایجاد بشه)

    البته الگوریتم با قدرت AES همین حالا هم وجود داره chacha20-poly1305 که چند ساله اجرایی شده و دنیا رمزنگاری الگوریتم جدیدی به حساب میاد در حال حاضر خیلی‌ از غولهای‌ اینترنتی مثل گوگل, فیسبوک, کلود فلار, ویزا کارت و... به این الگوریتم مهاجرت کردن به دلیل اینکه در کنار امنیت خوبش پرفورمنس خیلی‌ خوبی‌ هم داره تو رمزنگاری فقط امنیت مهم نیست چیزی که به اندازه امنیت مهم هست سرعت پردازش هست که می‌تونه هزینه‌های سرور‌های بزرگ رو به مقدار قابل توجی کاهش بده و همچنین تو کامپیوترهای جیبی‌ هم باعث می‌شه انرژی کمتری صرف پردازش بشه که باعث صرفه جویی در مصرف باطری می‌شه

    این نتایج بنچمارک الگوریتمهای مختلف رو کامپیوتر منه:
    type            	16 bytes     64 bytes     256 bytes    1024 bytes   8192 bytes   16384 bytes
    chacha20-poly1305 81109.32k 145302.35k 246685.76k 258933.31k 263730.33k 264456.20k
    chacha20 115274.44k 198422.90k 390654.99k 405981.39k 410297.62k 411064.72k
    aes-128-cbc 69128.70k 78088.70k 81174.07k 81249.24k 79965.24k 80604.32k
    aes-256-cbc 51901.55k 55649.78k 57602.00k 57891.29k 57943.07k 58040.60k
    aes-128-gcm 36732.21k 43238.44k 96182.36k 103388.09k 104936.15k 104886.04k
    aes-256-gcm 28769.41k 33372.52k 80532.20k 87074.71k 88707.66k 88794.52k
    aes-128-ctr 46843.66k 54598.40k 172586.67k 194556.28k 201581.48k 202342.40k
    aes-128-ofb 65602.52k 74269.11k 76572.21k 77349.14k 77355.48k 77549.08k
    des-cbc 31732.41k 35228.92k 36133.79k 36337.52k 36516.88k 36360.30k
    camellia-128-cbc 46407.84k 72056.02k 83611.60k 86968.04k 88196.77k 87988.77k
    bf-cbc 55239.62k 63547.59k 66546.55k 67155.03k 67229.94k 67202.55k


    با اینکه chacha20 به صورت پیشفرض از کلید ۲۵۶ بیتی استفاده می‌کنه اما از تمام مدهای جدید و قدیمی‌ AES-128 و الگوریتم‌های دیگه هم سریعتره البته الگوریتم poly1305 که برای اصالت سنجی در این رمزنگاری استفاده شده خودش از AES استفاده می‌کنه.

  39. #79

    نقل قول: پروژه نظارت و کنترل از راه دور

    در این PDF حرفهای جالبی زده: http://www.bsdcan.org/2010/schedule/..._crypto1hr.pdf
    البته بیشترش اطلاعات عمومی هست که قبلا میدونستم، ولی بعضیاش جالب تره. مثلا گفته از Poly1305 استفاده نکنید؛ علتش اشاره کرده ظاهرا بخاطر حساسیت و مشکل بودن پیاده سازیش هست:
    AVOID: Poly1305
    If your name is Daniel Bernstein, go ahead and use this Otherwise, you’re never going to produce a secure and correct implementation

    همچنین توصیه کرده:
    DON’T: Use modes which provide both encryption and authentication
    یعنی از مدهایی مثل EAX و GCM استفاده نکنیم!
    البته بنده هم در جریان بحث ها اشاره کرده بودم که جایی خوندم که از بعضی لحاظ این مدها رو مقداری ضعیف تر از روشهای قدیمی تر کلاسیک مثل AES+HMAC میدونست.
    کلا یه الگوریتم جدید که میاد نباید فکر کرد لزوما از همه جهت بهتر و امن تره. بعضی وقتا ضعف هایی دارن. پس باید مطالعه و تحقیق کرد و زیاد عجله نکرد. الگوریتم ها و مدهای قدیمی جا افتاده مثل AES و CBC و HMAC ضریب اطمینان خوبی دارن، چون در طول سالها امتحان خودشون رو پس دادن، حسابی تحلیل شدن، ولی الگوریتم های جدید هنوز خیلی نمیشه مطمئن بود و ممکنه بعدا کسی درشون ضعفی پیدا کنه.

    ضمنا نویسندهء این مقاله Colin Percival رو میشناسم، مخترع الگوریتم scrypt هستن (کم کسی نیست )

  40. #80
    کاربر دائمی آواتار golbafan
    تاریخ عضویت
    اردیبهشت 1388
    محل زندگی
    در قلب دوستان
    پست
    2,018

    نقل قول: پروژه نظارت و کنترل از راه دور

    نقل قول نوشته شده توسط negative60 مشاهده تاپیک
    البته الگوریتم با قدرت AES همین حالا هم وجود داره chacha20-poly1305 که چند ساله اجرایی شده و دنیا رمزنگاری الگوریتم جدیدی به حساب میاد در حال حاضر خیلی‌ از غولهای‌ اینترنتی مثل گوگل, فیسبوک, کلود فلار, ویزا کارت و... به این الگوریتم مهاجرت کردن به دلیل اینکه در کنار امنیت خوبش پرفورمنس خیلی‌ خوبی‌ هم داره تو رمزنگاری فقط امنیت مهم نیست چیزی که به اندازه امنیت مهم هست سرعت پردازش هست که می‌تونه هزینه‌های سرور‌های بزرگ رو به مقدار قابل توجی کاهش بده و همچنین تو کامپیوترهای جیبی‌ هم باعث می‌شه انرژی کمتری صرف پردازش بشه که باعث صرفه جویی در مصرف باطری می‌شه
    با اینکه chacha20 به صورت پیشفرض از کلید ۲۵۶ بیتی استفاده می‌کنه اما از تمام مدهای جدید و قدیمی‌ AES-128 و الگوریتم‌های دیگه هم سریعتره البته الگوریتم poly1305 که برای اصالت سنجی در این رمزنگاری استفاده شده خودش از AES استفاده می‌کنه.
    سلام
    همونطور که میدونید الگوریتم chacha20 از نوع stream cipher هست و هیچ وقت نباید با الگوریتمهای بلوکی مقایسه بشه (چه از نظر امنیت و چه سرعت). درستش اینه که شما این الگوریتم رو مثلا با RC4 مقایسه میکردید.
    اصولا از نظر تئوری و همچنین کاربرد، الگوریتم های مبتنی بر استریم سرعت خیلی بالاتری نسبت به الگوریتم های مبتنی بر بلوک دیتا دارند! ولی هرچیزی رو بهر کاری ساختند...
    معمولا وقتی از الگوریتم های استریم استفاده میکنیم هدف اینه که یک دیتای رمز نشده رو ارسال کنیم و در حین ارسال کار رمزنگاری با سرعت انجام بشه یا مثلا دوربین های کنترل تردد شهری وقتی میخوان داده هاشون رو آنلاین ارسال کنند...
    ولی در الگوریتم های رمزنگاری بلوک دیتا، کل فایل رو رمز میکنیم و سپس ارسال (یا ذخیره) میکنیم...

صفحه 2 از 3 اولاول 123 آخرآخر

تاپیک های مشابه

  1. نرم افزار کنترل از راه دور نودهای شبکه ماتریکس Matrix Remote Control
    نوشته شده توسط net@rt در بخش ارزیابی نرم افزار
    پاسخ: 1
    آخرین پست: دوشنبه 22 اسفند 1390, 13:17 عصر
  2. سوال: كنترل از راه دور باتن هاي ماشين حساب كامپيوتر
    نوشته شده توسط meisam.jafarian در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 2
    آخرین پست: پنج شنبه 02 مهر 1388, 14:01 عصر
  3. کنترل از راه دور کامپیوتر(Remote Desktop)
    نوشته شده توسط fereshteh_b در بخش ASP.NET Web Forms
    پاسخ: 8
    آخرین پست: پنج شنبه 09 خرداد 1387, 15:12 عصر
  4. نرم افزار کنترل از راه دور
    نوشته شده توسط omid777 در بخش برنامه نویسی موبایل
    پاسخ: 0
    آخرین پست: پنج شنبه 28 تیر 1386, 18:57 عصر
  5. کنترل از راه دور سرور 2000
    نوشته شده توسط سهراب رسولی در بخش شبکه و Networking‌
    پاسخ: 8
    آخرین پست: دوشنبه 08 فروردین 1384, 13:40 عصر

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

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