Ҳуҷҷатҳои Shadowsocks

AEAD

AEAD Барои рамзгузории тасдиқшуда бо маълумоти алоқаманд аст. Рамзҳои AEAD ҳамзамон махфият, якпорчагӣ ва аслиро таъмин мекунанд. Онҳо дорои иҷрои аъло ва самаранокии барқ ​​дар сахтафзор муосир. Истифодабарандагон бояд то ҳадди имкон рамзҳои AEAD -ро истифода баранд.

Рамзҳои зерини AEAD тавсия дода мешаванд. Амалисозии мувофиқ Shadowsocks бояд AEAD_CHACHA20_POLY1305-ро дастгирӣ кунад. Татбиқҳо барои дастгоҳҳои дорои суръатбахшии сахтафзори AES инчунин бояд AEAD_AES_128_GCM ва AEAD_AES_256_GCM татбиқ карда шаванд.

 

 

 

ном

номи кӯтоҳшуда

Андозаи калид

Андозаи намак

Андозаи ғайрирасмӣ

Андоза барчасбҳо

AEAD_CHACHA20_POLY1305

chacha20-ietf-poly1305

32

32

12

16

AEAD_AES_256_GCM

aes-256-гсм

32

32

12

16

AEAD_AES_128_GCM

aes-128-гсм

16

16

12

16

Хоҳишмандам Феҳристи IANA AEAD барои номгузорӣ ва мушаххасот.

Баромади калидӣ

Калиди асосӣ метавонад мустақиман аз корбар ворид карда шавад ё аз парол тавлид карда шавад.

HKDF_SHA1 функсияест, ки калиди махфӣ, намаки ғайримахфӣ, сатри иттилоотиро мегирад ва зеркалидро тавлид мекунад, ки ҳатто агар калиди махфии вуруд заиф бошад ҳам, аз ҷиҳати криптографӣ қавӣ аст.

HKDF_SHA1 (калид, намак, маълумот) => зеркалиди

Сатри иттилоот зеркалиди тавлидшударо ба контексти мушаххаси барнома мепайвандад. Дар ҳолати мо, он бояд сатри "ss-subkey" бидуни нохунак бошад.

Мо зеркалиди ҳар сеансро аз калиди устои қаблан муштарак бо истифода аз HKDF_SHA1 мегирем. Намак бояд дар тамоми умри калиди устои қаблан муштарак беназир бошад.

Рамзгузории тасдиқшуда / Рамзкушоӣ

AE_encrypt функсияест, ки калиди махфӣ, ғайримахфӣ, паёмро мегирад ва матни рамзӣ ва теги аутентификатсияро тавлид мекунад. Nonce бояд барои калиди додашуда дар ҳар як даъват беназир бошад.

AE_encrypt(калид, ғайрифаъол, паём) => (матн, барчасп)

 

AE_decrypt функсияест, ки калиди махфӣ, ғайримахфӣ, матни рамзӣ, теги аутентификатсияро мегирад ва паёми аслиро тавлид мекунад. Агар ягон вуруд ба вайрон карда шавад, рамзкушоӣ ноком мешавад.

AE_decrypt(калид, ғайрифаъол, рамзгузорӣ, тег) => паём

TCP

Ҷараёни TCP-и рамзгузоришудаи AEAD аз намаки ба таври тасодуфӣ тавлидшуда барои ба даст овардани зеркалиди ҳар як сессия оғоз мешавад ва пас аз он ҳама миқдори порчаҳои рамзгузоришуда. Ҳар як порча дорои сохтори зерин аст:

[дарозии боркунии шифршуда][тегҳои дарозӣ][борбори шифршуда][теги боркунӣ]

 

Дарозии сарбории 2-байтӣ адади бутуни беимзо бо ҳадди 0x3FFF мебошад. Ду битҳои баландтар ҳифз шудаанд ва бояд ба сифр муқаррар карда шаванд. Аз ин рӯ, боркунии боркаш бо 16*1024 - 1 байт маҳдуд аст.

Аввалин амалиёти рамзкунонӣ/рамзшифронии AEAD як лаҳзаи ҳисобкуниро истифода мебарад, ки аз 0 сар мешавад. Пас аз ҳар як амалиёти рамзкунонӣ/рамзшифронӣ, ғайрирасмӣ як маротиба зиёд мешавад, гӯё он адади бутуни беимзошуда бошад. Аҳамият диҳед, ки ҳар як порчаи TCP ду амалиёти рамзкунонӣ/рамзи рамзгузории AEAD-ро дар бар мегирад: яке барои дарозии боркаш ва дигаре барои бори пурбор. Аз ин рӯ, ҳар як порча нонсро ду маротиба зиёд мекунад.

TCP

Ҷараёни TCP-и рамзгузоришудаи AEAD аз намаки ба таври тасодуфӣ тавлидшуда барои ба даст овардани зеркалиди ҳар як сессия оғоз мешавад ва пас аз он ҳама миқдори порчаҳои рамзгузоришуда. Ҳар як порча дорои сохтори зерин аст:

[дарозии боркунии шифршуда][тегҳои дарозӣ][борбори шифршуда][теги боркунӣ]

 

Дарозии сарбории 2-байтӣ адади бутуни беимзо бо ҳадди 0x3FFF мебошад. Ду битҳои баландтар ҳифз шудаанд ва бояд ба сифр муқаррар карда шаванд. Аз ин рӯ, боркунии боркаш бо 16*1024 - 1 байт маҳдуд аст.

Аввалин амалиёти рамзкунонӣ/рамзшифронии AEAD як лаҳзаи ҳисобкуниро истифода мебарад, ки аз 0 сар мешавад. Пас аз ҳар як амалиёти рамзкунонӣ/рамзшифронӣ, ғайрирасмӣ як маротиба зиёд мешавад, гӯё он адади бутуни беимзошуда бошад. Аҳамият диҳед, ки ҳар як порчаи TCP ду амалиёти рамзкунонӣ/рамзи рамзгузории AEAD-ро дар бар мегирад: яке барои дарозии боркаш ва дигаре барои бори пурбор. Аз ин рӯ, ҳар як порча нонсро ду маротиба зиёд мекунад.

Озмоиши ройгони 5-рӯзаи худро оғоз кунед