Shadowsocks-ի փաստաթղթեր

AEAD

AEAD նշանակում է վավերացված գաղտնագրում ասոցացված տվյալների հետ: AEAD ծածկագրերը միաժամանակ ապահովում են գաղտնիություն, ամբողջականություն և իսկականություն: Նրանք ունեն գերազանց կատարում և էներգիայի արդյունավետություն ժամանակակից սարքավորումների վրա: Օգտագործողները պետք է հնարավորինս օգտագործեն AEAD ծածկագրերը:

Առաջարկվում են հետևյալ AEAD ծածկագրերը. Համապատասխան Shadowsocks-ի իրականացումները պետք է աջակցեն AEAD_CHACHA20_POLY1305-ին: Սարքավորումների AES արագացում ունեցող սարքերի ներդրումները պետք է նաև կիրառեն AEAD_AES_128_GCM և AEAD_AES_256_GCM:

 

 

 

Անուն

Ծածկանուն

Հիմնական չափը

Աղի չափը

Nonce Size

Tag չափը

AEAD_CHACHA20_POLY1305

chacha20-ietf-poly1305

32

32

12

16

AEAD_AES_256_GCM

աես-256-գսմ

32

32

12

16

AEAD_AES_128_GCM

աես-128-գսմ

16

16

12

16

Դիմեք IANA AEAD գրանցամատյան անվանման սխեմայի և ճշգրտման համար:

Բանալի ածանցում

Հիմնական բանալին կարող է մուտքագրվել անմիջապես օգտվողից կամ ստեղծվել գաղտնաբառից:

HKDF_SHA1 ֆունկցիա է, որը վերցնում է գաղտնի բանալի, ոչ գաղտնի աղ, տեղեկատվական տող և արտադրում է ենթաբանալին, որը կրիպտոգրաֆիկորեն ուժեղ է, նույնիսկ եթե մուտքային գաղտնի բանալին թույլ է:

HKDF_SHA1 (բանալի, աղ, տեղեկատվություն) => ենթաբանալին

Տեղեկատվական տողը կապում է ստեղծված ենթաբանալին կոնկրետ հավելվածի համատեքստին: Մեր դեպքում դա պետք է լինի «ss-subkey» տողը առանց չակերտների:

Մենք բխում ենք յուրաքանչյուր նստաշրջանի ենթաբանալին նախապես համօգտագործվող հիմնական բանալիից՝ օգտագործելով HKDF_SHA1: Աղը պետք է եզակի լինի նախապես համօգտագործված հիմնական բանալի ողջ կյանքի ընթացքում:

Նույնականացված գաղտնագրում/գաղտնագրում

AE_encrypt-ը ֆունկցիա է, որը վերցնում է գաղտնի բանալի, ոչ գաղտնի նոնս, հաղորդագրություն և արտադրում է գաղտնագրված տեքստ և նույնականացման պիտակ: Nonce-ը պետք է եզակի լինի տվյալ բանալիի համար յուրաքանչյուր կանչում:

AE_encrypt (բանալին, ոչ, հաղորդագրություն) => (գաղտնագրված տեքստ, պիտակ)

 

AE_decrypt-ը ֆունկցիա է, որը վերցնում է գաղտնի բանալի, ոչ գաղտնի ոչ միս, ծածկագրված տեքստ, իսկությունը հաստատող պիտակ և արտադրում է բնօրինակ հաղորդագրություն: Եթե ​​մուտքագրվածներից որևէ մեկը կեղծվի, ապա գաղտնազերծումը չի հաջողվի:

AE_decrypt (բանալի, nonce, ciphertext, tag) => հաղորդագրություն

TCP

AEAD գաղտնագրված TCP հոսքը սկսվում է պատահականորեն ստեղծվող աղով, որպեսզի ստացվի յուրաքանչյուր նստաշրջանի ենթաբանալին, որին հաջորդում է ցանկացած քանակությամբ գաղտնագրված կտոր: Յուրաքանչյուր կտոր ունի հետևյալ կառուցվածքը.

[կոդավորված ծանրաբեռնվածության երկարությունը] [length tag]]

 

Օգտակար բեռի երկարությունը 2 բայթ մեծ-էնդիան անստորագիր ամբողջ թիվ է, որը ծածկված է 0x3FFF-ով: Ավելի բարձր երկու բիթերը վերապահված են և պետք է սահմանվեն զրոյի: Ուստի ծանրաբեռնվածությունը սահմանափակված է 16*1024 – 1 բայթով:

Առաջին AEAD գաղտնագրման/գաղտնազերծման գործողությունը օգտագործում է 0-ից սկսած հաշվող նենս: Յուրաքանչյուր գաղտնագրման/գաղտնազերծման գործողությունից հետո նոնսը ավելանում է մեկով, կարծես անստորագիր փոքր էնդյան ամբողջ թիվ է: Նկատի ունեցեք, որ յուրաքանչյուր TCP կտոր ներառում է երկու AEAD գաղտնագրման/գաղտնազերծման գործողություն՝ մեկը ծանրաբեռնվածության երկարության համար և մեկը՝ օգտակար բեռի համար: Հետևաբար, յուրաքանչյուր կտոր ավելացնում է նենսը երկու անգամ:

TCP

AEAD գաղտնագրված TCP հոսքը սկսվում է պատահականորեն ստեղծվող աղով, որպեսզի ստացվի յուրաքանչյուր նստաշրջանի ենթաբանալին, որին հաջորդում է ցանկացած քանակությամբ գաղտնագրված կտոր: Յուրաքանչյուր կտոր ունի հետևյալ կառուցվածքը.

[կոդավորված ծանրաբեռնվածության երկարությունը] [length tag]]

 

Օգտակար բեռի երկարությունը 2 բայթ մեծ-էնդիան անստորագիր ամբողջ թիվ է, որը ծածկված է 0x3FFF-ով: Ավելի բարձր երկու բիթերը վերապահված են և պետք է սահմանվեն զրոյի: Ուստի ծանրաբեռնվածությունը սահմանափակված է 16*1024 – 1 բայթով:

Առաջին AEAD գաղտնագրման/գաղտնազերծման գործողությունը օգտագործում է 0-ից սկսած հաշվող նենս: Յուրաքանչյուր գաղտնագրման/գաղտնազերծման գործողությունից հետո նոնսը ավելանում է մեկով, կարծես անստորագիր փոքր էնդյան ամբողջ թիվ է: Նկատի ունեցեք, որ յուրաքանչյուր TCP կտոր ներառում է երկու AEAD գաղտնագրման/գաղտնազերծման գործողություն՝ մեկը ծանրաբեռնվածության երկարության համար և մեկը՝ օգտակար բեռի համար: Հետևաբար, յուրաքանչյուր կտոր ավելացնում է նենսը երկու անգամ:

Սկսեք ձեր 5-օրյա անվճար փորձաշրջանը