আপনি কীটোল দিয়ে এটি করতে পারবেন না। প্রথমত, keytool
ডিএইচ মোটেও সমর্থন করে না। দ্বিতীয়ত, keytool
কোনও অ্যালগরিদমের জন্য নিজেই প্যারামিটার তৈরি করে না, কেবল একটি প্রাইভেটকি / কিপাইয়ার। তৃতীয়ত, keytool
কী-পেয়ার তৈরি করার সময় এটি একটি স্ব-স্বাক্ষরিত সার্টিও উত্পন্ন করে (যা পরে মাঝে মাঝে "সত্যিকারের" সিএ-দ্বারা জারি করা শংসাপত্র দ্বারা প্রতিস্থাপন করা হয়) এবং ডিএইচ স্বাক্ষরিত না কারণ ডিএইচ-এর স্ব-স্বাক্ষরিত সার্টিটি তৈরি করা অসম্ভব। আপনি ডিএইচ প্যারামিটারগুলি তৈরি করতে খুব সাধারণ (প্রায় 10 টি লাইন) জাভা প্রোগ্রাম লিখতে পারেন । তবে এটি সম্ভবত আপনার কোনও ভাল করতে পারে না কারণ:
জাভা এখানে যাইহোক DHE পরামিতি গ্রহণ করে না। JbossWS (Jboss ওয়েবসারভার, পরবর্তীকালে ওয়াইল্ডফ্লাই) টমকেটের একটি কাঁটাচামচ, এবং সাধারণত এসএসএল / টিএলএস, জেএসএসির জাভা বাস্তবায়ন ব্যবহার করে। জাভা 7 এর মাধ্যমে, জেএসএসই নিজস্ব ডিএইচই প্যারামিটারগুলি ব্যবহার করে যা 768-বিট যা অগ্রহণযোগ্যভাবে দুর্বল। (এক্সপোর্ট স্যুট ব্যতীত যেখানে জেএসএসই ডিএইচ -512 এর জন্য আরএফসি প্রয়োজনীয়তা মেনে চলে, যা সম্পূর্ণরূপে ভাঙ্গা, তবে তারপরেও এক্সপোর্ট স্যুটগুলি যেকোনভাবে সম্পূর্ণরূপে ভাঙা নকশার দ্বারা তৈরি করা হয় এবং জাভা up-তে ডিফল্টরূপে অক্ষম করা হয়)) জাভা 8 জেএসএসই আপনাকে অনুমতি দেয় DHE পরামিতিগুলির আকার নিয়ন্ত্রণ করুন , তবে আসল মানটি নয়।
আপনার (কিছু ওভারল্যাপিং) বিকল্পগুলি হ'ল:
জাভা ৮. জাভাসি 8 ব্যবহার করুন , তবে এর আগে নয়, ডিএইচইকে 1024 বিটকে ডিফল্ট করেছে, বেশিরভাগ কর্তৃপক্ষ দুর্বল ডিএইচএস না করলেও যথেষ্ট শক্তিশালী বলে বিবেচনা করে এবং আপনাকে আরও নির্দিষ্ট করার অনুমতি দেয়, দেখুন https://docs.oracle.com /javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#customizing_dh_keys এবং পটভূমির জন্য /programming/30352105/how-to-set-custom-dh-group-in- java -স্লেলেগাইন-টু-রোধ-লগজাম-আক্রমণ । নোট করুন যে জাভা 8 এর আগে আপনার যদি কোনও জাভা ক্লায়েন্ট থাকে তবে সার্ভার 1024 বিটের বেশি ডিএইচই ব্যবহার করলে তারা ব্যর্থ হবে । এই সমস্যা আছে এমন অন্য কোনও ক্লায়েন্টকে আমি চিনি না, তবে এই পরিবর্তনটি প্রতিশ্রুতি দেওয়ার আগে আপনার পরীক্ষা করুন।
ECDHE সক্ষম করুন। জাভা 7-এ জেএসএসই পরে ECDHE প্রয়োগ করে, যা ডি-ইইচই (যেমন সাধারণত) পি -২6 using ব্যবহার করে প্রাক-গণনার সাপেক্ষে নয়, যা যথেষ্ট শক্তিশালী। (কিছু মানুষ বিশ্বাস যদিও না কোনো , NIST ইসিসি রেখাচিত্র কারণে সাধারণভাবে, NIST এনএসএ দ্বারা প্রভাবিত, যদিও কোন ওপেন সোর্স আমি জানি বিশেষভাবে ইসিসি রেখাচিত্র একটা সমস্যা দেখানো হয়েছে।) জাভা 6 আসলে ECDHE জন্য JSSE অংশ হয়েছে তবে এটি কেবল তখনই সক্ষম করা হবে যদি ইসভি প্রিমিটিভগুলির জন্য জাভিএমের একটি ক্রিপ্টো "সরবরাহকারী" থাকে, যা জাভা 6 না। বিসিপ্রভ - * - জেডি কে 15on http://www.bouncycastle.org/ থেকে ইসিসি সহ জাভা ক্রিপ্টো আদিম সংখ্যাগুলির জন্য একটি জেসিই সরবরাহকারী, তাই আপনি যদি জারেটি JRE/lib/ext
যুক্ত org.bouncycastle.jce.provider.BouncyCastleProvider
করেন এবং তালিকায় যুক্ত করেন JRE/lib/security/java.security
(বা উপযুক্ত কোনও কাজ করেন তবেSecurity.add/insertProvider()
আপনার কোডের প্রথম দিকে কোথাও) জাভা 6 ECDHE করতে পারে। অবশ্যই আপনার কোনও জাভা 6 ব্যবহার করা উচিত কিনা তা নিজেই একটি প্রশ্ন।
কয়েক বছর আগে, ব্রাউজারগুলিতে এবং অন্যান্য ক্লায়েন্টগুলিতে ECDHE এর জন্য সমর্থন ছিল ইফফ, তবে আজ আফিক সমস্ত আপ-টু-ডেট ব্রাউজারগুলি এটি সমর্থন করে এবং এটি ডিএইচইতে পছন্দ করে - অর্থাৎ ব্রাউজার হ্যালো ডিএইচই স্যুটগুলির আগে ইসিডিএইচই স্যুটগুলি তালিকাভুক্ত করে সার্ভার উভয় প্রয়োগ করলে এটি ECDHE চয়ন করা উচিত। ব্রাউজারবিহীন ক্লায়েন্ট সম্ভবত না; পরীক্ষা নিশ্চিত।
ডিএইচই অক্ষম করুন। আপনি ডিএইচই সাইফারগুলি বাদ দিতে সংযোগকারী বৈশিষ্ট্যে সাইফারগুলির তালিকাটি কনফিগার করতে পারেন; আপনি যখন এতে রয়েছেন তখন স্ট্যাটিকডিএইচ এবং স্ট্যাটিকসিডিএইচও বাদ দিন যা অকেজো, এবং (একক) ডিইএস এবং (সমস্ত) উপস্থিত থাকলে "এক্সপোর্ট" (জাভা 6)। এর অর্থ ব্রাউজার এবং ক্লায়েন্টরা যা ECHDE না করে তারা প্লেইন-আরএসএ এবং কোনও ফরোয়ার্ড সিক্রেসির সাথে আটকে থাকবে না, তবে কমপক্ষে তাদের "বর্তমান" গোপনীয়তা রয়েছে। আমি নিশ্চিতভাবে মনে করতে পারি না, তবে আমি মনে করি 5.1 সংযোগকারী কনফিগারটি এখনও অন্য কোথাও ছিল $server/deploy/jbossweb/server.xml
।
নেটিভ চেষ্টা করুন। টমক্যাট, যা আমি বলেছিলাম যে JbossWS থেকে শুরু হয়েছিল, "নেটিভ" ওরফে "এপিআর" ব্যবহার করে এইচটিটিপিএস (এসএসএল / টিএলএস) প্রয়োগ করার বিকল্প রয়েছে যা জেএসএসির পরিবর্তে প্রকৃতপক্ষে ওপেনএসএসএল। JbossWS এ কাজ করার জন্য এই বিকল্পটি পাওয়ার ক্ষেত্রে আমি মিশ্রিত সাফল্য পেয়েছি এবং প্রায় 5.1 স্মরণ করতে পারি না। যদি আপনার JbossWS এর কার্যক্ষম টিসি-নেটিভ বিকল্প থাকে এবং যদি এটি ডিএইচ প্যারামিটারগুলি কনফিগার করতে পারে তবে ডিএইচ প্যারামিটারগুলি তৈরি করতে ওপেনসেল এবং সেগুলি কনফিগার করার জন্য JbossWS- স্থানীয় নির্দেশাবলী ব্যবহার করুন।