
1. ์ด๋ค ๋ณด์ ์ํ์ด ์๋ค๋ ๊ฑฐ์ง?
์ฒซ ์งธ: ๊ฐ์ธ์ ๋ณด๊ฐ ๋ด๊ธด ์ ๋ณด๋ฅผ ์๋ฒ๋ก ๋ณด๋ผ ๋, ์ด๋ค ๋์ด ๊ฐ์ทจํด๊ฐ ์ ์์
๋ ์งธ: ํผ์ฑ ์ฌ์ดํธ์ ์ ์ํด ๊ฐ์ธ ์ ๋ณด๋ฅผ ๊ฐ์ทจํด๊ฐ ์ ์์
HTTPS๋ ์ฌ์ดํธ์ ๋ณด๋ด๋ ์ ๋ณด๋ฅผ ์ 3์๊ฐ ๋ณด์ง ๋ชปํ๊ฒ ํ๋ฉฐ, ์ ์ํ ์ฌ์ดํธ๊ฐ ๋ฏฟ์ ๋งํ ์ฌ์ดํธ์ธ์ง ์๋ ค์ค๋ค.
2. HTTPS๋ฅผ ์ดํดํ๋ ค๋ฉด
1) ๋์นญํค ๋ฐฉ์: ์ํธํ์ ์ฐ์ด๋ ํค์ ๋ณตํธํ์ ์ฐ์ด๋ ํค๊ฐ ๋์ผํ ๊ธฐ๋ฒ
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋์นญํค ๋ฐฉ์์ผ๋ก ํต์ ์ ํ๋ค๋ฉด ํด๋ผ์ด์ธํธ, ์๋ฒ ๋ชจ๋ ํค๋ฅผ ๊ฐ์ง๊ณ ์์ด์ผํ๋ค.
ํ์ง๋ง ์ ์ด์ ํด๋ผ์ด์ธํธ์๊ฒ ํค๋ฅผ ์ ๋ฌํ๋ ๊ฒ ์์ฒด๋ ์ํํ๋ฉฐ, ๋ํ ํด๋ผ์ด์ธํธ์ ์ค์ฝ๋๋ ๋๊ตฌ๋ ์ง ์ด์ด๋ณผ ์ ์์ผ๋ฏ๋ก ๊ฐ์ง๊ณ ์๊ธฐ๋ ๊ต์ฅํ ์ํํ๋ค. ์ฆ, ์๊ฑฐ๋ฆฌ์์ ๋์นญํค๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํ๋ ๊ฒ์ด ๋งค์ฐ ์ด๋ ต๋ค.

2) ๋น๋์นญํค ๋ฐฉ์: ๊ณต๊ฐํค์ ๋น๋ฐํค๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฒ
๊ณต๊ฐํค: ๋๊ตฌ๋ ํ๋ํ ์ ์๋ ๊ณต๊ฐ๋ ํค. ํด๋ผ์ด์ธํธ๋ ์ด ํค๋ฅผ ๊ฐ์ง๊ณ ๋ฐ์ดํฐ๋ฅผ ์ํธํํด์ ์ ์กํ๋ค.
๊ฐ์ธํค(๋น๋ฐํค): ๊ณต๊ฐํค๋ก ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณตํธํ ํ ์ ์๋ ํค. ์๋ฒ๋ง ๊ฐ์ง๊ณ ์๋ค.
์ด ๋ฐฉ๋ฒ์ ์์ ํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ง๋ง, ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์๋ค!

3) ์ธ์ฆ์์ CA(Certificate authority)
์ธ์ฆ์์ ๋ด์ฉ์ ํฌ๊ฒ 2๊ฐ์ง๋ก ๊ตฌ๋ถํ๋ค.
- ์๋น์ค์ ์ ๋ณด (CA, ๋๋ฉ์ธ ๋ฑ๋ฑ)
- ์๋ฒ ์ธก์ ๊ณต๊ฐํค (๊ณต๊ฐํค์ ๋ด์ฉ, ๊ณต๊ฐํค์ ์ํธํ ๋ฐฉ์)
CA๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํด์ฃผ๋ ๊ธฐ์ ์ ๋งํ๋ค. ์ธ์ฆ์๊ฐ ๋ณด์์ ๊ด๋ จ๋ ๊ฒ์ธ ๋งํผ ์ด CA๋ ์ํฅ๋ ฅ์๊ณ ์ ๋ขฐํ ์ ์๋ ๊ธฐ์ ์์๋ง ๊ฐ๋ฅํ๋ค. ์ด๋, ๋ธ๋ผ์ฐ์ ์๋ ๊ณต์ธ๋ CA ๋ฆฌ์คํธ ๋ฏธ๋ฆฌ ๊ฐ์ง๊ณ ์๋ค.

