PDA

View Full Version : سوال: الگوریتمی برای شناسایی کاربرانی با چند حساب کاربری! (بجز از طریق IP)



tecnocomputer2
سه شنبه 20 فروردین 1392, 13:25 عصر
با سلام
تا به الان از طریق IP کاربرانی که چند حساب کاربری دارن رو شناسایی میکردم، همونطور که میدونید کاربر میتونه با پروکسی ها آی پی رو تغیر بده، میخام از طریق کوکی کاربرهام رو شناسایی کنم.
چه الگوریتمی به ذهتون میرسه؟
ارادت

Unique
سه شنبه 20 فروردین 1392, 19:33 عصر
ip مشکلات زیادی داره ! مثلا کاربرایی که از روی یک شبکه به هاست شما دسترسی دارند به مشکل میخورند چون از یک ip استفاده میکنند ! توی سیستم های ISP هم که تعداد محدودی ip بین کاربران به اشتراک گذاشته میشه ممکنه باعث عدم دسترسی بعضی بشه !

با cookie میشه ! کافیه یک cookie را برای سه ماه یا بیشتر ست و هی تمدیدش کنید اما این فقط برای کاربرای آماتور جواب میده چون کاربر حرفه ای میره cookie ها را پاک میکنه !

یک کلام : امکان شناسایی به هیچ وجه وجود نداره ، من توی یک پروژه که برای جای بخصوصی مینوشتم و پروژه همه گیری نبود ،‌ie را توی یک application که با دلفی بود باز میکردم ! اینجوری دسترسی به همه سخت افزار و سریال هاش داشتم و شناسایی میکردمش ! اما به شکلی که به صورت عادی روی مرورگر بخواین این کار را بکنید ۹۹٪ امکان نداره و ۱٪ هم منه کم سواد نمیدونم !

FastCode
سه شنبه 20 فروردین 1392, 20:00 عصر
من میتونم ~ ۱۰ راه بگم و همش رو دور بزنم و شخصا به عنوان یک CCNP که داره CEH و LPIC میخونه هیچ راهی نمیبینم که شما بتونی کاربر رو شناسایی کنی.
IP
ActiveX
Session
Cookie
User Agent
Client Port Number Accounting(Windows XP Only/Heuristic)
Client Cache Analysing(Heuristic)
RoundTrip Analysing(Heuristic)
Client Protocol Extension Accounting(Heuristic, ECN, RED, ...)

اینترنت از چیزی که فکر میکنید خیلی پیچیده تره ولی هنوز هم راهی برای تشخیص کاربر تکراری ندارید.

Unique
چهارشنبه 21 فروردین 1392, 01:05 صبح
IP : میشه ردیابی کرد اما به درد نمیخوره چون هی عوض میشه یعنی تعین هویت نمیشه !
ActiveX : البته اگه کاربر ActiveX را تاپید کنه خیلی کار ها میشه کرد و میشه هم تعیین هویتش کرد !
Session : سمت سرور هستش ربطی به کلاینت نداره !
Cookie : میشه تهیعن هویت کرد اما کاربر میتونه حذفش کنه !
User Agent : این که برای خیلی ها یکسانه !!!! کلا ربطی نداره اگه هم داشته باشه میشه تغییرش داد



Client Port Number Accounting(Windows XP Only/Heuristic)
Client Cache Analysing(Heuristic)
RoundTrip Analysing(Heuristic)
Client Protocol Extension Accounting(Heuristic, ECN, RED, ...)


تا حالا اسمشون را هم نشنیده بودم !

FastCode
چهارشنبه 21 فروردین 1392, 01:57 صبح
چون کلمات انگلیسی و فارسی قاطی میشه همه رو انگلیسی نوشتم.
اولی اشاره داره به این که ویندوز پورتهای سمت کلاینت رو به شکل ترتیبی انتخاب میکنه که یک نقطه ضعف امنیتی قابل استفادست.
دومی به این اشاره داره که خیلی از مرورگر ها و شبکه ها قسمت های استاتیک سایت رو cache میکنن که میشه از عدم دریافتشون متوجه شد که کاربر قبلا وارد سایت شده
سومی هم مقدار زمانی هست که طول میکشه کلاینت به بسته های ارسال شده پاسخ ده که میشه ازش برای دسته بندی کاربر ها به چند دسته(مثلا ۱۰) استفاده کرد.
خیلی از کلاینت ها extension های خاصی از پروتوکل های خاص رو پشتیبانی میکنند که میشه با کمک اونها دسته بندیشون کرد.
مثل اون دوتایی که گفتم یا الگوریتم های فشرده سازی مرورگر

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

احتمالا اگر طراح وب بودم چیزهای بهتری میگفتم.

FastCode
چهارشنبه 21 فروردین 1392, 02:04 صبح
راستی اون برنامه که با دلفی نوشتید هم با یک sniffer ساده حل میشه.

Unique
چهارشنبه 21 فروردین 1392, 16:57 عصر
راستی اون برنامه که با دلفی نوشتید هم با یک sniffer ساده حل میشه.
یکی دو ماه اول خودم encrypt میکردم و بعید میدونم کسی میتونست به این راحتی ها با sniff سوء استفاده کنه چون یکی از آیتم ها IP لحظه ای کاربر بود و نمیتونست IP خودش را جایگزین کنه ! بعد از مدتی هم ssl گرفتیم و در آینده هم قراره *VP بشه. sniff اثری نداره.

در ضمن مخلص دبیانی ها هم هستیم ! شدید !!!!!

FastCode
چهارشنبه 21 فروردین 1392, 23:48 عصر
یکی دو ماه اول خودم encrypt میکردم و بعید میدونم کسی میتونست به این راحتی ها با sniff سوء استفاده کنه چون یکی از آیتم ها IP لحظه ای کاربر بود و نمیتونست IP خودش را جایگزین کنه ! بعد از مدتی هم ssl گرفتیم و در آینده هم قراره *VP بشه. sniff اثری نداره.

در ضمن مخلص دبیانی ها هم هستیم ! شدید !!!!!

این روش ها به هیچ عنوان امن نیست.
هر سه جز روشهایی هستن که اگر گیر آدمش بیافته(مثلا من) کمتر از ۳۰ ثانیه دوام میاره.مخصوصا اونی که نصفه نوشتی.
دومی احتمالا بیشتر طول میکشه.شاید تا ۳ دقیقه.

FastCode
پنج شنبه 22 فروردین 1392, 09:18 صبح
یادم رفت بگم برای نمونه سورس tor button رو بخونید.اگر اشتباه نکنم مثل بقیه پروژه OpenSource هست

Unique
پنج شنبه 22 فروردین 1392, 10:48 صبح
تاپیک داره جالب میشه !
شما مطئن هستین میتونین سایت های SSL را sniff کنید ؟
منظورتون از sniff اینه که بیاین packet های tcp را چک کنین دیگه ؟
من متخصص الگوریتم های امنیتی نیستم اما تا حالا نشندیم ssl در واقع tamper بشه ، در مورد vpn که اصلا جزو موضوعات خنده داره و اگه اینطوری باشه و شما بتونید این کار را بکنید بهتر نیست رزومتون را برای شرکت هایی مثل Oracle یا Microsoft یا Apple یا حتی CIA ارسال کنید ؟!

eshpilen
پنج شنبه 22 فروردین 1392, 13:37 عصر
تاپیک داره جالب میشه !
شما مطئن هستین میتونین سایت های SSL را sniff کنید ؟
منظورتون از sniff اینه که بیاین packet های tcp را چک کنین دیگه ؟
من متخصص الگوریتم های امنیتی نیستم اما تا حالا نشندیم ssl در واقع tamper بشه
من فکر کنم منظورش مهندسی معکوس/کرک فایل exe بود. یعنی از توی exe کلیدهای رمزنگاری رو بیرون بکشیم و نفوذها و دستکاری های دیگری که ممکنه و کرکرهای حرفه ای میتونن انجام بدن.

