احراز هویت – چه نوع oauth نوع اعطا باید پس از ورود به سیستم اجتماعی استفاده کنید

من یک برنامه کاربردی دارم که دارای سرویس میکروسکوپ مخصوص خود است تا علامت های دسترسی را صادر کند. برای کاربران ثبت نام با استفاده از ایمیل و رمز عبور من از grant_type = 'password' استفاده می کنم. وقتی که یک کاربر در استفاده از رسانه های اجتماعی اقدام به ثبت نام می کند چه می شود؟

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

آیا PASETO جایگزین JWT برای مجوز API می شود؟

آیا سرور PASETO متقارن کلید به طور جدی به عنوان یک کاندیدای قابل قبول برای جایگزینی JWT برای مجوز جلسه API ارزیابی شده است؟

JWT

https://tools.ietf.org/html/rfc7519

https: / /jwt.io

PASETO

https://raw.githubusercontent.com/paragonie/paseto/d7a1067c48e5ada67567fc546e8a6232d82c94ce/docs/RFC/draft-paragonie-paseto-rfc-00.txt

https://paragonie .com / blog / 2018/03 / paseto-platform-agnostic-security-tokens-is-secure-alternative-jose-standards-jwt-etc

اجتناب از حمله نیروهای شدید به سرور مجوز 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 که این کاربر باید در حال حاضر داشته باشد دسترسی به آن فایل؟

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

کنترل دسترسی – آیا یک نقطه مرجع مستقیم ناامن مستقیم به یک فایل ساده یا صفحه می تواند؟

تعريف مرجع ابرداده مستقيم ناامن (IDOR) از OWASP (تاکيد معدن)

اشاره مستقيم به ايمني مستقيم ناامن هنگامي رخ مي دهد که برنامه فراهم شود
  دسترسی مستقیم به اشیاء بر اساس ورودی کاربر ارائه شده. به عنوان یک نتیجه از
  این مهاجمان آسیب پذیر می توانند اجازه و دسترسی را از بین ببرند
  منابع در سیستم به طور مستقیم، به عنوان مثال سوابق پایگاه داده و یا
  فایل ها

لینک های ناخواسته مستقیم Object اجازه می دهد تا حمله ها را دور بزنند
  مجوز و دسترسی به منابع به طور مستقیم با تغییر مقدار از
  پارامتر مورد استفاده به طور مستقیم اشاره به یک شی
.

درک من از مورد کلی این است که اگر شما در برنامه خود که در نظر گرفته شده است حفاظت شده است و شما می توانید به طور مستقیم توسط دسترسی به اشاره به آن را در URL از شما به عنوان مشکل * .

به معنای واقعی کلمه تمام نمونه هایی از IDOR من دیده ام، همیشه از شمارش در URL (به عنوان در پاراگراف دوم از من نقل قول): یکی از دسترسی به http://example.com؟id=10 (correlicty) است، اما با دستکاری id ، او دسترسی به http: // example.com؟id=1033 که او نباید مجبور باشد.

برای من این تنها یک نمونه خاص از این آسیب پذیری است. من هم فکر می کنم (و در اینجا سؤال من است) آدرس هایی مانند

 http://example.com/menu1/menu2/topsecret/file.pdf

یا

 http://example.com/menu1/menu2/topsecret/

نیز مسائل مربوط به نکات مستقیم اشیاء ناامن (هنگام دسترسی غیرمنتظره) هستند.

آیا در فهم من درست است؟


* چرا این فقط یک "هیچ ACL" نیست، پس از آن؟ (به عنوان مثال A10 "کنترل دسترسی شکسته") از آنجا که ممکن است این صفحه هنگامی محافظت شود که شما سعی در دسترسی به آن "راه طبیعی" (به عنوان مثال از طریق منوهای که برای شما قابل مشاهده است فقط زمانی که شما دارای حقوق مناسب است)