2. HTTPS ํต์ ๊ณผ์ ๋ฐ ์๋ฆฌ
HTTPS๋ ๋์นญํค ๋ฐฉ์๊ณผ ๋น๋์นญํค ๋ฐฉ์ ๋ชจ๋ ์ฌ์ฉํ๋ค.
๋ชจ๋ ๋ฐ์ดํฐ ์ ์ก์ ๋น๋์นญํค ๋ฐฉ์์ผ๋ก ์ผ์ผ์ด ์ํธํ ๋ณตํธํ๋ ค๋ฉด ์ปดํจํฐ์ ๋ถ๋ด์ด ์ปค์ง๋ค.
๋ฐ๋ผ์ ๋น๋์นญํค ๋ฐฉ์์ผ๋ก ๋์นญํค๋ฅผ ์์ ํ๊ฒ ์ ๋ฌํ๊ณ , ์ ๋ฌ๋ ๋์นญํค๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค.
1) ์ ์ฒด์ ์ธ ๊ณผ์
1. HandShake
ํด๋ผ์ด์ธํธ๋ ๋๋ค ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ฌ, ์๋ฒ๋ก ๋ณด๋ธ๋ค.
์๋ฒ๋ ๋ต๋ณ์ผ๋ก, ๋๋ค ๋ฐ์ดํฐ์ ์ธ์ฆ์๋ฅผ ๋ณด๋ธ๋ค.
2. ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์ธ์ฆ์ ํ์ธ
๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ๋ CA๋ค์ ์ ๋ณด๋ก ์ธ์ฆ์์ ์ง์์ฌ๋ถ๋ฅผ ํ์ ํ๋ค.
์ฐ์ , CA์ ์ธ์ฆ์ ๋ฐ์ ์ธ์ฆ์๋ค์ CA๋ง ๊ฐ๊ณ ์๋ ๊ฐ์ธํค๋ก ์ํธํ ๋์ด์๋ค.
์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์ธ์ฆ์๊ฐ ์ง์ง๋ผ๋ฉด, ๋ธ๋ผ์ฐ์ ์ ์๋ CA์ ๊ณต๊ฐํค๋ก ๋ณตํธํ ํ ์ ์์ ๊ฒ์ด๋ค.
๊ณต๊ฐํค๋ก ๋ณตํธํ ๋ ์ ์๋ ์ธ์ฆ์๋ฅผ ๋ฐ๊ธํ ์ ์๋ ๊ฑด ๊ฐ์ธํค๋ฅผ ๊ฐ์งCA ๋ฟ์ด๋๊น!
๋ง์ฝ, CA ๋ฆฌ์คํธ ์ค์ ์ธ์ฆ์๊ฐ ํด๋น๋๋ ๊ฒ ์๋ค๋ฉด ๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ HTTPS ์ธ์ฆ ์คํจ๊ฐ ๋ฌ๋ค.
๋ณตํธํ์ ์ฑ๊ณต๋์๋ค๋ฉด, ์๋ฒ์ ๊ณต๊ฐํค๊ฐ ํฌํจ๋ผ์๋ค.
3. ๋์นญํค ์์ฑ
ํด๋ผ์ด์ธํธ์์ ์์ฑํ ๋๋ค ๋ฐ์ดํฐ, ์๋ฒ์์ ์ฑ์ํ ๋๋ค ๋ฐ์ดํฐ๋ฅผ ํผํฉํด์ ์์ํค๋ฅผ ๋ง๋ ๋ค.
์์ํค๋ ์๋ฒ์ ๊ณต๊ฐํค๋ก ์ํธํ๋ผ์ ์๋ฒ๋ก ๋ณด๋ด์ง๋ค.
์ด ์์ํค๋ ์์ชฝ์์ ์ผ๋ จ์ ๊ณผ์ ์ ๊ฑฐ์น ํ, ๋์ผํ ๋์นญํค๊ฐ ๋๋ค.
์ด์ ์ด ๋์นญํค๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๋๋ง ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์, ์ดํ ์๋ก ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ๋ ์ 3์๊ฐ ๋ค์ฌ๋ค ๋ณผ ์ ์๋ค.

