Shadowsocks iwe

AEAD

AEAD duro fun Ìsekóòdù Ifọwọsi pẹlu Data Iṣọkan. Awọn ciphers AEAD nigbakanna n pese aṣiri, iduroṣinṣin, ati ododo. Wọn ni iṣẹ ti o dara julọ ati ṣiṣe agbara lori ohun elo ode oni. Awọn olumulo yẹ ki o lo AEAD ciphers nigbakugba ti o ṣee ṣe.

A ṣe iṣeduro awọn iwe-ipamọ AEAD wọnyi. Awọn imuse Shadowsocks ti o ni ibamu gbọdọ ṣe atilẹyin AEAD_CHACHA20_POLY1305. Awọn imuse fun awọn ẹrọ pẹlu ohun elo AES isare yẹ ki o tun ṣe AEAD_AES_128_GCM ati AEAD_AES_256_GCM.

 

 

 

Name

inagijẹ

Iwọn bọtini

Iwọn Iyọ

Nonce Iwon

tag Iwon

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

Jowo tọka si IANA AEAD iforukọsilẹ fun eto lorukọ ati sipesifikesonu.

Ipilẹṣẹ bọtini

Bọtini titunto si le jẹ titẹ sii taara lati ọdọ olumulo tabi ti ipilẹṣẹ lati ọrọ igbaniwọle kan.

HKDF_SHA1 jẹ iṣẹ kan ti o gba bọtini aṣiri, iyọ ti kii ṣe ikọkọ, okun alaye, ti o ṣe agbejade bọtini kekere ti o lagbara ni cryptograph paapaa ti bọtini aṣiri titẹ sii ko lagbara.

HKDF_SHA1(bọtini, iyọ, info) => koko

Okun alaye naa so bọtini abẹlẹ ti ipilẹṣẹ pọ mọ ipo ohun elo kan pato. Ninu ọran wa, o gbọdọ jẹ okun “ss-subkey” laisi awọn agbasọ ọrọ.

A gba bọtini abẹlẹ fun igba-kọọkan lati bọtini titunto ti a ti ṣajọ tẹlẹ nipa lilo HKDF_SHA1. Iyọ gbọdọ jẹ alailẹgbẹ nipasẹ gbogbo igbesi aye ti bọtini tituntosi ti a ti pin tẹlẹ.

Ifọwọsi ìsekóòdù/Decryption

AE_encrypt jẹ iṣẹ ti o gba bọtini aṣiri kan, ti kii ṣe ikọkọ, ifiranṣẹ kan, ti o ṣe agbejade ọrọ-ọrọ ati aami ijẹrisi. Nonce gbọdọ jẹ alailẹgbẹ fun bọtini ti a fun ni ẹbẹ kọọkan.

AE_encrypt (bọtini, nonce, ifiranṣẹ) => (akọsilẹ, tag)

 

AE_decrypt jẹ iṣẹ kan ti o gba bọtini aṣiri, ti kii ṣe aṣiri, ọrọ aṣiri, aami ijẹrisi, ati gbejade ifiranṣẹ atilẹba kan. Ti eyikeyi ninu titẹ sii ti wa ni fọwọ ba, iṣiparọ yoo kuna.

AE_decrypt(bọtini, nonce, ciphertext, tag) => ifiranṣẹ

TCP

Oṣan TCP ti AEAD ti paroko bẹrẹ pẹlu iyọ ti ipilẹṣẹ laileto lati gba bọtini-kekere fun igba-kọọkan, atẹle nipasẹ nọmba eyikeyi ti awọn chunks ti paroko. Ẹyọ kọọkan ni eto atẹle wọnyi:

[ipari fifuye isanwo ti paroko [aami gigun] [ẹru isanwo ti paroko].

 

Ipari isanwo jẹ odidi 2-baiti nla-endian ti a ko fowo si ni 0x3FFF. Awọn die-die meji ti o ga julọ wa ni ipamọ ati pe o gbọdọ ṣeto si odo. Payload Nitorina ni opin si 16 * 1024 - 1 baiti.

Ni igba akọkọ ti AEAD encrypt / decrypt isẹ nlo kika nonce ti o bere lati 0. Lẹhin ti kọọkan encrypt / decrypt isẹ, awọn nonce ti wa ni afikun nipa ọkan bi ẹnipe o jẹ ẹya unsigned kekere-endian odidi. Ṣe akiyesi pe chunk TCP kọọkan pẹlu awọn iṣẹ AEAD encrypt / decrypt meji: ọkan fun ipari isanwo, ati ọkan fun isanwo isanwo. Nitorina kọọkan chunk mu ki awọn nonce lemeji.

TCP

Oṣan TCP ti AEAD ti paroko bẹrẹ pẹlu iyọ ti ipilẹṣẹ laileto lati gba bọtini-kekere fun igba-kọọkan, atẹle nipasẹ nọmba eyikeyi ti awọn chunks ti paroko. Ẹyọ kọọkan ni eto atẹle wọnyi:

[ipari fifuye isanwo ti paroko [aami gigun] [ẹru isanwo ti paroko].

 

Ipari isanwo jẹ odidi 2-baiti nla-endian ti a ko fowo si ni 0x3FFF. Awọn die-die meji ti o ga julọ wa ni ipamọ ati pe o gbọdọ ṣeto si odo. Payload Nitorina ni opin si 16 * 1024 - 1 baiti.

Ni igba akọkọ ti AEAD encrypt / decrypt isẹ nlo kika nonce ti o bere lati 0. Lẹhin ti kọọkan encrypt / decrypt isẹ, awọn nonce ti wa ni afikun nipa ọkan bi ẹnipe o jẹ ẹya unsigned kekere-endian odidi. Ṣe akiyesi pe chunk TCP kọọkan pẹlu awọn iṣẹ AEAD encrypt / decrypt meji: ọkan fun ipari isanwo, ati ọkan fun isanwo isanwo. Nitorina kọọkan chunk mu ki awọn nonce lemeji.

Bẹrẹ idanwo Ọfẹ 5-ọjọ rẹ