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

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

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

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


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

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

چند عامل – آیا ایده خوبی است که یک لپ تاپ جدید برای تولید کلیدهای 2FA داشته باشیم؟

من بسیار نگران افرادی هستم که کیبورد یا تروجان را بر روی رایانه خود نصب می کنند.

بعضی ها گفتند که تنها راه مطمئن شدن این است که با انجام اصلاح کامپیوترها

آیا می توانم اطمینان حاصل کنم که هیچ کیبوردی در رایانه من بدون بازنشانی ویندوز وجود ندارد؟

در حالی که هکرهایی که کیلیوگرر را بر روی رایانه های من قرار می دهند ممکن است بتوانند رمز عبور من را دریافت کنند، نمی توانند 2FA خود را دریافت کنند. این زمانی است که من گوگل 2FA را بر روی یک کامپیوتر بسیار امن تولید می کنم.

بنابراین من قصد دارم یک لپ تاپ بخرم. نصب ویندوز و سپس حداقل برنامه ها، مانند بایت های مخرب را نصب کنید (حتی لازم است). سپس 2FA را روی آن لپ تاپ فعال می کنم.

شما چه فکر می کنید؟ یک ایده خوب؟ چه باید بکنم؟

TLS – کلیدهای عمومی و خصوصی را از JBOSS استخراج کنید

sysadmin ما نیاز دارد که من کلید عمومی و خصوصی را برای Jboss sever متصل کنم. من یک فایل keystore در

wildfly.10.1.0.Final/standalone/configuration

با استفاده از

[root@server] # keytool -list -keystore keystore -storepass changeit

] خروجی

نوع Keystore: JKS ارائه دهنده Keystore: SUN

keystore شما شامل 1 نوشته

jboss، May 21، 2014، PrivateKeyEntry، اثر انگشت گواهی (SHA1):
  62: 8B: 66: 6E: C1: 04: DC: F2: 5E: D8: DB: CE: 90: B8: 4E: 06: 17: 02: B4: C6

بنابراین این به نظر می رسد مانند کلید خصوصی من ، و من می توانم keyto را برای صادرات آن به سیستم مدیریت Sys من استفاده کنم. اما در مورد کلید عمومی چیست؟ آیا آنها یک جفت نیستند؟ از کجا می توانم آن را برای صادرات آن پیدا کنم؟

به هر حال، بقیه دایرکتوری پیکربندی به نظر می رسد:

[root@s0u1lap configuration] # ls
application-roles.properties mgmt-groups.properties standalone-full.xml
application-users.properties mgmt-users.properties standalone-ha.xml
keystore public_key_dns.bks standalone.xml
keystore.default public_key_dns.der standalone_xml_history
logging.properties standalone-full-ha.xml

gnupg – با استفاده از کلیدهای GPG مختلف برای رمزگذاری ایمیل ها و رمزگذاری فایل های شخصی؟

من قصد دارم از GPG استفاده کنم. 1. امضای اسناد من 2. رمزگذاری ایمیل 3. رمزگذاری اسناد شخصی من.

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

گزینه های موجود برای تبادل کلیدهای عمومی برای ارسال ایمیل

چه عواملی برای تبادل کلیدهای عمومی با شخص دیگری برای ارسال ایمیل وجود دارد، به غیر از روش آشکار دستی چسباندن کلید عمومی به ایمیل که می گوید: "در اینجا کلید عمومی من است"؟

  1. آیا مشتریان ایمیل که معمولا رمزگذاری را پشتیبانی می کنند کلید های کلیدی را از سرورهای کلید به طور خودکار (بر اساس آدرس ایمیل شخص دیگری) انتخاب کنید، بنابراین شما حتی نباید در مورد آن فکر کنید؟
  2. اگر کسی از سرورهای کلید استفاده نمی کند، مشتریان ایمیل دارای یک روش ساخته شده در تبادل کلید عمومی بدون دخالت انسان، به جز احتمالا با کلیک بر روی "OK" برای پذیرش مبادله؟