Shadowsocks dukumeenti
Navigation
AEAD
AEAD waxay u taagan tahay Sireeynta La Xaqiijiyay ee Xogta La Xiriirtay. Xirmooyinka AEAD waxay si isku mar ah u bixiyaan sirta, daacadnimada, iyo xaqiiqada. Waxay leeyihiin waxqabad aad u fiican iyo hufnaanta awoodda qalabka casriga ah. Isticmaalayaashu waa inay isticmaalaan AEAD ciphers mar kasta oo ay suurtagal tahay.
Xirmooyinka AEAD ee soo socda ayaa lagula talinayaa. Hirgelinta Shadowsocks ee waafaqsan waa inay taageeraan AEAD_CHACHA20_POLY1305. Hirgelinta aaladaha leh qalabka dardargelinta AES waa in sidoo kale la hirgeliyaa AEAD_AES_128_GCM iyo AEAD_AES_256_GCM.
magaca | alias | Cabbirka Furaha | Cabirka milixda | Cabirka Aan Lahayn | 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 |
Fadlan tixraac IANA AEAD nidaamka magacaabidda iyo qeexidda.
Soojeedinta Furaha
Furaha sayidku waxa uu si toos ah uga iman karaa isticmaalaha ama waxa laga soo saari karaa erayga sirta ah.
HKDF_SHA1 waa hawl qaadata furaha sirta ah, milix aan qarsoodi ahayn, xadhig xog ah, oo soo saarta fure-hoosaad si qarsoodi ah u xooggan xitaa haddii furaha sirta ah ee gelinta uu daciif yahay.
HKDF_SHA1 (furaha, cusbo, macluumaad) => fure hoose
Xadhiga macluumaadka waxa uu ku xidhaa furaha hoose ee la soo saaray iyo macnaha codsiga gaarka ah. Xaaladeena, waa inay noqotaa xadhigga "ss-subkey" iyada oo aan la soo xigan.
Waxa aanu ka soo dheegnay furaha fadhi-hoosaadka ee hore loo wadaagay iyada oo la isticmaalayo HKDF_SHA1. milixdu waa inay noqotaa mid gaar ah inta lagu jiro nolosha oo dhan ee furaha sayid ee hore loo wadaagay.
Sireeynta/Decryption la xaqiijiyay
AE_encrypt waa hawl qaadata furaha sirta ah, wax aan qarsoodi ahayn, fariin, oo soo saarta qoraallo iyo summada aqoonsiga. Marna waa in uu gaar u ahaadaa furaha la bixiyay codsi kasta.
AE_encrypt (furaha, nonce, fariin) => (qoraal, sumad)
AE_decrypt waa hawl qaadata fure sir ah, aan qarsoodi ahayn, qoraal-qoraal ah, sumad xaqiijin ah, oo soo saarta fariin asal ah. Haddii mid ka mid ah gelinta la farageliyo, fur-furiddu way fashilmi doontaa.
AE_decrypt(muhiim, aan lahayn, ciphertext, tag) => fariin
TCP
AEAD sir ah socodka TCP wuxuu ku bilaabmaa milix si aan kala sooc lahayn loo soo saaray si loo helo furaha fadhi kasta, oo ay ku xigto tiro kasta oo qaybo qarsoon. Qayb kastaa waxay leedahay qaabdhismeedkan soo socda:
[dhererka mushaharka sir ah] [tagga dhererka][loader sir ah]
Dhererka lacag-bixinta waa 2-byte-indian-weyn oo aan saxeexin integer oo ku daboolan 0x3FFF. Labada bit ee sare waa la hayaa oo waa in lagu dejiyaa eber. Culayska mushaharka ayaa sidaas darteed ku xaddidan 16*1024 - 1 bytes.
Hawlgalka ugu horreeya ee AEAD sirta/dejinta waxay isticmaashaa tirinta nonce oo ka bilaabmaysa 0. Kadib hawlgal kasta oo sir/decrypt, midna waxa lagu kordhiyaa mid sidii haddii ay tahay isugeyn yar oo aan saxeexin. Ogsoonow in qayb kasta oo TCP ah ay ku lug leedahay laba hawlgal oo AEAD encrypt/decrypt ah: mid dhererka culeyska, iyo mid loogu talagalay culeyska. Sidaa darteed qayb kastaa waxay kordhisaa hal mar laba jeer.
TCP
AEAD sir ah socodka TCP wuxuu ku bilaabmaa milix si aan kala sooc lahayn loo soo saaray si loo helo furaha fadhi kasta, oo ay ku xigto tiro kasta oo qaybo qarsoon. Qayb kastaa waxay leedahay qaabdhismeedkan soo socda:
[dhererka mushaharka sir ah] [tagga dhererka][loader sir ah]
Dhererka lacag-bixinta waa 2-byte-indian-weyn oo aan saxeexin integer oo ku daboolan 0x3FFF. Labada bit ee sare waa la hayaa oo waa in lagu dejiyaa eber. Culayska mushaharka ayaa sidaas darteed ku xaddidan 16*1024 - 1 bytes.
Hawlgalka ugu horreeya ee AEAD sirta/dejinta waxay isticmaashaa tirinta nonce oo ka bilaabmaysa 0. Kadib hawlgal kasta oo sir/decrypt, midna waxa lagu kordhiyaa mid sidii haddii ay tahay isugeyn yar oo aan saxeexin. Ogsoonow in qayb kasta oo TCP ah ay ku lug leedahay laba hawlgal oo AEAD encrypt/decrypt ah: mid dhererka culeyska, iyo mid loogu talagalay culeyska. Sidaa darteed qayb kastaa waxay kordhisaa hal mar laba jeer.