سؤال

ما هو الفرق بين keystore و truststore?

هل كانت مفيدة؟

المحلول

ووتخزين المفاتيح يحتوي على المفاتيح الخاصة، وشهادات مع هم مفاتيح العامة المقابلة.

وA truststore يحتوي على شهادات من الأطراف الأخرى التي تتوقع والتواصل معه، أو من المصدقة التي تثق بها لتحديد الأطراف الأخرى.

نصائح أخرى

  1. أ keystore يحتوي على مفاتيح خاصة.تحتاج فقط هذا إذا كنت خادم ، أو إذا كان الخادم يتطلب مصادقة العميل.

  2. أ truststore يحتوي على شهادات CA الثقة.إذا كان الخادم الخاص بك وتوقيع شهادة معترف بها كاليفورنيا ، الافتراضي truststore أن السفن مع JRE بالفعل تثق به (لأنه بالفعل ثقة من الثقات CAs), لذلك أنت لا تحتاج إلى بناء الخاصة بك ، أو إضافة أي شيء إلى واحد من JRE.

المصدر

في اتصال SSL الغرض من trustStore هو التحقق من بيانات الاعتماد والغرض من keyStore هو توفير بيانات الاعتماد.

keyStore

keyStore في جافا مخازن المفتاح الخاص و شهادات المقابلة العامة مفاتيح وتتطلب إذا كنت ملقم SSL أو SSL يتطلب مصادقة العميل.

TrustStore

TrustStore مخازن شهادات من طرف ثالث تطبيق Java التواصل أو شهادات موقعة من CA(شهادة السلطات مثل فيريساين ، Thawte ، Geotrust أو GoDaddy) والتي يمكن استخدامها لتحديد الطرف الثالث.

TrustManager

TrustManager يحدد ما إذا كان الاتصال عن بعد يجب أن يكون موثوق به أم لا أيسواء البعيد الطرف الذي يدعي أنه و KeyManager التي تقرر المصادقة التفويض يجب أن يتم إرسالها إلى المضيف البعيد للمصادقة خلال اتصال SSL.

إذا كنت ملقم SSL سوف تستخدم المفتاح الخاص خلال تبادل مفتاح الخوارزمية وإرسال الشهادات المقابلة العامة مفاتيح العميل ، هذه الشهادة التي حصل عليها من keyStore.على جانب العميل SSL إذا كان مكتوب في جاوة ، فإنه سيتم استخدام شهادات المخزنة في trustStore للتحقق من هوية الملقم.شهادات SSL هي الأكثر شيوعا يأتي .cer الملف الذي يضاف إلى keyStore أو trustStore باستخدام أي مفتاح إدارة المرافق مثل keytool.

المصدر: http://javarevisited.blogspot.ch

وقد تكون مهتمة في متابعة الكتابة من الشمس أيضا، كجزء من وثائق JSSE القياسية:

HTTP: // مستندات. oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#Stores

وعادة، يتم استخدام مخزن الثقة لتخزين فقط مفاتيح العامة، لأغراض التحقق، مثل مع مصادقة X.509. لأغراض الإدارة، فإنه من الشائع جدا للمدراء أو المطورين لمجرد تدمج بين اثنين الى متجر واحد.

في جافا, ما هو الفرق بين keystore و truststore?

هنا وصف من مستندات جافا في جافا مأخذ التوصيل الآمنة التمديد (JSSE) دليل مرجعي.أنا لا أعتقد أنه يقول لك أي شيء مختلف عن ما قاله الآخرون.ولكنها لا توفر المرجعية الرسمية.

keystore/truststore

أ keystore قاعدة بيانات المواد الأساسية.المواد الرئيسية المستخدمة في مجموعة متنوعة من الأغراض بما في ذلك المصادقة وسلامة البيانات.أنواع مختلفة من keystores المتاحة ، بما في ذلك PKCS12 ، أوراكل JKS.

