2013-08-22 11 views
5

में डेटा ट्रांसमिशन की संदेश अखंडता और गोपनीयता सुनिश्चित करता है, मैं OWASP Web Service Security के अनुसार वेब सेवा सुरक्षा लागू करना चाहता हूं। इस प्रकार मैं दो अंक से अधिक ठोकर खाई:क्या टीएलएस एक विश्वसनीय जावा एंटरप्राइज़

  1. Message Integrity
  2. Message Confidentiality

अब तक सिर्फ एक RESTful सेवा जो किसी क्लाइंट द्वारा पहुँचा जा सकता है। प्रत्येक अनुरोध के लिए ग्राहक को सर्वर द्वारा प्रमाणित करने की आवश्यकता होती है। सभी संचार टीएलएस के माध्यम से सुरक्षित है। मैं अब के बारे में Message Integrity अनिश्चित हूँ के बाद से मैं वाक्य समझ में नहीं आता:

सार्वजनिक कुंजी क्रिप्टोग्राफी का उपयोग कर, एन्क्रिप्शन गोपनीयता की गारंटी है, लेकिन यह ईमानदारी की गारंटी नहीं है के बाद से रिसीवर की सार्वजनिक कुंजी सार्वजनिक है। इसी कारण से, एन्क्रिप्शन प्रेषक की पहचान सुनिश्चित नहीं करता है।

क्या यह भी आवश्यक है कि क्लाइंट द्वारा डेटा पर हस्ताक्षर किए गए ताकि संदेश अखंडता सुनिश्चित हो सके? टीएलएस केवल पॉइंट-टू-पॉइंट, प्रॉक्सी के बारे में क्या है?

Message Confidentiality से संबंधित, मैं इसे निम्नानुसार समझ गया।

  1. तार पर संदेश गोपनीयता सुनिश्चित करने के लिए टीएलएस का उपयोग करें।
  2. प्रेषित डेटा एन्क्रिप्ट करने के लिए एक सममित एन्क्रिप्शन का उपयोग करें।
  3. एन्क्रिप्टेड डेटा डेटा बेस में संग्रहीत किया जाता है।

क्या मैं इसे सही समझ गया?

उत्तर

9

TLS specification से:

टीएलएस प्रोटोकॉल का प्राथमिक लक्ष्य दो संवाद स्थापित अनुप्रयोगों के बीच गोपनीयता और डेटा अखंडता प्रदान करना है। [...]

  • कनेक्शन निजी है। सममित क्रिप्टोग्राफी का उपयोग डेटा एन्क्रिप्शन (उदाहरण के लिए, डीईएस [डीईएस], आरसी 4 [SCH] आदि) के लिए किया जाता है। [...]

  • कनेक्शन विश्वसनीय है। संदेश परिवहन में एक संदेश एक कुंजी मैक का उपयोग कर अखंडता जांच शामिल है। सुरक्षित हैश फ़ंक्शन (उदा।, SHA, MD5, आदि) मैक कंप्यूटेशंस के लिए उपयोग किए जाते हैं। रिकॉर्ड प्रोटोकॉल मैक के बिना संचालित हो सकता है, लेकिन आम तौर पर केवल इस मोड में उपयोग किया जाता है जबकि दूसरा प्रोटोकॉल रिकॉर्ड पैरामीटर का उपयोग सुरक्षा पैरामीटर पर बातचीत के लिए परिवहन के रूप में कर रहा है।

तो, हाँ, टीएलएस इसके परिवहन के दौरान ईमानदारी और संदेश की गोपनीयता के साथ आप प्रदान करेगा, बशर्ते इसे सही ढंग से इस्तेमाल किया गया था।

विशेष रूप से, क्लाइंट को प्रमाण पत्र सत्यापित करने की आवश्यकता है ताकि यह सुनिश्चित किया जा सके कि यह सही सर्वर से संचार कर रहा है (यह सत्यापित करना कि प्रमाणपत्र वास्तविक है और एक विश्वसनीय पार्टी द्वारा जारी किया गया है, और मेजबान नाम को जारी करने के लिए जारी किया गया है)।

  • उपयोग टीएलएस तार पर संदेश गोपनीयता को सुनिश्चित करने।
  • प्रेषित डेटा एन्क्रिप्ट करने के लिए एक सममित एन्क्रिप्शन का उपयोग करें।

टीएलएस एन्क्रिप्शन के माध्यम से गोपनीयता प्रदान करेगा। (आप विशेष रूप से नहीं एक गुमनाम सिफ़र सुइट या एक सिफ़र सुइट एन्क्रिप्शन शून्य होगा एक उपयुक्त सिफ़र सुइट का उपयोग करने की जरूरत है, है, लेकिन यह हमेशा डिफ़ॉल्ट रूप से मामला है।)

  • एन्क्रिप्टेड डेटा डेटा बेस में संग्रहीत ।

