कॉन्टेंट पर जाएँ

सुरक्षा

ऐसी सुरक्षा, जो मेहमाननवाज़ी जैसी लगे।

कोई आइडेंटिटी प्रोवाइडर उतना ही अच्छा है, जितनी मज़बूत उसके टेनेंट के बीच की दीवारें हैं और जितनी सावधानी वह सीक्रेट के साथ बरतता है। Usher Identity ऐसे बना है। हम बताते हैं कि सॉफ़्टवेयर क्या करता है; हम किसी सर्टिफ़िकेशन का दावा नहीं करते।

आर्किटेक्चर

अलग डोमेन, अलग नेटवर्क।

Usher Identity के अपने पेज और हर ग्राहक का इश्यूअर अलग-अलग रजिस्टर करने योग्य डोमेन पर रहते हैं। डेटाबेस ऐसे नेटवर्क पर हैं जो इंटरनेट तक नहीं पहुँच सकता, और बाहर जाने का इकलौता रास्ता एक प्रॉक्सी है, जो जाँचता है कि अनुरोध कहाँ जा रहा है।

  • Caddy हर होस्ट के लिए TLS टर्मिनेट करता है, और वे हेडर हटा देता है जिन्हें सिर्फ़ Usher Identity की अपनी सेवाएँ सेट कर सकती हैं।
  • ऑथ टियर हर एनवायरनमेंट के लिए जवाब देता है, और उन्हें होस्ट से पहचानता है; एक होस्ट के लिए कैश की गई कोई चीज़ किसी दूसरे को नहीं दी जाती।
  • हर सेवा Valkey से अपने अलग यूज़र के रूप में बात करती है, और सिर्फ़ अपनी कुंजियों तक सीमित रहती है। कोई डिफ़ॉल्ट यूज़र नहीं है।
  • टोकन और कोड वाले स्टेटमेंट उनकी वैल्यू के साथ डेटाबेस लॉग में कभी नहीं लिखे जाते।

इंटरनेट

लोग, आपके ऐप, आपके सर्वर

एज

Caddy: TLS, HSTS, आंतरिक हेडर हटाता है

usheridentity.com

साइट और Console

usheridentity.com, console.usheridentity.com

API

api.usheridentity.com

*.usherid.com

ऑथ टियर

हर एनवायरनमेंट का इश्यूअर और Lobby

डेटा नेटवर्क · बाहर जाने का कोई रास्ता नहीं

Postgres

हर एनवायरनमेंट के लिए एक स्कीमा

Valkey

हर सेवा सिर्फ़ अपनी कुंजियों तक सीमित

बाहर जाने का इकलौता रास्ता

ईग्रेस प्रॉक्सी

ग्राहक के दिए हर URL के लिए

डिस्कवरी, JWKS, लॉगआउट

सिर्फ़ सार्वजनिक पते

Usher Identity के टियर। टेनेंट डोमेन, प्लैटफ़ॉर्म के डोमेन से अलग एक रजिस्टर करने योग्य डोमेन है, इसलिए किसी टेनेंट के पेज कभी Console के साथ same-site नहीं होते।

आइसोलेशन

ऐसा कुछ साझा नहीं, जो मायने रखता हो।

हर प्रोजेक्ट एनवायरनमेंट को अपना Postgres स्कीमा, अपनी साइनिंग कुंजियाँ, और अपनी डेटा कुंजी से सील किए गए अपने सीक्रेट मिलते हैं। उसका इश्यूअर टेनेंट डोमेन पर एक होस्ट है, और उसकी कुकी होस्ट-ओनली होती हैं, इसलिए ब्राउज़र एक एनवायरनमेंट की कुकी कभी दूसरे को नहीं भेजता।

usheridentity.com

साइट, Usher Identity Console, Usher Identity खाते

*.usherid.com

हर एनवायरनमेंट का एक इश्यूअर, अलग डोमेन पर

एनवायरनमेंट

यूज़र, सेशन और टोकन इस एनवायरनमेंट के लिए बने स्कीमा में रहते हैं। क्वेरी उसी स्कीमा पर चलती हैं, कभी टेनेंट कॉलम वाली किसी साझा टेबल पर नहीं।

Acme प्रोडक्शन का सील किया गया Google क्लाइंट सीक्रेट Northwind प्रोडक्शन में कॉपी करें।

स्टोर किए गए डेटा का एन्क्रिप्शन

एनवेलप एन्क्रिप्शन, अपनी जगह से बंधा हुआ।

आप Usher Identity को जो सीक्रेट देते हैं, वे AES-256-GCM से एक ऐसी डेटा कुंजी के तहत सील किए जाते हैं जो सिर्फ़ एक एनवायरनमेंट की होती है। डेटा कुंजियाँ ख़ुद एक वर्शन वाली मास्टर कुंजी में लिपटी होती हैं, जो डेटाबेस के बाहर रखी जाती है।

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

    डेटाबेस के बाहर रखी जाती है, वर्शन के साथ

  2. डेटा कुंजी, हर एनवायरनमेंट के लिए एक

    मास्टर कुंजी में लिपटी हुई

  3. सीक्रेट

    डेटा कुंजी के तहत AES-256-GCM से सील किया गया

