CashfulnessCashfulness
به نسخه بتا بپیوندید
حریم خصوصی

رمزنگاری سرتاسری، ساده برای غیرمتخصصان

۲۶ تیر ۱۴۰۵9 دقیقه

جمله‌ای هست که وقتی از Cashfulness حرف می‌زنیم، مدام تکرار می‌کنیم.

«ما اسناد شما را نمی‌بینیم.»

این جمله‌ای است که گفتنش آسان است. خیلی از اپلیکیشن‌ها این را می‌گویند.

نکته این‌جاست که پشت این جمله چه چیزی است. چون «ما نگاهشان نمی‌کنیم» و «ما نمی‌توانیم نگاهشان کنیم» دو وعده‌ی کاملاً متفاوت‌اند.

اولی وعده‌ی حسن‌نیت است: شما اعتماد می‌کنید که این کار را نکنیم.

دومی وعده‌ی ناممکن‌بودن است: حتی اگر بخواهیم، نمی‌توانیم.

در Cashfulness، درباره‌ی اسنادی که بارگذاری می‌کنید، حالت دوم صادق است. و اصطلاح فنی‌ای که این را تضمین می‌کند رمزنگاری سرتاسری (end-to-end encryption) نام دارد.

به‌اختصار آن را E2EE می‌نویسند.

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

اول، کلمات درست

از فعل شروع کنیم. رمزنگاری کردن یک فایل یعنی تبدیل آن به دنباله‌ای غیرقابل‌خواندن.

نه پنهان‌کردنش پشت رمز عبوری که می‌پرسد «بگذار وارد شوم». بلکه دگرگون‌کردن واقعی آن: متن، اعداد، تصاویر را می‌گیرید و به بلوکی از نویسه‌ها تبدیل می‌کنید که برای کسی که کلید درست را ندارد هیچ معنایی ندارد.

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

با کلید رمزنگاری می‌کنید. با کلید رمزگشایی می‌کنید. بدون کلید، دیواری در برابر شماست.

این دو کلمه را در ذهن نگه دارید — رمزنگاری و کلید — چون همه‌چیز بعدی حول محل زندگی کلید می‌چرخد.

صندوق امانات بانک

مثالی می‌زنم که به نظرم همه‌چیز را روشن می‌کند.

صندوق‌های امانات بانکی را می‌شناسید؟ همان‌هایی که مردم اسناد مهم، کمی جواهر، چیزهایی که نمی‌خواهند در خانه نگه دارند، در آن‌ها می‌گذارند.

این‌طور کار می‌کنند.

بانک به شما یک خزانه‌ی زره‌پوش، تحت نظارت، ضدسرقت می‌دهد. آن داخل، صندوق شماست.

اما کلید صندوق شما را شما دارید. فقط شما.

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

بانک خدمتی به شما می‌دهد — امنیت خزانه — بی‌آن‌که خواستار دسترسی به چیزی باشد که داخلش می‌گذارید.

رمزنگاری سرتاسری دقیقاً همین است، به‌کاررفته برای فایل‌های دیجیتال.

Cashfulness همان بانک است: خزانه را در اختیار شما می‌گذارد، یعنی سرورهای ما که اسناد شما در آن نگهداری می‌شود.

فقط شما کلید صندوق را دارید.

و ما، مثل بانک، نگهداری می‌کنیم بی‌آن‌که بتوانیم باز کنیم.

عملاً وقتی سندی بارگذاری می‌کنید چه اتفاقی می‌افتد

فرض کنید می‌خواهید صورت‌حساب بانکی، قبض برق، قرارداد اجاره، یا بیمه‌نامه‌ای را در Cashfulness نگه دارید.

این‌ها اسنادی هستند که می‌توانید در Cashfulness بارگذاری کنید: صورت‌حساب بانکی، قبض‌ها، قراردادها، بیمه‌نامه‌ها. پر از داده‌های خود شما — نام و نام‌خانوادگی کامل، آدرس، شماره‌حساب، مبالغ، طرف‌های مقابل.

توالی کار این است.

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

