સુરક્ષા
મહેમાનગતિ જેવી લાગતી સુરક્ષા.
આઇડેન્ટિટી પ્રોવાઇડર એટલો જ સારો હોય છે જેટલી તેના ટેનન્ટ વચ્ચેની દીવાલો અને સીક્રેટ માટે તે રાખતી કાળજી. 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
ઑથ ટિયર
દરેક એન્વાયર્નમેન્ટનો ઇશ્યુઅર અને લૉબી
ડેટા નેટવર્ક · બહાર જવાનો કોઈ રસ્તો નહીં
Postgres
દરેક એન્વાયર્નમેન્ટ માટે એક સ્કીમા
Valkey
દરેક સેવા પોતાની કી સુધી મર્યાદિત
બહાર જવાનો એકમાત્ર રસ્તો
ઇગ્રેસ પ્રૉક્સી
ગ્રાહકે આપેલા દરેક URL માટે
ડિસ્કવરી, JWKS, લૉગઆઉટ
ફક્ત પબ્લિક સરનામાં
આઇસોલેશન
મહત્ત્વનું કંઈ પણ શૅર થતું નથી.
દરેક પ્રોજેક્ટ એન્વાયર્નમેન્ટને પોતાનો Postgres સ્કીમા, પોતાની સાઇનિંગ કી અને પોતાની ડેટા કી વડે સીલ કરેલાં પોતાનાં સીક્રેટ મળે છે. તેનો ઇશ્યુઅર ટેનન્ટ ડોમેન પરનો એક હોસ્ટ છે, અને તેની કૂકી હોસ્ટ-ઓન્લી છે, તેથી બ્રાઉઝર ક્યારેય એક એન્વાયર્નમેન્ટની કૂકી બીજાને મોકલતું નથી.
usheridentity.com
સાઇટ, Usher Identity Console, Usher Identity એકાઉન્ટ
*.usherid.com
દરેક એન્વાયર્નમેન્ટ માટે એક ઇશ્યુઅર, અલગ ડોમેન પર
યુઝર, સેશન અને ટોકન આ એન્વાયર્નમેન્ટ માટે બનાવેલા સ્કીમામાં રહે છે. ક્વેરી એ જ સ્કીમા સામે ચાલે છે, ટેનન્ટ કૉલમવાળા શૅર કરેલા ટેબલ સામે ક્યારેય નહીં.
Acme પ્રોડક્શન નું સીલ કરેલું Google ક્લાયન્ટ સીક્રેટ Northwind પ્રોડક્શન માં કૉપિ કરો.
સંગ્રહિત ડેટાનું એન્ક્રિપ્શન
એન્વલપ એન્ક્રિપ્શન, પોતાની જગ્યા સાથે બંધાયેલું.
તમે Usher Identity ને આપો છો તે સીક્રેટ એક જ એન્વાયર્નમેન્ટની ડેટા કી હેઠળ AES-256-GCM વડે સીલ થાય છે. ડેટા કી પોતે ડેટાબેઝની બહાર રાખેલી વર્ઝનવાળી માસ્ટર કી વડે વીંટાળેલી હોય છે.
- દરેક એન્વાયર્નમેન્ટ માટે અલગ ડેટા કી
- એક એન્વાયર્નમેન્ટની ડેટા કી જોખમમાં આવે તો પણ બીજાની ડેટા કી વિશે કંઈ જાહેર થતું નથી.
- AAD બાઇન્ડિંગ
- એન્વાયર્નમેન્ટ અને હેતુ દરેક સાઇફરટેક્સ્ટમાં બંધાયેલા હોય છે, તેથી કોઈ વૅલ્યૂ રો કે ટેનન્ટ વચ્ચે ખસેડી શકાતી નથી.
- વર્ઝનવાળી કી
- દરેક સીલ કરેલી વૅલ્યૂ જે કી વર્ઝનથી બની હોય તે નોંધે છે, તેથી કી રોટેટ કરી શકાય છે અને જૂની વૅલ્યૂ ફરીથી વીંટાળી શકાય છે.
- ઑથેન્ટિકેટેડ
- GCM ના ટૅગને કારણે, છેડછાડ કરેલી વૅલ્યૂ કંઈક બીજામાં ડિક્રિપ્ટ થવાને બદલે ખૂલતી જ નથી.
માસ્ટર કી
ડેટાબેઝની બહાર રાખેલી, વર્ઝનવાળી
ડેટા કી, દરેક એન્વાયર્નમેન્ટ માટે એક
માસ્ટર કી વડે વીંટાળેલી
સીક્રેટ
ડેટા કી હેઠળ AES-256-GCM વડે સીલ કરેલું
u1.<key version>.<iv>.<ciphertext + tag>
aad = u1 | version | environment | purpose
પદ્ધતિઓ
વિગતો, કાળજીપૂર્વક.
પાસવર્ડ, જો તમે વાપરો તો
OWASP ના ભલામણ કરેલા ખર્ચે (19 MiB, બે પાસ) Argon2id વડે હૅશ થાય છે, એક સાથે કેટલા ચાલે તેની મર્યાદા સાથે, જેથી સાઇન-ઇનનો ધસારો સેવાને ઠપ ન કરી શકે. નવા પાસવર્ડ Have I Been Pwned ના range API વડે જાણીતા ભંગ સામે તપાસાય છે, જે પાસવર્ડના હૅશનો ફક્ત એક નાનો પ્રિફિક્સ જ જુએ છે. ડિફૉલ્ટ લઘુતમ લંબાઈ 12 છે.
ફરી વાપરી શકાય એવું કંઈ સંગ્રહાતું નથી
ક્લાયન્ટ સીક્રેટ, ટોકન, મૅજિક-લિંક ટોકન અને ઇમેઇલથી મોકલેલા કોડ હૅશ કરીને સંગ્રહાય છે. બૅકઅપ કોડ એન્ક્રિપ્ટ કરેલા હોય છે. ઑથોરાઇઝેશન કોડ પાંચ મિનિટ ચાલે છે; ઇમેઇલથી મોકલેલા કોડમાં ત્રણ પ્રયાસ મળે છે.
દરેક દરવાજે રેટ લિમિટ
સાઇન-ઇન, સાઇન-અપ, ઇમેઇલથી મોકલેલા કોડ, મૅજિક લિંક, પાસવર્ડ રીસેટ અને બીજા ફૅક્ટરની તપાસ, દરેકની પોતાની મર્યાદા છે: ઉદાહરણ તરીકે, મિનિટમાં દસ પાસવર્ડ સાઇન-ઇન, અને દર દસ મિનિટે પાંચ ઇમેઇલ કોડ.
કડક Content-Security-Policy
લૉબીના દરેક પેજને નવો nonce અને તેની આસપાસ બનેલી પૉલિસી મળે છે: ફક્ત આ ઑરિજિનની, nonce ધરાવતી સ્ક્રિપ્ટ જ ચાલે છે, ફૉર્મ ફક્ત એ જ ઑરિજિન પર પોસ્ટ થાય છે, અને બીજી સાઇટ પેજને ફ્રેમ કરી શકતી નથી.
ભરોસાપાત્ર ઑડિટ લૉગ
વર્કસ્પેસ, પ્રોજેક્ટ અને એન્વાયર્નમેન્ટમાં થતા ફેરફાર ફક્ત ઉમેરી શકાય તેવા લૉગમાં લખાય છે, દરેક એન્ટ્રી અગાઉની એન્ટ્રી સાથે હૅશ-ચેઇન થયેલી હોય છે, તેથી બદલાયેલી કે ગુમ થયેલી એન્ટ્રી દેખાઈ આવે છે.
ગ્રાહકના URL માટે ઇગ્રેસ પ્રૉક્સી
ગ્રાહકે આપેલા સરનામા પર Usher Identity કરે છે તે દરેક વિનંતી (OIDC ડિસ્કવરી, JWKS, back-channel લૉગઆઉટ) એક જ પ્રૉક્સીમાંથી બહાર જાય છે. તે નામને એક જ વાર રિઝૉલ્વ કરે છે, પ્રાઇવેટ, loopback, link-local અને ક્લાઉડ-મેટાડેટા સરનામાં નકારે છે, અને તેણે તપાસેલા સરનામા સાથે જ જોડાય છે, તેથી DNS rebinding ગ્રાહકના URL ને આંતરિક URL માં ફેરવી શકતું નથી.
ક્યારેય બે વાર ન અપાતાં હેન્ડલ
પ્રોડક્શન એન્વાયર્નમેન્ટનું હેન્ડલ તેના ઇશ્યુઅરનું પહેલું લેબલ છે. Console આમંત્રણથી ખુલ્લું છે, ફિશિંગ માટે જાણ કરાયેલી લૉબી સસ્પેન્ડ થાય છે, અને એક વાર વપરાયેલું હેન્ડલ ફરી ક્યારેય અપાતું નથી, કારણ કે જૂની ઍપ હજુ તેના ટોકન પર ભરોસો કરતી હોઈ શકે.
તમે કહો ત્યારે પૂરાં થતાં સેશન
Usher Identity કૅશ કરેલી નકલ પર ભરોસો કરવાને બદલે દરેક વિનંતી પર પોતાનાં સેશન તપાસે છે, તેથી તમે પૂરું કરેલું સેશન તરત જ પૂરું થાય છે. ઍક્સેસ ટોકન ટૂંકા સમય માટે હોય છે (ડિફૉલ્ટ રૂપે દસ મિનિટ), અને તમારું API તેમને ઇન્ટ્રોસ્પેક્ટ કરી શકે છે.
જવાબદાર જાહેરાત
કંઈ મળ્યું? પહેલાં અમને જણાવો.
જો તમને લાગે કે તમને Usher Identity માં કોઈ સુરક્ષા સમસ્યા મળી છે, તો અમે તેના વિશે સાંભળવા માંગીએ છીએ, અને તેને સુધારવા માટે તમારી સાથે કામ કરીશું.
- તમને શું મળ્યું, ક્યાં, અને તેને ફરીથી કેવી રીતે બનાવવું.
- તમારી સમજ મુજબ, કોઈ તેનાથી શું કરી શકે.
- અમે તમારો સંપર્ક કેવી રીતે કરી શકીએ, અને શું તમે શ્રેય મેળવવા માંગો છો.
કૃપા કરીને ફક્ત તમારી માલિકીનાં એન્વાયર્નમેન્ટ પર જ ટેસ્ટ કરો, બીજા લોકોનો ડેટા ઍક્સેસ ન કરો, અને સમસ્યા શૅર કરતાં પહેલાં અમને તેને સુધારવા માટે વાજબી સમય આપો. Usher Identity સાઇન-ઇન હોવાનો ડોળ કરતા પેજની જાણ કરવા માટે, દુરુપયોગની જાણ કરો જુઓ.