Yasha Profile picture
Aug 22 6 tweets 2 min read Read on X
با کمک صفا (@safasafari3 ) روی الگوریتمش فکر کردیم و از دفی‌هیلمن به هیبرید (RSA و AES) تغییرش دادیم. الان تقریبا شبیه TLS کار می‌کنه و سرور نمی‌تونه اتک MitM بزنه. مکانیزمش رو می‌نویسم لطفا اگه مشکلی داره بگید بهترش کنیم.
اول از همه برای هر کاربر یه جفت کلید RSA ساخته میشه و کلیدهای عمومی توی سرور ذخیره میشن. کاربر باب لینک خودش رو که شامل نام‌کاربری و هش کلید‌عمومی خودش میشه رو به آلیس میده. آلیس لینک رو باز می‌کنه و کلید‌عمومی باب رو از سرور می‌خونه. حالا میاد هش کلیدعمومی باب رو حساب می‌کنه و
با هشی که روی لینک باب بود مقایسه می‌کنه، اگه یکی باشن یعنی سرور کلید رو جعل نکرده و همه‌چی درسته. آلیس پیامش رو می‌نویسه و با یه کلید AES رندوم رمز می‌کنه، خود کلید رو هم سمت تلگرامش ذخیره می کنه. با کلید عمومی باب، کلید AES رو رمز می‌کنه و پیام رمزی رو با کلید AES رمزشده به
سرور می‌فرسته. باب میاد پیام آلیس رو از سرور می‌گیره، سرور کلید رمز‌شده‌ی AES رو بهش میده و از روی سرور هم پاکش می‌کنه. آلیس با کلید خصوصی خودش AES رو رمزگشایی می‌کنه و توی تلگرام خودش ذخیره می‌کنه. پیام رمز‌شده رو هم با کلید AES رمزگشایی می‌کنه و می‌خونه. برای ادامه‌ی مکالمات هم
مجددا از همون AES مشترک که بین طرفین ذخیره شده استفاده میشه. البته اگه آلیس بخواد یه پیام جدید بفرسته (نه اینکه ریپلای کنه پیام قبلی رو) اینجا باز یه AES جدید ساخته میشه که هویتش فاش نشه.
توی این چارت سعی کردم به ساده‌ترین شکل ممکن توضحش بدم. لینک ربات رو برای تست اینه:

t.me/E2EChatbot
Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Yasha

Yasha Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @The_Pesar

Nov 22
همیشه فکر می‌کردم وقتی ۵ سال برنامه نویسی کنم احتمالا بعدش یه برنامه نویس خفن می‌شم. اما نشدم. توی این رشته توییت خیلی صادقانه از اشتباهاتم توی این ۵ سال می‌نویسم.
#رشتو
۱- من الگوریتم و ساختمان داده رو دست کم گرفتم، این مبحث چون خیلی خشک بود همیشه پشت گوش انداختم. اگه زمان برگرده عقب روزانه یه ساعت مرتبا وقت می‌ذارم واسه سوال الگوریتمی حل کردن و یاد گرفتن ساختمان داده‌ها. این کار مثل اینه که شمشیرت رو دائم تیز کنی.
۲- به من کسی نگفت که توی برنامه نویسی دونستن سیستم عامل چقدر مهمه...سیستم عامل یه غوله که سخت‌افزار سیستم ما رو بلعیده و برنامه‌ای که ما می‌نویسیم همیشه یه اینترفیسه که با سیستم عامل درحال تعامله. و تا نتونی خوب درکش کنی هیچوقت قرار نیست بفهمی کامپیوتر واقعا چطور کار می‌کنه.
Read 10 tweets
Aug 28
الان که داشتم درباره تلگرام می‌خوندم متوجه یه چیز عجیبی شدم. تلگرام یه زیرساخت غیرمتمرکز خیلی جالبی داره، دیتاسنترهاش رو توی کشورهای مختلفی که قوانین قضایی متفاوتی داره پخش کرده. تمام دیتایی که نگه‌داری می‌کنه رمز میشن و کلیدهای رمزنگاری هم به بخش‌های مختلفی تیکه تیکه شده
#رشتو
و توی دیتاسنترها پخش شده. تلگرام میگه هیچ کدوم از دیتاسنترها کلید رو به شکل کامل نداره و حالا یه تحت یه پروتکلی اینا دیتاسنترهای توزیع‌شده باهمدیگه کار می‌کنن. حالا چرا اینکار رو انجام داده؟ جالبیش اینجاست. این باعث میشه که یه کشور واحد نتونه به تنهایی تلگرام رو مجبور به دادن
دیتا کنه، یعنی فرانسه اگه چیزی رو از تلگرام بخواد باید هر کشوری که دیتاسنتر تلگرام داخلش هست هم بخواد و توافق جمعی و جهانی صورت بگیره که یه چیز خیلی سخت و نشدنیه درحال حاضر. این باعث میشه حتی دو یا سه تا کشور هم‌پیمان (مثل ایران، روسیه، چین) هم باز نتونن از تلگرام دیتا بگیرن، چون
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(