๐Ÿฅ

[SSL] SSL ์ธ์ฆ์„œ์— ๋Œ€ํ•ด์„œ.. (HTTPS) ๋ณธ๋ฌธ

๊ธฐํƒ€

[SSL] SSL ์ธ์ฆ์„œ์— ๋Œ€ํ•ด์„œ.. (HTTPS)

•8• 2023. 6. 9. 00:01

๋„๋ฉ”์ธ ์‚ฌ์šฉ์„ ์œ„ํ•ด ssl ์ธ์ฆ์„œ๋ฅผ ์ ์šฉํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์ •๋ง 1๋„ ๋ชฐ๋ผ์„œ ๋„˜ ํž˜๋“ค์—ˆ๋‹ค

๊ทธ๋ž˜์„œ ์ ์šฉ ๊ณผ์ • ์ค‘์— ์•Œ๊ฒŒ ๋œ ๋ช‡๊ฐ€์ง€๋ฅผ ์ •๋ฆฌํ•ด๋ดค๋‹ค.

 

SSL/TLS

https ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ธ์ฆ์ด ํ•„์š”ํ•˜๋‹ค. 

https๋Š” ์š”์ฒญ/์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ ์•”ํ˜ธํ™”๋ฅผ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋•Œ ์ œ๊ณต๋˜๋Š” ๋ณด์•ˆ๊ณ„์ธต์ด SSL์ด๋‹ค.

http://www.ktword.co.kr/test/view/view.php?m_temp1=3132

SSL ๊ฐœ๋ฐœ ํ›„์— ํ‘œ์ค€ํ™”๋˜๋ฉด์„œ TLS๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค. ๋‘ ์šฉ์–ด ๋ชจ๋‘ ํ˜ผ์šฉํ•ด์„œ ์‚ฌ์šฉ๋˜์ง€๋งŒ SSL๋กœ ๋” ๋งŽ์ด ๋ถˆ๋ฆฌ๋Š” ๋“ฏ ํ•˜๋‹ค.

SSL 3.0 = TLS 1.0

CA (= Certificate Authority)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์†ํ•˜๋ ค๋Š” ์„œ๋ฒ„๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๋ณด์ฆํ•ด์ค˜์•ผํ•˜๋Š”๋ฐ, ์ด ๋ณด์ฆ์„ ํ•ด์ฃผ๋Š” ๋ฏผ๊ฐ„ ๊ธฐ์—…์ด๋‹ค. ๊ณต์ธ๋œ ์‹ ๋ขฐ๋„์žˆ๋Š” ๊ธฐ์—…๋“ค๋งŒ CA๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์ด ๋ณด์ฆ๋œ CA ๋ชฉ๋ก๊ณผ CA์˜ ๊ณต๊ฐœํ‚ค๋ฅผ ์ด๋ฏธ ์•Œ๊ณ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. (์†Œ์Šค์ฝ”๋“œ์— ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋“ค์–ด์žˆ์Œ)

 

SSL ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•

  • ๋Œ€์นญํ‚ค

์•”ํ˜ธํ™”๋ฅผ ํ•  ๋•Œ key๊ฐ’์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•.

์•”ํ˜ธํ™”ํ•  ๋•Œ ์‚ฌ์šฉํ•œ key๋ฅผ ์•Œ์•„์•ผ ๋ณตํ˜ธํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์žฅ์  ์ปดํ“จํŒ… ํŒŒ์›Œ๊ฐ€ ์ ๊ฒŒ ํ•„์š”

๋‹จ์  ์•”ํ˜ธ๋ฅผ ํ•  ๋•Œ ์ผ์ผ์ด ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ํ‚ค๋ฅผ ๊ณต์œ ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๊ณ , ์œ ์ถœ๋œ๋‹ค๋ฉด ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋“  ์•”ํ˜ธ๋ฅผ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Œ → ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹ ๋“ฑ์žฅ

 

  • ๊ณต๊ฐœํ‚ค

