
TitanCrypt | سامانه رمزنگاری فایل با معماری Zero-Trust
یک سامانه رمزنگاری فایل تحت وب با معماری Zero-Trust که تمام عملیات رمزنگاری را در مرورگر کاربر انجام میدهد. سرور هیچگاه به کلیدهای رمزنگاری یا داده های خام دسترسی ندارد. این پروژه توانایی پردازش فایلهای حجیم تا ۱۰ گیگابایت و بیشتر را بدون مصرف رم بالا دارد.
این پروژه یک اپلیکیشن Full-Stack است که از Node.js و Express در سمت سرور و Vanilla JavaScript در سمت کاربر استفاده میکند. هدف اصلی آن نمایش توانایی پیادهسازی سیستمهای امنیتی پیچیده تنها با استفاده از API های استاندارد مرورگر است.
ویژگیهای کلیدی فنی:
امنیت پیشرفته:
پیادهسازی رمزنگاری AES-256-GCM با استفاده از Web Crypto API
استفاده از PBKDF2 با ۶۰۰,۰۰۰ بار تکرار برای تولید کلید (مقاوم در برابر حملات Brute Force)
معماری Zero-Trust به این معنا که سرور هیچ دسترسی به کلیدها یا دادههای رمزنگاری نشده ندارد
پیادهسازی SHA-256 برای تضمین صحت و یکپارچگی فایلها
لایه امنیتی سرور با Helmet.js، Content Security Policy و Rate Limiting
مدیریت حافظه و عملکرد:
پردازش فایل به صورت Chunked/Streaming با قطعات ۱ مگابایتی
مصرف رم ثابت و پایین حتی برای فایلهای بالای ۱۰ گیگابایت
نمایش لحظهای درصد پیشرفت، سرعت (به مگابایت بر ثانیه) و زمان باقیمانده
بدون نیاز به نصب نرمافزار - کاملاً تحت وب
تجربه کاربری:
طراحی Glass-morphism با تم تیره
پشتیبانی از Drag & Drop برای آپلود فایل
سیستم اعلان (Toast Notification) با حذف خودکار
مدیریت کلید شامل تولید کلید تصادفی، کپی، ورود و خروج به صورت فایل JSON
مستندات فنی:
تهیه White Paper کامل ۲۰+ صفحهای شامل نمودارهای معماری، فلوچارت رمزنگاری، نمودارهای توالی، تحلیل عملکرد و مدل تهدید
مستندات استانداردهای رمزنگاری (NIST SP 800-38D، FIPS 180-4، FIPS 197)
نمودارهای Mermaid برای نمایش معماری سیستم، فرآیند رمزنگاری و مدیریت کلید
تکنولوژیهای استفاده شده
Backend:
Node.js
Express.js
Helmet.js (امنیت)
Express Rate Limit (محدودیت درخواست)
Dotenv (مدیریت تنظیمات)
Frontend:
Vanilla JavaScript (بدون هیچ فریمورکی)
Web Crypto API (SubtleCrypto)
HTML5 File API و Blob API
CSS3 با قابلیتهای پیشرفته (Glass-morphism، Animations، Dark Theme)
مفاهیم پیادهسازی شده:
Zero-Trust Architecture
Chunked File Processing
Asynchronous Programming (Async/Await)
Client-Side Cryptography
Memory-Efficient Streaming
چالشهای فنی که حل کردم
۱. رمزنگاری سمت کاربر بدون کتابخانه third-party: به جای استفاده از کتابخانه های JavaScript برای رمزنگاری، از Web Crypto API استاندارد مرورگر استفاده کردم. این API در خود مرورگر پیادهسازی شده و از شتاب سخت افزاری CPU بهره میبرد. همچنین نیاز به اعتماد به کد third-party را از بین میبرد.
۲. پردازش فایلهای حجیم بدون مصرف رم بالا: فایلهای بزرگ (تا ۱۰ گیگابایت و بیشتر) را به قطعات ۱ مگابایتی تقسیم کردم. هر قطعه جداگانه خوانده، رمزنگاری و سپس از حافظه پاک میشود. نتیجه نهایی به صورت یک Blob در مرورگر سرهم میشود. مصرف رم در تمام مراحل ثابت و حدود ۲۶ مگابایت است.
۳. معماری Zero-Trust واقعی: در این معماری، سرور فقط فایلهای استاتیک (HTML، CSS، JS) را سرو میکند. تمام منطق رمزنگاری در سمت کاربر اجرا میشود. کلیدهای رمزنگاری و دادههای خام هرگز به سرور ارسال نمیشوند. حتی اگر سرور به طور کامل هک شود، مهاجم به هیچ داده حساسی دسترسی ندارد.
۴. رابط کاربری واکنشگرا در زمان پردازش سنگین: با استفاده از توابع Async و پردازش Chunked، رابط کاربری در حین رمزنگاری فایلهای حجیم کاملاً پاسخگو باقی میماند. نوار پیشرفت با محاسبه سرعت لحظه ای و زمان باقیمانده به روز میشود.
چرا این پروژه ارزشمند است؟
این پروژه توانایی های زیر را در من نشان میدهد:
تسلط عمیق به JavaScript و Web APIs: بدون استفاده از هیچ فریمورکی، یک اپلیکیشن پیچیده امنیتی ساخته ام
درک مفاهیم پیشرفته امنیتی: معماری Zero-Trust، رمزنگاری AES-GCM، تولید کلید امن با PBKDF2
مدیریت حافظه و بهینهسازی: پردازش فایلهای حجیم بدون crash یا کندی سیستم
توانایی مستندسازی فنی: نوشتن White Paper حرفه ای با نمودارهای معماری
معماری نرم افزار تمیز: جداسازی منطق رمزنگاری، مدیریت فایل و رابط کاربری
حل مسئله خلاقانه: ارائه راه حل برای چالشهای واقعی مانند رمزنگاری فایلهای حجیم در مرورگر
گیتهاب: https://github.com/paxmatixamevt/TitanCrypt

















