Shadowsocks documentation

AeAD

AeAD dia midika hoe Authenticated Encryption with Associated Data. Ny ciphers AEAD dia manome ny tsiambaratelo, ny fahamendrehana ary ny maha-azo itokiana azy. Izy ireo dia manana fahaiza-manao tsara sy fahaiza-manao amin'ny fitaovana maoderina. Tokony hampiasa cipher AEAD ny mpampiasa raha azo atao.

Ireto ciphers AEAD manaraka ireto dia atolotra. Ny fampiharana Shadowsocks mifanaraka dia tsy maintsy manohana ny AEAD_CHACHA20_POLY1305. Ny fampiharana ho an'ny fitaovana misy fanafainganana AES fitaovana dia tokony hampihatra AEAD_AES_128_GCM sy AEAD_AES_256_GCM ihany koa.

 

 

 

anarana

Alias

Size habe

Haben'ny sira

Nonce Size

Tag Size

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

Azafady azafady Rejistra IANA AEAD ho an'ny drafitry ny anarana sy ny famaritana.

Key derivation

Ny lakile master dia azo ampidirina mivantana avy amin'ny mpampiasa na novokarina avy amin'ny tenimiafina.

HKDF_SHA1 dia asa izay maka fanalahidy miafina, sira tsy miafina, tadin'ny info, ary mamokatra subkey izay matanjaka ara-kriptografika na dia malemy aza ny fanalahidy miafina fampidirana.

HKDF_SHA1(key, sira, info) => subkey

Ny tadin'ny info dia mamatotra ny zana-ketsa voavolavola amina contexte fampiharana manokana. Amin'ity tranga ity dia tsy maintsy ho ny tady "ss-subkey" tsy misy teny nalaina.

Mahazo zana-fanalahidy isaky ny fotoam-pivoriana izahay avy amin'ny lakile master nozaraina mialoha mampiasa HKDF_SHA1. Ny sira dia tsy maintsy miavaka mandritra ny androm-piainan'ny fanalahidy master nozaraina mialoha.

Encryption/Decryption voamarina

AE_encrypt dia fiasa izay maka fanalahidy miafina, tsy misy tsiambaratelo, hafatra ary mamokatra ciphertext sy marika fanamarinana. Ny Nonce dia tsy maintsy miavaka ho an'ny fanalahidy iray isaky ny fiantsoana.

AE_encrypt(key, nonce, message) => (ciphertext, tag)

 

AE_decrypt dia fiasa izay maka fanalahidy miafina, tsy misy tsiambaratelo, ciphertext, marika fanamarinana, ary mamoaka hafatra tany am-boalohany. Raha misy voakitika ny fampidirana dia tsy hahomby ny decryption.

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

TCP

Ny stream TCP encryption AEAD dia manomboka amin'ny sira noforonina kisendrasendra mba hahazoana ny zana-tsipìka isaky ny fivoriana, arahin'ny sombintsombiny maromaro. Ny ampahany tsirairay dia manana rafitra manaraka:

[havian'ny entam-barotra voarakotra][tagny lava][Voan-tseranana voarakotra][tagefa-mpandoa]

 

Ny halavan'ny karama dia integer 2-byte big-endian tsy misy sonia voasarona amin'ny 0x3FFF. Ny bitika roa ambony dia voatokana ary tsy maintsy apetraka amin'ny aotra. Noho izany dia voafetra amin'ny 16 * 1024 - 1 bytes ny entana.

Ny asa voalohany AEAD encryption/decrypt dia mampiasa fanisana nonce manomboka amin'ny 0. Aorian'ny asa encryption/decrypt tsirairay, ny nonce dia ampitomboina amin'ny iray toy ny hoe integer kely-endian tsy misy sonia. Mariho fa ny ampahany TCP tsirairay dia misy asa roa AEAD encrypt/decrypt: ny iray ho an'ny halavan'ny karama, ary ny iray ho an'ny entana. Noho izany, ny ampahany tsirairay dia mampitombo ny nonce indroa.

TCP

Ny stream TCP encryption AEAD dia manomboka amin'ny sira noforonina kisendrasendra mba hahazoana ny zana-tsipìka isaky ny fivoriana, arahin'ny sombintsombiny maromaro. Ny ampahany tsirairay dia manana rafitra manaraka:

[havian'ny entam-barotra voarakotra][tagny lava][Voan-tseranana voarakotra][tagefa-mpandoa]

 

Ny halavan'ny karama dia integer 2-byte big-endian tsy misy sonia voasarona amin'ny 0x3FFF. Ny bitika roa ambony dia voatokana ary tsy maintsy apetraka amin'ny aotra. Noho izany dia voafetra amin'ny 16 * 1024 - 1 bytes ny entana.

Ny asa voalohany AEAD encryption/decrypt dia mampiasa fanisana nonce manomboka amin'ny 0. Aorian'ny asa encryption/decrypt tsirairay, ny nonce dia ampitomboina amin'ny iray toy ny hoe integer kely-endian tsy misy sonia. Mariho fa ny ampahany TCP tsirairay dia misy asa roa AEAD encrypt/decrypt: ny iray ho an'ny halavan'ny karama, ary ny iray ho an'ny entana. Noho izany, ny ampahany tsirairay dia mampitombo ny nonce indroa.

Atombohy ny fitsapana maimaim-poana mandritra ny 5 andro