Database
 sql >> डेटाबेस >  >> RDS >> Database

जावा सुरक्षा एपीआई का परिचय

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

अवलोकन

जावा प्लेटफॉर्म, जमीन से ऊपर तक, सुरक्षा को ध्यान में रखते हुए बनाया गया है। भाषा की सुरक्षित प्रकार की संपत्ति और स्वचालित कचरा संग्रह बताता है कि जावा आर्किटेक्चर ने अपने मूल से ही सुरक्षा सुविधाओं को आत्मसात करने का प्रयास किया है।

हाल के वर्षों में, सुरक्षा एक प्रमुख फोकस रहा है। उदाहरण के लिए, आधुनिक ब्राउज़र जावा, सिल्वरलाइट, और फ्लैश जैसे प्लग-इन समर्थन को प्रतिबंधित या कम करने के लिए काम कर रहे हैं क्योंकि उनका दुरुपयोग हानिरहित दिखने वाले ऐड-ऑन में शरारती कोड को शामिल करने के लिए किया जा सकता है। हालांकि जावा का वातावरण साफ है, एप्लेट की प्रकृति यह है कि यह सार्वजनिक नेटवर्क से अविश्वसनीय कोड डाउनलोड करता है। यह एक बड़ा सुरक्षा उल्लंघन हो सकता है। साथ ही, पिछले कुछ वर्षों में ब्राउज़र की दुनिया में काफी बदलाव आया है। एप्लेट की पूर्ण आवश्यकता लगभग अप्रचलित हो गई है। शायद यह और मुख्य रूप से बढ़ती सुरक्षा चिंता ने एप्लेट को जावा 9 से पदावनत कर दिया।

जावा सुरक्षा फ्रेमवर्क

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

जावा सुरक्षा एपीआई की अवधि व्यापक है। एक सुरक्षित एप्लिकेशन विकसित करने का आधार क्रिप्टोग्राफ़िक और सार्वजनिक कुंजी अवसंरचना (पीकेआई) इंटरफेस, कई इंटरऑपरेबल सामान्य एल्गोरिथम कार्यान्वयन और अन्य सुरक्षा सेवाओं में निहित है। प्रमाणीकरण और अभिगम नियंत्रण करने के लिए इंटरफेस हैं। यह एप्लिकेशन को संरक्षित संसाधनों तक अनधिकृत पहुंच से बचाने में सक्षम बनाता है।

भाषा सुरक्षा

सबसे पहले, भाषा अपने आप में सुरक्षा को इसके मूल में आत्मसात करने की चिंता के साथ बनाई गई है। सबसे सरल उदाहरण शायद प्रकार की सुरक्षा का समावेश है। सुरक्षित लिखें इसका मतलब है कि प्रोग्राम ने रनटाइम पर मेमोरी तक पहुंच को प्रतिबंधित कर दिया है। यह मेमोरी को केवल जावा ऑब्जेक्ट्स से जोड़कर हासिल किया जाता है। वस्तुओं का एक संगत वर्ग होता है जो उसके व्यवहार को परिभाषित करता है; यह सुनिश्चित करता है कि कार्यक्रम परिभाषित व्यवहार के अनुसार ही उस पर कार्य कर सकता है। यह विचार गतिशील प्रकार की जाँच के साथ प्रतिध्वनित होता है, लेकिन जावा अपने गतिशील समकक्ष की सीमा के आगे झुकने के लिए जब भी संभव हो जटिल स्थैतिक प्रकार की जाँच को भी शामिल करता है। उदाहरण के लिए, बाइट कोड सत्यापनकर्ता किसी भी प्रकार की त्रुटि को सामने लाने और डेवलपर को सक्रिय रूप से रिपोर्ट करने के लिए संकलन समय पर नियोजित एक प्रभावी स्थिर प्रकार का चेकर है। बाइटकोड सत्यापनकर्ता यह सुनिश्चित करता है कि जावा भाषा विशिष्टता के अनुरूप एक वैध बाइटकोड निष्पादित किया जाता है। इसके अलावा, यह स्मृति उल्लंघन, स्टैक अंडर/ओवरफ्लो, उचित टाइपकास्ट आदि की भी जांच करता है। इसके अलावा, निजी, संरक्षित और सार्वजनिक जैसे संशोधक हैं जो प्रतिबंधित पहुंच का दावा करते हैं।

