কীস্টোর ধরণ: কোনটি ব্যবহার করবেন?


114

java.securityআমার ফাইলটি JREদেখে আমি দেখতে পাচ্ছি যে ডিফল্টরূপে ব্যবহারের জন্য মূল স্টোরটি সেট করা আছে JKSএখানে , কীস্টোরের ধরণের ব্যবহার করা যেতে পারে তার তালিকা রয়েছে।

কি প্রস্তাবিত কীস্টোর ধরণ আছে? বিভিন্ন কীস্টোর ধরণের বিভিন্ন উপকারগুলি কি?


4
জাভা 9-তে, পিকেসিএস 12 ডিফল্ট কীস্টোর ধরণ type এই পরিবর্তনটি JEP 229 লক্ষ্যটিতে রয়েছে: "সুরক্ষা উন্নতি করুন P PKCS12 জেএসএসের চেয়ে আরও শক্তিশালী ক্রিপ্টোগ্রাফিক অ্যালগরিদম সরবরাহ করে।" আরও তথ্যের জন্য দেখুন "জেইপি 229: ডিফল্ট দ্বারা পিকেসিএস 12 কীস্টোরগুলি তৈরি করুন", ওপেনজেডক.জাভা.নেট / জেপস / 229 ; শেষ অ্যাক্সেস 2 ফেব্রুয়ারী, 2018.
buzz3791

উত্তর:


141

আপনি যে স্ট্যান্ডার্ড নাম তালিকায় লিঙ্ক করেছেন তার চেয়ে আরও কয়েকটি ধরণের রয়েছে। আপনি ক্রিপ্টোগ্রাফিক সরবরাহকারী ডকুমেন্টেশনে আরও সন্ধান করতে পারেন । সর্বাধিক সাধারণ হ'ল অবশ্যই JKS(ডিফল্ট) এবং PKCS12(পিকেসিএস # 12 ফাইলের জন্য, প্রায়শই প্রসারিত .p12বা কখনও কখনও থাকে .pfx)।

আপনি জাভা বিশ্বের মধ্যে থাকলে জেकेএস সবচেয়ে সাধারণ। পিকেসিএস # 12 জাভা-নির্দিষ্ট নয়, এটি কোনও ব্রাউজার থেকে ব্যাক আপ করা বা ওপেনএসএসএল-ভিত্তিক সরঞ্জামগুলি থেকে আসা ( keytoolকোনও কীস্টোরকে রূপান্তর করতে সক্ষম হয়নি এবং জাভা 6 এর আগে এর ব্যক্তিগত কীগুলি আমদানি করতে সক্ষম ছিল না ) শংসাপত্রগুলি (ব্যক্তিগত কীগুলির সাথে) ব্যবহার করা বিশেষত সুবিধাজনক Java , যাতে আপনাকে অন্যান্য সরঞ্জামগুলি ব্যবহার করতে হয়েছিল)।

আপনার যদি ইতিমধ্যে কোনও পিকেসিএস # 12 ফাইল থাকে তবে PKCS12সরাসরি টাইপটি ব্যবহার করা প্রায়শই সহজ । ফর্ম্যাটগুলি রূপান্তর করা সম্ভব, তবে আপনি যদি সরাসরি কীস্টোর ধরণ চয়ন করতে পারেন তবে এটি খুব কমই প্রয়োজন।

জাভা 7 এ, PKCS12প্রধানত হিসেবে দরকারী ছিল কীস্টোর একটি জন্য কিন্তু কম truststore (দেখুন একটি কীস্টোর এবং truststore মধ্যে পার্থক্য ,) কারণ আপনি একটি ব্যক্তিগত কী ছাড়া দোকান শংসাপত্র এন্ট্রি না। বিপরীতে, JKSপ্রতিটি প্রবেশকে ব্যক্তিগত কী প্রবেশের প্রয়োজন হয় না, সুতরাং আপনার কেবলমাত্র শংসাপত্র রয়েছে এমন এন্ট্রি থাকতে পারে যা বিশ্বাস স্টোরগুলির জন্য দরকারী যেখানে আপনি নিজের শংসাপত্রের তালিকা সংরক্ষণ করেন (তবে আপনার কাছে নেই) তাদের জন্য ব্যক্তিগত কী)।

এটি জাভা 8-তে পরিবর্তিত হয়েছে, তাই আপনারা এখন স্টোরগুলিতেও শংসাপত্র-কেবল প্রবেশ PKCS12করতে পারেন। (এই পরিবর্তনগুলি এবং আরও পরিকল্পনা সম্পর্কে আরও বিশদ JEP 229 এ পাওয়া যাবে : ডিফল্ট দ্বারা পিকেসিএস 12 কীস্টোরগুলি তৈরি করুন ))

