๋กœ์ผ“๐Ÿพ
article thumbnail
๋ฐ˜์‘ํ˜•
์ด ๊ธ€์˜ ์ €์ž‘๊ถŒ์€ ์•„๋ฆฌ๋ฐค ๋‹˜์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค. 

"์•”ํ˜ธํ™” ํ†ต์‹ " ๋ญ”๊ฐ€ ํ• ๋ฆฌ์šฐ๋“œ ๋ธ”๋ก๋ฒ„์Šคํ„ฐ ์‚ฐ์—… ์ŠคํŒŒ์ด ์•ก์…˜ ์˜ํ™”์—์„œ๋‚˜ ๋‚˜์˜ฌ๋ฒ•ํ•œ ๋‹จ์–ด์ฃ 

ํ•˜์ง€๋งŒ ์ƒ๊ฐ ์™ธ๋กœ ์šฐ๋ฆฌ ์ผ์ƒ์ƒํ™œ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์š”. ๊ทธ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ https ์ฃ 

 

https ๋ž€ ๊ธฐ์กด์— ์ธํ„ฐ๋„ท ๋ฐฉ์‹(http)์— ๋ณด์•ˆ์„ ๊ฒฐํ•ฉํ•œ ๊ฒƒ์ด๊ณ , ์˜ค๋Š˜์€ ๊ทธ "๋ณด์•ˆ" ์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ๊ฑฐ์˜ˆ์š”.

 

 

1. ๊ทธ "๋ณด์•ˆ"์ด ๋ญ”๋ฐ ์•”ํ˜ธํ™” ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ผ๊นŒ?

 

์•”ํ˜ธํ™” ํ†ต์‹ ์€ SSL(๋˜๋Š” TLS)๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด์„œ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ด์š”.

 

์šฐ๋ฆฌ๊ฐ€ ์ฒ˜์Œ ๋งŒ๋‚œ ์‚ฌ๋žŒ๊ณผ ์ธ์‚ฌํ•˜ ๋“ฏ 

์‚ฌ์šฉ์ž์™€ ์›น์„œ๋ฒ„๊ฐ€ ์•”ํ˜ธํ™” ํ†ต์‹ ์„ ํ•  ๋• ์ธ์‚ฌํ•˜๋ฉฐ ์–ด๋–ค ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉ ํ•  ๊ฒƒ์ธ์ง€ ์–˜๊ธฐ๋ฅผ ๋‚˜๋ˆ„์ฃ . ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ SSL Handshake๋ผ๊ณ  ์นญํ•ด์š”. 

 

๋ฒˆ์™ธ์ ์ธ ์–˜๊ธฐ๋กœ handshake ์–ด๋””์„œ ๋“ค์–ด๋ณธ๊ฑฐ ๊ฐ™์ง€ ์•Š๋‚˜์š” ?

 

๋“ค์–ด๋ดค๋‹ค๋ฉด TCP ํ†ต์‹  ์–˜๊ธฐ ์ค‘์— ๋‚˜์™”๋˜ 3 way handshake ๊ฐ€ ์•„๋‹๊นŒ ์‹ถ๋„ค์š” ~

์ฐธ๊ณ ๋กœ SSL handshake๋Š” 3 way handshake ๊ฐ€ ๋๋‚œ ๋’ค์— ์ด๋ฃจ์–ด์ง€๋Š” ์ธ์‚ฌ์˜ˆ์š”

(์ธ์‚ฌ๋ฅผ 2๋ฒˆ์ด๋‚˜ ํ•˜๋„ค์š” ใ…Žใ…Ž)

 

 SSL ํ•ธ๋“œ์‰์ดํฌ๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ์•”ํ˜ธํ™” ํ†ต์‹ ์— ๋Œ€ํ•œ ํ˜‘์˜๋ฅผ ์ง„ํ–‰ํ•ด์š”

(์ฐธ๊ณ ๋กœ ๊ทธ๋ฆผ์—์„œ ๋‚˜๋ˆˆ ๊ธฐ์ค€์€ ์„ค๋ช…์„ ์œ„ํ•จ์ผ ๋ฟ ์ ˆ๋Œ€์ ์ด์ง„ ์•Š์•„์š”)

 

 

 

๊ทธ๋Ÿผ ์‹ค์ œ๋กœ ์ด๋Ÿฐ ๋‚ด์šฉ๋“ค์ด ์–ด๋–ป๊ฒŒ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณผ๊นŒ์š”?

 

 

2. ๋ฌด์—‡์„ ? ์–ด๋–ป๊ฒŒ? ํ™•์ธํ•  ๊ฒƒ์ธ๊ฐ€?

 

