آیا مجوز افزودن به این شیوه امن است؟

من یک وبسایت دارم، برای آن افزودنی همراه با فایرفاکس و کروم اضافه کردم. هر دو آن خصوصی هستند. در فایرفاکس آنها فقط می توانند از وبسایت من نصب شوند و برای Chrome نیز لینک موجود در فروشگاه را فقط می توان بر روی سایت نیز دریافت کرد.

افزودنی در حال حاضر به روش زیر مجاز است:

  • وب سایت
  • کاربر می رود به تنظیمات
  • کاربر انتخاب کلید جدید
  • کلید در زمینه متن نشان داده شده است، که در آن کاربران می توانند آن را کپی کنید، پس از آن کلید هرگز دوباره نشان داده نخواهد شد، مگر اینکه یک جدید تولید شود [19659004] کاربر باید کلید را به addon اضافه کند
  • افزودن این کلید را به عنوان بخشی از ارتباط با سرور ارسال می کند.

سرور از کلید برای تأیید افزودن به عنوان یکی از کاربران استفاده می کند . این به مجوز افزودنی مجاز کاربر مجاز می رسد، با این حال برخی مجوز ها به علت عدم تایید رمز عبور کاهش می یابد، مثلا کاربر نمیتواند رمز عبور را تغییر دهد یا کلید کاربردی جدیدی ایجاد کند (این تنها در وب سایت که کاربر باید وارد شود، با ورود به سیستم و رمز عبور)

همه کاربران در مورد اثرات شدید ممکن است از به اشتراک گذاشتن کلید با دیگران هشدار داده می شوند.

وب سایت از HTTPS با HSTS استفاده می کند و اخیرا به لیست پیش بارگذاری ارسال شده است. بنابراین من نگران نشت کلید HTTP نیستم. کلید به عنوان بخشی از browser.storage API ذخیره می شود

اگرچه کلیدها برای برنامه های کاربردی مناسب هستند اما من نگران هستم.
در حال حاضر کلید ها با استفاده از bin2hex (random_bytes (64)) در زیر PHP تولید می شوند.

در حالی که کلیدها به طور پیش فرض دسترسی محدود به حساب دارند، من تعجب می کنم که آیا این روش حتی با طراحی ایمن است یا یک رویکرد بهتر وجود دارد که برای آن می توانم افزودنی را بدون نیاز کاربران به ورود به سیستم در هر زمانی مجاز کنم.

به طور پیش فرض کلید هرگز به طور خودکار حذف نمی شود، با این حال کاربران مجاز به حذف کلید فعلی و تولید کلید جدید یکی از پایگاه های قبلی را حذف می کند

من تعجب می کنم که آیا حملات احتمالی وجود دارد که من فکر نکرده ام یا اینکه حتی راه های بهتر برای تأیید کاربران وجود دارد.

شبکه – مجوز گواهی Wi-Fi و دسترسی به تلفن / داده

سوالات متعددی در مورد سوالات مشابه وجود دارد، اما کاملا مشابه نیست (دیگران در مورد MITM حمله می کنند). آنها همچنین پاسخ / پاسخ های متناقض و متضاد را بیان می کنند، بنابراین از این سوال 3 سوال خاص در مورد پذیرش یک گواهی Wi-Fi شرکت در هنگام اتصال به شبکه خود که از طریق اعتبار حساب های شرکتی برای دسترسی به آن در دستگاه شخصی کنترل می شود، می پرسم.

، احراز هویت از طریق حساب کاربری (ایمیل) اعتبار در هنگام انتخاب شبکه امن رخ می دهد. پس از تأیید، آن را میپرسد، "اعتماد کنید" یک گواهی به صورت زیر است:
 گواهی اعتماد .

به دنبال جزئیات، من این را اضافه میکنم تا به سوالاتم جواب بدهم:
 cert details

  1. آیا پذیرش این گواهی به شرکت حق دسترسی به تلفن من می دهد؟ I.e.) این نوع دسترسی ریشه یا چیزی شبیه به آن را فراهم می کند که اجازه می دهد آنها را به مشاهده / دسترسی به داده ها در تلفن من. این بدین معنی است که دسترسی به هر دو اطلاعات مربوط به دستگاه واقعی (عکس ها، ایمیل ها، و غیره) و اطلاعات / اطلاعات که از طریق شبکه منتقل می شود. منظورم نظارت نیست، بلکه امکان دسترسی به تلفن من است.
  2. اگر آنها فقط می توانند داده ها را از طریق شبکه منتقل کنند (نظارت بر اساسا)، این نشانی عمومی مانند آدرس مقصد اصلی است یا آدرس خاصی است و محتوای واقعی؟
  3. چگونه این همه با استفاده از سرویس VPN مستقل تاثیر می گذارد؟ (کسی توصیه به استفاده از آن را در سؤال های دیگر)

