در این پروژه یک سیستم امن برای انتقال فایل میان کاربران پیادهسازی شده است که تمام ارتباطات از طریق یک سرور مرکزی انجام میشود. هدف پروژه، ایجاد بستری برای ارسال و دریافت فایل با امنیت بالا، با استفاده از الگوریتمهای رمزنگاری مدرن و کنترل دسترسی مبتنی بر نقشها (RBAC) است.
زبان و تکنولوژیهای استفادهشده در این پروژه شامل:
Node.js (Express + Socket.IO) برای پیادهسازی سرور و ارتباط Real‑Time
MongoDB برای ذخیره اطلاعات کاربران و فایلها
AES-GCM ، RSA-OAEP و RSA-PSS برای رمزنگاری، تبادل کلید و امضای دیجیتال
JWT برای احراز هویت کاربران
Role Management شامل نقشهای: admin, maintainer, guest
این سیستم شامل دو بخش اصلی است:
🔹 بخش سرور (Server)
سرور با Node.js و Socket.IO توسعه داده شده و مسئولیتهای زیر را بر عهده دارد:
احراز هویت کاربران بهصورت امن با JWT
مدیریت فایلها (آپلود، دانلود، حذف و لیست فایلها)
ذخیره امن فایلها با رمزنگاری AES-GCM در حالت ذخیره (At‑rest)
مدیریت کلیدهای عمومی کاربران و تولید Session Key AES برای هر اتصال امن
بررسی امضای دیجیتال هنگام دریافت و ذخیره فایلها جهت تضمین صحت دادهها
🔹 بخش کلاینت (Client)
کلاینت نیز با Node.js و Socket.IO نوشته شده و قابلیتهای زیر را دارد:
برقراری ارتباط امن و دریافت کلید Session اختصاصی از سرور
امضای فایل هنگام آپلود با کلید خصوصی و رمزنگاری داده با Session Key
دانلود فایل رمزنگاریشده و بررسی امضا جهت اعتبارسنجی داده
حذف یا لیستگیری از فایلها با حفظ قواعد دسترسی مبتنی بر نقش
دریافت کلیدهای عمومی تمام کاربران برای تأیید امضاهای دیجیتال
🔹 امنیت و رمزنگاری
در این پروژه ترکیبی از الگوریتمهای مدرن رمزنگاری برای امنیت کامل دادهها استفاده شده است:
AES‑GCM برای سرعت بالا و پشتیبانی از برچسب احراز یکپارچگی (Authentication Tag)
RSA‑OAEP برای تبادل امن کلیدهای متقارن و حذف خطر Replay Attack
RSA‑PSS برای امضای دیجیتال مقاوم در برابر حملات Padding و Collision
همچنین برای هر اتصال یک Session Key متقارن جدید تولید و تنها در همان نشست معتبر است. به این ترتیب فایلها هم در حالت ذخیره (At‑Rest) و هم در حین انتقال (In‑Transit) بهصورت کامل رمزگذاری میشوند.
🔹 کنترل دسترسی (RBAC)
سیستم سه سطح دسترسی دارد:
admin: مدیریت کاربران، تغییر نقشها، دسترسی کامل به همه فایلها
maintainer: مدیریت و آپلود فایلهای شخصی، دسترسی به دانلود همه فایلها
guest: فقط قابلیت دانلود فایلها
🔹 خروجی و نتیجه پروژه
این سیستم توانایی کامل در ارسال، دریافت و مدیریت فایلها بهصورت امن را دارد و علاوه بر رمزنگاری دادهها، کنترل سطوح دسترسی و امضای دیجیتال نیز پیادهسازی شده است.
در بخش مستندسازی، تمامی کدها، نمودار جریان داده، ساختار رمزنگاری و تست عملکرد سیستم ثبت گردیده است.
این پروژه نمونهای کاربردی از ترکیب امنیت، رمزنگاری و شبکه در سطح نرمافزارهای سازمانی با Node.js است و بهخوبی قابلیت کار بهعنوان زیرساخت سرویسهای ابری یا پلتفرمهای اشتراک فایل امن را دارد.