Dokumentazzjoni Shadowsocks
Navigazzjoni
AEAD
AEAD tfisser Encryption Awtentikata b'Dejta Assoċjata. Iċ-ċifri AEAD fl-istess ħin jipprovdu kunfidenzjalità, integrità u awtentiċità. Huma għandhom prestazzjoni eċċellenti u effiċjenza tal-enerġija fuq ħardwer modern. L-utenti għandhom jużaw iċ-ċifraturi AEAD kull meta jkun possibbli.
Iċ-ċifri AEAD li ġejjin huma rakkomandati. Implimentazzjonijiet Shadowsocks konformi għandhom jappoġġjaw AEAD_CHACHA20_POLY1305. Implimentazzjonijiet għal apparati b'aċċelerazzjoni AES tal-ħardwer għandhom jimplimentaw ukoll AEAD_AES_128_GCM u AEAD_AES_256_GCM.
isem | Alias | Daqs Ewlenin | Daqs tal-melħ | Nonce Daqs | Daqs tat-Tag |
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 |
Jekk jogħġbok irreferi għal Reġistru IANA AEAD għall-iskema ta' ismijiet u speċifikazzjoni.
Derivazzjoni Ewlenin
Iċ-ċavetta prinċipali tista 'tiddaħħal direttament mill-utent jew tiġi ġġenerata minn password.
HKDF_SHA1 hija funzjoni li tieħu ċavetta sigrieta, melħ mhux sigriet, sekwenza ta' informazzjoni, u tipproduċi subkey li hija kriptografikament b'saħħitha anki jekk iċ-ċavetta sigrieta tad-dħul hija dgħajfa.
HKDF_SHA1(ċavetta, melħ, informazzjoni) => subkey
Is-sekwenza ta' informazzjoni torbot is-subkey iġġenerat ma' kuntest ta' applikazzjoni speċifiku. Fil-każ tagħna, għandha tkun is-sekwenza "ss-subkey" mingħajr kwotazzjonijiet.
Aħna niksbu subkey għal kull sessjoni minn ċavetta prinċipali kondiviża minn qabel billi tuża HKDF_SHA1. Il-melħ għandu jkun uniku matul il-ħajja kollha taċ-ċavetta prinċipali kondiviża minn qabel.
Encryption/Decryption awtentikata
AE_encrypt hija funzjoni li tieħu ċavetta sigrieta, nonce mhux sigrieta, messaġġ, u tipproduċi ciphertext u tikketta ta 'awtentikazzjoni. Nonce għandu jkun uniku għal ċavetta partikolari f'kull invokazzjoni.
AE_encrypt(key, nonce, message) => (test taċ-ċifra, tikketta)
AE_decrypt hija funzjoni li tieħu ċavetta sigrieta, nonce mhux sigrieta, ċifrat, tikketta ta 'awtentikazzjoni, u tipproduċi messaġġ oriġinali. Jekk xi wieħed mill-input jiġi mbagħbas, id-decryption se tfalli.
AE_decrypt(key, nonce, ciphertext, tag) => messaġġ
TCP
Fluss TCP ikkodifikat mill-AEAD jibda b'melħ iġġenerat b'mod każwali biex tiġi derivata s-subkey għal kull sessjoni, segwita minn kwalunkwe numru ta 'biċċiet kodifikati. Kull biċċa għandha l-istruttura li ġejja:
[tul tat-tagħbija encrypted][tag ta' tul][tagħbija encrypted][tag tat-tagħbija]
It-tul tat-tagħbija huwa numru sħiħ mhux iffirmat big-endian ta' 2 bytes b'limitu ta' 0x3FFF. Iż-żewġ bits ogħla huma riżervati u għandhom ikunu ssettjati għal żero. It-tagħbija hija għalhekk limitata għal 16*1024 – 1 bytes.
L-ewwel operazzjoni tal-kriptaġġ/deċifrar tal-AEAD tuża nonce tal-għadd li jibda minn 0. Wara kull operazzjoni tal-kriptaġġ/deċifrar, in-nonce jiġi inkrementat b'wieħed bħallikieku kien numru sħiħ ta' little-endian mhux iffirmat. Innota li kull biċċa TCP tinvolvi żewġ operazzjonijiet ta 'kriptaġġ/decrypt AEAD: waħda għat-tul tat-tagħbija u waħda għat-tagħbija. Għalhekk kull biċċa żżid in-nonce darbtejn.
TCP
Fluss TCP ikkodifikat mill-AEAD jibda b'melħ iġġenerat b'mod każwali biex tiġi derivata s-subkey għal kull sessjoni, segwita minn kwalunkwe numru ta 'biċċiet kodifikati. Kull biċċa għandha l-istruttura li ġejja:
[tul tat-tagħbija encrypted][tag ta' tul][tagħbija encrypted][tag tat-tagħbija]
It-tul tat-tagħbija huwa numru sħiħ mhux iffirmat big-endian ta' 2 bytes b'limitu ta' 0x3FFF. Iż-żewġ bits ogħla huma riżervati u għandhom ikunu ssettjati għal żero. It-tagħbija hija għalhekk limitata għal 16*1024 – 1 bytes.
L-ewwel operazzjoni tal-kriptaġġ/deċifrar tal-AEAD tuża nonce tal-għadd li jibda minn 0. Wara kull operazzjoni tal-kriptaġġ/deċifrar, in-nonce jiġi inkrementat b'wieħed bħallikieku kien numru sħiħ ta' little-endian mhux iffirmat. Innota li kull biċċa TCP tinvolvi żewġ operazzjonijiet ta 'kriptaġġ/decrypt AEAD: waħda għat-tul tat-tagħbija u waħda għat-tagħbija. Għalhekk kull biċċa żżid in-nonce darbtejn.