2) ์์ธ ๊ณผ์
1. Client Hello
๋ธ๋ผ์ฐ์ ๋ง๋ค ์ง์ํ๋ ์ํธํ ์๊ณ ๋ฆฌ์ฆ๊ณผ TLS ๋ฒ์ ์ด ๋ค๋ฅด๋ฏ๋ก ํด๋น ์ ๋ณด๋ฅผ ์ ์กํ๋ฉฐ, ๋์ ๊ฐ์ ์์ฑํ์ฌ ์ ์กํฉ๋๋ค.
2. Server Hello
์ฌ์ฉํ TSL ๋ฒ์ , ์ฌ์ฉํ ์ํธํ ์๊ณ ๋ฆฌ์ฆ, ๋์๊ฐ์ ์ ์กํฉ๋๋ค.
3. Certificate
CA๋ก ๋ถํฐ ๋ฐ๊ธ๋ฐ์ ์ธ์ฆ์๋ฅผ ์ ์กํฉ๋๋ค.
4. Server Key Exchange
ํค ๊ตํ์ ํ์ํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ง์ฝ ํ์ํ์ง ์์ผ๋ฉด ์ด ๊ณผ์ ์ ์๋ต์ด ๊ฐ๋ฅํ๋ฐ, ์๋ฅผ ๋ค์ด ํค๊ตํ ์๊ณ ๋ฆฌ์ฆ์ Diffie-Hellman์ผ๋ก ์ฌ์ฉํ๋ค๋ฉด ์์, ์์๊ทผ ๋ฑ์ด ํ์ํ๋ฏ๋ก ์ด๊ฒ์ ์ ์กํฉ๋๋ค
5. Certificate Request
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ๋ฅผ ์ธ์ฆํด์ผํ ๋ ์ธ์ฆ์๋ฅผ ์๊ตฌํ๋ ๋จ๊ณ์ ๋๋ค. ์์ฒญํ์ง ์์์๋ ์์ต๋๋ค.
6. Server Hello Done
7. Client Key Exchange, Change Cipher Spec
pre-master-key ๋ผ๋ ๊ฒ์ ์ ์กํฉ๋๋ค. ์ด ํค๋ 1,2 ๋จ๊ณ์์ ์์ฑํ ๋์๋ฅผ ์กฐํฉํ์ฌ ์์ฑํ๊ฒ๋๋ฉฐ ๋์นญํค๋ก ์ฌ์ฉํ๊ฒ๋ ์์ ์ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์์ ํ ์ ์ก์ ์ํด์ ๊ณต๊ฐํค ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์ ์กํฉ๋๋ค.
8. Change Cipher Spec
ํด๋ผ์ด์ธํธ๋ก ๋ถํฐ ์ ์ก๋ฐ์ pre-master-key๋ฅผ ์ ์์ ์ผ๋ก ๋ณตํธํ ํ master-key(๋์นญํค)๋ก ์น๊ฒฉ ํ ๋ณด์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ์ฉํ๊ฑฐ๋ ๋ณ๊ฒฝ๋ ๋ ๋ณด๋ด๋ ์๋ฆผ์ ๋๋ค.
์ ๊ณผ์ ์ ํตํด์ ๊ณต๊ฐํค ๋ฐฉ์์ผ๋ก ๋์นญํค๋ฅผ ์์ ํ๊ฒ ์ค์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ก, ์์ ํ๊ฒ๋ฉ๋๋ค.
๊ฐ๊ฐ์ ๋ฐฉ์์ ์ฅ์ ์ ์ฌ์ฉํ์ฌ ๋จ์ ์ ๋ณด์ํ ์ผ์ด์ค์ ๋๋ค.
3. HTTPS๋ SEO์ ์ ๋ฆฌํ๋ค
๊ฒ์ ํฌํธ ์ฌ์ดํธ์ธ ๊ตฌ๊ธ, ๋ค์ด๋ฒ, ๋ค์ ๋ชจ๋์์ ๊ฒ์ ์์ง ์ต์ ํ SEO : Search Engine Optimization)๋ฅผ ํตํด https๋ฅผ ์์๋ ธ์ถ ํ๊ณ ์๋ค. ๋์ผํ ํค์๋์ ํ์ด์ง ์ค์์ https ๊ธฐ๋ฐ์ ์ฌ์ดํธ๊ฐ ์ฐ์ ์์๋ก ๋ ธ์ถ๋๋ค. ๋ณด๋ค ์์ ํ๋ค๊ณ ํ๋จ๋๋ ์ฌ์ดํธ์ ๊ฐ์ฐ์ ์ ์ค๋ค.
์ถ์ฒ: https://mysterico.tistory.com/30
'๐ Front > ๐ Web Theory' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [DNS] ๋์ ์๋ฆฌ๋ฅผ ๊ผผ๊ผผํ๊ฒ ์ดํด๋ณด์! (0) | 2022.03.31 |
|---|---|
| [Markdown] ๋งํฌ๋ค์ด ๋ด์ฉ ์ ๋ฆฌ (0) | 2021.12.22 |
| [Emmet] ๋งํฌ์ ์ธ์ด๋ฅผ ์ข ๋ ๋น ๋ฅด๊ฒ ์ฐ์ (0) | 2021.12.22 |
| [Web APIs] ๋ธ๋ผ์ฐ์ API (0) | 2021.11.17 |
| OAuth Dance (0) | 2021.08.03 |