امروزه تقریبا تمام ISP ها از یک سیستم NAT استفاده می کنند تا افراد بیشتری را همان آی پی (حداقل در جایی که من هست) قرار دهند، احتمالا به دلیل پایان دادن به آدرس های IPv4 و صرفه جویی در هزینه ها. سوال من این است که آیا ممکن است یک حمله DOS / DDos به چنین اتصال ایجاد شود، به طور طبیعی با دانستن آدرس آی پی عمومی، من فکر می کنم به لحاظ نظری ممکن است که باند سیستم ISP را که برای NAT استفاده می شود اشباع شود، اما عملا امکان پذیر است برای حمله به مستقیم مستقیم نگران؟ همچنین به این دلیل که من اعتقاد دارم که هر کس با چنین قدرتی برای اشباع کل ISP غیر ممکن است، غیر ممکن است. متاسفم برای انگلیسی، من از مترجم استفاده میکنم
رمزنگاری – OpenSC قادر به اتصال javacard با اپلت PKCS نیست
کارت هوشمند JavaCOS A40 من خالی هست و می خواهم آن را PKCS PKI کارت کنم.
من قصد دارم از آن به عنوان کلید ssh و برای امضای قرارداد الکترونیکی استفاده کنم. روسیه برای شناسایی شهروندان مانند کشورهای عضو اتحادیه اروپا، نشانی اینترنتی الکترونیکی مبتنی بر کارت های هوشمند را ارائه نمی دهد. ارائه دهندگان امضای تجاری امری برخی از انواع درایوهای USB محافظت شده با رمز عبور را به فروش می رسانند که استفاده از آن ناامن است زیرا شما می توانید به راحتی کلید خصوصی صادر کنید. همچنین آنها کارت های معمولی را به فروش می رسانند، اما واقعا گران هستند (x10-x20 از javacard خالی) و کوتاه مدت (حدود 1 سال). بنابراین من می خواهم PKI خود را بر اساس الگوریتم RSA از javacard ایجاد کنم.
اکنون javacard من در حالت OP_READY
است و من آن را تغییر نداده ام، چون تغییرات غیر قابل برگشت است. از کلید پیش فرض استفاده می کند و هر کسی می تواند هر چیزی را بارگذاری کند. من از ACR38U
خواننده با pcsc
راننده لینوکس در اوبونتو
استفاده میکنم و به عنوان انتظار میرود، بنابراین از GlobalPlatformPro برای آپلود PKI IsoApplet به عنوان پیشفرض استفاده میکنم. بنابراین خروجی GP:
java-jar gp.jar -list
هشدار: هیچ کلیدی داده نشده است، با استفاده از کلید تست پیش فرض 404142434445464748494A4B4C4D4E4F
ISD: A000000003000000 (OP_READY)
Privs: SecurityDomain، CardLock، CardTerminate، CardReset، CVMManagement
APP: F276A288BCFBA69D34F31001 (SELECTABLE)
Privs: CardReset
PKG: F276A288BCFBA69D34F310 (بارگیری شده)
نسخه: 1.0
اپلت: F276A288BCFBA69D34F31001
cardpeek
با موفقیت به آن متصل می شود و می توانم دستورات سطح پایین را به اپلت ارسال کنم
اما هنگام تلاش برای اتصال به کارت و اپلت با استفاده از opensc
برای دیدن جواب به درخواست (ATR)، آن را شکست می دهد opensc-tool - خواننده 0 --atr
. مشاهده حداکثر اطلاعات اشکالزدایی
نسخه کوتاه شده:
opensc-tool --reader 0 --atr -vv
اتصال به کارت در خواننده ACS ACR 38U-CCID 00 00 ...
0x7fc849e7e740 22: 17: 14.634 [opensc-tool] card.c: 200: sc_connect_card: called
0x7fc849e7e740 22: 17: 14.634 [opensc-tool] card-entersafe.c: 138: entersafe_match_card: called
اتصال به کارت انجام نشد: دستور کارت شکست خورد
0x7fc849e7e740 22: 17: 14.797 [opensc-tool] ctx.c: 870: sc_release_context: نام
بر اساس اطلاعات تولید کننده، کارت پشتیبانی از T = 0
بیش از ISO7816 است، اما opensc تلاش می کند با T = 1
ارتباط برقرار کند. پس چگونه می توانم این را حل کنم؟
به نظر می رسد که ابزار opensc قابل تنظیم نیست. من باید از pkcs15-crypt
استفاده کنم اما نمیتوانم اتصال برقرار کنم. آیا می توانم درایورها را تغییر دهم، opensc را مجددا با پچ ها باز کرده یا از ابزار دیگری استفاده کنم؟ چگونه روش های دیگر من می توانم برای مثال برای OpenPGP کار کنم؟
آیا استفاده از TLS، SSH و SSL در یک اتصال امن تر می شود؟
پروتکل های رمزگذاری شبکه چند لایه به طور خاص اطلاعات محرمانه یا یکپارچگی داده های باربری شما را انتقال نمی دهد. در حالی که SSL شکسته شده است (پروتکل SSL2 و SSL3)، TLS نسبتا قوی است، به ویژه TLS1.2 و TLS1.3 آینده. همانند SSH2 درست است (تقریبا تمام اتصالات SSH مدرن از SSH2 استفاده می کنند)، که همچنین از الگوریتم های قوی و امن استفاده می کند. پروتکل های متعدد لایه بندی خطر احتمال پیاده سازی یک پروتکل را برای حمله ی مرگبار آسیب پذیر می سازد و موجب می شود که لایه ی آن ها بدتر شود.
اساسا، تمام این پروتکل های مختلف، پیاده سازی الگوریتم های مشابه (یا معادل) هستند. هر دو TLS و SSH از DHE یا ECDHE برای ایمن مبادله کلید مخفی استفاده می کنند، هر دو از رمزهای قوی مانند AES برای رمزگذاری اطلاعات خود با کلید رمز مخفی پشتیبانی می کنند و هر دو از تکنیک های قوی مانند HMAC برای محافظت از یکپارچگی داده ها استفاده می کنند. آنها تنها در آنچه که برای بهینه سازی هستند متفاوت است. به عنوان مثال SSH دارای ویژگی هایی است که زمان تأخیر برای ارسال کلید های کلیدی را کاهش می دهد، در حالی که TLS دارای ویژگی های فراوانی برای پشتیبانی از PKI قابل اعتماد (زیرساخت کلی عمومی) است.
در عوض، شما باید یک پروتکل واحد را انتخاب کنید که برای نیازهای شما مناسب است از آن استفاده کنید. برای چیزی شبیه اتصال به پایگاه داده MySQL، احتمالا بهترین استفاده از TLS است. این برای این نوع اتصالات بهینه شده است، در حالی که SSH بهینه سازی های مختلفی دارد که ممکن است لازم نباشد. از لحاظ الگوریتم های رمزنگاری واقعی استفاده شده، همه آنها به همان اندازه قوی هستند.
TLS – تزریق یک بسته TCP به اتصال موجود
اجازه دهید یک طرح را ببینیم:
و من می خواهم دو مورد را در نظر داشته باشم:
همه آدرس های آی پی عمومی هستند، ابر نماد Inernet است.
اولین بار
-
H
اتصال TCP مستقر دارد:C = (210.10.10.10،9999،98.98.98.98،9999)
. این ارتباط برای برقراری ارتباط HTTP استفاده می شود – فرض کنید که برخی ازHTTP
فریم توسط اتصالC
ارسال می شود. -
بنابراین،
H
فقط برخی از پیام های HTTP را ارسال می کند. -
اکنون
MH
میخواهد پیامHTTP
را از طرفH
ارسال کند. بنابراین، حدس می زنمTCP.SequenceNumber
و دیگرTCP
زمینه های هدر. سپسMH
پیام TCP مناسب را باIP.srcAddress به
پیام H` و پیام HTTP ارسال می کند: 'من یک احمق هستم' (نگاه کنید به طرح).
یک بسته به عنوان بسته بعدی در ارتباط دریافت شد C
.
سوال من این است:
آیا سناریو ممکن است؟
دومین
وضعیت همان است که در بالا ذکر شد. با این حال، H
و سرور
با http s ارتباط برقرار می کند. MH
تلاش می کند یک پیام HTTP ارسال کند، همانند قبل. این نمی تواند رمزگذاری شود زیرا MH
یک کلید را نمی داند. بنابراین، نمی تواند به درستی توسط یک سرور رمزگشایی شود. سرور می تواند متوجه شود که یک بسته مخرب است زیرا محتوا برای اصلاح فرم رمزگشایی نمی شود.
آیا علامت این است که بسته های مخرب هستند؟ به نظر می رسد لغزنده است.
TLS – نیاز به پردازش گواهینامه از 2 CA مختلف در سراسر 1 اتصال
من یک اتصال HTTPS واحد دارم
من از SSL / TLSv1.2 استفاده می کنم
ما در حال تغییر به CA جدید هستیم. برای موقت، من می خواستم CA قدیمی و CA جدید را در پرونده CA من پیوست کنم. جدید cert را برای CA جدید بارگذاری کنید.
بنابراین، در حال حاضر من 2 گواهی. 1. CA قدیمی، 2. CA جدید و هر دو CA با cert root آنها پیوست شده است.
به نظر می رسد که این باعث می شود TLS به تعطیل و پردازش در روشن باشد.
چگونه می توانم از آن حمایت کنم؟