๋‘ ๊ฐœ์˜ key ์Œ์œผ๋กœ ์•”/๋ณตํ˜ธํ™”๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•.

  • public key(๊ณต๊ฐœํ‚ค): ํƒ€์ธ์—๊ฒŒ ์ œ๊ณต๋˜๋Š” ํ‚ค. public key๋ฅผ ์ด์šฉํ•ด ์ •๋ณด๋ฅผ ์•”ํ˜ธํ™” ํ›„ ๊ฐœ์ธํ‚ค๋ฅผ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๊ฐ€์—๊ฒŒ ์ „์†ก
  • private key(๊ฐœ์ธํ‚ค): ๋น„๊ณต๊ฐœ ํ‚ค. private key๋ฅผ ์ด์šฉํ•ด ์•”ํ˜ธํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณตํ˜ธํ™”ํ•จ.
  • ์žฅ์  ์•ˆ์ „ํ•จ

    ๋‹จ์  ์ปดํ“จํŒ… ํŒŒ์›Œ๊ฐ€ ๋งŽ์ด ํ•„์š”

     

     

    SSL ์ธ์ฆ์„œ

    ํ†ต์‹ ์„ ์ œ3์ž(CA)๊ฐ€ ๋ณด์ฆํ•ด์ฃผ๋Š” ๋ฌธ์„œ. 

    1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ ์„œ๋ฒ„์—์„œ ์ธ์ฆ์„œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
    2. ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•œ CA๊ฐ€ ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š”์ง€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธํ•œ๋‹ค.
    3. ๋ธŒ๋ผ์šฐ์ € CA ๋ฆฌ์ŠคํŠธ์— ์žˆ๋‹ค๋ฉด CA์˜ ๊ณต๊ฐœํ‚ค๋กœ ์ธ์ฆ์„œ๋ฅผ ๋ณตํ˜ธํ™”ํ•œ๋‹ค.
      → ๋ณตํ˜ธํ™” ์„ฑ๊ณต: CA์˜ ๋น„๊ณต๊ฐœํ‚ค(private key)์— ์˜ํ•ด ์•”ํ˜ธํ™” ๋๋‹ค๋Š” ๋œป = ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•œ ์ธ์ฆ์„œ๊ฐ€ CA์— ์˜ํ•ด์„œ ๋ฐœ๊ธ‰๋œ ์ธ์ฆ๋œ ๋ฌธ์„œ์ž„์„ ํ™•์ธ = ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Œ
      → ๋ณตํ˜ธํ™” ์‹คํŒจ: CA์˜ ๋น„๊ณต๊ฐœํ‚ค์— ์˜ํ•ด ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๋œป = ์‹ ๋ขฐํ•  ์ˆ˜ ์—†์Œ

     

    SSL ํ†ต์‹  ๋ฐฉ๋ฒ•

    ๋„คํŠธ์›Œํฌ ํ†ต์‹  ๊ณผ์ •: ํ•ธ๋“œ์‰์ดํฌ ์„ธ์…˜  ์„ธ์…˜ ์ข…๋ฃŒ

    ์ด๋ถ€๋ถ„์€ ์•„๋ž˜์— ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ๋‹ค.

    https://opentutorials.org/course/228/4894

    https://wayhome25.github.io/cs/2018/03/11/ssl-https/

    • ํ•ธ๋“œ์‰์ดํฌ ๊ณผ์ •: ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹
    • ์„ธ์…˜ ๋‹จ๊ณ„: ๋Œ€์นญํ‚ค ๋ฐฉ์‹(session key ์‚ฌ์šฉ)

    ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์˜ ๊ฒฝ์šฐ ์ž์›์†Œ๋ชจ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ํ•ธ๋“œ์‰์ดํฌ์—์„œ๋งŒ ๊ณต๊ฐœํ‚ค ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„๋กœ ๋ณด์ฆ๋œ ๋‹ค์Œ ๋‹จ๊ณ„์ธ ์„ธ์…˜ ๋‹จ๊ณ„์—์„œ๋Š” ํ•ธ๋“œ์‰์ดํฌ ๊ณผ์ •์—์„œ ์ƒ์„ฑ๋œ session key๋ฅผ ์‚ฌ์šฉํ•ด ๋Œ€์นญํ‚ค ๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ์„ ํ•œ๋‹ค.


    SSL ์ธ์ฆ์„œ ์ฒด์ธ

    ์ธ์ฆ์„œ ์ฒด์ธ์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด 3๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

    ์ธ์ฆ์„œ - ์ค‘๊ฐ„ ์ธ์ฆ์„œ(intermediate certificate) - Root ์ธ์ฆ์„œ

     

    1. ์ธ์ฆ์„œ: ์ค‘๊ฐ„ ์ธ์ฆ์„œ ์„œ๋ฒ„ ๊ณต๊ฐœํ‚ค๋กœ signature๋ฅผ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ ๊ฒ€์ฆ
    2. ์ค‘๊ฐ„ ์ธ์ฆ์„œ: Root ์ธ์ฆ์„œ ์„œ๋ฒ„ ๊ณต๊ฐœํ‚ค๋กœ signature๋ฅผ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ ๊ฒ€์ฆ
    3. Root ์ธ์ฆ์„œ: ์„œ๋ฒ„ ๊ณต๊ฐœํ‚ค๋กœ signature๋ฅผ ๋ณตํ˜ธํ™”ํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ ๊ฒ€์ฆ

     

    Hue์—์„œ SSL ์ธ์ฆ์„œ ์ ์šฉ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ ์€ ๊ธ€์ด ์žˆ๋Š”๋ฐ, ์œ„ ๋‚ด์šฉ ์ดํ•ด ํ›„์— ๊ฐ ์„ค์ •๊ฐ’์ด ์–ด๋–ค๊ฑด์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

    https://quackstudy.tistory.com/entry/Hue-SSL-%EC%A0%81%EC%9A%A9-%EB%B0%A9%EB%B2%95

     

    ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” CA์ธ์ฆ์„œ๊ฐ€ ๋ญ”์ง€ ๋ญ”์ง€ ์ข€ ํ—ค๋งธ์—ˆ๋‹ค ใ… 

    ๋ณดํ†ต CA์ธ์ฆ์„œ ๋‚ด์— Root ์ธ์ฆ์„œ๊นŒ์ง€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”๋ฐ(์ถ”์ธก์ž„), ๋‚ด๊ฐ€ ์ฒ˜์Œ์— ์ „๋‹ฌ๋ฐ›์€ ์ธ์ฆ์„œ๊ฐ€ intermediate ์ธ์ฆ์„œ์—ฌ์„œ ๊ณ„์† verify failed๊ฐ€ ๋–ด์—ˆ๋‹ค. ์ธ์ฆ๊ธฐ๊ด€ ์‚ฌ์ดํŠธ(?)์—์„œ Root ์ธ์ฆ์„œ๋ฅผ ๋‹ค์šด๋ฐ›๊ณ , intermediate์™€ root๋ฅผ ํ•ฉ์นœ ํŒŒ์ผ์„ ๋“ฑ๋ก ํ›„์— ์„ฑ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.