پیش از آن‌که ارسال شود، هنوز روی دستگاه خودتان، سند رمزنگاری می‌شود. تبدیل به همان بلوک نویزی می‌شود که گفتم.

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

روی سرور، نویز می‌رسد. روی سرور، نویز باقی می‌ماند.

وقتی شما بخواهید دوباره آن را بخوانید، سند همچنان رمزنگاری‌شده به دستگاه شما برمی‌گردد، و آن‌جا — فقط آن‌جا، با کلید شما — دوباره خوانا می‌شود.

لحظه‌ی رمزنگاری بخش مهم ماجراست: نزد شما رخ می‌دهد، پیش از حرکت. نه این‌که «وقتی به سرور رسید، ما به‌جای شما آن را قفل می‌کنیم». آن حالت یعنی بانکی که یک نسخه از کلید شما را در کشوی مدیرش نگه می‌دارد.

نه. ما هرگز کلید را در اختیار نداریم. کلید از شما زاده می‌شود و نزد شما می‌ماند.

کلید شما کجا زندگی می‌کند

سؤال درستی است در این‌جا: اگر این کلید مبارک را گم کنم چه؟ کجا نگهش دارم؟

کلید اسناد شما از دو چیز متعلق به خودتان زاده می‌شود.

اولی رمز عبور شماست، همانی که با آن وارد Cashfulness می‌شوید.

دومی دنباله‌ای از ۲۴ کلمه است که هنگام فعال‌کردن این حفاظت دریافت می‌کنید. این سیستمی است که در جاهای دیگر هم برای نگهداری حساس‌ترین کلیدها استفاده می‌شود — بیست‌وچهار کلمه‌ی معمولی هستند، به ترتیبی مشخص، که با هم ارزش یک کلید اصلی بازیابی را دارند.

از این دو چیز، روی دستگاه شما، کلیدی ساخته می‌شود که اسناد شما را رمزنگاری و رمزگشایی می‌کند.

و نکته‌ای که ارزش کل این نوشته را دارد این‌جاست: آن کلید هرگز دستگاه شما را ترک نمی‌کند.

از سرورهای ما عبور نمی‌کند. آن را هیچ‌جا ذخیره نمی‌کنیم. عبورش را نمی‌بینیم.

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

برای سرورهای ما، تکرار می‌کنم، هر سند شما بلوکی از نویز دیجیتال است و باقی می‌ماند.

چه کسی نمی‌تواند اسناد شما را بخواند (یعنی: همه به‌جز شما)

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

اسناد بارگذاری‌شده‌ی شما را ما که Cashfulness را ساخته‌ایم نمی‌توانیم بخوانیم. جایی پنلی وجود ندارد که تکنسینی از ما بیمه‌نامه‌ی شما را باز کند. از نظر فنی چنین چیزی وجود ندارد، چون کلید را نداریم.

کسانی که سرورها را مدیریت می‌کنند هم نمی‌توانند آن‌ها را بخوانند.

مهاجمی هم که روزی به سیستم‌های ما نفوذ کند و همه‌چیز را ببرد، نمی‌تواند بخواندشان: فقط نویز و فایل‌های بی‌استفاده به دستش می‌رسد.

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

جمله‌ی «ما اسناد شما را نمی‌بینیم» در این نقطه دیگر فقط یک دلداری مؤدبانه نیست.

توصیفی فنی از یک واقعیت می‌شود.

نمی‌بینیمشان چون نمی‌توانیم. فرق دارد.

روی دیگر سکه (و می‌خواهم خودم اول این را بگویم)

چنین حفاظت سفت‌وسختی هزینه‌ای دارد، و پنهان‌کردنش نادرست خواهد بود.

اگر رمز عبورتان و ۲۴ کلمه‌ی بازیابی‌تان را هم گم کنید، اسناد شما غیرقابل‌خواندن می‌شوند. برای همیشه. حتی برای ما.

دکمه‌ای به‌نام «همه‌چیز را فراموش کردم، فایل‌هایم را برایم بفرستید» وجود ندارد. تکنسینی از ما هم نیست که بتواند از پنجره وارد شود و آن‌ها را برایتان بازیابی کند.

