این سایت از کوکی ها برای ارائه خدمات ما و نمایش آگهی های مرتبط و لیست های شغلی استفاده می کند.
با استفاده از سایت ما، شما تصدیق میکنید که ما را خوانده و درک کردهاید
سیاست کوکی
سیاست حفظ حریم خصوصی و ما
شرایط استفاده از خدمات.
استفاده شما از محصولات و خدمات سرریز پشته، از جمله شبکه سرریز پشته، تحت این شرایط و ضوابط است.
تأیید اعتبار – آیا یک شخص ثالث برای ورود به سیستم میتواند من را منصرف کند؟ (آیا فیس بوک می تواند سوالات خود را به سرریز پشته زیر نام من بفرستد؟)
بله، آنها می توانند
پاسخ ساده: شما به نوعی به تأمینکننده OAuth خود، معمولا از طریق نام کاربری و رمز عبور، هویتی را تایید میکنید. مدیر بد می تواند مدارک ارسال شده را ذخیره کند و فقط از آنها استفاده کند. این حمله به نحوه اجرا در پشت صحنه بستگی ندارد.
به طور کلی، گذرواژه شما برای تأیید هویت ارائه دهنده برای احراز هویت به سرویس های شخص ثالث به طور کلی استفاده نمی شود، بدان معنی است که هویت سازنده شما در واقع کلید های ورود شما را دارد (و شما همه آنها را نداشته باشید.
شما می توانید از طرح هایی استفاده کنید که رمز عبور شما را در فرآیند احراز هویت ذخیره می کند بدون ذخیره سازی آن پس از آن رمزگذاری نشده است، اما در عمل من چنین برنامه ای را نمی دانم
تأیید اعتبار – API برنامه تلفن همراه با استفاده از UDID و Argon2
من سعی میکنم یک برنامه iOS ایجاد کنم، این کد و همه را نوشتم، و در حال حاضر API هایی را برای برقراری ارتباط با پایگاه داده در اختیار دارم.
- برنامه با استفاده از HTTPS و درخواستهای POST برای برقراری ارتباط با API استفاده می کند.
- رمزهای عبور با استفاده از الگوریتم Argon2 هچ شده اند.
- گزینه های ورود به سیستم 3rd party وجود ندارد (فیس بوک، G + و غیره)
در حالی که من API ها را پیاده سازی می کردم متوجه شدم که کاربر می تواند یک کاربر دیگر را جعل کند، اعتقاد دارد که هیچ هویت هویتی وجود ندارد، من ایده ی ID Auth را مطرح کردم و می خواهم ببینیم چقدر کارآمد است.
- ایده: هر بار کاربر ورود به برنامه، برنامه UDID را دریافت می کند و آن را به API ارسال می کند و API آن را با استفاده از الگوریتم مشابه (Argon2) هش کرده و آن را در پایگاه داده ذخیره می کند، زمانی که کاربر سعی می کند انجام دهد، برای مثال، تغییر نام و یا ارسال یک پیام به یک کاربر دیگر، برنامه UDID را به API ارسال خواهد کرد تا هویت کاربر را تأیید کند، در صورت وجود، سپس اقدام انجام خواهد شد.
آیا امن است؟ اگر نه، چگونه می توانم آن را بهبود دهم، یا آنچه باید انجام دهم؟
تأیید هویت – هویت شخص ثالث با OTP
اول از همه می خواهم اشاره کنم که من کاملا انجام می دهم NOT میخواهم رمز عبور خودم را به هیچ وجه اجرا نکنم. من فقط در مورد این موضوع فکر کردم و بعد از تحقیقاتی، راه حل خوبی پیدا نشد.
امیدوارم که یک راه حل شناخته شده برای این مشکل وجود داشته باشد که من نمیتوانم پیدا کنم.
فرض کنید سه طرف متعاقب وجود دارد:
- مشتری : فرض کنید یک گوشی هوشمند
- uC : یک میکروکنترلر شبکه با یک کانال ناامن اضافی به سرور
-
: برخی از جادوگران باطن سرور دارای یک پایگاه داده است و برای هر دو، سرویس دهنده و UC، سرویس معتبر وب را تأیید می کند
دستیابی به تأیید اعتبار از مشتری در برابر دستگاه UC با استفاده از رمز عبور یک بار در زیر فرض های زیر؟
- مشتری نباید قادر به تأیید هویت خود را قبل از اینکه سرور آن را "OK" داده است. فرض کنید برخی از فرایند رزرو / خرید و UC اقدام به اجازه دسترسی
- اسرار ممکن است بین سرور <-> مشتری و بین سرور <-> uC
- مشترک است. کانال بین مشتری و دستگاه UC باید به عنوان ناامن
- یک کاربر ممکن است چندین مشتری داشته باشد که همه باید قادر به تأیید هویت باشند
- دستگاه UC تنها یکی از بسیاری در زمینه است، بنابراین مشتری باید بتواند در برابر هر یک از آنها هویت ساز شود
- Client و سرور با استفاده از یک API REST ارتباط برقرار می کند
- دستگاه UC به وضوح محدود محاسبات قدرت / ذخیره سازی است، اما همچنین با استفاده از یک API REST برای برقراری ارتباط با سرور
- تمام ارتباطات API از طریق TLS انجام می شود
آیا MSC زیر امکان پذیر است؟ ایده من اساسا برای استفاده از یک زنجیره هش برای ایجاد OTP بود. اما از آنجا که مشتری نباید راز ایجاد هش را بداند، نسل OTP توسط سرور انجام می شود.
+ --------- + + --------- + + ----- +
| مشتری | | سرور | | uC |
+ --------- + + --------- + + ----- +
| | | ----------------
| | | - | فروشگاه ها h ^ n (p) |
| | | | و n = 1000 |
| | | | --------------- |
| | ---------- |
| | - | می داند p | |
| | | و n | |
| | | --------- | |
| | |
| درخواست دسترسی | |
| ----------------------> | |
| | ------------------ |
| | - | بررسی کنید که آیا دسترسی | |
| | | ممکن است اعطا شود |
| | | ----------------- | |
| | |
| OTP = h ^ (n-1) (p) | |
| <----------------------| |
| | |
| OTP | |
|---------------------------------------------------------> |
| | | -----------------
| | | - | دسترسی به دسترسی |
| | | | فروشگاه OTP، n-- |
| | | | ---------------- |
| | |
| | دسترسی به مجوز |
| | اگر n == 0: ایجاد جدید h ^ 1000 (p) |
| | <---------------------------------|
| | ---------------------- |
| |-| save granted access | |
| | | n-- | |
| | |---------------------| |
| | |
| | OK, h^1000(q) if needed |
| |---------------------------------> |
| | |
EDIT : فقط در مورد پنج دقیقه دیگر فکر کردم، متوجه شدم که این راه خوبی برای حل این مسئله نیست، زیرا سرور اساسا راز و فهرست زنجیره هش را ذخیره می کند. بنابراین در صورت نقض داده ها، OTP ها برای محاکمات بعدی n شناخته می شود.
آیا می توان این را تنها با ذخیره کردن فهرست زنجیره های هش در دستگاه UC حل کرد و تنها یک بار به سرور این ارتباط برقرار می کند؟ به عنوان مثال اگر مشتری مشتری UC برای شاخص فعلی خود را قبل از درخواست دسترسی از سرور نمایش دهد؟
جاسوسی – چگونه بایستی تأیید کنم که یک پشتیبان با آن دستکاری نکرده است؟
من یک NAS با بعضی از فایل ها که تا 2 تبلت در اندازه وجود دارد. من معتقدم که من می توانم این را کاهش دهم زیرا فایل های احتمالا تکراری وجود دارد. من قصد دارم یک نسخه پشتیبان دوم را با ارسال آنچه که من به Google Drive کرده ام، برنامه ریزی کنم. نگرانی این است که چگونه بایستی نسخه پشتیبان خود را تأیید کنم. من فکر می کنم اگر چند روز برای تایید توسط دست انجام شد، اما وجود دارد یک راه سریع تر برای تایید تمام پشتیبان من با دستکاری نشده بود؟
آیا باید استفاده از روش های مختلف برای پشتیبان گیری که اجازه می دهد برای تایید پشتیبان به جای فقط "rclone" در همه فایل های من اجرا می شود؟
EDIT: اضافه کردن کمی اطلاعات در مورد سیستم من
من ناس است یک Raspberry Pi 3B + در حال اجرا آرچ لینوکس ARM Aarch64
EDIT 2: نگرانی من این است که اگر هارد های پشتیبان محلی من شکست خورده باشد (شاید کسی آنها را به طور هدفمند خراب کرد)، من هیچ راهی برای مطمئن شدن 100٪ چیزهایی (عکس ها، موسیقی ها و غیره) همانطور که یادم می آید.