u1.<key version>.<iv>.<ciphertext + tag>

aad = u1 | version | environment | purpose

सील की गई वैल्यू के ऑथेंटिकेटेड डेटा में उसके एनवायरनमेंट और उद्देश्य का नाम होता है। कहीं और कॉपी की जाए, तो वह खुलती ही नहीं।

तौर-तरीक़े

बारीकियाँ, पूरी सावधानी से।

  • पासवर्ड, अगर आप उन्हें इस्तेमाल करें

    OWASP की सुझाई लागत (19 MiB, दो पास) पर Argon2id से हैश किए जाते हैं, और एक साथ कितने चलें इसकी सीमा होती है, ताकि साइन-इन की बाढ़ से सेवा ठप न हो। नए पासवर्ड को Have I Been Pwned के रेंज API से जाने-माने डेटा लीक के ख़िलाफ़ जाँचा जाता है, जिसे पासवर्ड के हैश का बस एक छोटा-सा शुरुआती हिस्सा दिखता है। डिफ़ॉल्ट रूप से न्यूनतम लंबाई 12 है।

  • ऐसा कुछ स्टोर नहीं, जिसे दोहराया जा सके

    क्लाइंट सीक्रेट, टोकन, मैजिक-लिंक टोकन और ईमेल से भेजे गए कोड हैश करके स्टोर किए जाते हैं। बैकअप कोड एन्क्रिप्ट किए जाते हैं। ऑथराइज़ेशन कोड पाँच मिनट चलता है; ईमेल से भेजे गए कोड में तीन कोशिशें मिलती हैं।

  • हर दरवाज़े पर रेट लिमिट

    साइन-इन, साइन-अप, ईमेल से भेजे गए कोड, मैजिक लिंक, पासवर्ड रीसेट और दूसरे फ़ैक्टर की जाँच, हर एक की अपनी सीमा है: जैसे, एक मिनट में दस पासवर्ड साइन-इन, और दस मिनट में पाँच ईमेल कोड।

  • सख़्त Content-Security-Policy

    हर Lobby पेज को एक नया nonce मिलता है और उसी के इर्द-गिर्द बनी एक पॉलिसी: सिर्फ़ इसी origin की वे स्क्रिप्ट चलती हैं जिनमें nonce हो, फ़ॉर्म सिर्फ़ उसी origin पर पोस्ट होते हैं, और दूसरी साइट इस पेज को फ़्रेम में नहीं दिखा सकतीं।

  • ऐसा ऑडिट लॉग, जिस पर भरोसा किया जा सके

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

  • ग्राहक के URL के लिए ईग्रेस प्रॉक्सी

    Usher Identity किसी ग्राहक के दिए पते पर जो भी अनुरोध करता है (OIDC डिस्कवरी, JWKS, बैक-चैनल लॉगआउट), वह एक ही प्रॉक्सी से होकर बाहर जाता है। यह नाम को एक बार रिज़ॉल्व करता है, प्राइवेट, लूपबैक, लिंक-लोकल और क्लाउड-मेटाडेटा पतों को मना कर देता है, और उसी पते से कनेक्ट करता है जिसे उसने जाँचा था, ताकि DNS रीबाइंडिंग से ग्राहक का URL किसी आंतरिक URL में न बदला जा सके।

  • ऐसे हैंडल, जो कभी दोबारा नहीं दिए जाते

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

  • सेशन, जो आपके कहते ही ख़त्म हों

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

ज़िम्मेदार प्रकटीकरण

कुछ मिला? पहले हमें बताएँ।

अगर आपको लगता है कि आपको Usher Identity में कोई सुरक्षा समस्या मिली है, तो हम उसके बारे में जानना चाहेंगे, और उसे ठीक करने में आपके साथ मिलकर काम करेंगे।

security@usheridentity.com
  • आपको क्या मिला, कहाँ मिला, और उसे दोबारा कैसे किया जा सकता है।
  • आपकी समझ में, कोई उससे क्या कर सकता है।
  • हम आपसे कैसे संपर्क कर सकते हैं, और क्या आप चाहेंगे कि श्रेय में आपका नाम दिया जाए।

कृपया सिर्फ़ उन्हीं एनवायरनमेंट पर टेस्ट करें जो आपके अपने हैं, दूसरों के डेटा तक न पहुँचें, और समस्या को साझा करने से पहले हमें उसे ठीक करने का उचित समय दें। Usher Identity साइन-इन होने का दिखावा करने वाले पेज की रिपोर्ट करने के लिए, दुरुपयोग की रिपोर्ट करें देखें।