من می خواهم یک برنامه سمت سرور را با REST API پیاده سازی کنم – مشتریان مرورگر و برنامه تلفن همراه هستند. کاربر ورود به سیستم (ایمیل ، رمز عبور) خواهد داشت و پرونده های خود را روی سرور ذخیره می کند. این پرونده ها باید رمزگذاری شوند تا سرپرستان یا هر کس که به DB یا سیستم فایل دسترسی ندارد امکان باز کردن این پرونده ها را نداشته باشد. سؤالات من در مورد این مسئله وجود دارد:
بهترین روش برای ذخیره داده های رمزگذاری شده روی سرور با استفاده از RSA – در جایی که تنها کاربر مقدماتی مجاز به آن دسترسی دارد؟ شخص ثالث حتی اگر دسترسی به FTP داده شود نباید به داده دسترسی داشته باشد. در این حالت ، کلید خصوصی توسط رمز عبور کاربر می تواند "بسته" شود. گذرواژه کاربر فقط به مجوز وارد شده است و بعداً در دسترس نیست.
ایده های من در مورد این موضوع:
- ذخیره کردن کلید خصوصی (رمزگذاری شده توسط سرور) بدون رمز در جلسه کاربر. اما در این حالت ، اگر کسی به سرور دسترسی داشته باشد ، می توان پرونده ها را رمزگذاری و رمزگذاری کرد.
- ذخیره کردن کلید خصوصی (رمزگذاری شده توسط سرور) بدون گذرواژه در سمت مشتری (در مرورگر وب) و انتقال آن در صورت درخواست به سرور در هنگام نیاز به فرایند رمزگذاری. در اینجا دوباره ، شخص ثالث با دسترسی به سرور می تواند از انتقال کلید و سپس رمزگذاری پرونده های کاربر جلوگیری کند.
- ذخیره کردن کلید خصوصی بدون رمز در سمت مشتری و رمزگشایی پرونده ها در سمت مشتری. این ممکن است با برنامه های تلفن همراه کار کند ، اما در مرورگر نیست.