ضمنا در پروتکل SSL ضعفهایی کشف شده تاحالا و حمله هایی بهش ممکنه؛ البته اینطور که فهمیدم SSL v3 تا حدی قابل استفاده است و معادل TLS v1.0 فرض میشه. ولی SSL v3 و TLS v1.0 پایین ترین سطح امنیت قابل استفاده رو دارن. توصیهء منابع امنیت اینه که از نسخه های بالاتر TLS استفاده بشه.

همین یکی دو روز پیش داشتم مقاله ای در این مورد میخوندم: https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet#Rule_-_Only_Support_Strong_Protocols

eshpilen
پنج شنبه 22 فروردین 1392, 13:53 عصر
تازه اینم که از SSL v3 و TLS v1.0 میشه بعنوان حداقل استفاده کرد فکر کنم بخاطر عدم ساپورت بیشتر مرورگرها از پروتکل های جدیدتره: http://en.wikipedia.org/wiki/Transport_Layer_Security#Web_browsers

پس اینکه بشه به SSL/TLS یا VPN نفوذ کرد بستگی داره به اینکه از چه پروتکل/نسخه ای برای امنیت ارتباطات استفاده میکنن. اینا هم قابل تنظیم هست توسط سرور و کلاینت. پس شما باید نگاه کنید ببینید عملا از چه پروتکل و نسخه ای برای تامین امنیت داره استفاده میشه.

البته این نفوذ کردن رو نمیدونم تاچه حد دشوار و اساسی میتونه باشه! شاید اصلا آسون نباشه و درجه/وخامت نفوذ هم میتونه خیلی متفاوت باشه.

FastCode
پنج شنبه 22 فروردین 1392, 14:29 عصر
باید بگم که تقریبا هیچ کدوم از چیزهایی که دوستان عزیز Unique و eshpilen در مورد روش من حدث زدن درست نیست.

چون در موردی که گفتید(برنامه مرورگر ویژه)هدفتون جلوگیری از خرابکاری توسط خود کاربر هست باید بگم که دارید ۱۰۰٪ راه رو اشتباه میرید.
در روش اول مهندسی معکوس جواب میده و البته بعضی اوقات برنامه های DPI و Packet Analyser میتونن تا حدی(خیلی کم/در بیشتر موارد حتی جواب هم نمیده) ترافیک شما رو شناسایی کنن.
در مورد ssl باید بگم که خیلی راحت با ثبت یک CA در سیستم و تغییر در host ها و یک برنامه مثل sslsniff میشه کل ترافیکتون رو باز کرد و خیلی راحت با برنامه هایی مثل sed تغییر داد.
در مورد vpn هم که اصلا هیچ کدوم از این سختی ها لازم نیست.فقط کافیه روی اینترفیسی که vpn ایجاد کرده(pppN در لینوکس/نمیدونم در ویندوز اسمش چی میشه) sniff کنید.
البته اگر vpn به شکل کاملا userspace باشه(معمولا کار خیلی خیلی سختیه/مخصوصا هندل کردن gre و lcp و صد تا مشکل دیگه مثل mtu و fragmentation) یک مقدار کار سخت میشه ولی باز هم فکر نمیکنم بیشتر از یکی دو ساعت برای یک آدم تازه کار طول بکشه.البته اگر دقیقا بدونه داره دنبال چی میگرده که اون هم کار سختی نیست.چون در ویندوز همه توابع شبکه قابل hook هستن و با یک rewind در stack خیلی راحت میشه با یک diversion در کدتون همه ترافیک رو قبل از رمزنگاری dump کرد.البته چون با دلفی نوشتید اینقدر سخته.اگر .net بود کمتر از ۱۵ دقیق کار داشت.(البته اگر کسی بتونه با داتنت خالص vpn بنویسه./ممکنه ولی خیلی سخته)
کلا زیاد طول نمیکشه.

@Unique
قدرت یک زنجیر به کوچکترین مهرش وابسته هست.اصل اول امنیت.

eshpilen
پنج شنبه 22 فروردین 1392, 15:28 عصر
صورت مسئله یخورده مبهم بود.
الان دقت کردم که گفته IE رو Embed کرده توی یک برنامهء دلفی.
ولی چیزی که مد نظر من بود اینطوری نبود.
راستش من داشتم به یه برنامهء دسکتاپ (exe) فکر میکردم که داخلش کلید رمزنگاری مخفی داره و اطلاعاتی که بین سرور و کلاینت رد و بدل میشه داخل برنامه رمز میشه.
حالا ربطش به موضوع تاپیک چیه دقیقا خودمم نمیدونم :لبخند:
بهرحال توی ذهنم برنامه ای بود که در داخل خودش عملیات رمزنگاری داره و حالا مثلا کاربر میخواد ترافیکش رو کشف/دستکاری/جعل بکنه.
بنظرم این برنامه رو باید مهندسی معکوس و کرک کرد.
البته راههای دیگه هم میتونه داشته باشه بقول شما؛ مثلا hook کردن توابع کتابخانه های سیستم عامل. در لینوکس هم یه زمانی یه مطلبی خوندم و تست کردم که مثلا میتونستی کاری کنی که یک برنامه از تابع printf شما بجای تابع printf سیستم عامل استفاده کنه. البته اگر برنامه از الگوریتم های داخلی خودش برای رمزنگاری استفاده کنه یا مثلا لینک استاتیک شده باشه دیگه فکر نمیکنم این کار فایده ای داشته باشه.

در هر صورت کسی که به سیستم دسترسی داره تقریبا هرکاری میتونه بکنه و اصولا امنیت در این حالت چندان معنایی نداره. نمونش اینکه همهء نرم افزارها رو در نهایت کرک میکنن، چون بهرحال برنامه و سیستم زیر دست کرکر است؛ اما خب حداقل کاربرهای معمولی و افرادی که دانش مهندسی معکوس و کرک رو ندارن رو میشه با این روشها تاحد خوبی با مانع مواجه کرد. تازه از Obfuscator و این حرفا هم میشه استفاده کرد تا کرکش ساده نباشه (البته من خودم درمورد این تکنیک ها دانش و تجربهء خاصی ندارم).

FastCode
پنج شنبه 22 فروردین 1392, 15:58 عصر
صورت مسئله یخورده مبهم بود.
الان دقت کردم که گفته IE رو Embed کرده توی یک برنامهء دلفی.
ولی چیزی که مد نظر من بود اینطوری نبود.
راستش من داشتم به یه برنامهء دسکتاپ (exe) فکر میکردم که داخلش کلید رمزنگاری مخفی داره و اطلاعاتی که بین سرور و کلاینت رد و بدل میشه داخل برنامه رمز میشه.
حالا ربطش به موضوع تاپیک چیه دقیقا خودمم نمیدونم :لبخند:
بهرحال توی ذهنم برنامه ای بود که در داخل خودش عملیات رمزنگاری داره و حالا مثلا کاربر میخواد ترافیکش رو کشف/دستکاری/جعل بکنه.
بنظرم این برنامه رو باید مهندسی معکوس و کرک کرد.
البته راههای دیگه هم میتونه داشته باشه بقول شما؛ مثلا hook کردن توابع کتابخانه های سیستم عامل. در لینوکس هم یه زمانی یه مطلبی خوندم و تست کردم که مثلا میتونستی کاری کنی که یک برنامه از تابع printf شما بجای تابع printf سیستم عامل استفاده کنه. البته اگر برنامه از الگوریتم های داخلی خودش برای رمزنگاری استفاده کنه یا مثلا لینک استاتیک شده باشه دیگه فکر نمیکنم این کار فایده ای داشته باشه.