কয়েকটি কীস্টোর ধরণের রয়েছে, সম্ভবত প্রায়শই কম ব্যবহৃত হয় (প্রসঙ্গের উপর নির্ভর করে) এর মধ্যে রয়েছে:

  • PKCS11, পিকেসিএস # 11 লাইব্রেরির জন্য, সাধারণত হার্ডওয়্যার ক্রিপ্টোগ্রাফিক টোকেন অ্যাক্সেসের জন্য, তবে সূর্যের সরবরাহকারী প্রয়োগও এর মাধ্যমে এনএসএস স্টোরকে (মজিলা থেকে) সমর্থন করে।
  • BKS, বাউনসিস্টেল সরবরাহকারী (অ্যান্ড্রয়েডের জন্য সাধারণত ব্যবহৃত হয়) ব্যবহার করে।
  • Windows-MY/ Windows-ROOT, আপনি যদি সরাসরি উইন্ডোজ শংসাপত্রের স্টোরটি অ্যাক্সেস করতে চান।
  • KeychainStore, আপনি যদি ওএসএক্স কীচেন সরাসরি ব্যবহার করতে চান।

7
@ হায়সেট, পিইএম শংসাপত্রগুলি সরাসরি কীস্টোরের ধরণ হিসাবে সমর্থিত নয় (আমি মনে করি যে কেউ KeyStoreসেই প্রভাবটি প্রয়োগ করতে পারে)। তবে আপনি এগুলি ফ্লাইতে কোনও কীস্টোরের দৃষ্টান্তে (সাধারণত জেএসএস, ডিফল্ট টাইপ) মেমোরিতে একটি CertificateFactory( এই উত্তরে দেখানো হয়েছে ) ব্যবহার করে লোড করতে পারেন ।
ব্রুনো

আমি মনে করি JKSএটি পরিবর্তিত হয়েছেJCEKS
দ্বিখণ্ডক

5
বরং সমালোচনামূলকভাবে, একটি জেकेএস কী স্টোর গোপন কীগুলি সংরক্ষণ করতে পারে না। এই ব্যবহারের ক্ষেত্রে, জেসিইকেএস উপযুক্ত। এটি আপনার উত্তরে উল্লেখ করার মতো হতে পারে।
ডানকান জোনস

1
ঠিক আছে. জাভা 8 এ আমি কোনও সমস্যা ছাড়াই একক শংসাপত্রের সাথে একটি পিকেসিএস # 12 কীস্টোর তৈরি করতে পারি। নোট করুন যে পি 12 শংসাপত্রের জন্য এন্ট্রি সুস্পষ্টভাবে বিশ্বাসযোগ্য। আপনার যদি অবিশ্বস্ত শংসাপত্রের প্রয়োজন হয় তবে আপনাকে একাধিক কী স্টোর সহ কোনও স্কিমে ফিরতে হতে পারে।
মার্টেন বোদেউয়েস

2
ঠিক আছে অন্তত জাভা 8 পিকেসিএস # 12 কী স্টোরের জন্য এখনও গোপন কী এন্ট্রিগুলি সঞ্চয় করতে পারে না । এই জাতীয় কী স্টোর (উঘ) সংরক্ষণ করার সময় আপনি নাল পয়েন্টার ব্যতিক্রম পাবেন, সম্ভবত কারণ এটি সম্পর্কিত শংসাপত্রগুলি খুঁজে পায় না। আপাতদৃষ্টিতে কেউ ব্যর্থ দ্রুত কোড সম্পর্কে জোশুয়ার শিক্ষা এড়িয়ে গেছেন।
মার্টেন বোদেউয়েস

21

এখানে একটি পোস্ট যা জাভাতে বিভিন্ন ধরণের কীস্টোর এবং বিভিন্ন ধরণের কীস্টোরের মধ্যে পার্থক্য উপস্থাপন করে। http://www.pixelstech.net/article/1408345768-Different-types-of-keystore-in-Java----Overview

নীচে পোস্ট থেকে বিভিন্ন কীস্টোরের বিবরণ দেওয়া হল:

জে কেএস, জাভা কী স্টোর। আপনি এই ফাইলটি সূর্য.সিকিউরিটি.প্রোভাইডার. জাভাকি স্টোর-এ পাবেন। এই কীস্টোরটি জাভা নির্দিষ্ট, এটিতে সাধারণত জিক্সের এক্সটেনশন থাকে। এই ধরণের কীস্টোরটিতে ব্যক্তিগত কী এবং শংসাপত্র থাকতে পারে তবে এটি গোপন কীগুলি সঞ্চয় করতে ব্যবহার করা যায় না। যেহেতু এটি একটি জাভা নির্দিষ্ট কীস্টোর, তাই এটি অন্যান্য প্রোগ্রামিং ভাষায় ব্যবহার করা যায় না।

