Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

‫ﻫﻮ ﺍﻟﺤﻖ‬

‫ﺩﺍﻧﺸﻜﺪﻩﻱ ﻣﻬﻨﺪﺳﻲ ﻛﺎﻣﭙﻴﻮﺗﺮ‬

‫ﭘﺎﻳﻴﺰ ‪۱۴۰۱‬‬ ‫ﺷﺒﻜﻪﻫﺎﻱ ﻛﺎﻣﭙﻴﻮﺗﺮﻱ‬

‫ﭘﺮﻭﮊﻩ ﭘﺎﻳﺎﻧﻲ‬
‫ﺍﺳﺘﺎﺩ‪ :‬ﻣﻬﺪﻱ ﺟﻌﻔﺮﻱ‬

‫‪ ۱‬ﻃﺮﺡ ﻛﻠﻲ‬
‫ﺗﺮﺍﻓﻴﻚ ﻋﺒﻮﺭﻱ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﻣﺨﺘﻠﻒ ﻛﻪ ﺑﺮ ﺭﻭﻱ ﺑﺴﺘﺮ ﺍﻳﻨﺘﺮﻧﺖ ﺩﺭ ﺣﺎﻝ ﺍﺭﺗﺒﺎﻁ ﻫﺴﺘﻨﺪ)ﻛﻼﻳﻨﺖ ﻭ ﺳﺮﻭﺭ(ﺑﺎﻳﻜﺪﻳﮕﺮ ﻣﺘﻔﺎﻭﺕ ﺍﺳﺖ‪ .‬ﺑﻪ ﻃﻮﺭ ﻣﺜﺎﻝ‬
‫ﺗﺮﺍﻓﻴﻚ ﻋﺒﻮﺭﻱ ﭘﻴﺎﻡ ﺭﺳﺎﻥﻫﺎﻱ ﻣﺨﺘﻠﻒ ﻭ ﻳﺎ ﺣﺘﻲ ﻣﺮﻭﺭﮔﺮﻫﺎﻱ ﻣﺨﺘﻠﻒ ﺍﻟﮕﻮﻫﺎﻱ ﺧﺎﺹ ﺧﻮﺩ ﺭﺍ ﺩﺍﺭﻧﺪ ﻛﻪ ﺑﺴﻴﺎﺭﻱ ﺍﺯ ﺍﻟﮕﻮﺭﻳﺘﻢﻫﺎ ﻣﻲﺗﻮﺍﻧﻨﺪ ﺍﻳﻦ‬
‫ﺍﻟﮕﻮﻫﺎ ﺭﺍ ﺗﺸﺨﻴﺺ ﺩﻫﻨﺪ ﻭ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺳﻴﺎﺳﺖ ﻫﺎﻱ ﺧﻮﺩ ﺗﺮﺍﻓﻴﻚ ﺭﺍ ﻋﺒﻮﺭ ﺩﻫﻨﺪ ﻳﺎ ﺩﺭﺍﭖ ﻛﻨﻨﺪ!‬
‫ﺩﺭ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﻫﺪﻑ ﺍﺻﻠﻲ ﺍﻳﻦ ﺍﺳﺖ ﻛﻪ ﺗﺮﺍﻓﻴﻚ ﻋﺒﻮﺭﻱ ﺗﻤﺎﻡ ﺑﺮﻧﺎﻣﻪ ﻫﺎﻱ ﺩﺭ ﺣﺎﻝ ﺍﺟﺮﺍ ﺩﺭ ﺳﻤﺖ ﻛﺎﺭﺑﺮ ﺑﺎ ﻓﺮﺽ ﺍﻳﻨﻜﻪ ﺑﻪ ﻳﻚ ﺳﺮﻭﺭ ﻣﻲ ﺭﺳﻨﺪ‪،‬‬
‫ﻳﻚ ﺍﻟﮕﻮ ﻳﻜﺴﺎﻥ ﺷﺒﻴﻪ ﺑﻪ ﺑﺎﺯﺩﻳﺪ ﻳﻚ ﺻﻔﺤﻪ ﻭﺏ ‪ http, https‬ﺩﺍﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺑﺮﺍﻱ ﺩﺭﻙ ﺑﻬﺘﺮ ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺑﻪ ﻛﺪ ﮔﻴﺖ ‪ https://github.com/cbeuw/Cloak‬ﻧﮕﺎﻫﻲ ﺑﻴﺎﻧﺪﺍﺯﻳﺪ‪.‬‬

‫ﺷﻜﻞ ‪:۱‬‬

‫ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ‬ ‫‪۲‬‬


‫ﺷﻤﺎ ﺑﺎﻳﺪ ﻳﻚ ﻛﻼﻳﻨﺖ ﻭ ﻳﻚ ﺳﺮﻭﺭ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻛﻨﻴﺪ‪.‬ﻭﻇﻴﻔﻪﻱ ﻛﻼﻳﻨﺖ ﺍﻳﻦ ﺍﺳﺖ ﻛﻪ ﺑﺮﺭﻭﻱ ﻳﻚ ﭘﻮﺭﺕ ﻟﻮﻛﺎﻝ ﮔﻮﺵ ﻛﻨﺪ‪ ،‬ﻫﺪﺭ ﺑﺴﺘﻪﻫﺎﻱ ﺩﺭﻳﺎﻓﺘﻲ‬
‫ﺭﺍ ﺗﻐﻴﻴﺮ ﺩﻫﺪ ﻭ ﺑﺎ ﭘﺮﻭﺗﻜﻞ ‪ tcp/udp‬ﺑﻪ ﺳﺮﻭﺭ ﺍﻧﺘﻘﺎﻝ ﺩﻫﺪ‪ .‬ﭘﻴﺸﻨﻬﺎﺩ‪ :‬ﻛﻼﻳﻨﺖ ﺷﺎﻣﻞ ﺩﻭ ﺗﺎﺑﻊ ﺍﺻﻠﻲ ﺑﺎﺷﺪ‪ .‬ﻳﻚ ﺗﺎﺑﻊ ﻣﺴﺌﻮﻝ ﺩﺭﻳﺎﻓﺖ ﺑﺴﺘﻪﻫﺎ ﺍﺯ‬
‫ﺳﺮﻭﺭ ﻭ ﺗﺤﻮﻳﻞ ﺁﻥ ﺑﻪ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﺩﺭﺣﺎﻝ ﺍﺟﺮﺍ ﺍﺳﺖ‪ .‬ﺩﻳﮕﺮﻱ ﻣﺴﺌﻮﻝ ﺩﺭﻳﺎﻓﺖ ﺑﺴﺘﻪﻫﺎ ﺍﺯ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﺩﺭ ﺣﺎﻝ ﺍﺟﺮﺍ ﻭ ﺍﺭﺳﺎﻝ ﺁﻥ ﺑﻪ ﺳﺮﻭﺭ ﺍﺳﺖ‪.‬‬
‫ﺑﺮﻧﺎﻣﻪﻱ ﺳﻤﺖ ﺳﺮﻭﺭ ﻣﻲ ﺑﺎﻳﺴﺖ ﺍﺭﺗﺒﺎﻁ ﺧﻮﺩ ﺑﺎ ﻛﻼﻳﻨﺖ ﺭﺍ ﻧﮕﻬﺪﺍﺭﺩ ﻭ ﺑﺴﺘﻪﻫﺎﻱ ‪ http/https‬ﺩﺭﻳﺎﻓﺖ ﺷﺪﻩ ﺍﺯ ﻛﻼﻳﻨﺖ ﺭﺍ ﺑﺎﺯﺳﺎﺯﻱ ﻛﻨﺪ‪ .‬ﺑﺪﻳﻦ‬
‫ﻣﻌﻨﻲ ﻛﻪ ﻫﺪﺭﻫﺎﻱ ﺗﻐﻴﻴﺮﻳﺎﻓﺘﻪ ﺩﺭ ﻛﻼﻳﻨﺖ ﺭﺍ ﺣﺬﻑ ﻛﻨﺪ‪ .‬ﺳﭙﺲ ﺑﺎﻳﺪ ﺑﺴﺘﻪﻱ ‪ http/https‬ﺭﺍ ﺑﺴﺎﺯﺩ ﻭ ﺑﻪ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﺩﺭ ﺣﺎﻝ ﺍﺟﺮﺍ ﺩﺭ ﺳﻤﺖ ﺳﺮﻭﺭ‬
‫ﺗﺤﻮﻳﻞ ﺩﻫﺪ‪ .‬ﻭ ﺩﺭ ﻧﻬﺎﻳﺖ ﭘﺎﺳﺦ ﺩﺍﺩﻩ ﺷﺪﻩ ﺗﻮﺳﻂ ﺑﺮﻧﺎﻣﻪﻫﺎﻱ ﺩﺭ ﺣﺎﻝ ﺍﺟﺮﺍ ﺭﺍ ﺑﻪ ﺳﻤﺖ ﻛﻼﻳﻨﺖ ﺍﺭﺳﺎﻝ ﻛﻨﺪ‪ .‬ﻓﺮﺍﻣﻮﺵ ﻧﻜﻨﻴﺪ ﻛﻪ ﺩﺭ ﻛﻼﻳﻨﺖ ﻭ‬
‫ﺳﺮﻭﺭ ﺩﻭ ﺗﺎﺑﻊ ﺍﺭﺳﺎﻝ ﻭ ﺩﺭﻳﺎﻓﺖ ﺑﺎﻳﺪ ﺑﻪ ﺻﻮﺭﺕ ﻣﻮﺍﺯﻱ ﻛﺎﺭﻛﻨﺪ ﻭ ﺍﺟﺎﺯﻩ ﻧﻮﺷﺘﻦ ﻫﻢ ﺯﻣﺎﻥ ﺑﺮ ﺭﻭﻱ ﻳﻚ ﺑﻼﻙ ﺭﺍ ﻧﺪﺍﺭﻧﺪ‪ .‬ﺑﻨﺎﺑﺮﺍﻳﻦ ‪ multithread‬ﻳﺎ‬
‫‪ multiprocess‬ﺑﺎﻳﺪ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺷﻮﻧﺪ‪ .‬ﺍﮔﺮ ﺍﺭﺗﺒﺎﻁ ﺩﻭ ﺑﺨﺶ ‪ Xclient‬ﻭ ‪ Xserver‬ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ‪ tls‬ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻛﻨﻴﺪ ﻧﻤﺮﻩ ﺍﺿﺎﻓﻲ ﺧﻮﺍﻫﺪ‬
‫ﺩﺍﺷﺖ‪.‬‬
‫� ﺍﻳﻦ ﭘﺮﻭﮊﻩ ﺑﻪ ﺻﻮﺭﺕ ﺗﻴﻢ ﺩﻭﻧﻔﺮﻩ ﻭ ﻳﺎ ﺗﻚ ﻧﻔﺮﻩ ﻗﺎﺑﻞ ﺍﻧﺠﺎﻡ ﺍﺳﺖ‪.‬‬
‫� ﺩﻭ ﻗﻄﻌﻪ ﻛﺪ ‪ Xclient‬ﻭ ‪ Xserver‬ﺭﺍ ﺑﺎﻳﺪ ﺑﺮﺍﻱ ﻣﻦ ﺍﺭﺳﺎﻝ ﻛﻨﻴﺪ‪.‬‬
‫� ﺑﺮﺍﻱ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﻣﻲ ﺗﻮﺍﻧﻴﺪ ﺍﺯ ﭘﺎﻳﺘﻮﻥ ﻭ ﻳﺎ ‪ c++‬ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﻴﺪ‪.‬‬

‫‪۱-۱‬‬
‫� ﺑﺮﺍﻱ ‪ tls‬ﻣﻲﺗﻮﺍﻧﻴﺪ ﺍﺯ ﭘﻜﻴﺞﻫﺎﻱ ﭘﻴﺎﺩﻩ ﺳﺎﺯﻱ ﺷﺪﻩ ﺁﻥ ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﻴﺪ‪.‬‬
‫� ﻛﺪ ﺑﺎﻳﺪ ﻫﻤﺮﺍﻩ ﺩﺍﻛﻴﻮﻣﻨﺖ ﺑﺎﺷﺪ ﻭ ﺗﻤﺎﻡ ﻣﺮﺍﺣﻞ ﺭﺍ ﻛﺎﻣﻞ ﺗﻮﺿﻴﺢ ﺩﺍﺩﻩ ﺑﺎﺷﻴﺪ‪ ،‬ﺗﻮﺟﻪ ﻛﻨﻴﺪ ﻛﻪ ﺑﺨﺸﻲ ﺍﺯ ﻧﻤﺮﻩ ﭘﺮﻭﮊﻩ ﺭﺍ ﺩﺍﻛﻴﻮﻣﻨﺖ ﺧﻮﺍﻧﺎ ﻭ‬
‫ﻗﺎﺑﻞ ﻓﻬﻢ ﺘﺸﻜﻴﻞ ﻣﻲﺩﻫﺪ‪.‬‬

‫‪۲-۱‬‬

You might also like