Belgekirina Shadowsocks

AEAD

AEAD Ji bo Şîfrekirina Naskirî ya bi Daneyên Têkildar re radiweste. Şîfreyên AEAD bi hevdemî nepenî, yekitî û rastîniyê peyda dikin. Ew li ser hardware nûjen xwedan performansa hêja û karbidestiya hêzê ne. Bikarhêner dema ku gengaz be divê şîfreyên AEAD bikar bînin.

Şîfreyên AEAD yên jêrîn têne pêşniyar kirin. Pêdivî ye ku pêkanînên Shadowsocks yên lihevhatî piştgirî bidin AEAD_CHACHA20_POLY1305. Pêkanînên ji bo cîhazên bi leza AES-a hardware divê AEAD_AES_128_GCM û AEAD_AES_256_GCM jî bicîh bikin.

 

 

 

Nav

Navê dizî

Mezinahiya Key

Mezinahiya xwê

Nonce Size

Size 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

Ji kerema xwe re binivîse qeyda IANA AEAD ji bo nexşe û taybetmendiya navan.

Derxistina Key

Mifteya sereke dikare rasterast ji bikarhêner were têketin an ji şîfreyek were çêkirin.

HKDF_SHA1 fonksiyonek e ku mifteyek nepenî, xwêyek ne-veşartî, rêzek agahdarî digire û binkeyek ku ji hêla krîptografî ve bihêz be jî çêdike ku mifteya nepenî ya têketinê qels be jî.

HKDF_SHA1 (key, xwê, agahî) => binkeya

Rêza agahiyê binkeya çêkirî bi çarçoveyek serîlêdanê ya taybetî ve girêdide. Di rewşa me de, pêdivî ye ku ew rêzika "ss-subkey" bê quote be.

Em bi HKDF_SHA1-ê ji mifteyek sereke ya pêş-parvekirî binkeya her danişînê derdixin. Pêdivî ye ku xwê di tevahiya jiyana mifteya sereke ya pêş-parvekirî de bêhempa be.

Şîfrekirin / Deşîfrekirina Rastkirî

AE_encrypt fonksiyonek e ku mifteyek nepenî, nepeniyek nepenî, peyamek digire, û şîfretext û etîketek erêkirinê çêdike. Divê Nonce ji bo kilîtek diyarkirî di her bangekê de yekta be.

AE_şîfrekirin (kilît, neyek, peyam) => (şîfretext, tag)

 

AE_decrypt fonksiyonek e ku mifteyek nepenî, nepenîyek ne-veşartî, şîfretext, tagek erêkirinê digire û peyamek orîjînal çêdike. Ger yek ji têketinê were xerakirin, dê şîfrekirin têk nebe.

AE_deşîfre (kilît, nonce, şîfretext, tag) => peyam

TCP

Herikîna TCP-ya şîfrekirî ya AEAD bi xwêyek ku bi rengek rasthatî hatî hilberandin dest pê dike da ku binkeya her danişînê derxîne, li dûv her hejmarek perçeyên şîfrekirî. Her perçek xwedan strukturek jêrîn e:

[dirêjahiya barkirina şîfrekirî] [belgeya dirêj]]

 

Dirêjahiya bargiraniyê jimareyek 2-byte ya mezin-endî ya bê îmze ye ku bi 0x3FFF ve hatî girtin. Du bitsên bilind têne veqetandin û divê li ser sifir bêne danîn. Ji ber vê yekê bargiran bi 16 * 1024 - 1 bytes ve sînorkirî ye.

Operasyona şîfre/deşîfrekirina AEAD-ê ya ewil jimareyek jimartinê bikar tîne ku ji 0-yê dest pê dike. Piştî her operasiyona şîfre/deşîfrekirinê, nonce bi yekî zêde dibe mîna ku ew hejmareke hindik-endiyayî ya bênîşan be. Bala xwe bidinê ku her perçeyek TCP du operasyonên şîfre/deşîfrekirina AEAD-ê vedihewîne: yek ji bo dirêjahiya barkirinê, û yek jî ji bo barkirinê. Ji ber vê yekê her perçek du caran du caran zêde dike.

TCP

Herikîna TCP-ya şîfrekirî ya AEAD bi xwêyek ku bi rengek rasthatî hatî hilberandin dest pê dike da ku binkeya her danişînê derxîne, li dûv her hejmarek perçeyên şîfrekirî. Her perçek xwedan strukturek jêrîn e:

[dirêjahiya barkirina şîfrekirî] [belgeya dirêj]]

 

Dirêjahiya bargiraniyê jimareyek 2-byte ya mezin-endî ya bê îmze ye ku bi 0x3FFF ve hatî girtin. Du bitsên bilind têne veqetandin û divê li ser sifir bêne danîn. Ji ber vê yekê bargiran bi 16 * 1024 - 1 bytes ve sînorkirî ye.

Operasyona şîfre/deşîfrekirina AEAD-ê ya ewil jimareyek jimartinê bikar tîne ku ji 0-yê dest pê dike. Piştî her operasiyona şîfre/deşîfrekirinê, nonce bi yekî zêde dibe mîna ku ew hejmareke hindik-endiyayî ya bênîşan be. Bala xwe bidinê ku her perçeyek TCP du operasyonên şîfre/deşîfrekirina AEAD-ê vedihewîne: yek ji bo dirêjahiya barkirinê, û yek jî ji bo barkirinê. Ji ber vê yekê her perçek du caran du caran zêde dike.

Doza xweya Belaş a 5-rojî dest pê bikin