๋‚ ๋ผ๋‹ค๋‹ˆ๋Š” ํŒจํ‚ท์„ ์†์œผ๋กœ ์žก์„ ์ˆ˜ ์—†์ง€์š”. 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Wireshark ์˜ ๋„์›€์„ ๋ฐ›๋„๋ก ํ• ๊ฑฐ์˜ˆ์š”.

 

(์„ค์น˜ ์‚ฌ์ดํŠธ: https://www.wireshark.org/download.html)

 

๋„ค์ด๋ฒ„์™€์˜ ์•…์ˆ˜๊ณผ์ •์„ ํ•œ๋ฒˆ ์‚ดํŽด๋ณผ๊นŒ์š”?

๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

 

์ฒซ ์งธ. Wireshark๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

๋‘˜ ์งธ. ์บก์ฒ˜๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค

์…‹ ์งธ. ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ผ ๋‹ค

๋„ท ์งธ. ๋„ค์ด๋ฒ„์— ๋“ค์–ด๊ฐ„๋‹ค

๋งˆ์ง€๋ง‰. ์บก์ฒ˜๋ฅผ ๋„๊ณ  ํŒจํ‚ท์„ ๋ณธ๋‹ค.

 

 

3. ์บก์ฒ˜ ํ•œ ํŒจํ‚ท์—” ์–ด๋–ค ๋‚ด์šฉ์ด ์žˆ๋Š”๊ฐ€?

์ž ๊ทธ๋Ÿผ ์บก์ฒ˜ํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ํ•œ๋ฒˆ ๋ณผ๊นŒ์š”?

 

 

์‹ค์ œ ๋„ค์ด๋ฒ„์— ์ ‘์†ํ•˜๋Š” ๊ณผ์ •์—์„œ ์บก์ฒ˜๋˜๋Š” ssl ํŒจํ‚ท์ž…๋‹ˆ๋‹ค.

์•„๊นŒ ์œ„์—์„œ ์†Œ๊ฐœํ•œ ๋‹จ๊ณ„์™€ ๋น„์Šทํ•œ ๋‹จ์–ด๋“ค์ด ๋งŽ์ด ๋ณด์ด์ฃ ?

๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ํ•จ๊ป˜ ์†๊ฐ€๋ฝ์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์งš์–ด๊ฐ€๋ฉฐ ์„ธ์–ด๋ณด์•„์š”

 

 

 

<ํŒจํ‚ท์บก์ฒ˜ ๋‚ด์šฉ>

 

 

 

<์ฒดํฌ ๋ฆฌ์ŠคํŠธ>

 

 

์–ด ??

 

๋ญ”๊ฐ€ ์ด์ƒํ•จ์„ ๋Š๋ผ์…จ๋‚˜์š” ?

 

4, 6, 8 ๋ฒˆ์€ ์—†๊ณ 

Finished ๋ž€ ๋‹จ์–ด๋„ ์•ˆ ๋ณด์ด์ฃ ?

 

์ž, ์ด์ƒํ•จ์„ ๋งˆ์Œ์† ๊นŠ์ด ์„ธ๊ธฐ๊ณ  ์šฐ์„ ์€ ์บก์ฒ˜ ๋œ ๋‚ด์šฉ์„ ์ฝ์–ด๋ณผ๊ฒŒ์š”

๊ทธ๋Ÿฌ๋ฉด ๊ถ๊ธˆ์ฆ์ด ํ•ด๊ฒฐ๋ ๊ฑฐ์˜ˆ์š”

 

 

4. ํ•œ์ค„ํ•œ์ค„ ์–ด๋–ค ์˜๋ฏธ๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ์„๊นŒ์š”? 

 

(1) Client hello (ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„)

 ์‚ฌ์šฉ์ž(client)๊ฐ€ ๋„ค์ด๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด ๋„ค์ด๋ฒ„ ์„œ๋ฒ„์ชฝ์— ํ†ต์‹ ์„ ์š”์ฒญํ•˜๋Š”๊ฑฐ์˜ˆ์š”.

์ด ๋•Œ, ํด๋ผ์ด์–ธํŠธ๋Š” ํ†ต์‹ ํ•˜๊ณ ์ž ํ•˜๋Š” TLS ๋ฒ„์ „, ์ž์‹ ์ด ์ง€์›ํ•˜๋Š” cipher ๋ฆฌ์ŠคํŠธ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ƒ์„ฑํ•œ ๋‚œ์ˆ˜ ์ •๋ณด๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

 

(์ƒํ™ฉ๊ทน)

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ฏฟ์„ ์ˆ˜ ์žˆ๋Š” ๋…€์„์ธ์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. "์„œ๋ฒ„์•ผ ๋„ˆ๋ฅผ ๋‚ด๊ฐ€ ๋ฏฟ์–ด๋„ ๋ ๊นŒ?"

 

 

 

 

 

(2) Server hello (ํด๋ผ์ด์–ธํŠธ <- ์„œ๋ฒ„)

 ์ธ์‚ฌ๋ฅผ ๋ฐ›์•˜์œผ๋ฉด ๊ฐ™์ด ์ธ์‚ฌ๋ฅผ ํ•ด์•ผ๊ฒ ์ง€์š” ? 

์„œ๋ฒ„๋Š” ์ž์‹ ์˜ SSL๋ฒ„์ „, ์ž์‹ ์ด ๋งŒ๋“  ์ž„์˜์˜ ๋‚œ์ˆ˜์™€ ํด๋ผ์ด์–ธํŠธ์˜ cipher ๋ฆฌ์ŠคํŠธ ์ค‘ ํ•˜๋‚˜์˜ ์„ ํƒํ•˜์—ฌ ๊ทธ ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค. 

 

(์ƒํ™ฉ๊ทน)

๊ทธ๋Ÿผ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค. "๊ทธ๋Ÿผ ๊ทธ๋Ÿผ ๋ฏฟ์–ด๋„ ๋˜์ง€!! ์—ฌ๊ธฐ ๋‚˜๋ฅผ ์ฆ๋ช…ํ• ์ˆ˜ ์žˆ๋Š” ์ฆ๋ช…์„œ(CA๊ธฐ๊ด€์—์„œ ์ œ๊ณตํ•ด์ค€ SSL/TSL ์ธ์ฆ์„œ)๋„ ์žˆ๋Š”๊ฑธ?"

 

 

 

(3) Server certificate or Server key Exchanges (ํด๋ผ์ด์–ธํŠธ <- ์„œ๋ฒ„)

์•„์ง ์•ˆ ๋๋‚ฌ์–ด์š”

์„œ๋ฒ„๋Š” ๊ฑฐ๊ธฐ์— ๋”๋ถˆ์–ด ์ž์‹ ์ด ๊ฐ–๊ณ ์žˆ๋Š” ์ธ์ฆ์„œ์ •๋ณด๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

 

(์ƒํ™ฉ๊ทน)

ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๊ฐ€ ๋ณด๋‚ด์ค€ ์ฆ๋ช…์„œ(SSL/TSL ์ธ์ฆ์„œ)๋ฅผ ๋ด…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณค ์ด๊ฒŒ ์œ„์กฐ๋œ ์ฆ๋ช…์„œ์ธ์ง€ ์•„๋‹ˆ๋ฉด ์ง„์งœ ์ฆ๋ช…์„œ์ธ์ง€ ํ™•์ธ์„ ํ•ด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํด๋ผ์ด์–ธํŠธ๋Š” CA๊ธฐ๊ด€์—๊ฒŒ ์ „ํ™”๋ฅผ ๊ฑธ์–ด ์ด ์ฆ๋ช…์„œ๊ฐ€ ๋งž๋Š”์ง€ ๋ฌผ์–ด๋ด…๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ CA๊ธฐ๊ด€์€ ์ฆ๋ช…์„œ๊ฐ€ ์ง„์งœ์ธ์ง€ ํŒ๋‹จํ•˜๊ณ  ๋งž๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์„œ๋ฒ„๋ฅผ ๋ฏฟ์–ด๋„ ๋œ๋‹ค๊ณ  ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

 

 

 

 

(4) Certificate Request (ํด๋ผ์ด์–ธํŠธ <- ์„œ๋ฒ„)

๋ฒˆ์™ธ๋กœ ํด๋ผ์ด์–ธํŠธ๋ž‘ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์„œ๋ฒ„ ๋˜ํ•œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋„ˆ ์ •์ƒ์ ์ธ์• ๋‹ˆ ? ๋ผ๋ฉฐ ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์–ด์š”

์š” ๋‹จ๊ณ„๋Š” ์„ ํƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”๋ฐ, ์ด๋ฒˆ ๊ณผ์ •์—๋Š” ์—†๋„ค์š” 

 

 

 

(5) Server hello done (ํด๋ผ์ด์–ธํŠธ <- ์„œ๋ฒ„)

๋“œ๋””์–ด ์„œ๋ฒ„์˜ ๋ง์ด ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

 

 

 

(6) Client Certificate (ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„)

์ž ์ด์ œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋งํ•  ์ฐจ๋ก€๋„ค์š”

์šฐ์„ ์€ ์•„๊นŒ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์š”์ฒญํ•œ ์ธ์ฆ์„œ. Client ์ธ์ฆ์„œ ์—†์œผ๋‹ˆ ํ• ๋ง์ด ์—†์–ด์š”. 

๋„˜์–ด๊ฐˆ๊ฒŒ์š” 

 

 

(7) Client key exchange (ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„)

ํด๋ผ์ด์–ธํŠธ๋Š” ์ž์‹ ์ด ๋งŒ๋“  ๋‚œ์ˆ˜์™€ ์„œ๋ฒ„๊ฐ€ ๋งŒ๋“ ๋‚œ์ˆ˜๋ฅผ ํ†ตํ•ด pre-master-secret๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„œ๋ฒ„์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™” ํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ํ•ด๋‹น๊ณผ์ •์„ ํ†ตํ•ด ์‹ค์งˆ์ ์œผ๋กœ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์นญํ‚ค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

(์ƒํ™ฉ๊ทน)

์ด์ œ ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„๋ฅผ ์™„์ „ํžˆ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„œ๋ฒ„์™€ ๊ด€๊ณ„๋ฅผ ๋น„๋ฐ€๋ฆฌ์— ์œ ์ง€ํ•˜๊ณ ์ž ๋น„๋ฐ€์นœ๊ตฌ๊ฐ€ ๋˜์ž๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž์‹ ๋งŒ์˜ ์•”ํ˜ธ(pre-master-secret)๋กœ ๋ฐ”ํƒ•์œผ๋กœ ํ‚ค(๋Œ€์นญํ‚ค)๋ฅผ ๋งŒ๋“ค์–ด ์„œ๋ฒ„์—๊ฒŒ ์ „๋‹ฌํ•ด์ค๋‹ˆ๋‹ค.

 

 

 

(8) Client verify (ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„)

ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ์˜ ๋ฌด๊ฒฐ์„ฑ์— ๋Œ€ํ•ด ๊ฒ€์ฆํ•˜๋Š”๋ถ€๋ถ„์ธ๋ฐ, client ์ธ์ฆ์„œ ์—†์œผ๋‹ˆ ๋„˜์–ด๊ฐˆ๊ฒŒ์š” !!

 

 

(9) Change cipher spec / finished  (ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„)

ํด๋ผ์ด์–ธํŠธ์˜ ๋งˆ์ง€๋ง‰ ๋ง์€ ํ˜‘์ƒ ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ํ‚ค๋ฅผ ์ด์šฉํ•˜๊ณ , ๋ฐ”๋กœ (finished)๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, Finished ๋ฉ”์‹œ์ง€๊ฐ€ ํ˜‘์ƒ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ ํ‚ค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์ ์šฉ๋˜๋Š” ๊ฒƒ์ด์ฃ 

 

(์ƒํ™ฉ๊ทน)

์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ‚ค(๋Œ€์นญํ‚ค)๋ฅผ ๋ฐ›์•˜๊ณ , ์•ž์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„๋•Œ ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ์ฝ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์™œ๋‚˜ํ•˜๋ฉด ๋ฉ”์‹œ์ง€๋Š” ํ‚ค(๋Œ€์นญํ‚ค)๋กœ ์•”ํ˜ธํ™”๊ฐ€ ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

 

(10) Change cipher spec / finished (ํด๋ผ์ด์–ธํŠธ <- ์„œ๋ฒ„)

์„œ๋ฒ„ ๋˜ํ•œ ํด๋ผ์ด์–ธํŠธ์˜ ๋ฉ”์„ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋™์ผํ•˜๊ฒŒ Change Cipher Specs ๋ฉ”์‹œ์ง€ ์ „์†ก ํ›„ (Finished)๋ฉ”์„ธ์ง€๋ฅผ ํ†ตํ•ด ์•”ํ˜ธํ™” ๋œ ํ†ต์‹ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

 

์ž ์ด๋กœ์จ SSL ํ•ธ๋“œ์‰์ดํ‚น์ด ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

 

๊ฒฐ๊ตญ SSL ํ•ธ๋“œ์‰์ดํ‚น์€ https:// ์— ์ ‘์†ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค.

์ฃผ์†Œ ์น˜๊ณ  ์—”ํ„ฐํ•œ๋ฒˆ ๋ˆŒ๋ €์„ ๋ฟ์ธ๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ ๊ต‰์žฅํžˆ ๋งŽ์€ ํŒจํ‚ท๋“ค์ด ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๊ณ  ์žˆ์—ˆ์ฃ ?  

๋ฐ˜์‘ํ˜•
profile on loading

Loading...