کدام رمزگذاری این است؟

در اینجا یک رمز عبور دارم: 28 88 d9 2d 8d 2a ee e6 22 34 ff 7b f8 83 a9 ac که رمزگذاری شده با استفاده از رمزنگاری AES، DES یا 3DES رمزگذاری شده است.

رمزگذاری – NFC Android (Ntag213 vs Ultralight C)

من یک پروژه دانشگاه دارم که در آن من اساسا از برچسب NFC با Android نوشتم و خواندن متن را به منظور حفظ تعادل خود در کارت (که می تواند در کافه تریا استفاده شود )

در حال حاضر، من با استفاده از Ntag213 انجام کد زیر:

 ndef.connect ()؛
NdefRecord mimeRecord = NdefRecord.createMime ("متن / ساده"، messageEncrypted.getBytes (Charset.forName ("US-ASCII")))؛
ndef.writeNdefMessage (جدید NdefMessage (mimeRecord))؛
ndef.close ()؛

همانطور که می توانید متوجه شوید، از رمزنگاری سطح برنامه برای رمزگذاری پیام ( message encrypt ) استفاده می کنم قبل از نوشتن آن به تگ (AES-256 رمزگذاری با com.scottyab: aescrypt: 0.0.1 'کتابخانه – با یک کلید رمز عبور بسیار بزرگ است که همچنین با هر برچسب UUID به عنوان بخشی از آن ترکیب شده است.)

تا کنون خیلی خوب – فقط من می توانم درک اطلاعات در برچسب ها

در تحقیقات من، من' Ultralight C > Ntag213 .

** من میدانم که هر دو برچسب دارای فضای محدودی هستند، اما برای من بیش از اندازه کافی است.


Question 1) هنگام استفاده از رمزنگاری سطح برنامه، چرا (آیا؟) Ultralight C امن تر است و سپس Ntag213؟

سوال 2) من کاملا مطمئن هستم که می توانم امنیت را با استفاده از رمزنگاری AES در برنامه تضمین کنم لایه، اما من نمی خواهم مردم (علاوه بر من) با داده های ذخیره شده (تگ قالب بندی و یا نوشتن اطلاعات در آن وجود داشته باشد حتی اگر بتوانم آن را شناسایی کنم). من متوجه شدم که تنها راه جلوگیری از آن (لطفا من را تصحیح کنید اگر من اشتباه کنم) اینست که رمز عبور را برای برچسب تنظیم کنم. با این حال، هر دو Ntag213 و Ultralight C تنها یک رمز عبور 32 بیتی دارند. آیا به اندازه کافی خوب است؟ آیا روش دیگری برای جلوگیری از نوشتن داده های شخصی (به جز من) وجود دارد؟

سوال 3) کدام یک از اقدامات امنیتی دیگر را می توان برای استفاده از برچسب ها برای اجرای امنیت (برچسب و لایه کاربرد) استفاده کرد؟ من می بینم که Ultralight C دارای Authentication 3DES است، اما من تا به حال نمونه ای برای آندروید پیدا نکرده ام.

سوال 4) هنگامی که شما مقایسه امنیت برچسب (Mifare Desfire> Ultralight> Ntag213> Mifare Classic) ، واقعا چه چیزی مقایسه می شود؟ سهولت یک cracking (رمزگذاری بومی برچسب) یا سهولت یک فروشگاه (هر چیزی) بر روی برچسب بدون اجازه؟

سوال 5) من یک دسته از تکنسین های دیگر را می بینم (Mifare Desfire، ICODE SLIX، Infineon Cipurse) که امن تر هستند، باعث می شود که من تعجب می کنم که آیا تکنولوژی هایی که من استفاده می کنم (Ntag213 یا Ultralight C) به اندازه کافی برای حفظ توازن افراد مناسب است. آیا شما (و این یک نظر شخصی است) می گویند که Ntag213 با رمزگذاری سطح برنامه و 32 بیت رمز عبور مناسب برای این نوع برنامه مناسب است؟ و چه مدت طول می کشد کسی که امنیتش را قطع کند؟

رمزگذاری – AES-CBC و سپس SHA در مقابل AES-GCM برای رمزگذاری و تأیید اعتبار یک نشانگر وب

من سعی میکنم چیزی شبیه به JWT داشته باشم اما به طور خاص و رمزگذاری شده. این نشانه به سادگی یک JSON رشته ای است که حاوی شناسه کاربر و زمان بندی یونیکس است. در حال حاضر، من سعی کردم از AES-128-GCM استفاده کنم، اما قبل از رمزگشایی برخی از اصلاحات ساده در متن رمز را انجام دادم، فقط بعضی از بایت ها را به متن رمزگذاری اضافه کردم و متوجه شدم که آن را با موفقیت رمزگشایی می کند، آیا این بدان معنی است که این بایت ها به عنوان padding و که AES GCM الگوریتم رمزنگاری را تایید می کند؟ زیرا احساس می کنم که رمزگذاری شده و سپس تأیید اعتبار را احساس می کند به من بیشتر امن است. همچنین، تأیید هویت AES GCM حتی ایمن به اندازه کافی برای مقایسه با SHA256 به عنوان مثال است، آیا CRC سطح برای یکپارچگی سریع است و نمی تواند برای احراز هویت امن مانند HMAC استفاده شود؟

به عبارت دیگر : AES-128-CBC سپس SHA-256 امن تر از AES-128-GCM است

AES – امنیت رمزگذاری پرس و جو؟

امنیت بهار یک روش مفید به نام Encryptors.queryableText است. توضیح آن این است:

تفاوت بین TextEncryptor قابل پرسشی و متن TextEncryptor استاندارد مربوط به بارگزاری اولیه (iv) دست زدن است. IV استفاده شده در یک TextEncryptor # query encrypt عملیات مشترک است، یا ثابت، و به طور تصادفی تولید نمی شود. این به این معنی همان متن رمزگذاری شده چندین بار همیشه یک نتیجه رمزگذاری مشابه را تولید می کند. این کمتر امن است، اما برای داده های رمزگذاری شده ضروری است که در برابر آنها سوالی باشد. یک نمونه از متن رمزگذاری شده پرس و جو می تواند یک apiKey OAuth باشد.

به نظر می رسد از AES / CBC / PKCS5Padding با ثابت تمام صفر IV استفاده شود. (توجه: در جاوا PKCS5Padding واقعا به معنای پاک کردن PKCS # 7 است.

هدف از این روش، استفاده از متن رمزنگاری به عنوان کلید (کلید در یک نقشه / index / etc "به معنی، نه" کلید رمزگذاری "به معنای)

سوالات من هستند:

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

برای سناریوی ذکر شده فوق، من می توانم از بسیاری از راه حل های بهتر مشکل:

  • اگر سیستم قبل از پرسیدن آن را رمزگشایی کند، چرا یک متن رمز برای همان متن ساده وجود دارد؟ فقط از رمزگذاری مناسب با تصادفی IV استفاده کنید.
  • اگر سیستم نه آن را رمزگشایی کند، چرا از یک شناسه به طور تصادفی تولید شده به اندازه کافی مبهم استفاده نکنید؟
  • یا بهتر است کنترل دسترسی مناسب زمانی داشته باشید
  • از سند مستندات بالا، چرا یک apiKey OAuth در وهله اول رمزگذاری می شود؟

پس دقیقا این روش خوب است؟


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