برگردیم به صندوق بانکی: اگر کلیدتان را گم کنید و هیچ‌کس دیگری از آن نسخه‌ای نداشته باشد، درون صندوق همه‌چیز می‌ماند، اما دیگر هیچ‌کس بازش نمی‌کند.

می‌دانم که این‌طور بیانش کمی نگران‌کننده به نظر می‌رسد. اما از طرف دیگرش هم نگاهش کنید، که دلیل ما برای انتخابش هم همین است.

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

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

ما ترجیح دادیم کنترل کامل را به شما بدهیم — با باری که این کنترل به همراه دارد — به‌جای این‌که میان‌بری برای خودمان نگه داریم که دیر یا زود سوراخ سدّ می‌شد.

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

یک توضیح صادقانه: E2EE این‌جا فقط اسناد را پوشش می‌دهد

نمی‌خواهم بیشتر از آن‌چه هست به شما بفروشم، چون این کاملاً برخلاف روح این نوشته خواهد بود.

رمزنگاری سرتاسری‌ای که درباره‌اش گفتم از اسنادی که بارگذاری می‌کنید محافظت می‌کند: صورت‌حساب بانکی، قبض‌ها، قراردادها، بیمه‌نامه‌ها. این‌ها حساس‌ترین لایه‌اند، و همان‌جاست که سفت‌ترین قفل را گذاشته‌ایم.

داده‌های حسابداری واقعی شما — حساب‌ها، مانده‌حساب‌ها، تراکنش‌هایی که نقطه‌ی موقعیت مالی شما، یعنی ارزش خالص شما را می‌سازند — منطقی متفاوت دارند.

روی پایگاه‌داده‌ی ما، روی سرورهای اروپایی زندگی می‌کنند، و سمت سرور به‌صورت خوانا هستند. این یک انتخاب فنی ضروری است: برای هم‌راستانگه‌داشتن حسابداری شما میان تلفن و کامپیوتر، و برای محاسبه‌ی لحظه‌ای معیارهایی که به شما نشان می‌دهیم، لازم است. رمزنگاری آن‌ها دقیقاً مثل اسناد، اپلیکیشن را بسیار کند و در عمل بی‌استفاده می‌کرد.

اما — و این‌جاست که بخشی است که خیلی‌ها انتظارش را ندارند — این اعداد بدون شناسنامه‌ی شخصی شما حرکت می‌کنند.

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

بدین‌ترتیب، حتی کسی که به پایگاه‌داده دسترسی داشته باشد، فقط یک نام مستعار مشخص را با حساب‌ها، مانده‌حساب‌ها و تراکنش‌هایش می‌بیند — بدون راهی برای پیونددادن آن اعداد به شخص واقعی‌ای که شما هستید.

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

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

چرا این موضوع تا این‌جا برایمان اهمیت داشت

می‌توانستم همین‌جا در بخش فنی متوقف شوم. اما فناوری به‌تنهایی دلیل نیست.

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

اگر همان لحظه‌ی بازکردن چنین اپلیکیشنی، این تردید در ذهنتان بماند که شاید کسی، جایی، بتواند نگاهی بیندازد، آن اپلیکیشن هرگز چیزی را که برای آن ساخته شده به شما نخواهد داد.

ما آن چیز را آرامش می‌نامیم. The calm side of money، سویه‌ی آرام پول. و آرامش، اگر اعداد شما واقعاً امن نباشند، فقط یک کلمه روی وب‌سایت است.

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

برای همین آن را در پی‌بنا نوشتیم، نه چیزی که بعداً مثل کلیدی اضافه اضافه شده باشد.

در یک خط

آن را در کوتاه‌ترین شکلی که دارم برایتان می‌گذارم.

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

نه به این خاطر که قول داده‌ایم درست‌کار باشیم.

بلکه به این خاطر که عمداً، امکان درست‌کارنبودن را از خودمان گرفته‌ایم.

— Vittorio