تأیید هویت – هویت شخص ثالث با 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 برای شاخص فعلی خود را قبل از درخواست دسترسی از سرور نمایش دهد؟

tls – گواهی SSL برای WebAPI

ما یک سیستم ساده با یک سرویس REST (WebAPI) داریم که در یک دستگاه (میزبان در IIS در یک پورت سفارشی، شماره پورت 3031) میزبانی می شود و با یک وب سایت میزبانی شده در دستگاه دیگری که با سرویس صحبت می کند

ما می خواهیم هر دو از SSL استفاده کنند، بنابراین درک می کنیم که ما باید دو گواهینامه SSL جداگانه برای استقرار تولید در اینترنت خرید کنیم.

آیا این درست است؟

اگر چنین است، می دانم چگونه درخواست و خرید یک گواهی برای سرویس WebAPI REST … خدمات در یک پورت 3031 سفارشی میزبانی می شود، آیا باید یک گواهی معمولی برای نام دامنه دستگاه که در آن سرویس میزبانی می شود، خرید کنم؟ و سپس باید ابتدا گواهی را روی IIS بر روی آن دستگاه نصب کنم (مثل آن در اینجا توضیح داده شده است: https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/working-with-ssl- در web-api.

چگونه میتوانم تأیید دامنه گواهی خریداری شده را انجام دهم اگر میخواهم از گواهی سرویس REST در یک پورت سفارشی استفاده کنم؟ (برای یک وب سایت به طور منظم)

متاسفم برای نادانی من، من در انجمن جستجو کردم تا پاسخی به موضوع من پیدا کنم، اما من آن را پیدا نکردم، شاید این بدان معناست که دانش من بسیار محدود در مورد گواهینامه ها و امنیت است. 19659007]

رمزنگاری – سرویس استراحت امنیت رمز عبور

من یک سرویس استراحت A را ارائه می دهم که برای سرویس B بقیه ارتباط برقرار می کند (هر دو این سرویس در داخل شبکه شرکت قرار می گیرند). اما خدمات بقیه B، شناسه سرویس و رمز واقعی واقعی را برای من به منظور استفاده از سرویس B خود ارائه کرده است.

نگرانی من این است که چگونه رمز عبور سرویس B را به طور ایمن در Service A خود ذخیره کنم. من نمی خواهم فقط آن را ذخیره کنم متن ساده در فایل خواص یا پایگاه داده.

من دوست دارم یک روش رمزنگاری برای تأمین رمز عبور را اجرا کنم، اما تنها نگرانی من این است که هر تکنیک که برای تأیید گذرواژه استفاده می شود، در نهایت من باید به عنوان فیلد ساده فقط برای تماس ارسال کنم سرویس ب.

این فقط برای مخفی کردن متن ساده رمز عبور از بقیه تیم و شرکت است. باید بین مصرف کننده و تولیدکننده ایمن باشد (ممکن است افراد را نگه دارد).