Dogfennaeth hosanau cysgodol
Llywio
Fformat Ffurfweddu Shadowsocks
Ffurfweddu Ffeil
Mae Shadowsocks yn cymryd ffurfweddiadau fformat JSON:
{
“gweinydd”: “fy_server_ip”,
“porth_ gweinydd”: 8388,
“porth_lleol”: 1080,
“cyfrinair”: “barfoo!”,
“dull”:”chacha20-ietf-poly1305″
}
Fformat JSON
- gweinydd : eich enw gwesteiwr neu IP gweinydd (IPv4/IPv6).
- server_port : rhif porth gweinydd.
- local_port : rhif porthladd lleol.
- cyfrinair: cyfrinair a ddefnyddir i amgryptio trosglwyddiad.
- dull: dull amgryptio.
Dull Amgryptio
Rydym yn ffurfweddu ein gweinyddion ac yn argymell eich bod yn defnyddio'r seiffr AEAD chacha20-ietf-poly1305 oherwydd dyma'r dull cryfaf o amgryptio.
Os ydych chi'n ffurfweddu'ch gweinydd hosanau cysgodol eich hun, gallwch ddewis naill ai “chacha20-ietf-poly1305” neu “aes-256-gcm”.
Cod URI a QR
Mae Shadowsocks ar gyfer Android / IOS hefyd yn cymryd ffurfweddau fformat URI wedi'u hamgodio BASE64:
ss://BASE64-ENCODED-STRING-WITHOUT-PADDING#TAG
Dylai'r URI plaen fod yn: ss://method:password@hostname:port
Nid yw'r URI uchod yn dilyn RFC3986. Dylai'r cyfrinair yn yr achos hwn fod yn destun plaen, nid wedi'i amgodio gan y cant.
Enghraifft: Rydym yn defnyddio gweinydd yn 192.168.100.1:8888 defnyddio bf-cfb dull amgryptio a chyfrinair prawf/!@#:.
Yna, gyda'r URI plaen ss://bf-cfb:test/!@#:@192.168.100.1:8888, gallwn gynhyrchu'r URI wedi'i amgodio BASE64:
> consol.log ( “ss: //” + btoa(“bf-cfb:test/!@#:@192.168.100.1:8888”))
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg
Er mwyn helpu i drefnu a nodi'r URIs hyn, gallwch atodi tag ar ôl y llinyn wedi'i amgodio BASE64:
ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server
Ymdrin â nhw
Mae Shadowsocks yn defnyddio'r cyfeiriadau a geir yn y fformat cyfeiriad SOCKS5:
[math 1-beit][gwesteiwr hyd newidiol][porthladd 2-beit]
Dyma'r mathau o gyfeiriadau a ddiffinnir:
- 0x01 : cyfeiriad IPv4 4-beit yw gwesteiwr.
- 0x03 : llinyn hyd amrywiol yw gwesteiwr, gan ddechrau gyda hyd 1-beit, ac yna enw parth 255-beit ar y mwyaf.
- 0x04 : cyfeiriad IPv16 6-beit yw gwesteiwr.
Mae rhif y porthladd yn gyfanrif endian mawr 2-beit heb ei lofnodi.
TCP
Mae'r cleient ss-local yn cychwyn cysylltiad â ss-remote trwy anfon data wedi'i amgryptio gan ddechrau gyda'r cyfeiriad targed ac yna'r data llwyth tâl. Bydd yr amgryptio yn wahanol yn dibynnu ar y seiffr a ddefnyddir.
[cyfeiriad targed][llwyth cyflog]
Mae'r ss-remote yn derbyn y data wedi'i amgryptio, yna'n dadgryptio a dosrannu'r cyfeiriad targed. Yna mae'n creu cysylltiad TCP newydd i'r targed ac yn anfon y data llwyth tâl ymlaen ato. Mae ss-remote yn derbyn ateb o'r targed yna'n amgryptio'r data a'i anfon ymlaen yn ôl i ss-local nes iddo gael ei ddatgysylltu.
At ddibenion obfuscation, dylai lleol ac anghysbell anfon y data ysgwyd llaw gyda rhywfaint o lwyth tâl yn y pecyn cyntaf.
Cynllun Datblygu Unedol
Mae ss-local yn anfon y pecyn data wedi'i amgryptio sy'n cynnwys y cyfeiriad targed a'r llwyth tâl i ss-remote.
[cyfeiriad targed][llwyth cyflog]
Unwaith y bydd y pecyn wedi'i amgryptio wedi'i dderbyn, mae ss-remote yn dadgryptio ac yn dosrannu'r cyfeiriad targed. Yna mae'n anfon pecyn data newydd gyda'r llwyth tâl i'r targed. Mae ss-remote yn derbyn y pecynnau data o'r targed ac yn rhag-redeg y cyfeiriad targed i'r llwyth tâl ym mhob pecyn. Anfonir copïau wedi'u hamgryptio yn ôl i ss-local.
[cyfeiriad targed][llwyth cyflog]
Gellir berwi'r broses hon i ss-remote gan berfformio cyfieithiad cyfeiriad rhwydwaith ar gyfer ss-local.