आप अपने डेटाबेस में डेटा को एन्क्रिप्ट करना चाहते हैं, कि एक अलग समस्या है। टीएलएस केवल परिवहन के दौरान आपको अखंडता और गोपनीयता प्रदान करता है। एक बार यह आपके वेब एप्लिकेशन द्वारा संभाला जाता है, यह समझ में आता है।

टीएलएस केवल पॉइंट-टू-पॉइंट है, प्रॉक्सी के बारे में क्या है?

HTTP प्रॉक्सी केवल टीएलएस यातायात को रिले करता है, इसे देखे बिना या इसे बदलकर। (कुछ प्रॉक्सी सर्वर यातायात को रोक सकता है, लेकिन प्रमाण पत्र सत्यापन, असफल जब तक आप प्रमाण पत्र की जांच करने को भूल जाएगा।)

5

टीएलएस संदेश अखंडता और डेटा प्रसारण

हाँ की गोपनीयता सुनिश्चित करता है।

एक RESTful जावा उद्यम

अप्रासंगिक में

। उत्तर अभी भी हाँ है।

सार्वजनिक कुंजी क्रिप्टोग्राफ़ी का उपयोग करते समय, एन्क्रिप्शन गोपनीयता की गारंटी देता है लेकिन यह रिसीवर की सार्वजनिक कुंजी सार्वजनिक होने के बाद से अखंडता की गारंटी नहीं देता है। इसी कारण से, एन्क्रिप्शन प्रेषक की पहचान सुनिश्चित नहीं करता है।

अप्रासंगिक। टीएलएस सार्वजनिक कुंजी क्रिप्टोग्राफी नहीं है। मैं वास्तव में इस संदर्भ में इन टिप्पणियों के बिंदु को देखने में असफल रहा, लेकिन वे सही नहीं हैं। अकेले एन्क्रिप्शन का कोई भी रूप ईमानदारी या पहचान की गारंटी नहीं देता है: इसके लिए आपको अतिरिक्त उपायों की आवश्यकता है; और सार्वजनिक होने की कुंजी भी इसके लिए अप्रासंगिक है।

क्या यह भी आवश्यक है कि क्लाइंट द्वारा डेटा पर हस्ताक्षर किए गए ताकि संदेश अखंडता सुनिश्चित हो सके?

नहीं। एक सुरक्षित एचएमएसी भी करेगा, और टीएलएस उन में से एक का उपयोग करता है। टीएलएस प्रमाणीकरण चरण के दौरान डिजिटल हस्ताक्षर का उपयोग करता है।

टीएलएस केवल पॉइंट-टू-पॉइंट है, प्रॉक्सी के बारे में क्या है?

प्रॉक्सी या तो अपने वरना पारदर्शी बाइट-गुजर प्रॉक्सी इसलिए अंतिम बिंदुओं के रूप में अपने साथियों के बीच टीएलएस के गुणों को बनाए रखने के टीएलएस अंतिम बिंदुओं पर भरोसा कर रहे हैं।

संदेश गोपनीयता के बारे में, मैं इसे निम्नानुसार समझ गया।

तार पर संदेश गोपनीयता सुनिश्चित करने के लिए टीएलएस का उपयोग करें।

सही।

प्रेषित डेटा एन्क्रिप्ट करने के लिए एक सममित एन्क्रिप्शन का उपयोग करें।

टीएलएस ऐसा करता है।

एन्क्रिप्टेड डेटा डेटा बेस में संग्रहीत किया जाता है।

नहीं। एन्क्रिप्टेड डेटा तार से पीयर द्वारा अवरुद्ध हो जाता है। सहकर्मी डेटाबेस में फिर से एन्क्रिप्ट कर सकता है, या डेटाबेस इसे कर सकता है, लेकिन यह एक अलग मुद्दा है।

+0

टीएलएस में सार्वजनिक कुंजी क्रिप्टोग्राफी का उपयोग किया जाता है। टीएलएस में प्रारंभिक सार्वजनिक कुंजी क्रिप्टो चरण है जहां सहकर्मी सुरक्षित रूप से एक सममित सत्र कुंजी का आदान-प्रदान करते हैं। बाद के संचार एक सममित कुंजी सिफर के साथ एन्क्रिप्ट किया गया है। –

+0

@ मिहाईटोमेस्कू आप गलत हैं। टीएलएस सममित सत्र कुंजी कभी प्रसारित नहीं होती है। एक कुंजी समझौते प्रोटोकॉल के माध्यम से दोनों सिरों पर स्वतंत्र रूप से बातचीत की जाती है। * सिफर स्वीट्स के कुछ * * प्री-मास्टर गुप्त * के सार्वजनिक-एन्क्रिप्शन निर्दिष्ट करते हैं, जो बिल्कुल वही नहीं है। – EJP

+0

यह सही है, सत्र कुंजी स्थापित है (उदाहरण के लिए डिफी हेलमैन के माध्यम से) लेकिन कभी प्रसारित नहीं किया गया। यह बात बताने के लिए धन्यवाद। –

संबंधित मुद्दे