در هر صورت کسی که به سیستم دسترسی داره تقریبا هرکاری میتونه بکنه و اصولا امنیت در این حالت چندان معنایی نداره. نمونش اینکه همهء نرم افزارها رو در نهایت کرک میکنن، چون بهرحال برنامه و سیستم زیر دست کرکر است؛ اما خب حداقل کاربرهای معمولی و افرادی که دانش مهندسی معکوس و کرک رو ندارن رو میشه با این روشها تاحد خوبی با مانع مواجه کرد. تازه از Obfuscator و این حرفا هم میشه استفاده کرد تا کرکش ساده نباشه (البته من خودم درمورد این تکنیک ها دانش و تجربهء خاصی ندارم).
حدث زدم چه اشتباهی کردید.
با اینکه من هم زیاد از این کارها انجام ندادم ولی باید بگم که obfuscator تاثیر زیادی نداره.چون توابع سیستمی در هر حالت قابل رهگیری هستن و نمیشه فراخوانیشون رو obfuscate کرد.
برای کسی که کتابخونه رو تغییر میده static یا dynamic فقط یک کلمست.تاثیر چندانی نداره چون در حالت فایل recompile میشه.
به موضوع تاپیک که ربطی نداره. ولی "برای مطالعه" بد نیست.

راستی این روش(برنامه مرورگر ویژه) برای شناسایی کاربران تکراری میتونه تا یک جایی واقعا موثر باشه ولی شخصی مثل من در کمتر از دو لایه VM چنین برنامه ای رو اجرا نمیکنه.(اعتماد کاربر)

Unique
پنج شنبه 22 فروردین 1392, 16:36 عصر
متاسفانه چون در زمینه امنیت الگوریتم های امنیتی به اندازه دوستان اطلاعات ندارم اصلا نمیخوام بحث الکی کنم اما واقعا اگه بشه ssl را sniff کرد موضوعات خیلی زیاید پیش میاد ،‌مثلا من در صورت لو رفتن اطلاعات ارسالی بین client و server روی https ! به راحتی میتونم از versign یا شرکتی که مجوز ssl من را صادر میکنه شکایت کنم و پدرشون را در بیارم و اگه به این راحتی که شما میگین بشه کشف کرد روی https من چی دارم برای سرور ارسال میکنم پس امنیت سایت هایی مثل paypal و 2checkout و gmail یعنی کشک و کلا میره زیر سوال.

FastCode
پنج شنبه 22 فروردین 1392, 17:58 عصر
این کار رو من صد بار برای خودم انجام دادم و ربطی نداره.چون سمت کاربر هست.

eshpilen
پنج شنبه 22 فروردین 1392, 17:59 عصر
متاسفانه چون در زمینه امنیت الگوریتم های امنیتی به اندازه دوستان اطلاعات ندارم اصلا نمیخوام بحث الکی کنم اما واقعا اگه بشه ssl را sniff کرد موضوعات خیلی زیاید پیش میاد ،‌مثلا من در صورت لو رفتن اطلاعات ارسالی بین client و server روی https ! به راحتی میتونم از versign یا شرکتی که مجوز ssl من را صادر میکنه شکایت کنم و پدرشون را در بیارم و اگه به این راحتی که شما میگین بشه کشف کرد روی https من چی دارم برای سرور ارسال میکنم پس امنیت سایت هایی مثل paypal و 2checkout و gmail یعنی کشک و کلا میره زیر سوال.
وظیفهء SSL/TLS تامین امنیت از خروجی رایانهء شما تا سرور مقصد هست و بعکس (از سرور تا رایانهء شما).
حمله هایی که روی خود PC یا سرور انجام بشن ارتباطی با این ندارن.

البته اون موضوعاتی هم که درمورد ضعف SSL v3 و TLS v1.0 گفتم هست که باعث میشه امنیت در Transit هم پایین تر از حد استاندارد بیاد، ولی لزوما به این راحتی هم نیست و شاید خیلی به سختی قابل اجرا باشه اون حمله ها و اطلاعاتی هم که ازش بدست بیاد و قابل سوء استفاده باشه محدود باشه. حتی بعضی حمله ها ممکنه از نظر تئوریک باشن و هنوز در عمل کسی موفق به اجرای اونا نشده (حداقل در پابلیک). البته با تمام اینها باید به توصیهء متخصصان امنیت حتما توجه کرد، چون هیچ تضمینی نیست! مواردی که متخصصان قبلا هشدار داده بودن و بعدا دیر یا زود عملی شدن در تاریخ وجود داشتن.

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

eshpilen
پنج شنبه 22 فروردین 1392, 18:12 عصر
بنظر من فقط در یک مورد شاید شما بتونید شکایت کنید و به جایی برسید، اونم موقعی که مثلا verisign یک گواهینامهء اشتباه صادر کنه به هر علتی؛ مثلا سیستمش هک بشه و هکرها گواهینامه های جعلی مثلا به نام سایت/شرکت شما درست کنن و با استفاده از اون به کاربران شما حمله کنن. تازه اینم مطمئن نیستم!
خلاصه یه چیزی باید باشه خاص صدور و امنیت گواهینامهء دیجیتال، که البته به ضعف الگوریتم های استاندارد این کار هم ارتباطی نداشته باشه.
بقیهء پروتکل های درگیر و امنیت سرور و PC هم که اصولا بی ربطه.

SilverLearn
پنج شنبه 22 فروردین 1392, 18:27 عصر
متاسفانه چون در زمینه امنیت الگوریتم های امنیتی به اندازه دوستان اطلاعات ندارم اصلا نمیخوام بحث الکی کنم اما واقعا اگه بشه ssl را sniff کرد موضوعات خیلی زیاید پیش میاد ،‌مثلا من در صورت لو رفتن اطلاعات ارسالی بین client و server روی https ! به راحتی میتونم از versign یا شرکتی که مجوز ssl من را صادر میکنه شکایت کنم و پدرشون را در بیارم و اگه به این راحتی که شما میگین بشه کشف کرد روی https من چی دارم برای سرور ارسال میکنم پس امنیت سایت هایی مثل paypal و 2checkout و gmail یعنی کشک و کلا میره زیر سوال.


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

FastCode
پنج شنبه 22 فروردین 1392, 18:39 عصر
دقیقا منم موافقم
طرف میره این همه هزینه میکنه و مثلا ماهیانه به این شرکت ها پول می ده که اطلاعاتش به صورت امن transfer بشه بعد شما می گی برای یک کاربر مبتدی یکی دو ساعت کار میبره !!!
بعدشم شرکتی که گواهی ssl رو صادر میکنه علاوه بر تضمین امنیت در ارسال اطلاعات هم برای سرویس دهنده و هم سرویس گیرنده اگر اطلاعات حین انتقال مورد سرقت قرار گرفت باید تضمین کنه که این اطلاعات برای رباینده قابل درک و استفاده نباشد که این کار را با کمک الگوریتم های رمزنگاری و کلیدهای رمزنگاری نامتقارن و متقارن انجام می دهد.
وقتی کامل نمیخونید میتونید اینطوری هم فکر کنید.

