معرفی ULDA؛ ذخیرهسازی داده سمت کاربر با API ساده جاوا اسکریپت و احراز هویت رمزنگاریشده — Show HN: ULDA – Client-side encryption with a simple JavaScript API
خلاصه
پروژه ULDA یک راهحل ذخیرهسازی ابری رمزنگاریشده سمت کاربر است که همگامسازی بین چند دستگاه را بدون نگهداری هیچگونه اطلاعات محرمانه روی سرور فراهم میکند. این ابزار از یک پروتکل احراز هویت مبتنی بر اثبات مالکیت استفاده میکند تا توسعهدهندگان بتوانند به سادگی و با ویرایش فایلهای JSON، امنیت دادهها را تضمین کنند.
توسعه برنامههایی که همزمان به امنیت بالا، رمزنگاری سمت کاربر (Client-side Encryption) و قابلیت همگامسازی روی چند دستگاه نیاز دارند، همواره چالشبرانگیز بوده است. پروژه ULDA که در ابتدا به عنوان یک اپلیکیشن پیامرسان شکل گرفته بود، اکنون به شکل یک SDK و کتابخانه جاوا اسکریپت عرضه شده است تا کار با دادههای رمزنگاریشده را به سادهترین شکل ممکن برای توسعهدهندگان فراهم کند.
زمینه شکلگیری و ایده اصلی
این پروژه در اواخر سال ۲۰۲۲ میلادی با ایده ساخت یک پایگاه داده کاملاً خوانا ولی امن شروع شد. هدف اصلی این بود که سرور هیچگونه داده محرمانهای (Zero Secrets) را ذخیره نکند. با این حال، تیم سازنده با مشکل بزرگ احراز هویت روبهرو شد؛ روشی که هم سریع باشد، هم از همگامسازی پشتیبانی کند و هم هیچ راز یا کلیدی را روی سرور نگه ندارد. این چالش در اوایل سال ۲۰۲۳ منجر به ایدهپردازی برای احراز هویت از طریق «اثبات مالکیت» شد که بعدها تحت عنوان پروتکل ulda-core توسعه یافت.
پس از گذشت مدتی، سازندگان متوجه شدند بازار به اپلیکیشن پیامرسان فوقالعاده امن دیگری نیاز ندارد؛ بنابراین تصمیم گرفتند ایدهها و کدهای خود را به صورت یک متد و SDK عمومی منتشر کنند تا از جامعه برنامهنویسان بازخورد بگیرند. وایتپپر این پروژه نیز با عنوان MANIFEST.md در ریپازیتوری گیتهاب آن قابل مطالعه است.
جزئیات فنی و نحوه کارکرد
ایده اصلی ULDA این است که توسعهدهندگان بتوانند مستقیماً با ویرایش ساختارهای JSON، از یک فضای ذخیرهسازی امن، رمزنگاریشده و همگامشده بهرهمند شوند. ویژگیهای کلیدی این ابزار عبارتند از:
- صفر بودن اطلاعات سرور: سرور به هیچ عنوان به کلیدها یا دادههای رمزنشده دسترسی ندارد.
- احراز هویت مبتنی بر اثبات: اثبات اینکه گام بعدی توسط همان کاربر معتبر برداشته شده است.
- سادگی در API: ارائه یک رابط کاربری برنامهنویسی (API) ساده در قالب جاوا اسکریپت برای کار با دادهها.
نگاه جامعه هکرنیوز
انتشار این پروژه در Hacker News با واکنشها و پرسشهای فنی جذابی از سوی توسعهدهندگان همراه بود:
- برخی کاربران درباره نحوه تحویل کدهای جاوا اسکریپت به کلاینت و تضمین عدم دستکاری آن توسط سرور (موضوع یکپارچگی کد) سوالاتی مطرح کردند.
- چالشهایی در خصوص مزایای مدل احراز هویت این پروژه در مقایسه با استانداردهای رایجتر مطرح شد.
- برخی توسعهدهندگان ابزارهای جایگزین و سبکتری مانند کتابخانه enigma را پیشنهاد دادند که بدون وابستگی و به صورت تکتابعی برای چند زبان مختلف پیادهسازی شدهاند.
چرا این پروژه برای توسعهدهندگان اهمیت دارد؟
برای مهندسانی که روی اپلیکیشنهای حریمخصوصیمحور (Privacy-first) کار میکنند، مسئله مدیریت کلیدها و احراز هویت بدون اتکا به پایگاه داده مرکزی همیشه یک دغدغه است. ULDA تلاشی است برای سادهسازی این پیچیدگیها در قالب ابزاری که میتوان آن را به راحتی در برنامههای وب به کار گرفت و معماریهای Zero-Knowledge را پیادهسازی کرد.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل