Shadowsocks ሰነድ

መኢአድ

መኢአድ ከተዛማጅ ውሂብ ጋር የተረጋገጠ ምስጠራን ያመለክታል። AEAD ምስጠራዎች በተመሳሳይ ጊዜ ሚስጥራዊነትን፣ ታማኝነትን እና ትክክለኛነትን ይሰጣሉ። በዘመናዊ ሃርድዌር ላይ እጅግ በጣም ጥሩ አፈፃፀም እና የኃይል ቆጣቢነት አላቸው. ተጠቃሚዎች በተቻለ መጠን የ AEAD ምስጠራዎችን መጠቀም አለባቸው።

የሚከተሉት AEAD ምስጠራዎች ይመከራሉ። የሚያከብሩ የ Shadowsocks ትግበራዎች AEAD_CHACHA20_POLY1305 መደገፍ አለባቸው። የሃርድዌር AES ማጣደፍ ላላቸው መሳሪያዎች አተገባበርም AEAD_AES_128_GCM እና AEAD_AES_256_GCM መተግበር አለባቸው።

 

 

 

ስም

የተለወጠ ስም

የቁልፍ መጠን

የጨው መጠን

ያልሆነ መጠን

የመለያ መጠን

AEAD_CHACHA20_POLY1305

chacha20-ietf-poly1305

32

32

12

16

AEAD_AES_256_GCM

aes-256-gcm

32

32

12

16

AEAD_AES_128_GCM

aes-128-gcm

16

16

12

16

እባክዎ ያጣቅሱ IANA AEAD መዝገብ ቤት ለመሰየም እቅድ እና ዝርዝር መግለጫ.

ቁልፍ አመጣጥ

ዋና ቁልፉ በቀጥታ ከተጠቃሚው ሊገባ ወይም ከይለፍ ቃል የመነጨ ሊሆን ይችላል።

HKDF_SHA1 የምስጢር ቁልፍ፣ ሚስጥራዊ ያልሆነ ጨው፣ የመረጃ ሕብረቁምፊ የሚወስድ እና የግብአት ሚስጥራዊ ቁልፉ ደካማ ቢሆንም እንኳ ምስጢራዊ በሆነ መልኩ ጠንካራ የሆነ ንዑስ ቁልፍ የሚያመነጭ ተግባር ነው።

HKDF_SHA1(ቁልፍ፣ ጨው፣ መረጃ) => ንዑስ ቁልፍ

የመረጃ ገመዱ የተፈጠረውን ንዑስ ቁልፍ ከአንድ የተወሰነ የመተግበሪያ አውድ ጋር ያያይዘዋል። በእኛ ሁኔታ, ያለ ጥቅሶች "ss-subkey" ሕብረቁምፊ መሆን አለበት.

HKDF_SHA1ን በመጠቀም የክፍለ-ጊዜ ንዑስ ቁልፍን ከቅድመ-የተጋራ ዋና ቁልፍ እናገኘዋለን። ጨው በቅድመ-የተጋራው ዋና ቁልፍ ህይወት በሙሉ ልዩ መሆን አለበት።

የተረጋገጠ ምስጠራ/ዲክሪፕት ማድረግ

ኤኢ_ኢንክሪፕት የሚስጥር ቁልፍ ፣ ሚስጥራዊ ያልሆነ መልእክት ፣ መልእክት የሚወስድ እና ምስጢራዊ ጽሑፍ እና የማረጋገጫ መለያ የሚያሰራ ተግባር ነው። በእያንዳንዱ ጥሪ ውስጥ ላለ አንድ ቁልፍ ልዩ መሆን የለበትም።

AE_encrypt(ቁልፍ፣ ምንም፣ መልእክት) => (ምስጥር ጽሑፍ፣ መለያ)

 

ኤኢ_ዲክሪፕት የሚስጥር ቁልፍ፣ ሚስጥራዊ ያልሆነ፣ ምስጢራዊ ጽሑፍ፣ የማረጋገጫ መለያ የሚወስድ እና ኦርጅናል መልእክት የሚያሰራ ተግባር ነው። ማንኛውም ግብአት ከተበላሸ ዲክሪፕት ማድረግ አይሳካም።

AE_decrypt(ቁልፍ፣ ምንም፣ ምስጢራዊ ጽሑፍ፣ መለያ) => መልእክት

TCP

የ AEAD ኢንክሪፕት የተደረገ የቲሲፒ ዥረት የሚጀምረው በዘፈቀደ በመነጨ ጨው ሲሆን በየክፍለ-ጊዜው ንኡስ ቁልፍን ለማግኘት እና ማንኛውም የተመሰጠሩ ቁርጥራጮች ይከተላል። እያንዳንዱ ቁራጭ የሚከተለው መዋቅር አለው:

[የተመሰጠረ የመጫኛ ርዝመት][ርዝመት መለያ][የተመሰጠረ ጭነት][የጭነት ጭነት]

 

የመጫኛ ርዝመት ባለ 2-ባይት ትልቅ-ኤንዲያን ያልተፈረመ ኢንቲጀር በ0x3FFF ተሸፍኗል። ከፍተኛዎቹ ሁለት ቢት የተጠበቁ ናቸው እና ወደ ዜሮ መዋቀር አለባቸው። ክፍያ ስለዚህ በ 16 * 1024 - 1 ባይት የተገደበ ነው.

የመጀመሪያው የ AEAD ኢንክሪፕት/ዲክሪፕት ኦፕሬሽን ከ 0 ጀምሮ ያለ ቆጠራን ይጠቀማል። ከእያንዳንዱ ኢንክሪፕት/ዲክሪፕት ኦፕሬሽን በኋላ ያልተፈረመ ትንሽ-ኢንዲያን ኢንቲጀር ያህል በአንድ ይጨምራል። እያንዳንዱ የ TCP ቸንክ ሁለት AEAD ኢንክሪፕት/ዲክሪፕት ክዋኔዎችን እንደሚያካትት ልብ ይበሉ፡ አንዱ ለክፍያው ርዝመት እና አንዱ ለጭነት። ስለዚህ እያንዳንዱ ቁራጭ ሁለት ጊዜ ይጨምራል.

TCP

የ AEAD ኢንክሪፕት የተደረገ የቲሲፒ ዥረት የሚጀምረው በዘፈቀደ በመነጨ ጨው ሲሆን በየክፍለ-ጊዜው ንኡስ ቁልፍን ለማግኘት እና ማንኛውም የተመሰጠሩ ቁርጥራጮች ይከተላል። እያንዳንዱ ቁራጭ የሚከተለው መዋቅር አለው:

[የተመሰጠረ የመጫኛ ርዝመት][ርዝመት መለያ][የተመሰጠረ ጭነት][የጭነት ጭነት]

 

የመጫኛ ርዝመት ባለ 2-ባይት ትልቅ-ኤንዲያን ያልተፈረመ ኢንቲጀር በ0x3FFF ተሸፍኗል። ከፍተኛዎቹ ሁለት ቢት የተጠበቁ ናቸው እና ወደ ዜሮ መዋቀር አለባቸው። ክፍያ ስለዚህ በ 16 * 1024 - 1 ባይት የተገደበ ነው.

የመጀመሪያው የ AEAD ኢንክሪፕት/ዲክሪፕት ኦፕሬሽን ከ 0 ጀምሮ ያለ ቆጠራን ይጠቀማል። ከእያንዳንዱ ኢንክሪፕት/ዲክሪፕት ኦፕሬሽን በኋላ ያልተፈረመ ትንሽ-ኢንዲያን ኢንቲጀር ያህል በአንድ ይጨምራል። እያንዳንዱ የ TCP ቸንክ ሁለት AEAD ኢንክሪፕት/ዲክሪፕት ክዋኔዎችን እንደሚያካትት ልብ ይበሉ፡ አንዱ ለክፍያው ርዝመት እና አንዱ ለጭነት። ስለዚህ እያንዳንዱ ቁራጭ ሁለት ጊዜ ይጨምራል.

የ5-ቀን ነጻ ሙከራህን ጀምር