ํ์ผ์ ์ ์กํ ์ ์๋ค๋ ๊ฒ์ ๋ด๋ถ ๊ณ ๋ฐ์ ๋ฑ์ ํ์ฑํํ๋ ๋ฐ ์ ์ฉํ ๊ธฐ๋ฅ์ด ๋ ๊ฒ์ ๋๋ค.
์, ์ด๊ฒ์ ์ค๋๋ ๋ฌธ์ ์ ๋๋ค. ์ด์ ์๋ฃํ ์๊ฐ์ ๋๋ค. ํ์ผ ์ ์ก์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ๋ถ๋ถ์ ์ผ๋ก๋ ํผ๋๋ฐฑ์ ์์ฒญํ๊ณ , ๋ถ๋ถ์ ์ผ๋ก๋ ๋ ์์ ์ ์ค๋ํ๊ณ , ๋ถ๋ถ์ ์ผ๋ก๋ ๋ธ๋ ์ธ๋คํ์ด์ง๋ง ์ ์ฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํ์ผ ์ ์ก์ ๋ํ ๋ ๊ฐ์ง ์ ํ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค. ํ์ฑ ์ฌ์ฉ์ ๋ ๋ํ ์ค์ ํ์ผ์ ๋ณด๋ด๊ณ ๋ฐ์ผ๋ฉฐ ํ์ผ์ด ๋ํ์ ์ผ๋ถ๊ฐ ๋๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ํ์ผ ์ญ์ ๋ ์จ๋ผ์ธ ์ํ๋ฅผ ์ ์งํ๊ณ ์ฆ์ ํ์ฑํ๋์ง ์๋๋ผ๋ ์ธ์ ๋ ์ง ํ์ผ์ ์์ ํ ์ ์๊ธฐ๋ฅผ ์ํ๋ ์์์ Ricochet ์ฌ์ฉ์๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
๋๋ถ๋ถ์ ๋ฉ์์ง ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ฆฌ ๋ ๋ํ์ ์ผ๋ถ๋ก ํ์ผ ์ ์ก์ ์ธ๋ผ์ธ์ผ๋ก ์ํํ๊ธฐ๋ฅผ ์ํ๋ฉฐ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ(๋ธ๋ผ์ฐ์ ํฌํจ)์ ์ฌ์ฉํ ํ์๊ฐ ์์ด์ผ ํฉ๋๋ค.
ํ์ผ์ ๋ํ๋ก ๋์ด๋ค ๋๋ ๊ฒ์ ํ์ผ์ ๋ณด๋ด๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. ํ๋ฆผ์์ด ์ด๋ฐ ์์ผ๋ก ์ค์๋ก ํ์ผ์ ๋ณด๋ด๋ ๊ฒ์ด ์ฌ์ธ ์ ์์ต๋๋ค. ํ์ผ ์ ๋ฉ์์ง ์ ๋ ฅ ์์์ ๋๊ณ ๋ณด๋ด๊ธฐ ์ ์ ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ๋ณด๋ด๊ธฐ ์ ์ ์นด์ดํธ๋ค์ด์ ์ฌ์ฉํ๋ฉด ๋ ์ฝ๊ฒ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค. ๋ํ ํค๋์ ๋ฒํผ์ด๋ ๋ฉ์์ง ์ ๋ ฅ ๊ทผ์ฒ์ ํ์ผ์ ๋ณด๋ด๊ธฐ ์ํ ๋ ๋ค๋ฅธ ๊ฐ์์ ์ธ UI ๋ฉ์๋ ๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ ๊ณต๋ ํ์ผ ์ ์ฌ์ฉ์๊ฐ ์์ด๋ฒ๋ ธ์ ์ ์๋ค๊ณ ํฉ๋ฆฌ์ ์ผ๋ก ๊ฐ์ ํ๊ธฐ์ ์ถฉ๋ถํ ์๊ฐ ํ์
Ricochet์ ์ํ ๋ชจ๋ธ์ ๋ํ ๋ฐ์ดํฐ(ํ์ผ ํฌํจ)๋ฅผ ์๋์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ ๊ธ์งํฉ๋๋ค. ์ํ ๋ชจ๋ธ์ ์ฐ๋ฝ์ฒ๋ฅผ ์ ์ฌ์ ์ธ ๊ณต๊ฒฉ์๋ก ๊ฐ์ฃผํ๋ฏ๋ก ์ฐ๋ฝ์ฒ๊ฐ ์ฌ์ฉ์ ์น์ธ ์์ด ํธ๋ฆฌ๊ฑฐํ ์ ์๋ ์ผ๋ จ์ ์์ ์ ์ค์ด๊ณ ์ ํฉ๋๋ค. ์ด๋ ํ์ผ ์ ์ก์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ช ์์ ์๋ฝ์ ์๊ตฌ ํด์ผ ํจ์ ์์ฌํฉ๋๋ค. ์ฌ์ฉ์๋ ๊ธฐ๋ณธ ์์น๋ฅผ ๊ตฌ์ฑํ์ง ์๋ ํ ๊ฐ ํ์ผ์ ์ ์ฅํ ์์น๋ฅผ ๋ช ์์ ์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ํ์ฑ ์ฌ์ฉ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ํ์ผ ์ญ์ ์ ๊ฒฝ์ฐ ํ์ผ ์ ์๋์ผ๋ก ์ ์ฅ ํ๋ ํฉ๋๋ค (์ฐ๋ฝ์ฒ๋ณ๋ก๋ ๊ฐ๋ฅ).
ํ์ฑ ์ ์ ๋๋ ์ ์ก์ ์ ๋น์ฌ์๊ฐ ์ฝ๊ฒ ์์๋ณผ ์ ์์ด์ผ ํฉ๋๋ค. ๋ํ ์์ ์ ์ก ๋ํ ํค๋ (์ ์ก ํญ?) ๋ฐ/๋๋ ์ ์ญ ์ ์ก ์ํ์ ์งํ ์ํฉ์ด ์ด๋๊ฐ์ ์์ด์ผ ํฉ๋๋ค. ์ ์ก์ด ์งํ๋๋ ๋์ ๋ํ๊ฐ ๊ณ์ ์งํ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ ํนํ ์ค์ํฉ๋๋ค. ์ ์ก์ด ์๋ฃ๋๋ฉด ๋ํ ์ ๋ ์ผ๋ก
๋ธ๋ผ์ฐ์ ๊ฒฝ๊ณ ์ ์ ์ฌํ ๊ฒฝ๊ณ ์ ํจ๊ป ์ ํด๋ฆญํ๋ฉด ์๋ฃ๋ ์ ์ก์ด
Tor๋ ์ ๋ขฐํ ์ ์๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ผ๋ฏ๋ก ์ฌ๊ฐํ๋ ๋ฅ๋ ฅ์ด ์ค์ํฉ๋๋ค. ๊ฐ๋ฅํ ๋๋ง๋ค ์๋์ผ๋ก ๋ค์ ์ฐ๊ฒฐํ๊ณ ๊ธฐ์กด์ ๋ถ์์ ํ ํ์ผ ์์ ์ ์ฅํ์ฌ ์ฌ๊ฐํ ์ ์์ด์ผ
๋ํ์ ํจ๊ป ์ธ๋ผ์ธ ์ผ๋ก ์ด๋ฏธ์ง ๋์ฝ๋๋ฅผ ์ ๋ขฐํ์ง ์๋๋ค๋ ์ ์ ์ ์ธํ๊ณ ํ์ผ ์ ์ก์ด ์๋ฃ๋๋ฉด ์ด ์์ ์ ์ํํ๊ธฐ ์ฝ์ต๋๋ค. ๊ฐ๋ ฅํ๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ ํ ๋์ฝ๋ ๋๋ ํ๋ซํผ ๊ฐ seccomp ์คํ์ผ ์๋๋ฐ์ฑ์ ์ฐพ์ผ๋ฉด ์ด ์์ ์ ์ํํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๋๊ตฐ๊ฐ๋ ์ฐ๋ฆฌ๊ฐ ์ ์ด๋ ์ฐ๊ฒฐ์ ๊ตฌ์ถํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ด ์ ํ๊น์ง ๋ฒํผ๋งํ์ฌ ํ์ผ์ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ์ง์ ํ์ฌ ์ ์ก ํ๋ก์ธ์ค๊ฐ ๋ ๋น ๋ฅด๊ฒ ๋ณด์ด๋๋ก ํ์ต๋๋ค.
ํ์ผ ๋๋ ์ ์ฒด ํด๋์ ์ผ๊ด ์ ์ก์ ํฉ๋ฆฌ์ ์ธ ํ๋๊น์ง ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ ์ก ์๋ฒ์์ ๋ค์ด๋ก๋ํ ํ์ผ ์ ํด์ ๋ฅผ ์๋์ผ๋ก
ํ์ผ ๋ฐ์ดํฐ๋ Ricochet์ ๊ธฐ๋ณธ ํ๋กํ ์ฝ ์ฐ๊ฒฐ์ ํตํด ๋ณด๋ผ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํจํทํํ๋๋ผ๋ Tor ์คํธ๋ฆผ์ ๋ฒํผ๋ง ์์ฑ ๋๋ฌธ์ ์จ๊ฒจ์ง ์๋น์ค ์ฐ๊ฒฐ์ด ํ๋ฌ๋ฉ๋ ๋ ๋งค์ฐ ๋ง์ ์์ ๋ฐ์ดํฐ๊ฐ ๋๊ธฐ์ด์ ์์ต๋๋ค. ์ด๋ก ์ธํด ํด๋น ์คํธ๋ฆผ์ ๋ํด ๊ทน๋์(์ข ์ข 30์ด ์ด์) ๋๊ธฐ ์๊ฐ์ด ๋ฐ์ํฉ๋๋ค. ๋ค๋ฅธ ํํ์ ์๋ ์ ์ด๋ ์ ์ก ์๋์ ๋๋ฌด ๋ง์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๊ฐ๋จํ ๋๋ต์ ํผ์ด ์๋น์ค์ ๋ํ ์ถ๊ฐ ์ฐ๊ฒฐ์ ์ฌ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์ฐ๊ฒฐ์ Tor์ ์ํด ๋์ผํ ํ๋ก์ ๋ค์คํ๋์ง๋ง ๋ฒํผ๋ง ๋์์ ํจ์ฌ ๋ ์ข์ต๋๋ค. ์ผ๋ฐ ํ ์คํธ์์๋ ๋์ผํ ํ๋ก์ ๋ค๋ฅธ ์คํธ๋ฆผ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ๋ฌ๋ฉํ ๋ ๋ฉ์์ง ๋๊ธฐ ์๊ฐ์ ํฐ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
๋ํ ํ๋ก ๊ฒฉ๋ฆฌ ์ต์ ์ ์ฌ์ฉํ์ฌ Tor๊ฐ ์ ์ก์ ์ํ ์ ํ๋ก๋ฅผ ๊ตฌ์ถํ๋๋ก ํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฒ๋ฆฌ๋์ด๋ ๋๊ธฐ ์๊ฐ์ ์ ์ฉํ์ง ์ฌ๋ถ๋ ๋ถ๋ถ๋ช ํ๋ฉฐ ์ถ๊ฐ ๋์ ํ์ ์ ๊ตฌ์ถํ๋ฉด ์ต๋ช ์ฑ ๋๋ ํธ๋ํฝ ๋ถ์์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ง ์ฌ๋ถ๋ ๋ถ๋ถ๋ช ํฉ๋๋ค.
Ricochet์ ํ๋กํ ์ฝ์ ์ด๋ค ์ฐ๊ฒฐ์ ์ฌ์ฉํด์ผ ํ๋์ง ๋ชจํธํ๊ณ ๋ฉ์์ง ์์์ ๋ํ ๊ธฐ๋์น๋ฅผ ์๋ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฝ์ฒ๋น ๋ ์ด์์ ์ธ์ฆ๋ ์ฐ๊ฒฐ์ ํ์ฉํ์ง ์์ต๋๋ค. ์ถ๊ฐ ์ฐ๊ฒฐ์ด Ricochet์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฐ๊ฒฐ์ด ๋ฐ์ดํฐ ์ ์ก์๋ง ์ฌ์ฉ๋จ์ ๋ํ๋ด๊ธฐ ์ํด ๋ค๋ฅด๊ฒ ์ธ์ฆํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ ์ ์ก์ 2์ฐจ ์ฐ๊ฒฐ์ ํตํด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ Ricochet์ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ๋ฅผ ํจํค์งํ ํ์๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ์ต์ ์ ์๊ฐํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๋ด ์๋ ์๊ฐ์ ์ถ๊ฐ ์ฐ๊ฒฐ์์ ํ์ผ ๋ฐ์ดํฐ ์ ์ก์ ์ํด Ricochet์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๊ฒ์ ์์ ํ ๊ฐ๋จํ์ง ์์ต๋๋ค.
ํํ:
๋จ์ :
FileTransferChannel.proto ๋ฐ FileTransferDataChannel.proto ์ WIP ๋ถ๊ธฐ์์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง์ ๋ํ ์ค๋๋ ์์ ์ด ์์ต๋๋ค.
Ricochet ํด๋ผ์ด์ธํธ๋ OnionShare ์ ์ ์ฌํ ๊ฐ๋จํ ๋ด๋ถ ์๋ฒ์ ๊ณ ์ ํ URL์ ์ฌ์ฉํ์ฌ HTTP๋ฅผ ํตํด ํ์ผ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ํด๋น ์๋ฒ๋ ๋์ผํ ์จ๊ฒจ์ง ์๋น์ค, ์๋ก์ด ์์ ์๋น์ค์ ๋ค๋ฅธ(์์์) ํฌํธ์ ์๊ฑฐ๋ ํ๋กํ ์ฝ ๊ฐ์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ํฌํธ๋ฅผ ๊ณต์ ํ ์๋ ์์ต๋๋ค.
ํํ:
๋จ์ :
์ฌ๊ธฐ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋งค์ฐ ์ต์์ด๊ธฐ ๋๋ฌธ์ Ricochet์์ 100% ๊ธฐ๋ฅ ์์ ํ๊ณ ์ฌ์ ๋์ ํธํ HTTP ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ฒ๊ทธ ๊ฐ๋ฅ์ฑ์ ์ต๋ํ ๋ฎ์ถ๊ธฐ ์ํด ๊ตฌํ์ _ํ์ํ_ ๊ธฐ๋ฅ์ผ๋ก ์ ํํ๊ณ (์: ์ฒญํฌ ์ ์ก ์ธ์ฝ๋ฉ ๋๋ ๋ํดํ ์ต์
์ ์ฌ์ฉํ์ง ์์ต๋๋ค.) ๋์์ด ๋๋ ๊ฒฝ์ฐ Connection: close
๊ฐ์ ์คํํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ๋คํธ์ํฌ์ ๋
ธ์ถ๋ ์ฝ๋์ ์์ด ๋งค์ฐ ์ ์ผ๋ฉฐ ์ฌ์ ํ ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ์ ํธํ๋ฉ๋๋ค.
๋์ผํ ์จ๊ฒจ์ง ์๋น์ค ์๋์ ์์ ํฌํธ์ HTTP ์๋ฒ๋ฅผ ๋ฐฐ์นํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์๋ก์ด ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋๋ก ๋๋ฆฌ๊ฑฐ๋ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ๋ง์ ์๋ก์ด ํ๋ก์ ๊ตฌ๋ณ ๊ฐ๋ฅํ ๋คํธ์ํฌ ํ๋์ ํฌํจํฉ๋๋ค. ์ด๊ฒ์ ๋ํ ํผ์ด๊ฐ ์์์ .onion์ ๊ฐ์ ๋ก ์ฐ๊ฒฐํ ์ ์๋๋ก ํ๋ ๋์ผํ .onion ํธ์คํธ ์ด๋ฆ์ ์๊ตฌํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์๋ฒ๊ฐ ํญ์ ์คํ ์ค์ด๋ฉด ์ฐ๋ฝ์ฒ ๋ฐ ๋น ์ฐ๋ฝ์ฒ๊ฐ ์ธ์ ๋ ์ง ์ฐพ์ ์ ์์ง๋ง ์ด๊ฒ์ ๊ฐ์น๊ฐ ์์ด์ผ ํฉ๋๋ค. ํ์ฑ ํ์ผ ์ ์์ด ์์ ๋๋ง ์๋ฒ๊ฐ ํ์ฑ์ธ ๊ฒฝ์ฐ ํด๋น ์ํ๋ ํฌํธ๋ฅผ ๋ฐฐ์ธ ์ ์๋ ์ฐ๋ฝ์ฒ ๋๋ ๋น์ ์ด์๊ฐ ๊ฐ์งํ ์ ์์ต๋๋ค.
Ricochet ํด๋ผ์ด์ธํธ ์ด์ธ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๊ฐ์ฅํ ํ์๊ฐ ์์ต๋๋ค. ์ ํจํ ํ์ผ ์์ฒญ์ด ์๋ ์ฌ๋ฐ๋ฅธ ํ์์ ๋ชจ๋ ์์ฒญ์ ์ผ๋ฐ 404 ์ค๋ฅ์ ํจ๊ป ๊ฑฐ๋ถ๋์ด์ผ ํฉ๋๋ค.
๋ค์ด๋ก๋ URL์ ๋ํด ๋ค์์ ์ ์ํฉ๋๋ค.
http://[address].onion:[port]/ricochet/fetch/[uniqid]/[filename]
[address] must be the contact's ricochet connection address
[uniqid] is a large (>=128bit) random identifier
[filename] is the URL-encoded original name of the file
Only HTTP is permitted, no HTTPS. We do not want to require a TLS
implementation, and .onion makes it unnecessary.
Clients may refuse transfer URLs without a /ricochet/fetch/ prefix.
ํ์ผ URL์ ํน์ ์ ์ก๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ฐ๋ฅผ ํ์ฉํ๋ ค๋ฉด ๋ฒ์ ์์ฒญ์ด ์ง์๋์ด์ผ ํ๋ฉฐ ๋ณ๋ ฌ ๋ค์ด๋ก๋๊ฐ ํ์ฉ๋ ์ ์์ต๋๋ค. ์๋ฒ๋ ์์ ์์๊ฒ ์ ์ฒด ์ฌ๋ณธ์ด ์๋ค๊ณ ์๊ฐ๋๋ฉด URL ์ ๊ณต์ ์ค๋จํด์ผ ํฉ๋๋ค.
ํ์ผ ์ ์์ ํ์ฅ๋ ์ฑํ ๋ฉ์์ง๋ก ํจํค์งํ ์ ์์ต๋๋ค.
message ChatMessage {
required string message_text = 1;
optional uint32 message_id = 2;
optional int64 time_delta = 3;
// Indicates a file transfer offer. message_text must begin with a valid
// file transfer URL, terminated by the first whitespace or end of message.
// The rest of message_text, if any, should be displayed as a user message
// along with the file.
optional FileInfo file_info = 4;
}
message FileInfo {
// required
optional string file_name = 1;
optional uint64 file_size = 2;
// optional
optional string content_type = 3;
}
message ChatAcknowledge {
optional uint32 message_id = 1;
optional bool accepted = 2 [default = true];
optional bool file_received = 3;
optional bool file_refused = 4;
}
์ด ๋ฉ์์ง์ ํ์ธ์ ํ์ผ ์ ์๋ ํ์ธํฉ๋๋ค. URL์ ์ฆ์ ์ก์ธ์คํ์ฌ ํ์ผ์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ๋ฉ์์ง๋ฅผ ์ ์์ ์ผ๋ก ํ์ธํ๋ ๊ฒ ์ธ์๋ ์์ ์๋ ์ ์ก์ด ์๋ฃ๋๊ฑฐ๋ ๊ฑฐ๋ถ๋ ๊ฒฝ์ฐ ์ ์ ํ ํ๋๋ฅผ ์ค์ ํ์ฌ ์ถ๊ฐ ChatAcknowledge
๋ณด๋ด์ผ ํฉ๋๋ค. ๋ฐ์ ์๋ ์ด์ ํด๋ผ์ด์ธํธ ๋๋ ๋์ฒด ๋ค์ด๋ก๋๋ฅผ ์ง์ํ๊ธฐ ์ํด ChatAcknowledge
์ ์์กดํ์ง ์๊ณ ์ ์ก๋ ๋ฐ์ดํฐ๋ง์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ก์ด ์๋ฃ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ ์ค๋น๊ฐ ๋์ด ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ํ์ผ ์ ์ก์ ๊ตฌํํ์ง ์๋ ํด๋ผ์ด์ธํธ์ ์์ ํ ํธํ๋๋ค๋ ๊น๋ํ ์์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๋ URL์ ๋ณด๊ณ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ํน๋ณํ ์๋ฏธ๊ฐ ์์ต๋๋ค.
XXX ๋ฐ์ ์๊ฐ ์ทจ์๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์ ์ ์๋์ด ์์ง ์์ต๋๋ค.
๋๋ ์ด ์ผ์ ๊ฝค ๋นจ๋ฆฌ ์งํํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๊ณง ํ๋กํ ์ฝ๊ณผ ์ฃผ์ UX ๊ฒฐ์ ์ ํ์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ ๊ฒ์ ๋๋ค.
์ด๋ฏธ ๋ง์ ์์ ์ฝ๋๊ฐ ์์ฑ๋์ด ์์ง๋ง ์์ ์ด ํ์ํ๊ณ ์ฌ๊ธฐ์์ ๊ฒฐ์ ํ ์ฌํญ์ ๋ฐ๋ผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
์ด๊ฒฌ์๋ ์ฌ๋?
์ด๊ฒ์ ๋์๊ฒ ์ข์ ๋ณด์ธ๋ค. HTTP ์๋ฒ ๋ฐฉํฅ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋๊ปด์ง๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
ํน๋ณํ ์์๋ ์ฐ์ ์์ ์์ด ๋ช ๊ฐ์ง ์๊ฐ:
์ด๊ฒ์ ํ์ผ ์ ์ก์ ๊ตฌํํ์ง ์๋ ํด๋ผ์ด์ธํธ์ ์์ ํ ํธํ๋๋ค๋ ๊น๋ํ ์์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๋ URL์ ๋ณด๊ณ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
- ์ด๊ฒ์ ricochet http ํด๋ผ์ด์ธํธ๊ฐ ํผํ ์ ์์ง๋ง ๋ธ๋ผ์ฐ์ ๋ ํ ์ ์๋ ์์์ ์ธ๊ธํ ๋ช ๊ฐ์ง ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ์ฝ๋๋ค. ๋งํฌ ์ด๊ธฐ์ ๋ํ ๊ฒฝ๊ณ ๊ฐ ์ด๋ฏธ ์์ง๋ง ํ์ผ ์ ์ก์ ๋ฉ์์ง ๋ฐ ์ง์๋๋ ๊ธฐ๋ฅ ์ํ๊ฐ ํผ์ฑ์ ๋ํ ๊ท ์ด์ ์ด ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
- ๋ค์ด๋ก๋ ์ ํด๋ผ์ด์ธํธ ์ธ์ฆ์ด ์์ผ๋ฉด ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์๋ ๊ณต๊ฒฉ ๋ฒกํฐ๊ฐ ์์ต๋๊น? ์ํ ๋ชจ๋ธ์ ์ค์ํ ๊ฒ์ ์๊ฐํ ์ ์์ง๋ง... ์ฐธ๊ณ ๋ก ๋ค์์ ๋ด ๋ง์์ ์ฌ๋ก์ก์ ๋ช ๊ฐ์ง ์ฌํญ์ ๋๋ค.
๋ญ, ๋ฐ๋ ์ฌ๋๊ณผ ํ์ผ์ ๊ณ ์ ํ URL์ ์ฌ์ฉํ์ฌ ์ธ์ฆํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ฌธ์ ๋ ์ ์ก ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด ์ธ์ฆ์ ๋ฐ์ ์ ์ด์ธ์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ์์ ์๋ฅผ ์๋ณํ์ง ์์ผ๋ฉฐ(๋น์ํธํ ๋ฐฉ์์ผ๋ก) ์์ ์๊ฐ ๋ณดํธํ๊ณ ์ ํ๋ ๋น๋ฐ์ ํฌํจํ์ง ์์ต๋๋ค.
- ๊ณต๊ฒฉ์๊ฐ ํผํด์์๊ฒ ํ์ผ์ ์ ๊ณตํ ๋ค์ ๊ณต๊ฒฉ์ ์์ ์ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ฌ๋ฌ ์ฌ๋์ด ๋ชจ๋ ์ฐ๊ฒฐ ํ์ ์ด์ด ์ฑ์ฐ๋๋ก ํ๋ DoS/slowloris ์ ํ ๊ณต๊ฒฉ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
์ ๊ณต๋๋ ํ์ผ๋น ์ฐ๊ฒฐ ์๋ฅผ ์ ํํ๋ ํ DoS ์ต์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ๋์ ํ์ผ์ ํ ์ฌ๋๊ณผ ํ ๋ฒ ๊ณต์ ํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ฏ๋ก(์ด๋ ฅ์ ๋ฐ ๊ธฐํ ๋ฌธ์ ํ์ฉ) ์๊ฒฉํ ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ฑ์ ์ํด ์ต์ ์ ์ก ์๋๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๊ณต๊ฒฉ์๊ฐ ๋๊ตฐ๊ฐ์๊ฒ ํ์ผ์ ์ ๊ณตํ๋๋ก ํ ๋ค์ ์์ ์ด ๊ทธ๋ ๊ฒ ํ๊ณ ์์์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ์ฆ๋ช ํ ์ ์๋ ์์ฑ ๊ณต๊ฒฉ์ด ์์ต๋๊น?
ํฅ๋ฏธ๋ก์ด! ๋๋ ์ด ๊ณต๊ฒฉ์ ์ข์ํ๋ค. ํด๋ผ์ด์ธํธ ์ธ์ฆ์ ๋ณ๊ฒฝํ์ฌ ์ฝํ ๋ฐฉ์ด๊ฐ ์์ง๋ง ์ค์ ๋ก๋ URL ๊ณต์ ๋ฅผ ๊ถ์ฅํ์ง ์์ต๋๋ค. ๋๋ ๋ํ ์ด๋ฌํ URL์ ์์ฑํ ๋ฐ์ ์ธ ์ด์ธ์ ์๋๋ ์์ ์๋ฅผ ์๋ณํ์ง ์๋๋ก ํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
์ค์ ๋ก ์ํธํ ์์ฑ์ ์ ๊ฑฐํ๋ ค๋ฉด ์์ ์๋น์ค์์ ํ์ผ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. _contact_๋น ํ๋์ ์์ ์๋น์ค๊ฐ ํ์ํ์ง ์ฌ๋ถ๋ ํ์คํ์ง ์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก Bob์ Alice์๊ฒ ์ํํ ํ์ผ์ ๋ณด๋ด๋๋ก ์ค๋ํ ์ ์๊ณ Bob์ Carol๊ณผ ์ฃผ์๋ฅผ ๊ณต์ ํ ๋ค์ Carol์ ๊ฐ๋ณ์ ์ผ๋ก Alice๊ฐ ๋ฌดํดํ ํ์ผ์ ๋ณด๋ด๋๋ก ํ ์ ์์ผ๋ฏ๋ก Carol์ ์ํํ URL์ด Alice๋ก๋ถํฐ ์จ ๊ฒ์ธ์ง ํ์ธํ ์ ์์ต๋๋ค.
์ดํธ๋ฆฌ๋ทฐ์ ๊ณผ ๊ด๋ จํ์ฌ ๊ฐ์ฅ ์์ ํ ๋ต๋ณ์ ์ธ์ ๋น ์ฐ๋ฝ์ฒ๋ณ๋ก ๊ณ ์ ํ ์์ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด์ ๋ํ ๋์ ์ฐ๋ ค๋ 1) ์๋น์ค ๊ฒ์ ์ง์ฐ์ ๋๋ค. 2) _๋ง์_ ๋ ๋ง์ ํ๋ก๊ฐ ํ์ํฉ๋๋ค. 3) ํธ๋ํฝ ๋ถ์์ ๋ ๋ช ํํ๊ฒ ๋ํ๋ฉ๋๋ค.
์ธ์ ์ ๋ชจ๋ ํ์ผ ์ ์ก์ ํ๋์ ์์ ์๋น์ค๋ฅผ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ด๋ ์ฌ์ ํ ์ํธํ์ ์ผ๋ก ๊ตฌ๋ณ๋๊ณ ์ด๋ฌํ ๋ชจ๋ ์ํฅ์ ์ค์ด๋ฉฐ ์คํจํ๋ ๊ฒฝ์ฐ๊ฐ ๊ณ ์๋์์ต๋๋ค.
- ํ์ผ ์ด๋ฆ ๋ฐ ์ฝํ ์ธ ์ ํ์ #338์์ ์๋ณ๋ ๊ฒ๊ณผ ๋์ผํ ์ ๋์ฝ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค.
์ฝํ ์ธ ์ ํ์ MIME ์ ํ์ด๋ฏ๋ก ์ ๋์ฝ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ํ์ผ ์ด๋ฆ์ ์ญ์ ํ๊ธฐ ์ํด ๋๋ ์ค๋ ์ ์ ๋ช ๊ฐ์ง ๊ท์น์ ์๊ฐํด ๋์ผ๋ฉฐ, ์ด์ ๋ํด์๋ ์ข ๋ ์๊ฐํด์ผ ํฉ๋๋ค. ๊ฑฐ๊ธฐ์ ๋งค์ฐ ์กฐ์ฌํด์ผํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ HTTP ๋ฆฌ๋๋ ์ ๋ฐ HTTP ์คํธ๋ฆผ์ ๊ฐ๋ก์ฑ๋ ค๋ ๊ธฐํ ์๋๋ฅผ ๊ฑฐ๋ถํด์ผ ํฉ๋๋ค.
๋์ํ๋ค.
- ์๋ชป๋ URL์ 404๊ฐ ์๋๋ผ ์ฐ๊ฒฐ ๋ซ๊ธฐ๋ฅผ ํธ๋ฆฌ๊ฑฐํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค.
์๋ฌด ๋ฐ์๋ ์์ด? ํ . ์ด๋ก ์ธํด ricochet ํด๋ผ์ด์ธํธ๊ฐ ๋คํธ์ํฌ ์ค๋ฅ๊ฐ ์๋์ง ๋๋ URL์ด ๋ ์ด์ ์ ํจํ์ง ์์์ง ์๋ ค์ฃผ๋ ๊ฒ์ด ์ฝ๊ฐ ๋ ๋ชจํธํด์ง๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋๋ ๊ทธ๊ฒ์ ๋ํด ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์ผ๋ฉฐ ์น์ธ๋์ง ์์ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ฌด ๊ฒ๋ ๋ณด๋ด์ง ์๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ํ์ผ ์ ์ก์ ๊ตฌํํ์ง ์๋ ํด๋ผ์ด์ธํธ์ ์์ ํ ํธํ๋๋ค๋ ๊น๋ํ ์์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๋ URL์ ๋ณด๊ณ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
- ์ด๊ฒ์ ricochet http ํด๋ผ์ด์ธํธ๊ฐ ํผํ ์ ์์ง๋ง ๋ธ๋ผ์ฐ์ ๋ ํ ์ ์๋ ์์์ ์ธ๊ธํ ๋ช ๊ฐ์ง ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ์ฝ๋๋ค. ๋งํฌ ์ด๊ธฐ์ ๋ํ ๊ฒฝ๊ณ ๊ฐ ์ด๋ฏธ ์์ง๋ง ํ์ผ ์ ์ก์ ๋ฉ์์ง ๋ฐ ์ง์๋๋ ๊ธฐ๋ฅ ์ํ๊ฐ ํผ์ฑ์ ๋ํ ๊ท ์ด์ ์ด ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
์ฌ๊ธฐ์ ์ฃผ์์ฌํญ์ URL์ ์ฌ๋ ๊ฒ๊ณผ ๋์ผํด์ผ ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด ๋ฐ๋์ ๋์์ธํ ๊ฐ์น๊ฐ ์๋ ์ ์ค ์ผ์ด์ค๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ฒฐ๊ตญ์๋ ๊ณ์ ๋จ์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
์ด๋ค C++/Qt ๊ตฌํ์ด ์ฌ์ฉํ๊ธฐ์ ์ถฉ๋ถํ ์์ ํ์ง ๋ถ๋ถ๋ช
์ด ์ฌ์ฉ ์ฌ๋ก์๋ ์ด๋ฏธ ๋๋ฌด ํฌ์ง๋ง ๋ณด์์ ์ผ๋์ ๋๊ณ ์์ฑ๋์์ต๋๋ค. https://github.com/reyk/httpd
message FileInfo {
// required
optional string file_name = 1;
optional uint64 file_size = 2;
// optional
optional string content_type = 3;
}
์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ํ์ผ ์ด๋ฆ ํ์ฅ์์ ๋ณ๋๋ก ์ถ๊ฐ ์ฝํ ์ธ ์ ํ์ ์ ์ฅํ๋ ค๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ์ด๋ค ํ๋ก๊ทธ๋จ์ ์์ํ ์ง ๋๋ ์ฌ์ฉ์๊ฐ ๊ธฐ๋ํ๋ ๊ฒ์์ ๋น๊ธฐ์ ์ ์ผ๋ก ์์ ๊ธฐ ์ธก์์ ํผ๋์ ์ผ์ผํฌ ์ ์์ต๋๊น?
XXX ๋ฐ์ ์๊ฐ ์ทจ์๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์ ์ ์๋์ด ์์ง ์์ต๋๋ค.
ChatAcknowledge ๋ฉ์์ง์ bool file_refused
ํ๋๊ทธ๊ฐ ๊ทธ๋ ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด ์๋๋๊น? ์๋๋ฉด ํ์ผ์ด ์น์ธ๋ ํ ์ ์ก ์ค์ ์๋ฏธํฉ๋๊น?
์๋ชป๋ URL์ 404๊ฐ ์๋๋ผ ์ฐ๊ฒฐ ๋ซ๊ธฐ๋ฅผ ํธ๋ฆฌ๊ฑฐํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค.
๐
ํฅ๋ฏธ๋ก์ด! ๋๋ ์ด ๊ณต๊ฒฉ์ ์ข์ํ๋ค. ํด๋ผ์ด์ธํธ ์ธ์ฆ์ ๋ณ๊ฒฝํ์ฌ ์ฝํ ๋ฐฉ์ด๊ฐ ์์ง๋ง ์ค์ ๋ก๋ URL ๊ณต์ ๋ฅผ ๊ถ์ฅํ์ง ์์ต๋๋ค. ๋๋ ๋ํ ์ด๋ฌํ URL์ ์์ฑํ ๋ฐ์ ์ธ ์ด์ธ์ ์๋๋ ์์ ์๋ฅผ ์๋ณํ์ง ์๋๋ก ํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
ํด๋ผ์ด์ธํธ ํธํ์ฑ์ ํฌ์ํ๋ฉด์ ์์ ์ ๊ณต๊ฐ ํค๋ ์ธ์ ID๋ก ํ์ผ ๋ด์ฉ์ ์ํธํํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋ ํ์ผ ์ด๋ฆ ํ์ฅ์์ ๋ณ๋๋ก ์ถ๊ฐ ์ฝํ ์ธ ์ ํ์ ์ ์ฅํ๋ ค๋ ์ด์ ๊ฐ ๊ถ๊ธํฉ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ์ด๋ค ํ๋ก๊ทธ๋จ์ ์์ํ ์ง ๋๋ ์ฌ์ฉ์๊ฐ ๊ธฐ๋ํ๋ ๊ฒ์์ ๋น๊ธฐ์ ์ ์ผ๋ก ์์ ๊ธฐ ์ธก์์ ํผ๋์ ์ผ์ผํฌ ์ ์์ต๋๊น?
ํ . ๋ ๊ฐ์ง ์ฉ๋๋ฅผ ์ผ๋์ ๋๊ณ ์์ต๋๋ค.
ํ์ฅ์ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฅผ ๊ฐ์งํ๋ ๊ฒ์ ์ ์ด๋ (์๋ชป๋) ์ฝํ ์ธ ์ ํ์ ๊ฐ๋ ๊ฒ๋งํผ ์ ๋ขฐํ ์ ์์ต๋๋ค. ์ค์ ๋ก ์คํ ํ์ผ๋ก ์ด๋ฆด ๋ ์ด๋ฏธ์ง๋ก ํ์๋์ง ์๋๋ก #2์ ์ฃผ์๊ฐ ํ์ํ๋ค๋ ๊ฒ์ด ๋ง์ต๋๋ค. ๊ทธ ์ด์ ๋ง์ผ๋ก๋ ์ฝํ ์ธ ์ ํ์ ์ ๊ฑฐํ๊ณ ํ์ฅ์์ ์ํด์๋ง ๊ฐ์งํ๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค. ํ ..
XXX ๋ฐ์ ์๊ฐ ์ทจ์๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์ ์ ์๋์ด ์์ง ์์ต๋๋ค.
ChatAcknowledge ๋ฉ์์ง์ bool file_refused ํ๋๊ทธ๊ฐ ๊ทธ๋ ๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด ์๋๋๊น? ์๋๋ฉด ํ์ผ์ด ์น์ธ๋ ํ ์ ์ก ์ค์ ์๋ฏธํฉ๋๊น?
๋ฐ์ ๋ฉ์์ง์ ๋ํด ChatAcknowledge
๋ฅผ ๋ณด๋ด๋ ๊ฒ๋ง ์ ํจํฉ๋๋ค. ์์ ์ ๋ฉ์์ง๋ฅผ ํ์ธํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ file_refused
๋ ๋ฐ๋ ์ฌ๋์ด ์ทจ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง๋ง ๋ณด๋ธ ์ฌ๋์ด "์ด ํ์ผ์ ๋ ์ด์ ์ ๊ณตํ์ง ์์ต๋๋ค"๋ผ๊ณ ๋งํ ์ ์๋ ๋๋ฑํ ๋ฐฉ๋ฒ์ ์์ง ์ ์ํ์ง ์์์ต๋๋ค.
ํด๋ผ์ด์ธํธ ํธํ์ฑ์ ํฌ์ํ๋ฉด์ ์์ ์ ๊ณต๊ฐ ํค๋ ์ธ์ ID๋ก ํ์ผ ๋ด์ฉ์ ์ํธํํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๊น?
ํ์ผ์ ์ํธํํ๋ค๊ณ @s-rah์ ์์ฑ ๊ณต๊ฒฉ์ด ํด๊ฒฐ๋์ง๋ ์์ต๋๋ค. ์ด๋ URL๊ณผ ํจ๊ป ์ํธ ํด๋ ํค๋ฅผ ์ ๊ณตํด์ผ ํ๋ค๋ ์๋ฏธ์ผ ๋ฟ์ ๋๋ค. ์์ ์์ ๊ณต๊ฐ ํค๋ก ์ํธํํ๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ์ผ๋ฐ์ ์ผ๋ก ํ์ผ ๋ฐ์ดํฐ์ ์ฌ์ฉ๋๋ ๋์นญ ์ํธํ ํค๋ฅผ ๋ํํ๊ธฐ ๋๋ฌธ์ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ณด๋ธ ์ฌ๋์ด ํ์ผ์ ์ ๊ณตํ๊ณ ์์์ ์ ์ฆํ๊ธฐ ์ํด ๋ฐ๋ ์ฌ๋์ด ์ ์ ๊ฐ์ธ ํค๋ฅผ ํฌ๊ธฐํ๋๋ก ์๊ตฌํ๋ ๊ฒ์ด ๋ ์ ์ฉํ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ํ์ผ์ ์ ๊ณตํ๊ธฐ ์ ์ ์์ ์์ ๊ณต๊ฐ ํค๋ก ์ฐ๊ฒฐ์ ์ธ์ฆํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ HTTP์ ์ ๋งคํ๋์ง ์์ต๋๋ค(์๋์, TLS ์์). ๊ทธ๊ฒ์ ๋ค๋ฅธ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ฒ์ ์ฐฌ์ฑํ๋ ํฌ์ธํธ๊ฐ ๋ ๊ฒ์ ๋๋ค.
์์ ํ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์์ ์๊ฐ ์๋ฒ๋ฅผ ํธ์คํธํ๊ณ ๋ฐ์ ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ก๋ํ๋ ํด๋ผ์ด์ธํธ ์ญํ ์ ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ HTTP ๋๋ ๋ค๋ฅธ ๊ฒ๊ณผ ํจ๊ป ์๋ํ ์ ์์ง๋ง ์ ์ฐ์ฑ์ ๋ช ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ท์ ๋ฌธ์ ๋ ์์ ๊ฒ์ ๋๋ค.
์ธ๋ผ์ธ ์ด๋ฏธ์ง๋ฅผ ๊ตฌํํ ๋ ์ด๋ค ํ์ผ์ด ์ด๋ฏธ์ง์ธ์ง ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
๊ทํ์ ์ด์ ์ง์ I don't trust image decoders
์ ์ ์ผ๋ก ๋์ํฉ๋๋ค.
์์ ์ ๋ฉ์์ง๋ฅผ ์ธ์ ํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋ด ๋์, ์ค์ ๋ก "๋ฐ์ ์"๋ผ๊ณ ํ์๋๋ ๋์ "์์ ์"๋ฅผ ์ฝ์ต๋๋ค. :)
๋ณด๋ธ ์ฌ๋์ด ํ์ผ์ ์ ๊ณตํ๊ณ ์์์ ์ ์ฆํ๊ธฐ ์ํด ๋ฐ๋ ์ฌ๋์ด ์ ์ ๊ฐ์ธ ํค๋ฅผ ํฌ๊ธฐํ๋๋ก ์๊ตฌํ๋ ๊ฒ์ด ๋ ์ ์ฉํ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ํด ์ฐ๋ฆฌ๋ ํ์ผ์ ์ ๊ณตํ๊ธฐ ์ ์ ์์ ์์ ๊ณต๊ฐ ํค๋ก ์ฐ๊ฒฐ์ ์ธ์ฆํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ HTTP์ ์ ๋งคํ๋์ง ์์ต๋๋ค(์๋์, TLS ์์).
ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฝ๋๋ค. ์ด ์์ ์ ์ํํ๋ ๋ค๋ฅธ ํ๋กํ ์ฝ์ ์๊ฐ ์์ต๋๊น? ๋๋ ์ด๋ป๊ฒ ์ค์ ํ ์ ์์ต๋๊น? ๋ ธ์ด์ฆ ํ๋ ์์ํฌ๋ https://github.com/ricochet-im/ricochet/issues/72#issuecomment -258894126์ ์ธ๊ธ๋ ๊ฒ์ฒ๋ผ ์ฌ๊ธฐ์์ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋๊ตฐ๊ฐ๊ฐ ์ด๊ฒ์ ๋นจ๋ฆฌ ํ์๋ก ํ๋ค๋ฉด, ๋น์ ์ ๋ฆฌ์ฝ์ ฐ ์ ํจ๊ป
-----PGP ์๋ช
๋ฉ์์ง ์์-----
ํด์: SHA512
์กด ๋ธ๋ฃฉ์ค:
HTTP๋ง ํ์ฉ๋๊ณ HTTPS๋ ํ์ฉ๋์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ TLS๋ฅผ ์๊ตฌํ๊ณ ์ถ์ง ์์ต๋๋ค
๊ตฌํํ๊ณ .onion์ ์ฌ์ฉํ๋ฉด ํ์ํ์ง ์์ต๋๋ค.
์ด๊ฒ์ด Ricochet์ ์ํ ๋ชจ๋ธ์ ์ผ๋ถ์ธ์ง ํ์คํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ Whonix์ ๊ฐ์ ํ๊ฒฝ์์ Tor ํด๋ผ์ด์ธํธ๋ ๋ด์ฉ์ ์ฝ์ ์ ์์ต๋๋ค.
.onion ํธ๋ํฝ์ด ์๋ TLS ํธ๋ํฝ(TLS๋
๋ค๋ฅธ VM).
-----PGP ์๋ช
์์-----
iQIcBAEBCgAGBQJYKlGYAAoJELPy0WV4bWVwu/gQAI/7bmPTKwbcsjEntuEjc03j
nQFKDvSMg05FXR9rljFym5E++pr1FEteKb2qAu0Gub9CbkxCWhibBYNQHi1aFgy5
wgO07yom0oJI4JxBXA185TNSJKE7+LnDAqUCT0H1d0yCy5t4TZfFQHJFLdhOjdk+
GD+Lbuv3pH0GIInsK7iAFQlps0bQmI8aNrNAgoiuk3iWI9MqGFZ8BoXZlabMeGnF
O0OeaibMjtvtuvX4mRsgTFZdNzzUmSfmkoYsABHDK/He4rcnUg6LUetVz16YKzuo
i5Oxy+dQZ6FHHICsQq2Ajg35LfW95I27jcm0QBGFZ08tu3Igt7DFqw9Sq1Ydg5Hl
J/HckRIA5pIJJUcOUa4ynFyk2t/hA0fQEjSoy9C66GnH4Fzt6X/Izs0CDkPkZOQ/
+Vo7wYkqyKcInn2uu7sb62lopX7L6QKHMORiO/5echUMCNCs5fVx7pDenIKvXew
88QcZ/UkR48N9RdKaNC+UdCt3a/vJzQhbzB65cgGuPtvJLhUPFay2IK/szP0/Drw
gPXT+kwbCcBKqbmzkniPysn0Z62wXOlZAfiI/BJ5TqbqILNlhyR9HFSb9MIImiNL
Es+Q3vteUEm6pGVGPnqMZMm2dxVYmP5xx3pHhqq7GjaeGplNEi0ZwTsmSpfCztPB
Y6ksrSAXNDadT0ijrXfu
=TeTg
-----๋ PGP ์๋ช
-----
๊ฐ๋ฅํ ํด๊ฒฐ ๋ฐฉ๋ฒ : ์ต์ํ Windows ๋ฐ Linux์๋ ํ ์คํธ ํ์ผ๋ก ์ํธํ๋ ๋ชจ๋ ํ์ผ์ ์ ์ฅํ๋ ์์ฒด ํฌํจ GPG ํ๋ก๊ทธ๋จ์ธ gpg4usb(gpg4usb.org)๊ฐ ์์ต๋๋ค.
์ํธ ์์ฉ:
์ถ๋ ฅ(๋ฉ๋ชจ์ฅ์์ _data.docx.asc_ ์ด๊ธฐ):
ํจ์ :
์ ๋ฐ์ดํธ: ์ด ํ๋ก๊ทธ๋จ์ ์ค๋๋ ๋ฒ์ ์ GPG๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ฌ์ ํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก ์๋ํ ์ ์์ง๋ง ์ต๊ทผ์ ์ ๋ฐ์ดํธ๋ ๋ค๋ฅธ GPG ํธํ ๋๊ตฌ์์๋ ์๋ํ์ง ์์ ์ ์์ต๋๋ค.
1) ํ์ผ ์ ์ก ๊ธฐ๋ฅ์ ์ค์ ์์
ํ๊ฒฝ์์ ํ์์ ์
๋๋ค. ์
๋ฌด์์ ์ด์ ๋ก ์ ๋ ์์ฃผ ์ด๋ํ๊ณ ๋๋ฃ์ ๋ฉ์์ง ๋ฐ ํ์ผ์ ๊ตํํด์ผ ํฉ๋๋ค(๋๋ฌผ๊ฒ ์ด๋ฏธ์ง, ๋๋ถ๋ถ์ .docx, xls ๋ฐ ๊ธฐํ ํ์ผ ํ์). ๋ฌผ๋ก ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ์์ ํ๊ณ ์์ฝ๋ ์ฑ๋์์ ์ด๋ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
ํ์ผ์ ์๋ํ ์์ ์ ์ด์ธ์ ๋ค๋ฅธ ์ฌ๋์ด ๊ฐ๋ก์ฑ๊ฑฐ๋ ๊ฐ์ ธ๊ฐ ์ ์๋๋ก ํ๋ ๊ฒ์ด ์ ๋์ ์ผ๋ก ์ค์ํฉ๋๋ค(n.1 ์์ฒญ).
๊ทธ๋์ ์ ๋ ์ด๋ค ์์ผ๋ก๋ ๋ณผ ์ ์๊ฑฐ๋ ์ฝ๊ฒ ํ์๋ ์ ์๋(๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋์๊ฒ ์๋ ๊ฐ๋ฅํ) ๊ณต๊ฐ URL(์คํฌ๋จ๋ธ๋๊ฑฐ๋ ์ด์ ์ ์ฌํ ๊ฒ์ด ์๋๋ผ๋)์ ์ฌ์ฉ์ ๋ํด ์ ๋์ ์ผ๋ก ๋ฐ๋ํฉ๋๋ค. ๋ํ ๋ด์ฉ๊ณผ ํ์ผ์ ๋ณด๋ธ ์ฌ๋๊ณผ ๋ฐ๋ ์ฌ๋ ์ฌ์ด์์ ์๊ฒฉํ๊ฒ ๋น๊ณต๊ฐ๋ก ์ ์ง๋์ด์ผ ํฉ๋๋ค(์์ํ P2P์ด๋ฉฐ ๊ณต์ ํ์ง ์์).
'๊ณต๊ฐ' URL์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์์ ์ ์์ฒด์์ ์ค๋ ๊ฒฝ์ฐ ๊ณ ๋ คํด์ผ ํ๋ "๊ณต๊ฒฉ" ์ ํ์
๋๋ค.
์ถฉ์ฑ์ค๋ฝ์ง ์์ ์ง์์ด ์ด ๋ฉ์ปค๋์ฆ์ ์๊ณ ๋ค๋ฅธ ์ฑ๋(์์ทจ๋ฅผ ๋จ๊ธฐ์ง ์๊ณ ๋ ๋ฒ์งธ Ricochet IM ์ฑํ ์ผ ์๋ ์์)์ ์ ๋ฌํ๋ ๊ฒ์ ์๊ฐํด๋ณด์ธ์. URL์ ๋ฐ์๋ง์ ์ 3์์๊ฒ... ์ 3์๊ฐ ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ ์ง์๋ ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ ์๋ฌด ์๋ชป๋ ์๋ ์ฒํฉ๋๋ค... ๊ณต๊ฐ/ํ์/๋ณต์ฌ ๊ฐ๋ฅํ ๋งํฌ๊ฐ ์๋ ์์คํ ์์ ์ฑํ ์ฐฝ์์ ๋ฐ๋ ์ ์ผํ ์ต์ ์ ํ์ผ์ ๋ค์ด๋ก๋ํ๋ ๊ฒ๋ฟ์ ๋๋ค. ์์ ์ PC๋ฅผ ๊ฑฐ๋ถํ๊ฑฐ๋ ํด๋น ํ์ผ์ ์ก์ธ์คํ ์ ์๋ ์ ์ผํ ๋ค๋ฅธ ์ฌ๋(๋ณด๋ธ ์ฌ๋ ์ ์ธ)์ด๋ฉฐ ์ ์ถ๋ ๊ฒฝ์ฐ '๊ณต๊ฐ http URL....
2) ์ด๋ฏธ ์๋ํ๊ณ ์๋ ์์ด๋์ด๋ฅผ ์ป๊ธฐ ์ํด P2P ํ์ผ ์ ์ก์ ์ ๊ณตํ๋ ๋ค๋ฅธ ์ฑํ
์๋ฃจ์
์ ๋ณธ ์ ์ด ์์ต๋๊น?
์ด ์ต์
์ด ๋ํ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ฐ๋ฆฌ๋ ํ์ฅ์์ QTox๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ฑํ
์ ์์ ํ ํฌํจ๋ ์๋ํ๊ณ ๋ฉ์ง ํ์ผ ์ ์ก ์ต์
์ด ์์ต๋๋ค.
(๊ณผ๊ฑฐ์๋ uVNC๋ ์ฌ์ฉํ์ผ๋ฉฐ p2p ๋ณด์ ํฐ๋์ ํตํด ์ฝ๊ฒ ํ์ผ์ ์ ์กํ์ต๋๋ค)
3) ๋ด ์์ ์คํ์ผ์ ์ง๊ฐ์ http ํ๋กํ ์ฝ์ ๋ํ ์์ด๋์ด๋ฅผ ๋ฒ๋ฆฌ๊ณ ๊ธฐ์กด์ ๊ฐ์ฌ๋๊ณ ์์ ํ๋ฉฐ ์ ๋ขฐํ ์ ์๋ ricochet ํ๋กํ ์ฝ๋ก ํ์ผ์ ํจ์จ์ ์ธ ํจํทํ ์์
์ ์์ํ๋ ๊ฒ์
๋๋ค(ํ์ํ ์์ ์์ ๋ฐ ์ ํ์ ์ถ๊ฐ ๋จ์ ์ํธํ ๋ ์ด์ด ํฌํจ) , ์ฒซ ๋ฒ์งธ ์ต์
์ ์ค๋ช
๋ ๋๋ก.
๋จ์ํ Mime64+a ๋ผ์ดํธ ์คํฌ๋จ๋ธ๋ง์ผ๋ก ํ์ผ์ ๋ํํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ํผ๋ก ์ถฉ๋ถํฉ๋๋ค.
๋๋ ๋ ๋ฉ์ง๊ณ ๋น ๋ฅธ ์ ์ก ๋ฉ์ปค๋์ฆ๋ณด๋ค ๋ด ํ์ผ์ด ๊ฒฝ์์์ ์์ ๋ค์ด๊ฐ ์ํ์ด ์๋ ๋ณด์๊ณผ ํ์ค์ฑ์ ์ ํธํฉ๋๋ค.
4) ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ฌ์ ํ ์ด๋ฉ์ผ(์ฒจ๋ถ ํ์ผ์ MIME-64 ์ํธํ๋์ง ์์ ์ธ์ฝ๋ฉ)์ ์ฌ์ฉํ์ฌ ํ์ผ์ ์ ์กํ๋ค๋ ์ฌ์ค์ ์์ง ๋ง์ญ์์ค. ๋๋ฆฌ๊ณ ๋นํจ์จ์ ์ด๋ฉฐ ํ์คํ ์์ ํ์ง ์์ต๋๋ค.
์ต๊ณ ์๋๋ ์ค์ ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์ ์ ์ก์ ์ค์ํ ๋ถ๋ถ์ด ์๋๋๋ค(๊ทธ๋ฆฌ๊ณ ์๊ฒฉ์ผ๋ก ์ฌ์ฉ๋๋ ์ผ๋ถ ๋ชจ๋ฐ์ผ ์ฐ๊ฒฐ์ ์ด์จ๋ ์์ฒญ๋ ์๋๋ฅผ ์ง์ํ ์์กฐ์ฐจ ์์ต๋๋ค...).
๋์๊ฒ๋ ๋๋ฃ์ ๋ํ ์ ์ก ์ํ ํ์๊ธฐ๊ฐ ์๊ณ , ๊ธด ํ์ผ ์ ์ก์ '์ผ์ ์ค์ง/์ฌ๊ฐ'ํ ์ ์๋ ๊ฐ๋ฅ์ฑ๊ณผ ์ฐ๊ฒฐ ๋๊น์ ์ฒ๋ฆฌํ๋ ๋ฉ์ปค๋์ฆ์ ๊ฐ๋ ๊ฒ์ด ๋ ์ค์ํฉ๋๋ค. ํ๋) ์งํ ์ค์ธ ์ ์ก๊ณผ ํจ๊ป.
@nogoest์ Onionize ( Golang ์ผ๋ก ์์ฑ)๋ผ๋ ์๊ณ ๊ฐ๋ฒผ์ด Tor Hidden Service ๊ธฐ๋ฐ ํ์ผ ๊ณต์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค.
์ข์ ๋ฉ์ ์ + ํ์ผ ๊ณต์ ์์์ ๋ง๋ค ๊ฐ๋ฅ์ฑ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค ;)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์, ์ด๊ฒ์ ์ค๋๋ ๋ฌธ์ ์ ๋๋ค. ์ด์ ์๋ฃํ ์๊ฐ์ ๋๋ค. ํ์ผ ์ ์ก์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ๋ถ๋ถ์ ์ผ๋ก๋ ํผ๋๋ฐฑ์ ์์ฒญํ๊ณ , ๋ถ๋ถ์ ์ผ๋ก๋ ๋ ์์ ์ ์ค๋ํ๊ณ , ๋ถ๋ถ์ ์ผ๋ก๋ ๋ธ๋ ์ธ๋คํ์ด์ง๋ง ์ ์ฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
UX
ํ์ผ ์ ์ก์ ๋ํ ๋ ๊ฐ์ง ์ ํ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ต๋๋ค. ํ์ฑ ์ฌ์ฉ์ ๋ ๋ํ ์ค์ ํ์ผ์ ๋ณด๋ด๊ณ ๋ฐ์ผ๋ฉฐ ํ์ผ์ด ๋ํ์ ์ผ๋ถ๊ฐ ๋๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ํ์ผ ์ญ์ ๋ ์จ๋ผ์ธ ์ํ๋ฅผ ์ ์งํ๊ณ ์ฆ์ ํ์ฑํ๋์ง ์๋๋ผ๋ ์ธ์ ๋ ์ง ํ์ผ์ ์์ ํ ์ ์๊ธฐ๋ฅผ ์ํ๋ ์์์ Ricochet ์ฌ์ฉ์๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
๋๋ถ๋ถ์ ๋ฉ์์ง ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐ๋ฆฌ ๋ ๋ํ์ ์ผ๋ถ๋ก ํ์ผ ์ ์ก์ ์ธ๋ผ์ธ์ผ๋ก ์ํํ๊ธฐ๋ฅผ ์ํ๋ฉฐ ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ(๋ธ๋ผ์ฐ์ ํฌํจ)์ ์ฌ์ฉํ ํ์๊ฐ ์์ด์ผ ํฉ๋๋ค.
ํ์ผ์ ๋ํ๋ก ๋์ด๋ค ๋๋ ๊ฒ์ ํ์ผ์ ๋ณด๋ด๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค. ํ๋ฆผ์์ด ์ด๋ฐ ์์ผ๋ก ์ค์๋ก ํ์ผ์ ๋ณด๋ด๋ ๊ฒ์ด ์ฌ์ธ ์ ์์ต๋๋ค. ํ์ผ ์ ๋ฉ์์ง ์ ๋ ฅ ์์์ ๋๊ณ ๋ณด๋ด๊ธฐ ์ ์ ๋ฉ์์ง๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ๋ณด๋ด๊ธฐ ์ ์ ์นด์ดํธ๋ค์ด์ ์ฌ์ฉํ๋ฉด ๋ ์ฝ๊ฒ ์ด๋ฅผ ์ํํ ์ ์์ต๋๋ค. ๋ํ ํค๋์ ๋ฒํผ์ด๋ ๋ฉ์์ง ์ ๋ ฅ ๊ทผ์ฒ์ ํ์ผ์ ๋ณด๋ด๊ธฐ ์ํ ๋ ๋ค๋ฅธ ๊ฐ์์ ์ธ UI ๋ฉ์๋ ๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ ๊ณต๋ ํ์ผ ์ ์ฌ์ฉ์๊ฐ ์์ด๋ฒ๋ ธ์ ์ ์๋ค๊ณ ํฉ๋ฆฌ์ ์ผ๋ก ๊ฐ์ ํ๊ธฐ์ ์ถฉ๋ถํ ์๊ฐ ํ์
Ricochet์ ์ํ ๋ชจ๋ธ์ ๋ํ ๋ฐ์ดํฐ(ํ์ผ ํฌํจ)๋ฅผ ์๋์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ ๊ธ์งํฉ๋๋ค. ์ํ ๋ชจ๋ธ์ ์ฐ๋ฝ์ฒ๋ฅผ ์ ์ฌ์ ์ธ ๊ณต๊ฒฉ์๋ก ๊ฐ์ฃผํ๋ฏ๋ก ์ฐ๋ฝ์ฒ๊ฐ ์ฌ์ฉ์ ์น์ธ ์์ด ํธ๋ฆฌ๊ฑฐํ ์ ์๋ ์ผ๋ จ์ ์์ ์ ์ค์ด๊ณ ์ ํฉ๋๋ค. ์ด๋ ํ์ผ ์ ์ก์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ช ์์ ์๋ฝ์ ์๊ตฌ ํด์ผ ํจ์ ์์ฌํฉ๋๋ค. ์ฌ์ฉ์๋ ๊ธฐ๋ณธ ์์น๋ฅผ ๊ตฌ์ฑํ์ง ์๋ ํ ๊ฐ ํ์ผ์ ์ ์ฅํ ์์น๋ฅผ ๋ช ์์ ์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ํ์ฑ ์ฌ์ฉ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ํ์ผ ์ญ์ ์ ๊ฒฝ์ฐ ํ์ผ ์ ์๋์ผ๋ก ์ ์ฅ ํ๋ ํฉ๋๋ค (์ฐ๋ฝ์ฒ๋ณ๋ก๋ ๊ฐ๋ฅ).
ํ์ฑ ์ ์ ๋๋ ์ ์ก์ ์ ๋น์ฌ์๊ฐ ์ฝ๊ฒ ์์๋ณผ ์ ์์ด์ผ ํฉ๋๋ค. ๋ํ ์์ ์ ์ก ๋ํ ํค๋ (์ ์ก ํญ?) ๋ฐ/๋๋ ์ ์ญ ์ ์ก ์ํ์ ์งํ ์ํฉ์ด ์ด๋๊ฐ์ ์์ด์ผ ํฉ๋๋ค. ์ ์ก์ด ์งํ๋๋ ๋์ ๋ํ๊ฐ ๊ณ์ ์งํ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ ํนํ ์ค์ํฉ๋๋ค. ์ ์ก์ด ์๋ฃ๋๋ฉด ๋ํ ์ ๋ ์ผ๋ก
๋ธ๋ผ์ฐ์ ๊ฒฝ๊ณ ์ ์ ์ฌํ ๊ฒฝ๊ณ ์ ํจ๊ป ์ ํด๋ฆญํ๋ฉด ์๋ฃ๋ ์ ์ก์ด
Tor๋ ์ ๋ขฐํ ์ ์๋ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์์ผ๋ฏ๋ก ์ฌ๊ฐํ๋ ๋ฅ๋ ฅ์ด ์ค์ํฉ๋๋ค. ๊ฐ๋ฅํ ๋๋ง๋ค ์๋์ผ๋ก ๋ค์ ์ฐ๊ฒฐํ๊ณ ๊ธฐ์กด์ ๋ถ์์ ํ ํ์ผ ์์ ์ ์ฅํ์ฌ ์ฌ๊ฐํ ์ ์์ด์ผ
๋ฏธ๋์ UX
๋ํ์ ํจ๊ป ์ธ๋ผ์ธ ์ผ๋ก ์ด๋ฏธ์ง ๋์ฝ๋๋ฅผ ์ ๋ขฐํ์ง ์๋๋ค๋ ์ ์ ์ ์ธํ๊ณ ํ์ผ ์ ์ก์ด ์๋ฃ๋๋ฉด ์ด ์์ ์ ์ํํ๊ธฐ ์ฝ์ต๋๋ค. ๊ฐ๋ ฅํ๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ ํ ๋์ฝ๋ ๋๋ ํ๋ซํผ ๊ฐ seccomp ์คํ์ผ ์๋๋ฐ์ฑ์ ์ฐพ์ผ๋ฉด ์ด ์์ ์ ์ํํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๋๊ตฐ๊ฐ๋ ์ฐ๋ฆฌ๊ฐ ์ ์ด๋ ์ฐ๊ฒฐ์ ๊ตฌ์ถํ๊ณ ๋ฉ๋ชจ๋ฆฌ ๋ด ์ ํ๊น์ง ๋ฒํผ๋งํ์ฌ ํ์ผ์ ๋ฏธ๋ฆฌ ๊ฐ์ ธ์ฌ ์ ์๋ค๊ณ ์ง์ ํ์ฌ ์ ์ก ํ๋ก์ธ์ค๊ฐ ๋ ๋น ๋ฅด๊ฒ ๋ณด์ด๋๋ก ํ์ต๋๋ค.
ํ์ผ ๋๋ ์ ์ฒด ํด๋์ ์ผ๊ด ์ ์ก์ ํฉ๋ฆฌ์ ์ธ ํ๋๊น์ง ํ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ ์ก ์๋ฒ์์ ๋ค์ด๋ก๋ํ ํ์ผ ์ ํด์ ๋ฅผ ์๋์ผ๋ก
๊ท์ฝ
์ฌ์ด
ํ์ผ ๋ฐ์ดํฐ๋ Ricochet์ ๊ธฐ๋ณธ ํ๋กํ ์ฝ ์ฐ๊ฒฐ์ ํตํด ๋ณด๋ผ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ํจํทํํ๋๋ผ๋ Tor ์คํธ๋ฆผ์ ๋ฒํผ๋ง ์์ฑ ๋๋ฌธ์ ์จ๊ฒจ์ง ์๋น์ค ์ฐ๊ฒฐ์ด ํ๋ฌ๋ฉ๋ ๋ ๋งค์ฐ ๋ง์ ์์ ๋ฐ์ดํฐ๊ฐ ๋๊ธฐ์ด์ ์์ต๋๋ค. ์ด๋ก ์ธํด ํด๋น ์คํธ๋ฆผ์ ๋ํด ๊ทน๋์(์ข ์ข 30์ด ์ด์) ๋๊ธฐ ์๊ฐ์ด ๋ฐ์ํฉ๋๋ค. ๋ค๋ฅธ ํํ์ ์๋ ์ ์ด๋ ์ ์ก ์๋์ ๋๋ฌด ๋ง์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๊ฐ๋จํ ๋๋ต์ ํผ์ด ์๋น์ค์ ๋ํ ์ถ๊ฐ ์ฐ๊ฒฐ์ ์ฌ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์ฐ๊ฒฐ์ Tor์ ์ํด ๋์ผํ ํ๋ก์ ๋ค์คํ๋์ง๋ง ๋ฒํผ๋ง ๋์์ ํจ์ฌ ๋ ์ข์ต๋๋ค. ์ผ๋ฐ ํ ์คํธ์์๋ ๋์ผํ ํ๋ก์ ๋ค๋ฅธ ์คํธ๋ฆผ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํ๋ฌ๋ฉํ ๋ ๋ฉ์์ง ๋๊ธฐ ์๊ฐ์ ํฐ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
๋ํ ํ๋ก ๊ฒฉ๋ฆฌ ์ต์ ์ ์ฌ์ฉํ์ฌ Tor๊ฐ ์ ์ก์ ์ํ ์ ํ๋ก๋ฅผ ๊ตฌ์ถํ๋๋ก ํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฒ๋ฆฌ๋์ด๋ ๋๊ธฐ ์๊ฐ์ ์ ์ฉํ์ง ์ฌ๋ถ๋ ๋ถ๋ถ๋ช ํ๋ฉฐ ์ถ๊ฐ ๋์ ํ์ ์ ๊ตฌ์ถํ๋ฉด ์ต๋ช ์ฑ ๋๋ ํธ๋ํฝ ๋ถ์์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ง ์ฌ๋ถ๋ ๋ถ๋ถ๋ช ํฉ๋๋ค.
Ricochet์ ํ๋กํ ์ฝ์ ์ด๋ค ์ฐ๊ฒฐ์ ์ฌ์ฉํด์ผ ํ๋์ง ๋ชจํธํ๊ณ ๋ฉ์์ง ์์์ ๋ํ ๊ธฐ๋์น๋ฅผ ์๋ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฝ์ฒ๋น ๋ ์ด์์ ์ธ์ฆ๋ ์ฐ๊ฒฐ์ ํ์ฉํ์ง ์์ต๋๋ค. ์ถ๊ฐ ์ฐ๊ฒฐ์ด Ricochet์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฐ๊ฒฐ์ด ๋ฐ์ดํฐ ์ ์ก์๋ง ์ฌ์ฉ๋จ์ ๋ํ๋ด๊ธฐ ์ํด ๋ค๋ฅด๊ฒ ์ธ์ฆํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ ์ ์ก์ 2์ฐจ ์ฐ๊ฒฐ์ ํตํด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์ Ricochet์ ํ๋กํ ์ฝ๋ก ๋ฐ์ดํฐ๋ฅผ ํจํค์งํ ํ์๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ์ต์ ์ ์๊ฐํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ต์ 1: ์์ ๋ Ricochet ํ๋กํ ์ฝ
๋ด ์๋ ์๊ฐ์ ์ถ๊ฐ ์ฐ๊ฒฐ์์ ํ์ผ ๋ฐ์ดํฐ ์ ์ก์ ์ํด Ricochet์ ํ๋กํ ์ฝ์ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๊ฒ์ ์์ ํ ๊ฐ๋จํ์ง ์์ต๋๋ค.
ํํ:
๋จ์ :
FileTransferChannel.proto ๋ฐ FileTransferDataChannel.proto ์ WIP ๋ถ๊ธฐ์์ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ณด์ด๋์ง์ ๋ํ ์ค๋๋ ์์ ์ด ์์ต๋๋ค.
์ต์ 2: HTTP(ํ์ฌ ๊ธฐ๋ณธ ์ค์ )
Ricochet ํด๋ผ์ด์ธํธ๋ OnionShare ์ ์ ์ฌํ ๊ฐ๋จํ ๋ด๋ถ ์๋ฒ์ ๊ณ ์ ํ URL์ ์ฌ์ฉํ์ฌ HTTP๋ฅผ ํตํด ํ์ผ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ํด๋น ์๋ฒ๋ ๋์ผํ ์จ๊ฒจ์ง ์๋น์ค, ์๋ก์ด ์์ ์๋น์ค์ ๋ค๋ฅธ(์์์) ํฌํธ์ ์๊ฑฐ๋ ํ๋กํ ์ฝ ๊ฐ์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋์ผํ ํฌํธ๋ฅผ ๊ณต์ ํ ์๋ ์์ต๋๋ค.
ํํ:
๋จ์ :
์๋ฒ/ํด๋ผ์ด์ธํธ ๊ตฌํ
์ฌ๊ธฐ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋งค์ฐ ์ต์์ด๊ธฐ ๋๋ฌธ์ Ricochet์์ 100% ๊ธฐ๋ฅ ์์ ํ๊ณ ์ฌ์ ๋์ ํธํ HTTP ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ฒ๊ทธ ๊ฐ๋ฅ์ฑ์ ์ต๋ํ ๋ฎ์ถ๊ธฐ ์ํด ๊ตฌํ์ _ํ์ํ_ ๊ธฐ๋ฅ์ผ๋ก ์ ํํ๊ณ (์: ์ฒญํฌ ์ ์ก ์ธ์ฝ๋ฉ ๋๋ ๋ํดํ ์ต์ ์ ์ฌ์ฉํ์ง ์์ต๋๋ค.) ๋์์ด ๋๋ ๊ฒฝ์ฐ
Connection: close
๊ฐ์ ์คํํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ๋คํธ์ํฌ์ ๋ ธ์ถ๋ ์ฝ๋์ ์์ด ๋งค์ฐ ์ ์ผ๋ฉฐ ์ฌ์ ํ ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ๋ฐ ์๋ฒ์ ํธํ๋ฉ๋๋ค.์๋ฒ ๋์ ๋ฐ URL ํ์
๋์ผํ ์จ๊ฒจ์ง ์๋น์ค ์๋์ ์์ ํฌํธ์ HTTP ์๋ฒ๋ฅผ ๋ฐฐ์นํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์๋ก์ด ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋๋ก ๋๋ฆฌ๊ฑฐ๋ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ๋ง์ ์๋ก์ด ํ๋ก์ ๊ตฌ๋ณ ๊ฐ๋ฅํ ๋คํธ์ํฌ ํ๋์ ํฌํจํฉ๋๋ค. ์ด๊ฒ์ ๋ํ ํผ์ด๊ฐ ์์์ .onion์ ๊ฐ์ ๋ก ์ฐ๊ฒฐํ ์ ์๋๋ก ํ๋ ๋์ผํ .onion ํธ์คํธ ์ด๋ฆ์ ์๊ตฌํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์๋ฒ๊ฐ ํญ์ ์คํ ์ค์ด๋ฉด ์ฐ๋ฝ์ฒ ๋ฐ ๋น ์ฐ๋ฝ์ฒ๊ฐ ์ธ์ ๋ ์ง ์ฐพ์ ์ ์์ง๋ง ์ด๊ฒ์ ๊ฐ์น๊ฐ ์์ด์ผ ํฉ๋๋ค. ํ์ฑ ํ์ผ ์ ์์ด ์์ ๋๋ง ์๋ฒ๊ฐ ํ์ฑ์ธ ๊ฒฝ์ฐ ํด๋น ์ํ๋ ํฌํธ๋ฅผ ๋ฐฐ์ธ ์ ์๋ ์ฐ๋ฝ์ฒ ๋๋ ๋น์ ์ด์๊ฐ ๊ฐ์งํ ์ ์์ต๋๋ค.
Ricochet ํด๋ผ์ด์ธํธ ์ด์ธ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๊ฐ์ฅํ ํ์๊ฐ ์์ต๋๋ค. ์ ํจํ ํ์ผ ์์ฒญ์ด ์๋ ์ฌ๋ฐ๋ฅธ ํ์์ ๋ชจ๋ ์์ฒญ์ ์ผ๋ฐ 404 ์ค๋ฅ์ ํจ๊ป ๊ฑฐ๋ถ๋์ด์ผ ํฉ๋๋ค.
๋ค์ด๋ก๋ URL์ ๋ํด ๋ค์์ ์ ์ํฉ๋๋ค.
ํ์ผ URL์ ํน์ ์ ์ก๊ณผ ๊ด๋ จ์ด ์์ผ๋ฉฐ ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ๊ฐ๋ฅผ ํ์ฉํ๋ ค๋ฉด ๋ฒ์ ์์ฒญ์ด ์ง์๋์ด์ผ ํ๋ฉฐ ๋ณ๋ ฌ ๋ค์ด๋ก๋๊ฐ ํ์ฉ๋ ์ ์์ต๋๋ค. ์๋ฒ๋ ์์ ์์๊ฒ ์ ์ฒด ์ฌ๋ณธ์ด ์๋ค๊ณ ์๊ฐ๋๋ฉด URL ์ ๊ณต์ ์ค๋จํด์ผ ํฉ๋๋ค.
ํ์ผ ์ ๊ณต ํ๋กํ ์ฝ
ํ์ผ ์ ์์ ํ์ฅ๋ ์ฑํ ๋ฉ์์ง๋ก ํจํค์งํ ์ ์์ต๋๋ค.
์ด ๋ฉ์์ง์ ํ์ธ์ ํ์ผ ์ ์๋ ํ์ธํฉ๋๋ค. URL์ ์ฆ์ ์ก์ธ์คํ์ฌ ํ์ผ์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ๋ฉ์์ง๋ฅผ ์ ์์ ์ผ๋ก ํ์ธํ๋ ๊ฒ ์ธ์๋ ์์ ์๋ ์ ์ก์ด ์๋ฃ๋๊ฑฐ๋ ๊ฑฐ๋ถ๋ ๊ฒฝ์ฐ ์ ์ ํ ํ๋๋ฅผ ์ค์ ํ์ฌ ์ถ๊ฐ
ChatAcknowledge
๋ณด๋ด์ผ ํฉ๋๋ค. ๋ฐ์ ์๋ ์ด์ ํด๋ผ์ด์ธํธ ๋๋ ๋์ฒด ๋ค์ด๋ก๋๋ฅผ ์ง์ํ๊ธฐ ์ํดChatAcknowledge
์ ์์กดํ์ง ์๊ณ ์ ์ก๋ ๋ฐ์ดํฐ๋ง์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ก์ด ์๋ฃ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ ์ค๋น๊ฐ ๋์ด ์์ด์ผ ํฉ๋๋ค.์ด๊ฒ์ ํ์ผ ์ ์ก์ ๊ตฌํํ์ง ์๋ ํด๋ผ์ด์ธํธ์ ์์ ํ ํธํ๋๋ค๋ ๊น๋ํ ์์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๋ URL์ ๋ณด๊ณ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ํน๋ณํ ์๋ฏธ๊ฐ ์์ต๋๋ค.
XXX ๋ฐ์ ์๊ฐ ์ทจ์๋ฅผ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๊ธฐ์ ์ ์๋์ด ์์ง ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
๋๋ ์ด ์ผ์ ๊ฝค ๋นจ๋ฆฌ ์งํํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๊ณง ํ๋กํ ์ฝ๊ณผ ์ฃผ์ UX ๊ฒฐ์ ์ ํ์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ ๊ฒ์ ๋๋ค.
์ด๋ฏธ ๋ง์ ์์ ์ฝ๋๊ฐ ์์ฑ๋์ด ์์ง๋ง ์์ ์ด ํ์ํ๊ณ ์ฌ๊ธฐ์์ ๊ฒฐ์ ํ ์ฌํญ์ ๋ฐ๋ผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
์ด๊ฒฌ์๋ ์ฌ๋?