Shadowsocks skjöl

AEAD

AEAD stendur fyrir Authenticated Encryption with Associated Data. AEAD dulmál veita samtímis trúnað, heiðarleika og áreiðanleika. Þeir hafa framúrskarandi frammistöðu og orkunýtni á nútíma vélbúnaði. Notendur ættu að nota AEAD dulmál þegar mögulegt er.

Mælt er með eftirfarandi AEAD dulmáli. Samhæfðar Shadowsocks útfærslur verða að styðja AEAD_CHACHA20_POLY1305. Útfærslur fyrir tæki með AES hröðun vélbúnaðar ættu einnig að innleiða AEAD_AES_128_GCM og AEAD_AES_256_GCM.

 

 

 

heiti

alias

Lykilstærð

Salt stærð

Nonce Stærð

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

Vinsamlegast vísa til IANA AEAD skrásetning fyrir nafnakerfi og forskrift.

Key Afleiðsla

Hægt er að slá inn aðallykilinn beint frá notandanum eða búa til úr lykilorði.

HKDF_SHA1 er fall sem tekur leynilegan lykil, óleynt salt, upplýsingastreng og framleiðir undirlykil sem er dulmálslega sterkur, jafnvel þó að leynilykillinn sé veikur.

HKDF_SHA1(lykill, salt, info) => undirlykill

Upplýsingastrengurinn bindur myndaða undirlykilinn við ákveðið forritssamhengi. Í okkar tilviki verður það að vera strengurinn „ss-undirlykill“ án gæsalappa.

Við fáum undirlykil fyrir hverja lotu úr fyrirfram deiltum aðallykil með því að nota HKDF_SHA1. Salt verður að vera einstakt í gegnum allt líf forsamnýtra aðallykilsins.

Staðfest dulkóðun / afkóðun

AE_encrypt er aðgerð sem tekur leynilegan lykil, ekki leyndarmál, skilaboð og framleiðir dulmálstexta og auðkenningarmerki. Nonce verður að vera einstakt fyrir tiltekinn lykil í hverri ákalli.

AE_encrypt(lykill, nonce, message) => (dulkóðun, merki)

 

AE_decrypt er aðgerð sem tekur leynilegan lykil, ekki leyndarmál, dulmálstexta, auðkenningarmerki og framleiðir frumleg skilaboð. Ef átt er við eitthvað af inntakinu mun afkóðunin mistakast.

AE_decrypt(lykill, nonce, ciphertext, tag) => skilaboð

TCP

AEAD dulkóðaður TCP straumur byrjar með salti sem er myndað af handahófi til að fá undirlykil fyrir hverja lotu, fylgt eftir með hvaða fjölda dulkóðaðra bita sem er. Hver klumpur hefur eftirfarandi uppbyggingu:

[dulkóðuð farmlengd][lengdarmerki][dulkóðuð farmhleðsla][payload tag]

 

Hleðslulengd er 2-bæta stór-endian ómerkt heiltala með hámarki 0x3FFF. Tveir hærri bitarnir eru fráteknir og verða að vera stilltir á núll. Burðargeta er því takmörkuð við 16*1024 – 1 bæti.

Fyrsta AEAD dulkóða/afkóða aðgerðin notar talningu sem byrjar frá 0. Eftir hverja dulkóðun/afkóðun aðgerð er ómerkingunni aukið um einn eins og það væri óundirrituð heiltala. Athugaðu að hver TCP klumpur felur í sér tvær AEAD dulkóða/afkóða aðgerðir: eina fyrir farmlengdina og eina fyrir farminn. Þess vegna eykur hver klumpur nonce tvisvar.

TCP

AEAD dulkóðaður TCP straumur byrjar með salti sem er myndað af handahófi til að fá undirlykil fyrir hverja lotu, fylgt eftir með hvaða fjölda dulkóðaðra bita sem er. Hver klumpur hefur eftirfarandi uppbyggingu:

[dulkóðuð farmlengd][lengdarmerki][dulkóðuð farmhleðsla][payload tag]

 

Hleðslulengd er 2-bæta stór-endian ómerkt heiltala með hámarki 0x3FFF. Tveir hærri bitarnir eru fráteknir og verða að vera stilltir á núll. Burðargeta er því takmörkuð við 16*1024 – 1 bæti.

Fyrsta AEAD dulkóða/afkóða aðgerðin notar talningu sem byrjar frá 0. Eftir hverja dulkóðun/afkóðun aðgerð er ómerkingunni aukið um einn eins og það væri óundirrituð heiltala. Athugaðu að hver TCP klumpur felur í sér tvær AEAD dulkóða/afkóða aðgerðir: eina fyrir farmlengdina og eina fyrir farminn. Þess vegna eykur hver klumpur nonce tvisvar.

Byrjaðu 5 daga ókeypis prufuáskrift þína