Leabhar shadowsocks

Cruth rèiteachaidh Shadowsocks

Faidhle rèiteachaidh

Bidh Shadowsocks a’ gabhail rèiteachaidhean cruth JSON:

{

    "frithealaiche": "my_server_ip",

    "Server_port": 8388,

    “local_port”: 1080,

    “facal-faire”: “barfoo!”,

    "modh":"chacha20-ietf-poly1305"

}

Cruth JSON

  • frithealaiche: d’ ainm aoigheachd no IP an fhrithealaiche (IPv4/IPv6).
  • server_port : àireamh port an fhrithealaiche.
  • local_port: àireamh port ionadail.
  • facal-faire: facal-faire air a chleachdadh gus gluasad a chrioptachadh.
  • modh: modh crioptachaidh.

Dòigh crioptachaidh

Bidh sinn a’ rèiteachadh ar frithealaichean agus a’ moladh gun cleachd thu an cipher chacha20-ietf-poly1305 AEAD oir is e seo an dòigh as làidire airson crioptachadh. 

Ma tha thu a’ rèiteachadh an t-seirbheisiche shadowsocks agad fhèin, faodaidh tu taghadh bho “chacha20-ietf-poly1305” no “aes-256-gcm”.

Còd URI & QR

Bidh Shadowsocks airson Android / IOS cuideachd a’ toirt configs cruth URI còdaichte BASE64:

ss://BASE64-ENCODED-STRING-WITHOUT-PADDING#TAG

 

Bu chòir gum biodh an URI sìmplidh: ss: // Method: password@hostname: port

Chan eil an URI gu h-àrd a’ leantainn RFC3986. Bu chòir gum biodh am facal-faire sa chùis seo mar theacsa shìmplidh, gun a bhith air a chòdachadh sa cheud.



Eisimpleir: Tha sinn a’ cleachdadh frithealaiche aig 192.168.100.1:8888 cleachdadh bf-cfb modh crioptachaidh agus facal-faire deuchainn /!@#:

 

An uairsin, leis an URI sìmplidh ss://bf-cfb:test/!@#:@192.168.100.1:8888, is urrainn dhuinn an URI còdaichte BASE64 a ghineadh: 

 

> console.log ( "ss: //" + btoa ("bf-cfb: test/!@#:@192.168.100.1:8888"))

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg

 

Gus cuideachadh le bhith ag eagrachadh agus ag aithneachadh nan URIan sin, faodaidh tu taga a chuir a-steach às deidh sreang còd BASE64:

ss://YmYtY2ZiOnRlc3QvIUAjOkAxOTIuMTY4LjEwMC4xOjg4ODg#example-server

A ’cur aghaidh air

Bidh Shadowsocks a’ cleachdadh nan seòlaidhean a lorgar ann an cruth seòlaidh SOCKS5:

[seòrsa 1-byte] aoigheachd fad caochlaideach] port 2-byte]

 

Seo na seòrsaichean seòlaidh a tha air am mìneachadh:

  • 0x01: tha aoigheachd na sheòladh IPv4 4-byte.
  • 0x03 : Is e sreang fad caochlaideach a th’ ann an aoigheachd, a’ tòiseachadh le fad 1-byte, agus an uairsin ainm àrainn 255-byte aig a’ char as àirde.
  • 0x04: tha aoigheachd na sheòladh IPv16 6-byte.

 

Tha àireamh a’ phuirt na shlànaighear mòr-endian 2-byte gun ainm.

TCP

Bidh an neach-dèiligidh ss-local a’ tòiseachadh ceangal ri ss-remote le bhith a’ cur dàta crioptaichte a’ tòiseachadh leis an t-seòladh targaid agus an uairsin an dàta pàighidh pàighidh. Bidh an crioptachadh eadar-dhealaichte a rèir an cipher a thathar a’ cleachdadh.

[seòladh targaid] [luchd-pàighidh]

Bidh an ss-remote a’ faighinn an dàta crioptaichte, an uairsin a’ dì-chrioptachadh agus a’ parsadh an t-seòlaidh targaid. An uairsin cruthaichidh e ceangal TCP ùr ris an targaid agus cuiridh e air adhart an dàta pàighidh pàighidh thuige. Bidh ss-remote a’ faighinn freagairt bhon targaid agus an uairsin a’ crioptachadh an dàta agus ga chuir air ais gu ss-local gus an tèid a dhì-cheangal.

Airson adhbharan obfuscation, bu chòir ionadail agus iomallach an dàta crathadh làimhe a chuir le beagan eallach pàighidh sa chiad phacaid.

UDP

Bidh ss-local a’ cur a’ phacaid dàta crioptaichte anns a bheil an seòladh targaid agus an t-uallach pàighidh gu ss-remote.

[seòladh targaid] [luchd-pàighidh]

Cho luath ‘s a gheibhear am pasgan crioptaichte, bidh ss-remote a’ dì-chrioptachadh agus a ’parsadh an t-seòladh targaid. Bidh e an uairsin a’ cur pasgan dàta ùr leis an uallach pàighidh chun targaid. Bidh ss-remote a’ faighinn na pacaidean dàta bhon targaid agus ag ullachadh an t-seòladh targaid chun uallach pàighidh anns gach pacaid. Thèid lethbhric crioptaichte a chuir air ais gu ss-local.

[seòladh targaid] [luchd-pàighidh]

Faodar am pròiseas seo a ghoil sìos gu ss-iomallach a’ coileanadh eadar-theangachadh seòladh lìonra airson ss-local.

Tòisich do dheuchainn 5-latha an-asgaidh