सुरक्षा प्रदाता

सेवाएं सुरक्षा के लिए प्रदाता के रूप में कार्य करती हैं। जब वे मानक इंटरफेस के माध्यम से जावा प्लेटफॉर्म में प्लग किए जाते हैं, तो एप्लिकेशन के लिए सुरक्षा सेवाएं प्राप्त करना आसान हो जाता है। इस तंत्र का लाभ यह है कि डेवलपर को जटिल विवरणों के बारे में जानने की जरूरत नहीं है और इसके बजाय वह एप्लिकेशन में सुरक्षा सुविधाओं को एकीकृत करने पर ध्यान केंद्रित कर सकता है। यह विचार java.security.Provider . नामक अमूर्त वर्ग के भीतर समाहित है . सुरक्षा सेवा getInstance() . के माध्यम से प्राप्त की जाती है प्रदाता . द्वारा प्रदान की गई विधि . ऐसे कई प्रदाता कॉन्फ़िगर किए जा सकते हैं जहां प्रत्येक का नाम और प्रत्येक रनटाइम में एक संस्करण संख्या कॉन्फ़िगर की गई है जिसमें इसे स्थापित किया गया है। उदाहरण के लिए, एक प्रोग्राम एक विशेष प्रदाता को उसके नाम से वैकल्पिक रूप से अनुरोध करके एक विशेष संदेश डाइजेस्ट एल्गोरिदम प्राप्त कर सकता है:

MessageDigest messageDigest = MessageDigest.getInstance("MD5",
   "MyProvider1");

क्रिप्टोग्राफी

Java क्रिप्टोग्राफ़िक API को दो पैकेजों में वितरित किया जाता है:java.security और javax.crypto . जावा कई क्रिप्टोग्राफ़िक एल्गोरिदम को लागू करके क्रिप्टोग्राफ़िक सेवाओं की एक विशाल विविधता प्रदान करता है। उनमें से कुछ इस प्रकार हैं:

  • java.security.MessageDigest: यह वर्ग एक तरफ़ा हैश फ़ंक्शन का कार्यान्वयन प्रदान करता है जो मनमाने आकार का डेटा लेता है और एक निश्चित लंबाई हैश मान आउटपुट करता है। एल्गोरिथ्म को SHA-1 या SHA-256 नाम दिया गया है।
  • java.security.Signature: इस वर्ग का उपयोग SHA-256 संदेश डाइजेस्ट एल्गोरिथम का उपयोग करके डिजिटल हस्ताक्षर एल्गोरिथ्म जैसे DSA, RSA, या DSA एल्गोरिदम की कार्यक्षमता प्रदान करने के लिए किया जाता है। डिजिटल डेटा की अखंडता और प्रामाणिकता सुनिश्चित करने के लिए एक डिजिटल हस्ताक्षर का विशेष रूप से उपयोग किया जाता है।
  • java.security.SecureRandom: यह वर्ग क्रिप्टोग्राफिक रूप से मजबूत यादृच्छिक संख्या उत्पन्न करने के लिए कार्यक्षमता प्रदान करता है।

सार्वजनिक कुंजी अवसंरचना (PKI)

पीकेआई इन्फ्रास्ट्रक्चर सार्वजनिक कुंजी क्रिप्टोग्राफी का उपयोग करके डेटा के सुरक्षित आदान-प्रदान को सक्षम बनाता है। इसमें कुंजी, प्रमाणपत्र, सार्वजनिक कुंजी एन्क्रिप्शन और डिजिटल प्रमाणपत्र शामिल हैं। PKI से संबंधित कक्षाएं java.security . में संग्रहीत हैं और java.security.cert पैकेज।

