Imibhalo ye-Shadowsocks

I-AEAD

I-AEAD imele Ukubethela Okuqinisekisiwe Ngedatha Ehlobene. Ama-ciphers e-AEAD kanyekanye ahlinzeka ngobumfihlo, ubuqotho, nobuqiniso. Banokusebenza okuhle kakhulu nokusebenza kahle kwamandla ku-hardware yesimanje. Abasebenzisi kufanele basebenzise ama-cipher e-AEAD noma nini lapho kunokwenzeka.

Amaciphe alandelayo e-AEAD ayanconywa. Ukuqaliswa okuthobelanayo nama-Shadowsocks kufanele kusekele i-AEAD_CHACHA20_POLY1305. Ukusetshenziswa kwamadivayisi anehadiwe ye-AES acceleration kufanele futhi kuqalise i-AEAD_AES_128_GCM ne-AEAD_AES_256_GCM.

 

 

 

Igama

alias

Usayizi Obalulekile

Usayizi Kasawoti

Nonce Size

Usayizi wamathegi

I-AEAD_CHACHA20_POLY1305

chacha20-ietf-poly1305

32

32

12

16

AEAD_AES_256_GCM

ubukhulu - 256 g cm

32

32

12

16

AEAD_AES_128_GCM

ubukhulu - 128 g cm

16

16

12

16

Sicela ubheke I-IANA AEAD registry ngohlelo lokuqamba amagama kanye nokucaciswa.

Ukutholwa Okubalulekile

Ukhiye oyinhloko ungafakwa ngokuqondile kumsebenzisi noma ukhiqizwe ngephasiwedi.

HKDF_SHA1 kuwumsebenzi othatha ukhiye oyimfihlo, usawoti ongayimfihlo, iyunithi yezinhlamvu zolwazi, futhi ukhiqize ukhiye ongaphansi oqinile ngokomfanekiso ngisho noma ukhiye oyimfihlo wokufaka ubuthakathaka.

HKDF_SHA1(ukhiye, usawoti, ulwazi) => ukhiye omncane

Iyunithi yezinhlamvu yolwazi ibophezela ukhiye omncane okhiqiziwe kumongo wohlelo lokusebenza oluthile. Esimweni sethu, kufanele kube iyunithi yezinhlamvu "ss-subkey" ngaphandle kwezingcaphuno.

Sithola ukhiye omncane wesikhathi ngasinye kukhiye oyinhloko owabiwe ngaphambilini sisebenzisa i-HKDF_SHA1. Usawoti kufanele uhluke kuyo yonke impilo yokhiye oyinhloko owabiwe kusengaphambili.

Ukubethela/Ukukhipha Ukubethela Okuqinisekisiwe

I-AE_encrypt umsebenzi othatha ukhiye oyimfihlo, i-nonce engeyona imfihlo, umlayezo, futhi ukhiqize i-ciphertext nomaka wokufakazela ubuqiniso. I-Nonce kufanele ihluke kukhiye othile ekunxuseni ngakunye.

AE_bethela(ukhiye, nonce, umyalezo) => (umbhalo wecipher, ithegi)

 

I-AE_decrypt umsebenzi othatha ukhiye oyimfihlo, i-nonce engeyona imfihlo, i-ciphertext, umaka wokufakazela ubuqiniso, futhi ukhiqize umlayezo wangempela. Uma noma yikuphi okokufaka kuphazanyiswa, ukususwa kwekhodi kuzohluleka.

AE_decrypt(key, nonce, ciphertext, tag) => umyalezo

I-TCP

Ukusakaza okubethelwe kwe-AEAD kwe-TCP kuqala ngosawoti okhiqizwa ngokungahleliwe ukuze kutholwe ukhiye ophansi wesikhathi ngasinye, olandelwa inoma iyiphi inombolo yezingcezu ezibethelwe. Isiqephu ngasinye sinesakhiwo esilandelayo:

[ubude bomthwalo wokukhokha obubethelwe][umaka wobude][umthwalo wokukhokha obethelwe][umaka wokulayisha]

 

Ubude bokukhokha kuyinombolo engasayiniwe engu-2-byte enkulu evalwe kokuthi 0x3FFF. Amabhithi amabili aphezulu agciniwe futhi kufanele asethelwe kuqanda. Ngakho-ke ukukhokha kukhawulelwe kumabhayithi angu-16*1024 – 1.

Umsebenzi wokuqala we-AEAD wokubethela/ususe ukubethela usebenzisa i-nonce yokubala eqala ku-0. Ngemva komsebenzi ngamunye wokubethela/ukususa ukubethela, i-nonce ikhuliswa ngokukodwa njengokungathi inombolo ephelele ye-endian engabhalisiwe. Qaphela ukuthi isiqephu ngasinye se-TCP sihlanganisa imisebenzi emibili yokubethela/yokususa ukubethela kwe-AEAD: eyodwa ubude bomthwalo okhokhelwayo, kanye neyomthwalo okhokhelwayo. Ngakho-ke i-chunk ngayinye ikhulisa i-nonce kabili.

I-TCP

Ukusakaza okubethelwe kwe-AEAD kwe-TCP kuqala ngosawoti okhiqizwa ngokungahleliwe ukuze kutholwe ukhiye ophansi wesikhathi ngasinye, olandelwa inoma iyiphi inombolo yezingcezu ezibethelwe. Isiqephu ngasinye sinesakhiwo esilandelayo:

[ubude bomthwalo wokukhokha obubethelwe][umaka wobude][umthwalo wokukhokha obethelwe][umaka wokulayisha]

 

Ubude bokukhokha kuyinombolo engasayiniwe engu-2-byte enkulu evalwe kokuthi 0x3FFF. Amabhithi amabili aphezulu agciniwe futhi kufanele asethelwe kuqanda. Ngakho-ke ukukhokha kukhawulelwe kumabhayithi angu-16*1024 – 1.

Umsebenzi wokuqala we-AEAD wokubethela/ususe ukubethela usebenzisa i-nonce yokubala eqala ku-0. Ngemva komsebenzi ngamunye wokubethela/ukususa ukubethela, i-nonce ikhuliswa ngokukodwa njengokungathi inombolo ephelele ye-endian engabhalisiwe. Qaphela ukuthi isiqephu ngasinye se-TCP sihlanganisa imisebenzi emibili yokubethela/yokususa ukubethela kwe-AEAD: eyodwa ubude bomthwalo okhokhelwayo, kanye neyomthwalo okhokhelwayo. Ngakho-ke i-chunk ngayinye ikhulisa i-nonce kabili.

Qala isivivinyo sakho samahhala sezinsuku ezi-5