رمزگذاری – PGP – 2048 بیت کلید VS اندازه فایل از کلید صادر شده است

من رمزنگاری جدید هستم، پس لطفا با من بمانید.

اگر من کلید های 2048 بیتی را ایجاد کنم و کلید امنیتی صادراتی به فایل key.gpg (بدون زره ASCII) بفرستم، یک فایل با اندازه 1.28 کیلوبایت .

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

چگونه می توانم کلید را در شکل خام از صفر و صفر مشاهده کنم؟

که برای TLS بزرگتر از IPsec بهتر است؟

با استفاده از مطالعه مقایسه ای TLS و IPsec از نظر ویژگی ها و خدمات امنیتی ارائه شده است. اگر شما CIO یک شرکت بزرگ بود که نیاز به برقراری ارتباط امن در سراسر جهان، آیا شما توصیه می کنید از هر دو TLS و IPsec استفاده کنید؟ به وضوح استدلال خود را توضیح دهید.

رمزگذاری – رمزهای عبور: ذخیره رمزگذاری شده، مشاهده در متن ساده

من قبلا این سوال را در stackoverflow پرسیدم اما اطلاع دارم که کمی بیش از حد وسیع است و به جای آن در اینجا بیشتر متکی است. بنابراین اجازه دهید فقط کپی و چسباندن آنچه را که از آن پرسیدم کپی کنم:

من یک معضل مربوط به امنیت دارم که من نمیتوانم از خودم درباره امنیت برنامههای وب استفاده کنم.

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

گذرواژهها باید رمزگذاری شده ذخیره شوند، اما ممکن است برای نمایش دادن به یک کاربر در متن ساده استفاده شوند. روش استاندارد برای ذخیره گذرواژه برای احراز هویت این است که آنها را به عنوان مثال با استفاده از bcrypt یا روش دیگر با نمک اضافه شده به آن ها هش کنید و چنین رمزگذاری به شما اجازه رمزگشایی کلمات عبور را به راحتی نمی دهد.

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

من فقط به آن اضافه خواهم کرد که فرض کنیم رمز عبور یک یا مجموعه ای از کلمات عبور یک پست وبلاگ است مشاهده در یک متن ساده تنها توسط نویسنده چنین پست و تحت شرایط خاص توسط مدیر و ناظر

خود تکنولوژی خود را مهم ترین چیز در اینجا نیست، اما من قصد دارم برای ایجاد این برنامه با استفاده از چارچوب پی اچ پی و لارو. [19659002] برای نگهداری و مشاهده یک چیز است، چیز دیگری این است که چگونه چنین برنامه هایی را از انواع مختلف پست های رمزگذاری شده، خرابکاری های پایگاه داده و حملات مشابه محافظت کنید؟

استفاده از کلید خصوصی RSA به عنوان کلید AES برای رمزگذاری

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

فرآیند رمزگذاری:

  1. برنامه نصب شده است و کلید های RSA را با استفاده از System.Security.Cryptography.RSACryptoServiceProvider
  2. کلید RSA به یک کانتینر اصلی با نام ظرف مشخص شده توسط برنامه ادامه می یابد
  3. در زمان بعد، برنامه کلید های RSA را با استفاده از RSACryptoServiceProvider بازیابی می کند و از 32 بایت اول پارامتر D استفاده می کند کلید AesCryptoServiceProvider برای رمزگذاری اطلاعات روی دیسک استفاده می شود. AES IV به طور تصادفی توسط AesCryptoServiceProvider برای هر رویداد رمزگذاری تولید شده است.
  4. AES IV که در مرحله 3 استفاده شده است به عنوان متن ciphertext اضافه شده است، همانطور که در اینجا ذکر شده است و چند مکان دیگر که این عمل عادی است.

فرآیند رمزگشایی:

  1. AES IV از 16 بایت اولیه متن ciphertext بدست می آید. باقی مانده از متن cipher به مرحله 2 ارسال می شود.

  2. این برنامه کلید های RSA را با استفاده از RSACryptoServiceProvider بازیابی می کند و از 32 بایت اول پارامتر D به عنوان کلید AesCryptoServiceProvider برای رمزگشایی داده ها از دیسک استفاده می شود.

کانت اصلی به این صورت استفاده می شود، عمدتا به این دلیل که روش ها برای ذخیره کلید های نامتقارن به راحتی همانطور که در صفحه کانتینر اصلی مشخص شده است ارائه می شوند. هدف این است که به صورت دوره ای برنامه را تولید کلید های RSA جدید و جایگزینی آنچه که در کانتینر کلیدی ذخیره شده است؛ در نتیجه چرخاندن کلید AES مورد استفاده برای رمزگذاری / رمزگشایی. من می توانم برخی از نمونه های کد را ارائه دهم اما در حال حاضر می خواهم پرسش های اساسی را از اینجا دریافت کنم. [1965،9002] سوالات:

  1. روش فوق بهتر یا بدتر از برنامه با استفاده از کلاس ProtectedData موجود در دات نت است که ساده می شود مدیریت کلید؟
  2. آیا برای استفاده از RSA برای رمزگذاری یک کلید متقارن رمزنگاری / رمزگشایی وجود دارد؟ کجا کلید های متقارن کد گذاری شده را ذخیره کنید؟ این لایه اضافه شده غیر ضروری است اگر کلید خصوصی RSA در ابتدای کابین کلیدی نا امن باشد.
  3. چگونه System.Security.Cryptography.CspParameters را هنگام انتقال به تنظیم کنید. RSACryptoServiceProvider به منظور محدود کردن دسترسی خصوصی به کلید خصوصی RSA فقط به این برنامه؟
  4. تمام ایده را از بین ببرید و با جایگزین کردن راه حل XYZ بروید؟

رمزگذاری – کلید های متقارن برای TPM

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

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