प्रमाणीकरण

प्रमाणीकरण उपयोगकर्ता पहचान सत्यापित करने की प्रक्रिया है। जावा एप्लिकेशन को प्लग करने योग्य मॉड्यूल की मदद से उपयोगकर्ता प्रमाणीकरण करने में सक्षम बनाता है। LoginContext . नामक एक वर्ग है javax.security.auth.login . में पैकेट। इस वर्ग को नाम . के साथ त्वरित किया गया है और एक कॉलबैकहैंडलर। LoginContext कॉन्फ़िगरेशन के लिए एक अनुक्रमणिका के रूप में नाम का उपयोग करता है। कॉन्फ़िगरेशन विशिष्ट LoginModule . निर्धारित करता है (javax.security.auth.spi.LoginModule ) कॉलबैकहैंडलर LoginModule . को पास कर दिया जाता है उदाहरण के लिए, GUI में उपयोगकर्ता नाम और पासवर्ड के लिए संकेत देने के लिए।

सुरक्षित संचार

जावा प्लेटफॉर्म एसएसएल और टीएलएस प्रोटोकॉल लागू करता है जो संदेश अखंडता, डेटा एन्क्रिप्शन और क्लाइंट और सर्वर प्रमाणीकरण के लिए कार्यक्षमता प्रदान करता है। इसका उपयोग HTTP या TCP/IP प्रोटोकॉल के शीर्ष पर साथियों के बीच डेटा संचार के सुरक्षित मार्ग को प्रशस्त करने के लिए किया जा सकता है। कार्यान्वयन के लिए एपीआई समर्थन javax.net.ssl . में पाया जा सकता है पैकेट। कई सहायक वर्ग हैं; उदाहरण के लिए, SSLSocket क्लास java.net.Socket का एक्सटेंशन है कक्षा एसएसएल/टीएलएस प्रोटोकॉल का उपयोग कर एक सुरक्षित सॉकेट प्रदान करने के लिए। यह ट्रांसपोर्ट लेयर प्रोटोकॉल (टीसीपी) पर सुरक्षा की एक अतिरिक्त परत के साथ एक सामान्य स्ट्रीम सॉकेट के अलावा और कुछ नहीं है।

पहुंच नियंत्रण

एक्सेस कंट्रोल क्लास स्थानीय फाइलों जैसे संवेदनशील संसाधनों तक पहुंच की सुरक्षा करता है। java.lang.SecurityManager वर्ग सभी पहुंच में मध्यस्थता करता है। यह वर्ग एप्लिकेशन को सुरक्षा नीति लागू करने की अनुमति देता है। इसलिए, एक संभावित असुरक्षित संचालन को प्रयास में प्रतिबंधित किया जा सकता है, इस प्रकार स्वीकार्य संचालन पर एप्लिकेशन का पूर्ण नियंत्रण होता है।

निष्कर्ष

यह जावा प्लेटफॉर्म सुरक्षा सुविधाओं, कार्यक्षमता और एपीआई पर एक त्वरित दौरा है। जावा एक ऐसे एप्लिकेशन में सुरक्षा को लागू करने के लिए व्यापक समर्थन प्रदान करता है जहां डेवलपर्स उन्हें लागू करने में शामिल जटिलताओं से अनजान हो सकते हैं, फिर भी इसका लाभ प्राप्त कर सकते हैं। यह सब कुछ खरोंच से तैयार किए बिना उत्पाद की त्वरित और कुशल डिलीवरी का लाभ उठाता है।

संदर्भ

  • जावा एपीआई दस्तावेज़ीकरण
  • जावा सुरक्षा अवलोकन

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रदर्शन डेटा का उपयोग करके क्षमता नियोजन

  2. बिग डेटा तेजी से लोड हो रहा है

  3. टी-एसक्यूएल में किसी तिथि से दिन कैसे प्राप्त करें

  4. SQL में दो प्रश्नों के परिणामों को कैसे संयोजित करें

  5. एसक्यूएल लेफ्ट जॉइन