من اساسا می خواهم بدانم چقدر حق / حریم خصوصی من با پذیرفتن اعتماد به این گواهی را رها می کنم

برای همه می توانم بگویم این است که ممکن است فقط برای احراز هویت ، اما آیا واقعا فقط این است، و آنچه که بیشتر با تصدیق پذیرفتن آن موافقم؟ برای همه که می دانم، می توانم به شرکت دسترسی به داده ها را بر روی تلفن خود قبول کنم.

با تشکر از شما

تأیید اعتبار – آیا یک مکانیزم مجوز ثروتمند که در آن رمز عبور روشن در keychain ذخیره می شود امن است؟

آیا استفاده از مکانیزم مجوز استقرار زیر بین مشتری (iOS & Android) و سرور امن است؟

ثبت نام

  1. مشتری یک ایمیل و رمز عبور را فراهم می کند و رمز عبور پاک می کند در Keychain در iOS و با استفاده از یک جایگزین برای آندروید.

  2. سرور قدرت رمز عبور را بررسی می کند، اگر آن را به اندازه کافی قوی که کاربر در DB ایجاد شده است.

  3. سرور یک Token JWT را تولید می کند و آن را به مشتری می فرستد. Token زمان انقضا 15 دقیقه است.

  4. مشتری نشانه را (شاید در Keychain خود ذخیره می کند و شامل آن برای هر درخواست زیر در header Authorization می باشد. 19659004] برای هر درخواست، سرور نشانگر ارائه شده را بررسی می کند (امضا و زمان انقضا را بررسی می کند). اگر درست باشد، درخواست پردازش می شود، در غیر این صورت، HTTP 401 بازگشت می شود.

ورود

  1. هنگامی که مشتری یک HTTP 401 از سرور دریافت می کند، به این معنی ورود به سیستم مورد نیاز است. بنابراین برنامه به Keychain دسترسی پیدا می کند و ایمیل و رمز عبور را دریافت می کند (بدون مداخله کاربر لازم است).

  2. سرور معتبر ارائه شده است و اگر معتبر باشد، آن را تکرار خواهد کرد ثبت نام مراحل از 3 تا 5.

با تشکر از زمان انقضا در Token، اگر یک Token به خطر بیافتد، در طول یک دوره کوتاه معتبر خواهد بود.