FastCode
پنج شنبه 22 فروردین 1392, 18:40 عصر
برنامه کاملا خودکار برای sniff کردن ssl,
www.oxid.it/ca_um/topics/apr-https.htm (http://www.oxid.it/ca_um/topics/apr-https.htm)
من خودم با sslsniff کار کردم


این شخص هم مثل شما فکر میکنه
http://stackoverflow.com/questions/11591940/decrypt-client-side-ssl-traffic-in-wireshark-generated-by-java-httpsurlconnectio

eshpilen
پنج شنبه 22 فروردین 1392, 20:26 عصر
FastCode اینا که گذاشتی بصورت Man-in-the-middle کار میکنن و طبیعتا چون گواهینامهء دیجیتال معتبر ندارن مرورگر به کاربر هشدار میده و تنها اگر کاربر باوجود self signed بودن گواهینامه اون رو تایید کنه امکان پذیره.
ضمنا اگر سرور قبلا با ارسال هدر مربوطه مد HSTS (http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) رو فعال کرده باشه این روش کلا از کار میفته (چون اجازهء قبول کردن گواهینامه های نامعتبر در این حالت داده نمیشه).

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

FastCode
پنج شنبه 22 فروردین 1392, 20:35 عصر
FastCode اینا که گذاشتی بصورت Man-in-the-middle کار میکنن و طبیعتا چون گواهینامهء دیجیتال معتبر ندارن مرورگر به کاربر هشدار میده و تنها اگر کاربر باوجود self signed بودن گواهینامه اون رو تایید کنه امکان پذیره.
ضمنا اگر سرور قبلا با ارسال هدر مربوطه مد HSTS (http://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) رو فعال کرده باشه این روش کلا از کار میفته (چون اجازهء قبول کردن گواهینامه های نامعتبر در این حالت داده نمیشه).

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

من در پست اول گفتم که یک CA به سیستم اضافه میکنیم.
http://www.freebsdmadeeasy.com/tutorials/freebsd/create-a-ca-with-openssl.php


این هم دقیقا روشی هست که گفتم(title که درسته.خودش رو هنوز نخوندم)
https://seventhoctober.net/2011/08/ssl-mitm-with-an-inserted-ca-and-a-dns-hijack/

در ضمن حتی در firefox هم OCSP اجباری نیست.

eshpilen
پنج شنبه 22 فروردین 1392, 20:46 عصر
خب دیگه منظورم همینکه بهرحال باید به سیستم هدف/کلاینت دسترسی داشته باشی.
آخه این چیزا که میذاری فکر نمیکنم بیشتر ملت سردربیارن که یعنی چی؛ الان فکر میکنن SSL پشم هم نیست :لبخند:

eshpilen
پنج شنبه 22 فروردین 1392, 21:05 عصر
در منابع امنیتی که مطالعه میکردم بارها دیدم که اگر فرض کسی این بوده که نفوذگر دسترسی داره به سیستم کلاینت/قربانی، دیگه اصلا روی چیزهای دیگه بحث نمیکنن و میگن خب این سیستم که دیگه امنیت درموردش مفهوم و بحثی نداره!
مثلا میگن طرف میتونه بسادگی یک Key logger نصب کنه و یوزر و پس کاربر رو سرقت کنه. معمولا نیازی نیست حمله های پیشرفته و پیچیده ای انجام بده.
SSL/TLS هم که قبلا گفتم فقط امنیت در Transit رو تامین میکنن، نه امنیت روی یک سیستم Compromise شده.
وقتی هکر رفته قبلا این کارها رو کرده روی سیستم، هک همون موقع و همون جا انجام شده رفته پی کارش!

navid3d_69
پنج شنبه 22 فروردین 1392, 21:27 عصر
چند روز پیش این تاپیک رو دیدم 2 تا جواب داشت الان اومدم سر بزنم ببینم به کجا رسید دیدم کلا فرق کرده کم نیست از این تاپیک ها : دی

کسی که تاپیک رو درست کرد از اینکه با این حرفا هکش نکنید فکر کنم در رفته

FastCode
پنج شنبه 22 فروردین 1392, 21:45 عصر
خب دیگه منظورم همینکه بهرحال باید به سیستم هدف/کلاینت دسترسی داشته باشی.
آخه این چیزا که میذاری فکر نمیکنم بیشتر ملت سردربیارن که یعنی چی؛ الان فکر میکنن SSL پشم هم نیست :لبخند:
مشکل همینه.
وقتی درست استفاده میکنن فکر میکنن درست استفاده نکردن(دو نمونه دوست پارانوید که خیلی ترسیده بودن) و وقتی کاملا اشتباه استفاده میکنن مثل این مورد فکر میکنن کارشون خیلی امنه.

Unique
جمعه 23 فروردین 1392, 01:59 صبح
دوستان میشه فارسی صخبت کنید ما هم متوجه بشیم ؟!
ببینید وقتی من یک گواهینامه دیجیتال میگیرم و روی سرویس دهنده خودم نصبش میکنم هر اطلاعاتی بین کامپیوتر کلاینت که به سایت من وصل شده رد و بدل بشه باید کد بشه و قابل دسترسی نباشه ! من هم چیزی غیر از این نگفتم ! حالا جناب FastCode میاد میگه اینما کشکه ! یعنی گواهینامه ssl شما و اطلاعات شما با plain text ارسال کردن هیچ فرقی نداره و من اگه plain text را توی ۲ دقیقه در میاوردم حالا ssl و کد شدش را ۲۰ دقیقه در میارم !!!!!

بعدش eshpleen میاد میگه مهندسی معکوس ! این ربطی به موضوع ssl نداره و مربوط به برنامه desktop من میشه ! همونطور که گفتم اصلا مهم نیست معکوس بشه چون ما اینجا میخوایم مطمئن بشیم یک شخص داره از یک نام کاربری و کلمه عبور روی یک سیستم استفاده میکنه و بس !!!!

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

شما ادعا میکنید اگه من یک ip کلاینت و سرور به شما بدم که کلاینت با استفاده از مرورگرش و https (گواهینامه کاملا قانونی و تاریخ دار و صحیح) داره اطلاعاتی را به سرور میفرسته شما میتونید براحتی این اطلاعات را کشف کنید ؟ توجه داشته باشین قرار نیست شما کلاینت را هک کنید یا روی سیستمش چیزی نصب کنه و دسترسی هم به سرور ندارین و خودتون هستین و خودتون. حالا میشه پاسخ بدین ؟

FastCode
جمعه 23 فروردین 1392, 10:49 صبح
شما ادعا میکنید اگه من یک ip کلاینت و سرور به شما بدم که کلاینت با استفاده از مرورگرش و https (گواهینامه کاملا قانونی و تاریخ دار و صحیح) داره اطلاعاتی را به سرور میفرسته شما میتونید براحتی این اطلاعات را کشف کنید ؟ توجه داشته باشین قرار نیست شما کلاینت را هک کنید یا روی سیستمش چیزی نصب کنه و دسترسی هم به سرور ندارین و خودتون هستین و خودتون. حالا میشه پاسخ بدین ؟ خیر.
تا زمانی که دسترسی سطح admin یا root ناشته باشم نمیتونم چنین کاری انجام بدم.

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

اگر نوشته های من رو دقیق میخوندید متوجه میشدید که من از ابتدا چیز دیگه ای نگفتم.(وقتی میگم CA نصب میکنیم اصولا باید دسترسی admin داشته باشیم)

خیلی دوست دارم کامل توضیح بدم ولی تا ۳ شنبه وقت ندارم.اگر فرصت بدین سه شنبه یک توضیح ۴ ۵ صفحه ای مینویسم.

Unique
جمعه 23 فروردین 1392, 12:29 عصر
ادعایی که من کردم این بود که اون برنامه که برای جلوگیری از خرابکاری توسط خود کلاینت نوشته شده بود کاملا بیهودست.
ببینید برنامه اصلا در مورد خرابکاری نیست !!! اگه بخونید من گفت میایم یک IE را embed میکنیم توی پروژه و اطلاعات را از طریق این کنترل Embed شده میفرستیم حالا چون برنامه ما در desktop اجرا شده ما میتونیم به اطلاعات سخت افزاری سیستم شخص دسترسی داشته باشیم در واقع سیستیم که برنامه داره روش اجرا میشه ، حالا برنامه ما میاد یک کد encrypt شذه را بر اساس اطلاعات سخت افزاری و نرم افزاری سیستم شخص درست میکنه و از طریق IE به سروری که باهاش ارتباط https از طریق یک گواهی معتبر ssl داره ارسال میکنه ! یعنی فرقش با حالت عادی اینه که یک encrypt تشخیص سیستم هم همراه user و pass ارسال میشه ،‌حالا از طریق اون ما میتونیم بفهمیم که کاربر داره از یک سیستم برای اتصال به ما استفاده میکنه و مثلا چند نفر نتونن با یک نام کاربری و کلمه عبور از توی چند تا سیستم وصل بشوند ، حالا ممکنه شما با مهندسی معکوس بتونین encrypt معادل سیستم خودتون یا چیزی غیر واقعی تولید و برای سایت ارسال کنید اما اهمیتی نداره چون اگه اون user و pass با encrypt مربوط به سیستم دیگه ای لاگین کرده باشه شما deny میشین ! مگه اینکه بتونین encrypt سیستم مربوط به اون user و pass را در بیارین ! حالا من کامل توضیح دادم شما توضیح بدین چجوری میخواین برنامه را دور بزنین ؟

هیچ راهی نداره مگه اینکه encrypt سیستم نظیر با user و pass را بدست بیارین ! یا باید اون user را هک کنین و معادل encrypt مربوط به سیستمش را در بیارین که این متاسفانه از دست ما خارج میشه و تنها راه نفوذ هست و به کارفرما هم گفته شده اما خدایی چند نفر همچین اطلاعاتی دارند ؟! یا ارتباط امن ssl اون با سرور ما را sniff کنین و اطلاعات را کشف کنید که من میگم این امکان پذیر نیست ! من راه دیگه ای به ذهنم نمیرسه !

حالا خوبه کامل توضیح بدین تا من دانش آموز از شما یاد بگیرم.

FastCode
جمعه 23 فروردین 1392, 14:31 عصر
در این سناریو ssl فقط شما رو در برابر حمله خارجی ایمن میکنه.اگر خود کلاینت بخواد کد رو در بیاره براش آب خوردن هست.
فکر میکنم یک در ۱۰۰ هزار نفر؟؟

الان واقعا سرم شلوغه.(اگر تا چند دقیقه دیگه نهار نخورم چیزی گیرم نمیاد.)
ولی قول میدم در مورد برنامه کمکتون کنم.
برای نمونه کاری که باید انجام بدید MSCHAP نسخه ۱ رو بخونید.(MSCHAP جواب نمیده ولی بهتون ایده میده)

Unique
جمعه 23 فروردین 1392, 15:07 عصر
خوب پس ما به هدفمون توی این سناریو رسیدیم ! یعنی مانع از استفاده بیش از یک کاربر (بهتره بگیم یک سیستم) از یک نام کاربری و کلمه عبور شدیم مگه اینکه کسی بیاد encrypt ما را برای یک سیستم دیگه بدست بیاره و از user و Pass اون هم استفاده کنه که درصدش خیلی حیلی کمه و ارزشش را نداره !!!! ،‌ خوب اصل مطلب این Thread هم همین بودش !

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

AbiriAmir
جمعه 23 فروردین 1392, 15:13 عصر
هیچ راهی نداره مگه اینکه encrypt سیستم نظیر با user و pass را بدست بیارین ! یا باید اون user را هک کنین و معادل encrypt مربوط به سیستمش را در بیارین که این متاسفانه از دست ما خارج میشه و تنها راه نفوذ هست و به کارفرما هم گفته شده اما خدایی چند نفر همچین اطلاعاتی دارند ؟!اولا من عذرخواهی میکنم میپرم وسط بحث.
اما دوست عزیز جناب unique فکر میکنم منظور دو دوست دیگر هم همین هست.
شما امنیت اطلاعاتت از لحظه خروج از کامپیوتر کارفرما و تا لحظه ورود به سرور سایت توسط ssl تضمین میشه.
اما اگر کسی بتونه به قبل از اون مرحله (کامپیوتر کارفرما) و یا بعدش (سرور سایت) نفوذ کنه دیگه سامانه شما هک شده هست.
این که گفتید اگر اینجوری باشه جیمیل و اینا هم کشکه بله همینطوره. مثلا گوگل یا verisign که مسئول این نیستن که سیستم من و شما Antivirus داره یا نداره. یا امن هست یا نیست.
بلکه جیمیل امنیت رو از لحظه خروج اطلاعات از سیستم شما به بعد تضمین میکنه و قبل از اون دیگه امنیتتون با خودتون هست.

اینجور حملات دقیقا مثل این هست که یک نفر بیاد بالای سر شما و پسورد رو از روی دستتون بخونه. (حالا کمی پیچیده تر مثلا Key Logger یا نفوذ به رایانه به طرق مختلف یا Fake Mail و Fake Page و...) که دقیقا مربوط میشه به اشتباهات کاربر و نه اشتباهات سرویس دهنده و صادر کننده گواهینامه دیجیتال و ... .

این دوستان هم منظورشون همین هست:

در منابع امنیتی که مطالعه میکردم بارها دیدم که اگر فرض کسی این بوده که نفوذگر دسترسی داره به سیستم کلاینت/قربانی، دیگه اصلا روی چیزهای دیگه بحث نمیکنن و میگن خب این سیستم که دیگه امنیت درموردش مفهوم و بحثی نداره!
مثلا میگن طرف میتونه بسادگی یک Key logger نصب کنه و یوزر و پس کاربر رو سرقت کنه. معمولا نیازی نیست حمله های پیشرفته و پیچیده ای انجام بده.
SSL/TLS هم که قبلا گفتم فقط امنیت در Transit رو تامین میکنن، نه امنیت روی یک سیستم Compromise شده.
وظیفهء SSL/TLS تامین امنیت از خروجی رایانهء شما تا سرور مقصد هست و بعکس (از سرور تا رایانهء شما).
حمله هایی که روی خود PC یا سرور انجام بشن ارتباطی با این ندارن.

---------------
عذر میخوام پستم با پست خودتون همزمان شد

eshpilen
جمعه 23 فروردین 1392, 15:26 عصر
ولی خب این روشهایی که روی سیستم کاربر برنامه نصب کنیم در پابلیک قابل اجرا نیست معمولا.
فکر کنید این رویه باب بشه اونوقت چی به سر امنیت میاد! هر سایتی میگه باید برنامهء مخصوص ما رو روی سیستمتون نصب کنید. این برنامه ها ممکنه حاوی کدهای مخفی/جاسوسی باشن، ممکنه بد طراحی شده باشن و حفره باز کنن توی سیستم و کسان دیگری باهاش نفوذ کنن (مرورگر که اینقدر حساب شده و محدود هست و توسط متخصصین طراحی میشه توش حفره های جدی درمیاد).
خلاصه مسئله از کنترل خارج میشه.
تمام این بند و بساط و اینکه مرورگر ساخته شده و اینقدر محدودیت داره و اینکه نمیتونید به سیستم کاربر دسترسی داشته باشید و هیچ نشانه گذاری غیرقابل پاک شدن در سیستم کاربر نمیشه گذاشت، اینکه هیچ MAC ای بهتون نمیرسه، عمدتا به همین دلایل امنیتی و Privacy است.

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

البته مطمئن باشید اگر اینطور روشهای غیراستاندارد فراگیر بشه، کرک و راههای دور زدن و نرم افزارهای مخصوص هک اونا هم درمیاد و عملا مزیت این برنامه ها هم تا حد زیادی از بین میره. بنظرم FastCode تاحدی روشن کرد که این کار میتونه چقدر راحت و سریع باشه.
البته بخصوص اگر یک سرویس عمومی باشه که بقدر کافی کاربر/اهمیت داشته باشه.

تازه مشکلات فنی دیگر هم هست. مثلا لزوما فقط یک نفر از یک PC استفاده نمیکنه که!

Unique
جمعه 23 فروردین 1392, 18:54 عصر
اما دوست عزیز جناب unique فکر میکنم منظور دو دوست دیگر هم همین هست.

متاسفانه منظورشون را نمیشه از یک پست دوستان استخراج کرد ! ببینید وقتی بحث sniff میاد وسط دیگه ما کاری به کامپیوتر کلاینت نداریم ! داریم در مورد انتقال اطلاعات و کشف اونها در ضمن این انتقال صحبت میکنیم ،‌پس جناب FastCode داشتند کلا موضوع ssl را میبردند زیر سوال که مثل اینکه عقب نشینی کردند و قبول کردن نمیشه اطلاعات را در زمان انتقال از طریق یک گواهی دیجیتال کشف کرد (ادعای خیلی بزرگیه !!!!!!!!!!). موضوع مهندسی معکس هم ربطی به بحث ما نداشت ! چون دونستن روال کار برنامه ۵۰ درصد هست و باید دسترسی به سیستم کلاینت پیدا کنند و من اصلا حرفی در اون مورد نزدم و توی همه پست ها گفته ام اون مهم نیست چون به قول شما اگه هک بشه که دیگه موضوع امنیت اهمیتی پیدا نمیکنه ! یعنی اینجا نرم افزار ما زیر سوال نرفته بلکه ما زیر سوال رفتیم !

ببینین توی پست های دوستان نشانه ای از این بود که گواهی ssl که توسط خیلی از شرکت های معتبر ارائه میشه و یه جورایی بیمه هست براحتی توی ۴ دقیقه و ۲۰ دقیقه کشف میشه و تمام ! اما یکدفعه از این موضوع شونه خالی کردند چون حرف بی منطقی بود ! من باز هم میگم اگه من گواهینامه ای را تهیه کنم و روی سیستم سرور نصب کنم در صورتی که این گواهی ssl سوراخی داشته باشه قطعا میتونم پدرشون را در بیارم ! همه جای دنیا که مثل ایران بی در و پیکر نیست قاضی بی سواد را باید تفهیم کنی اصلا اینترنت چی هست که حالا گواهی ssl چی باشه ! وقتی داری هزینه ماهانه ای بابت تضمین عدم رمزگشایی پرداخت میکنی باید بتونی یقه طرف را هم در صورت حقه بازی بگیری ! البته منم شکی در ۹۹.۹٪ امن بودن اینها ندارم بلکه دوستان بردنش زیر سوال !


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

Unique
جمعه 23 فروردین 1392, 19:03 عصر
راستش وقت نکردم بشینم سایت ها را درست بگردم اما همه این SSL ها Warranty دارند ! هر چی گرونتر باشه Warranty بیشتری داره و پیجیده تر میشه. مثلا comodo از پیش پا افتاده ترین ها هستش. اینو بخونین (http://www.comodo.com/repository/CPS_Amendment-Low_assurance_warranty.pdf) متوجه میشین.

FastCode
جمعه 23 فروردین 1392, 20:01 عصر
،‌پس جناب FastCode داشتند کلا موضوع ssl را میبردند زیر سوال که مثل اینکه عقب نشینی کردند و قبول کردن نمیشه اطلاعات را در زمان انتقال از طریق یک گواهی دیجیتال کشف کرد (ادعای خیلی بزرگیه !!!!!!!!!!).چقدر توضیح دادن به شما سخته؟
من از اولش هم چنین ادعایی نکردم.
اگر پست ها رو از اول بخونید متوجه میشید.
وقتی میگم CA نصب کنید یا روی pppN اسنیف کنید یعنی چی؟چون احتمالا باز هم متوجه نمیشید میگم, لوکال

eshpilen
جمعه 23 فروردین 1392, 21:10 عصر
راستش وقت نکردم بشینم سایت ها را درست بگردم اما همه این SSL ها Warranty دارند ! هر چی گرونتر باشه Warranty بیشتری داره و پیجیده تر میشه. مثلا comodo از پیش پا افتاده ترین ها هستش. اینو بخونین (http://www.comodo.com/repository/CPS_Amendment-Low_assurance_warranty.pdf) متوجه میشین.

این Warranty ها فقط مربوط به صحت صدور گواهینامه میشن.
همونطور که خودش گفته:
PositiveSSL certificates carry warranty of $10,000 against certificate mis-issuance

mis-issuance یعنی چی؟
یعنی اشکالی در صدور.
جمله کاملا واضحه و از نظر قانونی فقط مسئولیت mis-issuance رو بعهده گرفته.

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

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

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

اگر حفرهء جدی ای در پروتکل SSL/TLS یا الگوریتم گواهینامه های دیجیتال باشه، طبیعتا ملت نمیرن اینقدر پول بدن این گواهینامه ها رو بخرن؛ ولی خب تضمینی نیست اگر فردا یک حفرهء بزرگ توی این الگوریتم ها کشف بشه، هیچکس به شما خسارتی نمیده.

Unique
شنبه 24 فروردین 1392, 13:48 عصر
وقتی میگم CA نصب کنید یا روی pppN اسنیف کنید یعنی چی؟چون احتمالا باز هم متوجه نمیشید میگم, لوکال

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

شما نیازی هم به مهندسی معکوس ندارین ! چه اهمیتی داره اون encrypt چطور ساخته شده ! شما نیاز به نام کاربری و کلمه عبور و encrypt سیستمی که بار اول اون نام کاربری و کلمه عبور از طریقش login کرده ! یعنی این اطلاعات sniff روی سیستم شما به هیچ دردی نمیخوره !

پس شما نه میتونید اطلاعات رد و بدل شده بین یک کاربر فعال با سرور را بدست بیارین ! نه میتونید به صورت local روی سیسام خودتون کاری انجام بدین !
تنها کاری که میشه کرد اینه برین این کار را روی سیستم یک نفر که نام کاربری و کلمه عبور داره و رشته ecnrypt ش را نمیدونید انجام بدین و از اطلاعات sniff شده روی سیستم خودتون استفاده کنید !!! ولی خوب این کار نمیده چون از پارامتر های توی encrypt مقدار ip و resolution و آخرین نسخه flash و ویندوز و غیره هست که شما حداقل ip را نمیتونید tamper کنین !!! یعنی برنامه ما متوجه میشه نفر دومی داره ازش استفاده میکنه و دسترسی را میبنده !

حالا فرض میکنیم شما باهوشی و گیر استفاده از مهندسی معکوس و دردسر هاش هم نیستی ! و میای encrypt را روی سیستم خودت با همون sniff در میاری ! ولی باز هم به دردت نمیخوره ! چون اگه encrypt را عوض کنی دیگه اون نام کاربری و کلمه عبور به درد نمیخورن !


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

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

FastCode
شنبه 24 فروردین 1392, 14:32 عصر
نصف بیشتر حرفهاتون غلطه.وقتی اسنیف میکنم همه چیز رو دارم و میتونیم تغییر بدم.

MSCHAP v1 رو در ویکیپدیا خوندید؟
آیا روش شما Challenge داره؟
اگر نداره باید بگم که هنوز شامل شرط ۳۰ ثانیه میشه.
اگر داره(با توضیحات شما بعید میدونم چون گفتید رمز رو در کلاینت نگهداری میکنید) میتونه یک مقدار سخت باشه که کاملا بستگی به نوع Challenge تون داره.

IP هم راه داره.
یک نمونش اینه که وقتی میتونی یک CA در سیستم قربانی نصب کنی, صد در صد میتونی یک برنامه تونل هم براش نصب کنی که ترافیکش رو منتقل کنه به سرور خودت و از اونجا منتقل کنه به شما.

tecnocomputer2
شنبه 24 فروردین 1392, 14:49 عصر
من این تاپیک رو زدم که یه روشی برای شناسایی کاربرهای چند بار عضو شده از طریق کوکی پیدا کنم!

FastCode
شنبه 24 فروردین 1392, 15:05 عصر
من این تاپیک رو زدم که یه روشی برای شناسایی کاربرهای چند بار عضو شده از طریق کوکی پیدا کنم!
اون چند موردی رو که اول گفتم نگاه کردی؟
یک مقدار منطق فازی بخونی کاملا دستگیرت میشه که چطوری باید ازشون استفاده کنی.

tecnocomputer2
شنبه 24 فروردین 1392, 15:42 عصر
اون چند موردی رو که اول گفتم نگاه کردی؟
یک مقدار منطق فازی بخونی کاملا دستگیرت میشه که چطوری باید ازشون استفاده کنی.
ActiveX - Session - User Agent که هیچ
IP هم که در حال حاظر از همین روش استفاده میکنم، هر کاربر سایتم که وارد سایت میشه، ایپیش ذخیره میشه در کنار اطلاعات کاربریش
میخام در کنار آی-پی از کوکی هم استفاده کنم
مشکل اینه که الگوریتمی به ذهنم نمیرسه واسه کوکیها، چه اطلاعاتی رو توی کوکی مرورگر کاربر ذخیره کنم؟

بزارید یه مثال بزنم، یک کاربر سه تا حساب کاربری داره
user1
user2
user3
(در بدترین شرایط) وقتی کاربر میخاد از هر حساب کاربری استفاده کنه، از یک VPN جداگانه استفاده میکنه، پس ای-پی هر حساب کاربری با بقیه فرق میکنه.
حالا میخام از طریق کوکی یکسری اطلاعات توی مرورگر ذخیره بشه، که باقیه حساب کاربریها لو بره!

چیزی که به ذهن من میرسه اینه که:
مرورگر هر حساب کاربری رو باز کرد، به کوکیمون اون نام کاربری رو اضافه کنه، مثلا:

امروز با user1 لوگین میکنه، کوکی رو بزنه user1
فردا با user2 لوگین میکنه، کوکی رو اضافه کنه user1,user2
پس فردا user3 لوگین میکنه، کوکی رو اضافه کنه user1, user2, user3

میدونم که کوکی ها قابل حذف شدن هستن و کاربر میتونه حذفشون کنه، ولی هنوز بهتر از هیچه

FastCode
شنبه 24 فروردین 1392, 16:02 عصر
ActiveX - Session - User Agent که هیچ
IP هم که در حال حاظر از همین روش استفاده میکنم، هر کاربر سایتم که وارد سایت میشه، ایپیش ذخیره میشه در کنار اطلاعات کاربریش
میخام در کنار آی-پی از کوکی هم استفاده کنم
مشکل اینه که الگوریتمی به ذهنم نمیرسه واسه کوکیها، چه اطلاعاتی رو توی کوکی مرورگر کاربر ذخیره کنم؟

بزارید یه مثال بزنم، یک کاربر سه تا حساب کاربری داره
user1
user2
user3
(در بدترین شرایط) وقتی کاربر میخاد از هر حساب کاربری استفاده کنه، از یک VPN جداگانه استفاده میکنه، پس ای-پی هر حساب کاربری با بقیه فرق میکنه.
حالا میخام از طریق کوکی یکسری اطلاعات توی مرورگر ذخیره بشه، که باقیه حساب کاربریها لو بره!

چیزی که به ذهن من میرسه اینه که:
مرورگر هر حساب کاربری رو باز کرد، به کوکیمون اون نام کاربری رو اضافه کنه، مثلا:

امروز با user1 لوگین میکنه، کوکی رو بزنه user1
فردا با user2 لوگین میکنه، کوکی رو اضافه کنه user1,user2
پس فردا user3 لوگین میکنه، کوکی رو اضافه کنه user1, user2, user3

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


ActiveX - Session - User Agent که هیچ
ظاهرا معنای heuristic رو درک نکردید.
فقط راجع به اینکه منطق فازی چی هست و چرا و کجا استفاده میشه چند صفحه بخونید.استفادش رو میفهمید.

tecnocomputer2
شنبه 24 فروردین 1392, 16:46 عصر
ظاهرا معنای heuristic رو درک نکردید.
فقط راجع به اینکه منطق فازی چی هست و چرا و کجا استفاده میشه چند صفحه بخونید.استفادش رو میفهمید.


ActiveX نمیخام استفاده کنم
User Agent - که خیلی از کاربرها مثل همه، هنوز IP بهتره!

amirsajjadi
شنبه 24 فروردین 1392, 17:14 عصر
با سلام
تا به الان از طریق IP کاربرانی که چند حساب کاربری دارن رو شناسایی میکردم، همونطور که میدونید کاربر میتونه با پروکسی ها آی پی رو تغیر بده، میخام از طریق کوکی کاربرهام رو شناسایی کنم.
چه الگوریتمی به ذهتون میرسه؟
ارادت

میشه بگید دقیقا چه کاری میخوای بکنی؟

Unique
شنبه 24 فروردین 1392, 17:20 عصر
خوب من یک ویرایش بکنم ، شما اگه میخوای کسی چند تا نام کاربری نداشته باشه موضوع ip اصلا به درد شما نمیخوره ! ip مدام عوض میشه ممکنه دو نفر از یک isp استفاده کنند و مثلا توی دو روز دو تا نام کاربری از یک ip استفاده کنند ولی این دو نفر هستند نه یک نفر‌ با دو نام کاربری ! بدتر از اون اگه ۱۰نفر توی یک شرکت باشند و اونها از یک gateway استفاده کنند اونوقت ۱۰ نفر با یک ip ممکنه لاگین کنند !؟ اینها یک نفر با ۱۰ تا نام کاربری نیستند ! در این شرایط سیستم شما مشکل داره و باید چک کردن ip را از روش برداری‌!

تنها کاری که میتونی بکنی همون cookie هستش ! وقتی یک نفر لاگین میکنه بیا و نام کاربری که لاگین کرده را توی یک کوکی مثلا ۳ ماه ذخیره کن و در لاگین های بعدی نام کاربری جدید را با کوکی مقایسه و اگه یکی نبودند در یک جدول یا فایل ذخیرشون کن حالا بعد از مدتی میفهمی یک نفر چند تا نام کاربری داره مگه اینکه همیشه قبل از لاگین بیاد کوکی هاش را پاک کنه !

من کمی منحرف شدم چون معمولا چند تا نام کاربری مهم نیست ،‌برای سایت های پولی مهمه یک نفر نام کاربریش را به کسی دیگه ای نده ! و چند نفر از یک نام استفاده نکنند ! در این حالت میشه موضوع ip را هم در نظر گرفت !

اما بحث من با دوست عزیزم FastCode :


نصف بیشتر حرفهاتون غلطه.وقتی اسنیف میکنم همه چیز رو دارم و میتونیم تغییر بدم.
چی غلطه ؟ چرا این نصفه را نمینویسی ببینم چی غلطه ؟ دوست من شما به من یاد بده ، باشه غلطه شما بگو ت امن یاد بگیرم.



MSCHAP v1 رو در ویکیپدیا خوندید؟
آیا روش شما Challenge داره؟
اگر نداره باید بگم که هنوز شامل شرط ۳۰ ثانیه میشه.
اگر داره(با توضیحات شما بعید میدونم چون گفتید رمز رو در کلاینت نگهداری میکنید) میتونه یک مقدار سخت باشه که کاملا بستگی به نوع Challenge تون داره.

IP هم راه داره.
یک نمونش اینه که وقتی میتونی یک CA در سیستم قربانی نصب کنی, صد در صد میتونی یک برنامه تونل هم براش نصب کنی که ترافیکش رو منتقل کنه به سرور خودت و از اونجا منتقل کنه به شما.

بازم که شما داری الکی حاشیه میری !!! من کل روند را گفتم چرا توضیح نمیدی دقیق میخوای چیکار کنی ؟ چرا هی سرفصل به من میدی ؟ به من بگو چطور از پشت سیستم خودت و با استفاده از سیستم قربانیت میخوای با یک نام کاربری و کلمه عبور به صورت دو کاربره استفاده کنید ؟ (خدایی ببین توی این دو صفحه چقدر سرفصل دادی و موضوع را کش دادی و توضیح ندادی)

به خدا اگه میگفتی میشستم دو ساعت سرشو شیره میمالیدم یک team viewer نصب کنه و با سیستم خودم استفاده میکردم من یک کف و دو تا هورا واسه شما میزدم و میکشیدم !

FastCode
شنبه 24 فروردین 1392, 17:56 عصر
بازم که شما داری الکی حاشیه میری !!!حاشیه چیه دوست عزیز؟ همه مسئله بستگی به این داره که روش شما Challenge داره یا نه؟اگر نداشته باشه هرچقدر هم که پیچیده باشه قابل دور زدن هست.

آخه من که نمیتونم همه چیز رو کامل توضیح بدم.اگر یکم دلت برای دیتابیس سایت نمیسوزه برای انگشت های من بسوزه.:)
باشه توضیح میدم.
اگر روش شما Challenge نداشته باشه هر بار همون مقادیر برای سرور ارسال میشه.(توضیح خیلی خیلی ساده)
روی سیستم طرف یک تونل نصب میکنی که بعد یا قبل از اسنیف(مهم نیست) ترافیک سرور شما رو بفرسته برای من و من از طریق اون سرور خودم اطلاعات رو برای شما رله کنم.
وقتی هم که خودم میخوام وصل بشم از طریق همون سرور وصل میشم که شما متوجه نشی مشخصات من فرق داره(از جمله IP)
نمونه:
الان سیستم های CCCam همین مشکل رو دارن(نمیدونم چقدر با ماهواره و Cam آشنایی داری ولی اون کسی که CCCam رو طراحی کرده دقیقا اشتباه شما رو انجام داده)

Unique
شنبه 24 فروردین 1392, 20:38 عصر
منظورت از Challenge اینه که هر بار مقادیر ارسالی تغییر کنند ؟ (نه مقادیر encrypt شده بر اساس سیستم متغیره نه هر ارسال)


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


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


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

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

FastCode
شنبه 24 فروردین 1392, 20:56 عصر
قبول دارم.یک مقدار بد توضیح دادم
بزارید با شکل توضیح بدم.
102769

معلم که نمیشم(مگه از جونم سیر شدم؟)فوق فوقش استاد دانشگاه


MSCHAP رو خوندی؟

Unique
یک شنبه 25 فروردین 1392, 02:17 صبح
خوب حالا میشه یه حدس هایی زد ولی بهتر بود همون جملات را درستش میکردین !
دو تا فرض وجود داره :
۱ - شما باید بتونی به سیستم قربانی نفوذ کنی (واقعا انقدر راحته ؟ راستش اگه به این راحتی بشه تنظیمات شبکش را تغییر داد من ترجیح میدم team viewer نصب کنم روی سیستمش تا این دنگ و فنگا)
۲ - در این حالت ip که سایت ما ثبت میکنه همون ip سرور شماست ، یعنی چطور میشه ترافیک را بدون تغییر ip از یک یا چند تا سیستم رد کرد و به سیستم دیگه رسوند ؟ کمی با مفاهیم امنیتی شبکه درگیر نیست ؟ اگه هم ip عوض بشه شکست میخوره چون encrypt از روی سیستم قربانی generate شده.

خدایی بازم قانع نشدم مگه اینکه مفروضات همه درست باشه که در عمل باید دید !
حالا به این فکر افتادم چطوره برنامه خروجی ipconfig /all را بررسی کنه و اگه مورد مشکوکی دید اجازه دسترسی نده ؟ بالاخره مشخص میشه ترافیک داره به کجا منتقل میشه ! کار دیگه ای هم که میشه کرد اینه که بیایم نتیجه traceroute را بررسی کنیم و موارد مشکوک را دربیاریم ولی کمی کنده !

FastCode
یک شنبه 25 فروردین 1392, 11:52 صبح
خوب حالا میشه یه حدس هایی زد ولی بهتر بود همون جملات را درستش میکردین !
دو تا فرض وجود داره :
۱ - شما باید بتونی به سیستم قربانی نفوذ کنی (واقعا انقدر راحته ؟ راستش اگه به این راحتی بشه تنظیمات شبکش را تغییر داد من ترجیح میدم team viewer نصب کنم روی سیستمش تا این دنگ و فنگا)
۲ - در این حالت ip که سایت ما ثبت میکنه همون ip سرور شماست ، یعنی چطور میشه ترافیک را بدون تغییر ip از یک یا چند تا سیستم رد کرد و به سیستم دیگه رسوند ؟ کمی با مفاهیم امنیتی شبکه درگیر نیست ؟ اگه هم ip عوض بشه شکست میخوره چون encrypt از روی سیستم قربانی generate شده.

خدایی بازم قانع نشدم مگه اینکه مفروضات همه درست باشه که در عمل باید دید !
حالا به این فکر افتادم چطوره برنامه خروجی ipconfig /all را بررسی کنه و اگه مورد مشکوکی دید اجازه دسترسی نده ؟ بالاخره مشخص میشه ترافیک داره به کجا منتقل میشه ! کار دیگه ای هم که میشه کرد اینه که بیایم نتیجه traceroute را بررسی کنیم و موارد مشکوک را دربیاریم ولی کمی کنده !
اولا که فرض این بود که به سیستم قربانی دسترسی داریم.(به هر کسی پیشنهاد یک دهم قیمت رو بدی خودش قبول میکنه.لازم نیست کاری بکنی.ویندوزی های عزیز هم که کلا امنیت براشون مهم نیست)
وقتی دسترسی کامل برای نصب CA داریم میتونیم همه این کارها رو انجام بدیم
IP رو هم که گفتم با تونل(اگر با روش کار VPN و routing و route cost و بقیه مفاهیمش آشنا باشید متوجه میشید.)
tracepath/traceroute هیچگونه کمکی نمیکنه.چون شما IP واقعی قربانی رو ندارید.
ipconfig فقط IP داخلی رو میده.البته اگر ارتباط اینترنت مستقیم باشه هم با تغییر PATH (ابتدایی ترین روش/راههای دیگه هم هست) میشه کاملا برنامه شما رو گمراه کرد.
کد مخفی ای که روی سیستم قربانی ساخته شده یا به IP داخلی دسترسی داره و یا به IP که ما بهش میدیم(سرور من).پس مهم نیست.


قانون Dave:
Never roll your own encryption

Unique
یک شنبه 25 فروردین 1392, 13:12 عصر
راستش شما همچنان بر این موضوع پافشاری میکنید ،‌پروژه نسبتا قدیمیه و از نظر مالی ارزش زنده کردنش را نداره اما از نظر علمی برام مهمه. خیلی دوست دارم شما به صورت عملی این کار را انجام بدین ، البته قبلش با یکی از دوستان شبکه ای که ماشاا... همشون ادعا دارند صحبت میکنم شاید نیاز به زحمت دادن به شما نباشه اما پیگیر موضوع خواهم بود.

با تشکر از پاسخ هایی که دادید.

FastCode
یک شنبه 25 فروردین 1392, 14:01 عصر
این کتاب رو خودم کامل نخوندم(تقریبا همش رو بلدم) ولی پیشنهاد میکنم بخونید.
ftp://ftp.pgpi.org/pub/pgp/7.0/docs/english/IntroToCrypto.pdf