Leabhar shadowsocks

AEAD

AEAD a’ seasamh airson crioptachadh dearbhte le dàta co-cheangailte. Bidh ciphers AEAD aig an aon àm a’ toirt seachad dìomhaireachd, ionracas agus dearbhteachd. Tha coileanadh sàr-mhath aca agus èifeachdas cumhachd air bathar-cruaidh an latha an-diugh. Bu chòir do luchd-cleachdaidh ciphers AEAD a chleachdadh nuair as urrainnear.

Thathas a’ moladh na ciphers AEAD a leanas. Feumaidh buileachadh gèilleadh Shadowsocks taic a thoirt do AEAD_CHACHA20_POLY1305. Bu chòir buileachadh airson innealan le luathachadh bathar-cruaidh AES cuideachd AEAD_AES_128_GCM agus AEAD_AES_256_GCM a chur an gnìomh.

 

 

 

Ainm

Alias

Meud iuchrach

Meud salainn

Meud Nonce

tag Meud

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

Thoir sùil air Clàradh IANA AEAD airson sgeama ainmeachaidh agus sònrachadh.

Prìomh thùs

Faodar am prìomh iuchair a chuir a-steach gu dìreach bhon neach-cleachdaidh no a chruthachadh bho fhacal-faire.

HKDF_SHA1 na ghnìomh a bheir iuchair dhìomhair, salann neo-dhìomhair, sreang fiosrachaidh, agus a bheir a-mach subkey a tha làidir gu criptografach eadhon ged a tha an iuchair dhìomhair a-steach lag.

HKDF_SHA1(iuchair, salann, fiosrachadh) => subkey

Bidh an sreang fiosrachaidh a’ ceangal an fho-iuchrach a chaidh a chruthachadh ri co-theacs tagraidh sònraichte. Anns a’ chùis againn, feumaidh gur e an sreang “ss-subkey” gun luachan.

Bidh sinn a’ faighinn subkey gach seisean bho phrìomh iuchair ro-roinnte a’ cleachdadh HKDF_SHA1. Feumaidh salann a bhith gun samhail tro bheatha iomlan na prìomh iuchair ro-roinnte.

Crioptachadh / dì-chrioptachadh dearbhte

Tha AE_encrypt na ghnìomh a bheir iuchair dhìomhair, nonce neo-dhìomhair, teachdaireachd, agus a bheir a-mach ciphertext agus tag dearbhaidh. Feumaidh Nonce a bhith gun samhail airson iuchair shònraichte anns gach gairm.

AE_encrypt(iuchrach, nonce, teachdaireachd) => (ciphertext, tag)

 

Tha AE_decrypt na ghnìomh a bheir iuchair dhìomhair, nonce neo-dhìomhair, ciphertext, tag dearbhaidh, agus a bheir a-mach teachdaireachd tùsail. Ma thèid bacadh a chuir air gin den cuir a-steach, fàilligidh an dì-chrioptachadh.

AE_decrypt(iuchrach, nonce, ciphertext, tag) => teachdaireachd

TCP

Bidh sruth TCP crioptaichte AEAD a’ tòiseachadh le salann air a chruthachadh air thuaiream gus an subkey gach seisean fhaighinn, air a leantainn le àireamh sam bith de chnapan crioptaichte. Tha an structar a leanas aig gach ball:

[fad pàighidh crioptaichte] taga faid] [luchd pàighidh crioptaichte] [tag pàighidh pàighidh]

 

Is e fad luchd-pàighidh àireamh iomlan gun ainm 2-byte mòr-endian air a chuartachadh aig 0x3FFF. Tha an dà phìos as àirde glèidhte agus feumaidh iad a bhith air an suidheachadh gu neoni. Mar sin tha an t-uallach pàighidh cuingealaichte gu 16 * 1024 - 1 bytes.

Bidh a' chiad obrachadh crioptachaidh/dì-chrioptachaidh AEAD a' cleachdadh neo-chunntais a' tòiseachadh bho 0. Às dèidh gach gnìomh crioptachaidh/dì-chrioptachaidh, thèid an neo-chrìochnaichte a mheudachadh le aon mar gum b' e àireamh-shluaigh bheag gun ainm a bh' ann. Thoir an aire gu bheil gach pìos TCP a’ toirt a-steach dà ghnìomhachd crioptachaidh / dì-chrioptachaidh AEAD: aon airson fad an luchd-pàighidh, agus aon airson an luchd pàighidh. Mar sin bidh gach cnap ag àrdachadh an aon uair dà uair.

TCP

Bidh sruth TCP crioptaichte AEAD a’ tòiseachadh le salann air a chruthachadh air thuaiream gus an subkey gach seisean fhaighinn, air a leantainn le àireamh sam bith de chnapan crioptaichte. Tha an structar a leanas aig gach ball:

[fad pàighidh crioptaichte] taga faid] [luchd pàighidh crioptaichte] [tag pàighidh pàighidh]

 

Is e fad luchd-pàighidh àireamh iomlan gun ainm 2-byte mòr-endian air a chuartachadh aig 0x3FFF. Tha an dà phìos as àirde glèidhte agus feumaidh iad a bhith air an suidheachadh gu neoni. Mar sin tha an t-uallach pàighidh cuingealaichte gu 16 * 1024 - 1 bytes.

Bidh a' chiad obrachadh crioptachaidh/dì-chrioptachaidh AEAD a' cleachdadh neo-chunntais a' tòiseachadh bho 0. Às dèidh gach gnìomh crioptachaidh/dì-chrioptachaidh, thèid an neo-chrìochnaichte a mheudachadh le aon mar gum b' e àireamh-shluaigh bheag gun ainm a bh' ann. Thoir an aire gu bheil gach pìos TCP a’ toirt a-steach dà ghnìomhachd crioptachaidh / dì-chrioptachaidh AEAD: aon airson fad an luchd-pàighidh, agus aon airson an luchd pàighidh. Mar sin bidh gach cnap ag àrdachadh an aon uair dà uair.

Tòisich do dheuchainn 5-latha an-asgaidh