Litokomane tsa Shadowsocks
Navigation
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.