জেসিইকেএস, জেসিই-র কী স্টোর। আপনি এই ফাইলটি com.sun.crypto.provider.JceKeyStore এ খুঁজে পেতে পারেন। এই কীস্টোরটিতে জেস্কের এক্সটেনশন রয়েছে। জেসিইকেএস কীস্টোরগুলিতে প্রবেশ করা যেতে পারে সেগুলি হ'ল ব্যক্তিগত কী, গোপন কী এবং শংসাপত্র।

পিকেসিএস 12, এটি একটি স্ট্যান্ডার্ড কীস্টোর টাইপ যা জাভা এবং অন্যান্য ভাষায় ব্যবহার করা যেতে পারে। আপনি এই কীস্টোর বাস্তবায়নটি সূর্য.সিকিউরিটি.পি.সি.সি.সি 12.পি.সি.সি 1212 কিস্টোর-এ পাবেন। এটির সাধারণত পি 12 বা পিএফএক্স এক্সটেনশন থাকে। আপনি এই ধরণের ব্যক্তিগত কী, গোপন কী এবং শংসাপত্র সংরক্ষণ করতে পারেন।

পিকেসিএস 11, এটি একটি হার্ডওয়্যার কীস্টোর ধরণ। এটি জাভা পাঠাগারটির জন্য লুনা, এন সিফারের মতো হার্ডওয়্যার কীস্টোর ডিভাইসের সাথে সংযোগ স্থাপনের জন্য একটি ইন্টারফেস দেয়। আপনি এই বাস্তবায়নটি সূর্য.সিকিউরিটি.পি.ক.সি.এস 11.পি 11 কী স্টোরে খুঁজে পেতে পারেন। আপনি কীস্টোরটি লোড করার সময়, আপনাকে নির্দিষ্ট কনফিগারেশন সহ একটি নির্দিষ্ট সরবরাহকারীর তৈরি করার দরকার নেই। এই কীস্টোরটি ব্যক্তিগত কী, গোপন কী এবং সিট্রাইফেট সংরক্ষণ করতে পারে। কীস্টোরটি লোড করার সময়, এন্ট্রিগুলি কীস্টোর থেকে পুনরুদ্ধার করা হবে এবং তারপরে সফ্টওয়্যার এন্ট্রিগুলিতে রূপান্তরিত হবে।


@ peci1 আমি এই কীস্টোরগুলি কীভাবে ব্যবহার করব সে সম্পর্কে কিছু টিউটোরিয়াল লেখার পরিকল্পনা করেছি। এ পর্যন্ত আমি জে.কে.এস এর
পার্টিকেল /

@ পিক্সেলটেক আমি এটি খুঁজে পেয়েছি এবং ভাবছিলাম যে তাদের বাকিগুলি কোথায় রয়েছে :) তাই আমি সাথেই থাকব;) ধন্যবাদ
মার্টিন পেক্কা

1
@ peci1 আমি আজ জেসিইকেএস এবং পিকেসিএস 12 কে .েকে রেখেছি। পিকেসিএস 11 এর জন্য এটি হার্ডওয়্যার এবং অতিরিক্ত কনফিগারেশন জড়িত, এটি রচনা করতে আরও সময় প্রয়োজন। pixelstech.net/article/… এবং pixelstech.net/article/…
পিক্সেলটেক

বাহ, এটি একটি বাজ গতি! অনেক ধন্যবাদ.
মার্টিন পেক্কা

4

আপনি যদি জাভা 8 ব্যবহার করছেন বা আরও নতুন আপনার অবশ্যই অবশ্যই বেছে নেওয়া উচিত PKCS12, জাভা 9 ( JEP 229 ) এর পরে ডিফল্ট ।

এর সাথে তুলনা করা JKSএবং সুবিধাগুলি হ'ল JCEKS:

  • গোপন কী, ব্যক্তিগত কী এবং শংসাপত্রগুলি সংরক্ষণ করা যেতে পারে
  • PKCS12এটি একটি স্ট্যান্ডার্ড ফর্ম্যাট, এটি অন্যান্য প্রোগ্রাম এবং লাইব্রেরি 1 দ্বারা পড়তে পারে
  • উন্নত সুরক্ষা: JKSএবং JCEKSবেশ সুরক্ষিত । এই কীস্টোর ধরণের পাসওয়ার্ড জবরদস্তি করার জন্য সরঞ্জামগুলির সংখ্যা দ্বারা এটি দেখা যায়, অ্যান্ড্রয়েড বিকাশকারীদের মধ্যে বিশেষত জনপ্রিয়। 2, 3

1 নেই JDK-8202837 , যা জাভা 11 সংশোধন করা হয়েছে

2 সমস্ত কীস্টোর ধরণের ( পিকেসিএস 12 সহ ) পিবিইর জন্য পুনরাবৃত্তি গণনা বরং সপ্তাহে ব্যবহৃত হত ( সিভিই -2017-10356 ) তবে এটি 9.0.1, 8u151, 7u161 এবং 6u171 এ স্থির করা হয়েছে

3 আরও পড়ার জন্য:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.