Litokomane tsa Shadowsocks

AEAD

AEAD e emetse Authenticated Encryption with Associated Data. Li-ciphers tsa AEAD ka nako e le 'ngoe li fana ka lekunutu, botšepehi le bonnete. Ba na le ts'ebetso e ntle haholo le matla a matla ho hardware ea sejoale-joale. Basebelisi ba lokela ho sebelisa li-ciphers tsa AEAD neng kapa neng ha ho khonahala.

Li-ciphers tse latelang tsa AEAD lia khothaletsoa. Ts'ebetsong e lumellanang le Shadowsocks e tlameha ho tšehetsa AEAD_CHACHA20_POLY1305. Ts'ebetsong bakeng sa lisebelisoa tse nang le AES acceleration ea hardware le eona e lokela ho kenya ts'ebetsong AEAD_AES_128_GCM le AEAD_AES_256_GCM.

 

 

 

lebitso

Alias

Saese ea Bohlokoa

Boholo ba Letsoai

Nonce Size

Taela ea lebokose

AEAD_CHACHA20_POLY1305

chacha20-ietf-poly1305

32

32

12

16

AEAD_AES_256_GCM

hoo e ka bang 256 gcm

32

32

12

16

AEAD_AES_128_GCM

hoo e ka bang 128 gcm

16

16

12

16

Ka kopo sheba Ngoliso ea IANA AEAD bakeng sa morero oa ho reha mabitso le litlhaloso.

Tlhahiso ea bohlokoa

Senotlolo sa master se ka kenngoa ka kotloloho ho tsoa ho mosebelisi kapa sa hlahisoa ho tsoa ho password.

HKDF_SHA1 ke ts'ebetso e nkang senotlolo sa lekunutu, letsoai le seng la lekunutu, khoele ea lintlha, 'me e hlahisa subkey e matla haholo le haeba senotlolo sa lekunutu se fokola.

HKDF_SHA1(key, letsoai, info) => subkey

Khoele ea lintlha e tlama subkey e hlahisitsoeng maemong a itseng a kopo. Tabeng ea rona, e tlameha ho ba khoele "ss-subkey" ntle le mantsoe a qotsitsoeng.

Re fumana subkey ea per-session ho tsoa ho senotlolo se arolelanoang esale pele re sebelisa HKDF_SHA1. Letsoai le tlameha ho ikhetha bophelong bohle ba senotlolo se arolelanoang esale pele.

Authentied Encryption/Decryption

AE_encrypt ke ts'ebetso e nkang senotlolo sa lekunutu, nonce e seng ea lekunutu, molaetsa, 'me e hlahisa ciphertext le tag ea netefatso. Nonce e tlameha ho ikhetha bakeng sa senotlolo se fanoeng kopong e 'ngoe le e 'ngoe.

AE_encrypt(senotlolo, nonce, molaetsa) => (ciphertext, tag)

 

AE_decrypt ke ts'ebetso e nkang senotlolo sa lekunutu, nonce e seng ea lekunutu, mongolo oa mongolo, tag ea netefatso, mme e hlahisa molaetsa oa mantlha. Haeba e 'ngoe ea tse kentsoeng e sitisoa, decryption e tla hloleha.

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

TCP

Molatsoana oa TCP o kentsoeng ka mokhoa oa AEAD o qala ka letsoai le hlahisoang ka mokhoa o sa reroang ho fumana subkey ea nako le nako, e lateloe ke palo efe kapa efe ea likarolo tse patiloeng. Karolo ka 'ngoe e na le sebopeho se latelang:

[bolelele ba moroalo o kentsoeng][tag ea bolelele][moroalo o patiloeng][tag ea mojaro]

 

Bolelele ba moputso ke palo e kholo e sa ngolisoang ea 2-byte e kentsoeng ho 0x3FFF. Li-bits tse peli tse holimo li bolokiloe 'me li tlameha ho hlophisoa ho zero. Ka hona, moputso o lekanyelitsoe ho 16 * 1024 - 1 bytes.

Ts'ebetso ea pele ea AEAD encrypt/decrypt e sebelisa nonce ea ho bala ho qala ho tloha ho 0. Kamora ts'ebetso e 'ngoe le e' ngoe ea encrypt/decrypt, nonce e eketsoa ka e le 'ngoe joalo ka ha eka ke palo e nyane e sa ngolisoang. Hlokomela hore karolo e 'ngoe le e' ngoe ea TCP e kenyelletsa mesebetsi e 'meli ea AEAD encrypt / decrypt: e' ngoe bakeng sa bolelele ba moputso, 'me e' ngoe bakeng sa mojaro oa moputso. Ka hona, karolo e 'ngoe le e' ngoe e eketsa nonce habeli.

TCP

Molatsoana oa TCP o kentsoeng ka mokhoa oa AEAD o qala ka letsoai le hlahisoang ka mokhoa o sa reroang ho fumana subkey ea nako le nako, e lateloe ke palo efe kapa efe ea likarolo tse patiloeng. Karolo ka 'ngoe e na le sebopeho se latelang:

[bolelele ba moroalo o kentsoeng][tag ea bolelele][moroalo o patiloeng][tag ea mojaro]

 

Bolelele ba moputso ke palo e kholo e sa ngolisoang ea 2-byte e kentsoeng ho 0x3FFF. Li-bits tse peli tse holimo li bolokiloe 'me li tlameha ho hlophisoa ho zero. Ka hona, moputso o lekanyelitsoe ho 16 * 1024 - 1 bytes.

Ts'ebetso ea pele ea AEAD encrypt/decrypt e sebelisa nonce ea ho bala ho qala ho tloha ho 0. Kamora ts'ebetso e 'ngoe le e' ngoe ea encrypt/decrypt, nonce e eketsoa ka e le 'ngoe joalo ka ha eka ke palo e nyane e sa ngolisoang. Hlokomela hore karolo e 'ngoe le e' ngoe ea TCP e kenyelletsa mesebetsi e 'meli ea AEAD encrypt / decrypt: e' ngoe bakeng sa bolelele ba moputso, 'me e' ngoe bakeng sa mojaro oa moputso. Ka hona, karolo e 'ngoe le e' ngoe e eketsa nonce habeli.

Qala teko ea hau ea matsatsi a 5 mahala