کلیدهای API را با JWT تولید کنید و در صورت لزوم همان کلید را بازسازی کنید

من اخیراً احساس نیاز خودم را برای ایجاد یک API عمومی برای برنامه خود پیدا کردم. برنامه خود را با node.js و MongoDB توسعه دادم. پس از انجام تحقیقات ، تصمیم گرفتم از jwt برای تولید کلیدهای API برای کاربران و تأیید اعتبار استفاده کنم. برای تأیید اعتبار نشانه های jwt ، آنها به این مزیت احتیاج دارند که نیازی به ذخیره آنها در یک بانک اطلاعاتی ندارند ، زیرا بدون اطلاع از نشانه دقیق تولید شده می توانند رمزگشایی و تأیید شوند.

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

بنابراین داستان کوتاه طولانی من در تلاش هستم راهی پیدا کنم تا نشانه های دقیق را ذخیره نکنم. ، اما فقط بار خود را در دیتابیس ذخیره کنید و هر بار که کاربران کلیدهای API خود را درخواست می کنند ، من فقط یکی را با [SECRET SECRET تولید می کنم و آن را به آنها منتقل می کنم. در حال حاضر می فهمم که اگر در مرحله توافق نامه ، هر بار که می خواهم بار مشابهی را با همان iat (صادر شده در) صادر کنم ، متن تولید شده هر بار یکسان خواهد بود. بنابراین با ذخیره کردن iat با داده بارگذاری در دیتابیس می توانم هر بار توکن دقیق تولید کنم.


اکنون سوالات من این است:

  • آیا این رویکرد خوب است یا روش بهتری وجود دارد؟
  • آیا هیچ روش خوبی برای تولید کلیدهای API بدون ذخیره آنها وجود دارد؟
  • آیا این حتی لازم است (با توجه به اینکه آیا ساحل بانک اطلاعاتی وجود دارد ، همه داده ها از قبل دزدیده شده اند)؟
  • آیا روش دیگری غیر از استفاده از jwt برای رسیدن به این هدف وجود دارد؟

برنامه وب – کلید عمومی PGP قابل مشاهده است

من یک صفحه با یک را پیدا کرده ام
بسیاری از کلید های عمومی PGP. یک آدرس ایمیل در آدرس وجود دارد
و

این صفحه با

شروع شد —— شروع بلوک کلید PGP ——-

mQINBFt ……..
……………. …
…………… ………..
…. ……. …………….
………. ……………..
   ………………..
……………………… Tgoouy4 =

——– پایان بلوک کلید عمومی PGP —– —

 کلید PGP

 کلید PGP

آیا آسیب پذیری است؟

openssl – CSR چندگانه از همان کلید خصوصی

در نظر بگیرید که من یک کلید خصوصی جدید نامشخص با استفاده از openssl ایجاد کنم:

 openssl genrsa-out personal.key 2048

من پس از آن چند درخواست CSR (به نام csr1.csr و csr2.csr ):

 openssl req-new -sha256 -key personal.key -out csr1 .csr
openssl req -new -sha256 -key personal.key -out csr2.csr

(هر دو CSR با همان مجموعه ای از فیلدها تولید می شوند.

فایل های .csr به احزاب مختلف داده می شود و csr1.csr به خطر افتاده است توسط شخص ثالث

چگونه امن و اعتماد هستند csr2.csr و personal.key اکنون (در شرایط استفاده باقی مانده و حفظ آنها برای استفاده در آینده)

باید csr2.csr و / یا personal.key اگر csr1.csr به خطر افتاده است؟ اگر چنین است، چرا این است؟

درک لرزش در مبادله کلید IT

مقاله شات

من یک مقاله در مورد مبادله کلیدی می خوانم و می خواهم در مورد پروتکل شرح داده شده در شکل 4 در صفحه 6 در مقاله فوق توضیح دهم. من در اکثر نشانه ها را درک می کنم، اما درک مراحل 7 و 11 را دارم.

این بیان می کند که PE (دستگاه 1) برخی از داده ها را با استفاده از کلید خصوصی خود در مرحله 7 نشان می دهد و بعد از آن PV (دستگاه 2) این داده ها PV چگونه داده ها را بررسی می کند اگر آن را با کلید خصوصی PE امضا کرده اید؟ آیا لازم نیست که با کلید عمومی PV امضا شود، بنابراین PV می تواند محتوای خود را با کلید خصوصی خود تأیید کند؟

من فقط نمی فهمم که چرا داده های امضا شده برای PV مفید است.

با عرض پوزش اگر این سوال تازه ای است و از هر گونه توضیحی تشکر می کنم.

پروتکل TLS، کلید جلسه برای اتصال امن

در ویکیپدیا، به عنوان بخشی از برقراری ارتباط بین یک مشتری و یک سرور، یک کلید رمزگذاری عمومی به عنوان بخشی از گواهی دیجیتال ارسال می کند.
سپس مشتری از مبادله کلیدی Diffie-Hellman استفاده می کند تا ایمن کلید نشست تصادفی و منحصر به فرد را برای رمزگذاری و رمزگشایی تولید کند.
سوالات:
1. کلید عمومی فرستاده شده توسط سرور رمزگذاری شده یا روشن است؟ فرض میکنم از آنجا که عمومی است روشن است
2. آیا کلید جلسه و کلید عمومی مرتبط است؟ آیا سرویس گیرنده کلید session را به سرور می فرستد؟
کلید جلسه فرستاده شده: f (Random_gen_number، Public_key) جایی که f یک تابع رمزگذاری است