عموما keystore معلومات يمكن تصنيفها إلى فئتين:إدخالات مفتاح وموثوق بها شهادة الإدخالات.مفتاح الدخول يتكون من كيان هوية لها مفتاح خاص و يمكن استخدامها لمجموعة متنوعة من التشفير الأغراض.في المقابل, موثوق شهادة دخول يحتوي فقط على المفتاح العام بالإضافة إلى الكيان والهوية.وهكذا شهادة موثوق بها دخول لا يمكن استخدامها حيث مفتاح خاص مطلوب ، مثل في javax.صافي.ssl.KeyManager.في جدك تنفيذ JKS ، keystore قد تحتوي على إدخالات مفتاح وموثوق بها شهادة الإدخالات.

أ truststore هو مخزن المفاتيح التي يتم استخدامها عند اتخاذ قرارات بشأن ما يمكن أن تثق.إذا كنت تتلقى البيانات من كيان لك بالفعل الثقة ، و إذا كان يمكنك التحقق من أن الكيان هو الذي ويدعي أن تكون, ثم يمكنك نفترض أن البيانات جاءت حقا من هذا الكيان.

الدخول يجب أن يكون فقط تم إضافة إلى truststore إذا كان المستخدم يثق هذا الكيان.إما عن طريق توليد زوج المفاتيح أو عن طريق استيراد شهادة المستخدم يعطي الثقة إلى أن دخول.أي الدخول في truststore يعتبر موثوق الدخول.

قد يكون من المفيد أن يكون لديك اثنين من keystore الملفات:واحدة تحتوي فقط على المفتاح الخاص بك الإدخالات الأخرى التي تحتوي على الخاص وثقت شهادة القيود ، بما في ذلك شهادات CA.السابق يحتوي على معلومات خاصة ، في حين أن هذا الأخير لا.باستخدام اثنين الملفات بدلا من واحد keystore الملف يوفر نظافة الفصل من المنطقي التمييز بين الخاصة بك الشهادات (و المقابلة المفاتيح الخاصة) وغيرها من الشهادات.لتوفير المزيد من حماية الخاص بك المفاتيح وتخزينها في مخزن المفاتيح مع وصول مقيد ، وتقديم شهادات موثوق بها في أكثر للجمهور keystore إذا لزم الأمر.

  1. أول فرق كبير بين trustStore و keyStore هو أن trustStore يستخدم من قبل TrustManager لتحديد ما إذا كان الاتصال عن بعد يجب أن يكون موثوق به ، keyStore يستخدم من KeyManager البت فيها أوراق اعتماد المصادقة يجب أن يتم إرسالها إلى المضيف البعيد للمصادقة خلال اتصال SSL.

  2. وثمة فرق آخر هو أن keyStore نظريا يحتوي على مفاتيح خاصة مطلوب فقط إذا كنت تقوم بتشغيل ملقم في اتصال SSL أو تمكين مصادقة العميل على الجانب الخادم و من ناحية أخرى trustStore المخازن العامة الرئيسية أو شهادات من CA (المصدقة) التي تستخدم الثقة البعيد الطرف أو اتصال SSL.

    في الواقع يمكنك تخزين في نفس الملف العامة والخاصة مفاتيح ، بالنظر إلى أن أداة لإدارة هذه الملفات هو نفسه (keytool), لذلك هل يمكن أن استخدام ملف واحد لكل الأغراض ، ولكن ربما لا ينبغي أن.

  3. على الأقل في بلدي ماك OSX الافتراضي هو keyStore ${user.home}/.keystore, الإعداد الافتراضي هو trustStore /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts.

    إذا كنت ترغب في تجاوزها يمكنك أن تضيف JVM المعلمات -Djavax.net.ssl.keyStore /path/to/keyStore أو -Djavax.net.ssl.trustStore /path/to/trustStore.قد أيضا تحتاج إلى تعيين keyStore كلمة المرور في حالة java.security.UnrecoverableKeyException: Password must not be null, باستخدام المعلمة -Djavax.net.ssl.trustStorePassword=password أو -Djavax.net.ssl.trustStorePassword=password

المصدر الرئيسي:

http://javarevisited.blogspot.co.uk/2012/09/difference-between-truststore-vs-keyStore-Java-SSL.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top