HTTPS์ ์๋์๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ๋์ฒญ๊ณผ ๋ณ์กฐ๋ก๋ถํฐ ๋ณดํธํจ์ผ๋ก์จ ๋ณด์์ ์ ๊ณตํฉ๋๋ค.
์ํธํ๋ ํต์ ์ ์น์ฌ์ดํธ์์ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ค์ํ๋ฉฐ, ์ฌ์ฉ์์ ์น ์๋ฒ ๊ฐ์ ์์ ํ ํต์ ์ ๋ณด์ฅํฉ๋๋ค.
ํธ๋์
ฐ์ดํฌ (Handshake)
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์ํ ๋, ๋จผ์ SSL ํธ๋์
ฐ์ดํฌ๊ฐ ์ด๋ฃจ์ด์ง๋๋ค.
์ด ๋จ๊ณ์์๋ ์๋ก ์ด๋ค ์ํธํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํค๋ฅผ ์ฌ์ฉํ ์ง ํ์์ด ์ด๋ฃจ์ด์ง๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ์์ฒญํ๊ณ , ์๋ฒ๋ ๊ณต๊ฐํค๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ณต๊ฐํค ์ํธํ
์๋ฒ์ ๊ณต๊ฐํค๋ฅผ ๋ฐ์ ํด๋ผ์ด์ธํธ๋ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์
ํค๋ฅผ ์์ฑํ๊ณ , ์ด ์ธ์
ํค๋ฅผ ์๋ฒ์ ๊ณต๊ฐํค๋ก ์ํธํํ์ฌ ์๋ฒ์๊ฒ ์ ์กํฉ๋๋ค.
์๋ฒ๋ ์์ ์ ๊ฐ์ธํค๋ก ์ด ์ํธ๋ฌธ์ ํด๋
ํ์ฌ ์ธ์
ํค๋ฅผ ํ๋ํฉ๋๋ค.
์ํธํ๋ ํต์
์ด์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ ํธ๋์
ฐ์ดํฌ ๋จ๊ณ์์ ํ์ํ ์ธ์
ํค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ ํด๋
ํ ์ ์์ต๋๋ค.
์ํธํ๋ ์ธ์
ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ก๋๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ ์์ ํ๊ฒ ์ํธํ๋๋ฏ๋ก ์ค๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ก์ฑ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ํจ์ฌ ์ด๋ ค์์ง๋๋ค.
SSL ์ธ์ฆ์
๋ธ๋ผ์ฐ์ ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ SSL ์ธ์ฆ์๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ์ ์ ์์ ํ์ธํฉ๋๋ค.
SSL ์ธ์ฆ์๋ ์ ๋ขฐํ ์ ์๋ ๊ธฐ๊ด(Certificate Authority, CA)์ ์ํด ์๋ช
๋์ด ์์ด ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ ์์ ํ์ธํ ์ ์์ต๋๋ค.
TCP/IP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํต์ ์ ์์ํ ๋ ์ธ์
์ ์ค์ ํ๋ ๊ณผ์ ์
๋๋ค.
์ด ๊ณผ์ ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ๋ขฐ์ฑ ์๋ ์ฐ๊ฒฐ์ ํ๋ฆฝํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
SYN (Synchronize)
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์ฐ๊ฒฐ์ ์์ฒญํ๋ ๋ฉ์์ง๋ฅผ ๋ณด๋
๋๋ค.
์ด ๋ฉ์์ง์๋ ํด๋ผ์ด์ธํธ๊ฐ ์ ํํ ์ด๊ธฐ ์์ฐจ ๋ฒํธ(Initial Sequence Number, ISN)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ISN์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฑํ๋ ์์์ ๊ฐ์ผ๋ก, ์ฐ๊ฒฐ์ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
SYN-ACK (Synchronize-Acknowledgment)
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ๊ณ , ํด๋ผ์ด์ธํธ์๊ฒ ์๋ต์ผ๋ก SYN๊ณผ ํจ๊ป ์์ฒด์ ISN์ ๋ณด๋
๋๋ค.
์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ISN์ 1์ ๋ํ ๊ฐ์ ์์ฒด์ ISN์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์๋ฒ๋ ์ด ์์ ์์ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ฐ์๋ค์์์ ์๋ ค์ฃผ๋ ACK(acknowledgment)๋ฅผ ๋ณด๋
๋๋ค.
ACK (Acknowledgment)
ํด๋ผ์ด์ธํธ๋ ์๋ฒ๋ก๋ถํฐ ๋ฐ์ SYN-ACK ๋ฉ์์ง์ ์๋ต์ผ๋ก ACK๋ฅผ ๋ณด๋
๋๋ค.
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ISN์ 1์ ๋ํ ๊ฐ์ ํ์ธํฉ๋๋ค.
์ด์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ๋ขฐ์ฑ ์๋ ์ฐ๊ฒฐ์ด ์ค์ ๋์์ต๋๋ค.
TCP ์ฌ์ฉ ๐ ํ์ผ ์ ์ก, ์ด๋ฉ์ผ ์ ์ก, ์น ๋ธ๋ผ์ฐ์ง๊ณผ ๊ฐ์ด ์ ๋ขฐ์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ.
UDP ์ฌ์ฉ ๐ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ, ์์ฑ ํตํ, ์จ๋ผ์ธ ๊ฒ์๊ณผ ๊ฐ์ด ์์ค์ด๋ ์ง์ฐ์ด ์ ์ด์ผ ํ๋ ๊ฒฝ์ฐ.
TCP (Transmission Control Protocol) ๋?
์ฐ๊ฒฐ ์งํฅ์ฑ (Connection-Oriented)
TCP๋ ์ฐ๊ฒฐ์ ํ๋ฆฝํ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ์ฐ๊ฒฐ ์งํฅ์ฑ์ด ์์ต๋๋ค. 3-way handshake๋ฅผ ํตํด ์ ๋ขฐ์ฑ ์๋ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค.
์ ๋ขฐ์ฑ ๋ณด์ฅ
๋ฐ์ดํฐ ์ ์ก ์ค ์์ค, ์์ ์ ํ ๋ฑ์ ๋ฌธ์ ๋ฅผ ๊ฒ์ถํ๊ณ ๋ณต๊ตฌํ๊ธฐ ์ํ ๋ฉ์ปค๋์ฆ์ด ๋ด์ฅ๋์ด ์์ด ์ ๋ขฐ์ฑ์ด ๋์ต๋๋ค.
ํ๋ฆ ์ ์ด ๋ฐ ํผ์ก ์ ์ด
TCP๋ ์ก์ ์ธก๊ณผ ์์ ์ธก์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋ ์ฐจ์ด๋ฅผ ์กฐ์ ํ๊ธฐ ์ํ ํ๋ฆ ์ ์ด์ ๋คํธ์ํฌ ํผ์ก์ ๋ฐฉ์งํ๊ธฐ ์ํ ํผ์ก ์ ์ด ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์ดํฐ ์ ์ก ์์ ๋ณด์ฅ
TCP๋ ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ ์กํ๋ฉฐ, ์์ ์ธก์์๋ ์ด๋ฅผ ์์๋๋ก ์ฌ์กฐ๋ฆฝํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ๋ฌํฉ๋๋ค.
UDP (User Datagram Protocol) ๋?
๋น์ฐ๊ฒฐ์ฑ (Connectionless)
UDP๋ ์ฐ๊ฒฐ ์ค์ ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ๋๋ฌธ์ ๋น์ฐ๊ฒฐ์ฑ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ 3-way handshake์ ๊ฐ์ ์ฐ๊ฒฐ ์ค์ ์ ์ฐจ๊ฐ ์์ต๋๋ค.
์ ๋ขฐ์ฑ์ด ๋ฎ์
UDP๋ ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ ์ ์ก์ ๋ณด์ฅํ์ง ์์ต๋๋ค. ์์ค์ด๋ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ณ๋๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
ํ๋ฆ ์ ์ด ๋ฐ ํผ์ก ์ ์ด ์์
UDP๋ ํ๋ฆ ์ ์ด๋ ํผ์ก ์ ์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ์ ์ก ์ค์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ํํด์ผ ํฉ๋๋ค.
๋ฐ์ดํฐ ์ ์ก ์์ ๋ณด์ฅํ์ง ์์
UDP๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์์๋ฅผ ๋ณด์ฅํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์์ ์ธก์์๋ ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ณ๋๋ก ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
CORS๋ Cross-Origin Resource Sharing์ ์ฝ์๋ก, ์น ํ์ด์ง์์ ๋ก๋๋ ๋ฆฌ์์ค๊ฐ ๋ค๋ฅธ ๋๋ฉ์ธ์ ๋ฆฌ์์ค์ ์ํธ ์์ฉํ ์ ์๋๋ก ๋ธ๋ผ์ฐ์ ์๊ฒ ํ์ฉํ๋ ๋ณด์ ๊ธฐ์ ์ ๋๋ค.
์น ๋ธ๋ผ์ฐ์ ๋ ๋ณด์ ์์ ์ด์ ๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผ ์ถ์ฒ ์ ์ฑ (Same-Origin Policy)์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ๋๋ฉ์ธ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ฑฐ๋ ์ฌ์ฉํ๋ ค๋ฉด CORS๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค.
์๋ฒ์ธก ์ค์ ๋ฐฉ๋ฒ
ํด๋ผ์ด์ธํธ์ธก ์ค์ ๋ฐฉ๋ฒ