اگر یک کاربر وارد سیستم شده باشد چندین دستگاه و رمز عبور خود را از یک دستگاه تغییر می دهد، دستگاه های دیگر فقط برای یک دوره زمانی کوتاه وارد سیستم می شوند، اما رمز عبور روشن ذخیره شده در Keychain [19459009طولانیترنخواهدبود

کدام نقص را می بینید؟

من فکر کرده ام در مورد استفاده از روش نشانه بازنویسی برای جلوگیری از ذخیره رمز عبور پاک، اما این پیچیدگی را اضافه می کند و اشکالات دیگر (برای مثال: چگونگی تضمین refresh token فقط یک بار استفاده می شود). و تا آنجا که من دیده ام، ذخیره رمز عبور روشن در کلید KeyChain به اندازه کافی امن است:

Documentation Services KeyChain

بهترین روش برای حفظ اعتبار ورود به سیستم در iOS چیست؟ [19659012] اما من همچنین سؤالات دیگری را مشاهده کردم که توصیه نمیکنند رمزهای عبور را بر روی دستگاه ذخیره کنند.

بنابراین من می خواهم که نظرات دیگران را در این مورد بشنوم.

</p>
<pre>تأیید اعتبار - آیا یک مکانیزم مجوز ثروتمند که در آن رمز عبور روشن در keychain ذخیره می شود امن است؟<br />

اجتناب از حمله نیروهای شدید به سرور مجوز oAuth

من در حال حاضر به چارچوب مجوز OAuth 2 نگاه می کنم. دیروز شروع به تعجب کردم که چگونه برای جلوگیری از حمله نیروهای بیرحمانه در جریان اعتبار مجوز کد (https://tools.ietf.org/html/rfc6749#section-4.1). برای روشن شدن، جریان به صورت زیر عمل می کند:

  1. مرورگر درخواست هایی را برای یک منبع محافظت شده در یک مشتری oAuth 2 ( client.example.com ) می فرستد.
  2. مرورگر به نقطه پایانی مجوز هدایت می شود سرور مجوز:

    GET / authorize؟ response_type = کد & client_id = s6BhdRkqt3 & state = xyz
        & redirect_uri = https٪ 3A٪ 2F٪ 2Fclient٪ 2Eexample٪ 2Ecom٪ 2Fcb

با حالت خاصی از رشته تصادفی تولید شده توسط مشتری oAuth 2

  1. ورود به سیستم مرورگر در سرور مجوز
  2. هنگامی که به درستی وارد سیستم شوید، مرورگر با پارامترهای پرس و جو redirect-uri با برخی از پارامترهای پرس و جو

    https://client.example.com/cb؟code=SplxlOBeZQQYbYS6WxSbIA&state=xyz

مسیر رونویسی باید همانند فرستنده توسط مشتری و توتون یک رشته تولید شده توسط سرور مجاز است.

  1. مشتری تایید می کند که آیا پارامتر حالت متعلق به جلسه عامل کاربر (برای جلوگیری از XSRF) و درخواست توالی دسترسی از سرور مجوز با استفاده از کد پارامتر پرس و پایه احراز هویت با اعتبار مشتری:

    POST / token HTTP / 1.1
    میزبان: server.example.com
    مجوز: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
    Content-Type : application / x-www-form-urlencoded [19659012] grant_type = authorization_code & code = SplxlOBeZQQYbYS6WxSbIA و redirect_uri = https٪ 3A٪ 2F٪ 2Fclient٪ 2Eexample٪ 2Ecom٪ 2Fcb

ممکن است یک مهاجم یک بار دیگر تکرار مراحل 2 و 4 را انجام دهد، بدون اینکه وارد سرور مجاز شوید :

  1. برو به یک منبع محدود در client.example.com .
  2. تجزیه پارامتر درخواست در مسیر هدایت (و ذخیره کوکی / شناسه جلسه) [19659018] با رفتن به https://client.example.com/cb؟code=value1&state=xyz (با کوکی / شناسه جلسه دریافت شده در 1) سعی کنید یک نشانه برای value1 دریافت کنید.

دوباره این کار را انجام دهید و دوباره برای کد = ارزش 2 ، کد = ارزش 3 ، …

هیچ چیز در بین دو تلاش مهاجم مشابه نیست، که باعث می شود سرور مجاز برای ذخیره سازی تعدادی تلاش و بلوک پس از یک شماره خاص.

با این حال، احتمالا یک پنجره کوچک برای مهاجم برای انجام atta ck، از آنجا که کد فقط در سرور بین مراحل 4 و 5 در جریان معتبر است (به جز اگر مشتری در جایی بین 4 و 5 سقوط می کند.)

دیگر

  • دارای یک کد بزرگ تولید شده توسط سرور مجوز [19659018] کدهای موجود فقط برای یک مدت زمان محدود

کدام چیز دیگری است که ما می توانیم برای جلوگیری از حمله توصیف شده انجام دهیم؟

kerberos – نحوه به روز رسانی اطلاعات مجوز در KDC به صورت پویا؟

من مایل به تأیید هویت و مجوز Kerberos در یک پروژه هستم که دارای یک سرور سرویس است که با خوشه Hadoop که دارای برخی از کاربران و مجوز است تعامل دارد.

تا آنجا که من می دانم، KDC باید آن را بررسی کند مجوز ها و نه سرویس دهنده، اما اگر کاربر یک فایل جدید را در Hadoop ایجاد می کند، باید مجوزهای کاربر را بر روی فایل جدید به گونه ای به روز رسانی کنم.

نحوه اطلاع KDC که این کاربر باید در حال حاضر داشته باشد دسترسی به آن فایل؟

آیا من باید در واقع این کار را در وهله اول انجام دهم؟