Light Blue Pointer
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Developing/TIL(CS)

SSL/TLS

by Greedy 2024. 4. 11.

๐Ÿ“–SSL = Secure Sockets Layer

  • encryption-based Internet security protocol
  • SSL์€ ์›น์„ ํ†ตํ•ด์„œ ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”(Encrypt) ํ•œ๋‹ค.
  • ๋ˆ„๊ตฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๊ฐ„์— ๊ฐ€๋กœ์ฑ„๋”๋ผ๋„ ์•”ํ˜ธํ™”๋œ ์˜๋ฏธ์—†๋Š” ๋ฌธ์ž์—ด๋งŒ ๋ณด๊ฒŒ ๋œ๋‹ค.

๐Ÿ“–SSL์˜ ์ž‘๋™ ๋ฐฉ์‹

  • ๋‘ ๊ธฐ๊ธฐ์˜ ๋ณธ์ธ ํ™•์ธ์„ ์œ„ํ•ด ๋‘ ๊ธฐ๊ธฐ ์‚ฌ์ด์— handshake๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” authentication process๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ์— ๋””์ง€ํ„ธ ์„œ๋ช…(digital sign)์„ ๋‚จ๊ฒจ์„œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ(data integrity)๋ฅผ ์ œ๊ณตํ•œ๋‹ค
  • ๋งค ์—…๋ฐ์ดํŠธ๋งˆ๋‹ค ์ ์  ๋” ์•ˆ์ „ํ•ด ์ง€๋‹ค๊ฐ€ 1999๋…„์— TLS๋กœ ๋„˜์–ด๊ฐ”๋‹ค

๐Ÿ“–TLS = Transport Layer Security

  • Internet security protocol that provides privacy and data integrity
  • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด๋ฉ”์ผ,๋ฉ”์‹œ์ง€,VoIP(voice over IP)๊นŒ์ง€ ๋ชจ๋‘ ์•”ํ˜ธํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค
  • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐ์ดํ„ฐ ์œ ์ถœ(data breach)๋“ฑ์˜ ๊ณต๊ฒฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•œ๋‹ค

๐Ÿ“– TLS ๊ฐ€ ํ•˜๋Š” ์ผ

  • Encryption(์•”ํ˜ธํ™”): third party๊ฐ€ ์ „์†กํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊ธด๋‹ค
  • Authentication(์ธ์ฆ): ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋Š” ์ฃผ์ฒด๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธ
  • Integrity(๋ฌด๊ฒฐ์„ฑ): ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€์กฐ๋˜๊ฑฐ๋‚˜ ์œ„์กฐ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธ

๐Ÿ“– TLS์˜ ๋™์ž‘ ๋ฐฉ์‹

  • communication session ์ „์— TLS handshake๋ฅผ ํ•ด์„œ TLS connection์„ ๋งบ์Œ

TLS handshake

  1. ์‚ฌ์šฉํ•  TLS ๋ฒ„์ „(TLS 1.0, 1.2, 1.3 ๋“ฑ)์„ ์ง€์ •
  2. ์‚ฌ์šฉํ•  Cipher Suite๋ฅผ ๊ฒฐ์ •
  3. ์„œ๋ฒ„์˜ TLS ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„์˜ ์‹ ์›์„ ์ธ์ฆ(public key๋กœ)
  4. ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๋ฉ”์‹œ์ง€๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•œ ์„ธ์…˜ ํ‚ค๋ฅผ ์ƒ์„ฑ

Cipher suite ๊ทธ ์„ธ์…˜์—์„œ ์‚ฌ์šฉ๋  ๊ณต์œ  ์•”ํ˜ธ ํ‚ค ๋˜๋Š” ์„ธ์…˜ ํ‚ค์™€ ๊ฐ™์€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ง€์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ง‘ํ•ฉ encryption keys, session keys ๊ฐ™์€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ํฌํ•จ public key cryptography๊ธฐ์ˆ ๋กœ ์•”ํ˜ธํ™”๋œ ์ฑ„๋„์— ๋งž๋Š” ์„ธ์…˜ ํ‚ค๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค

public key cryptography = asymmetric cryptography. 
public key์™€ private key ๋‘๊ฐ€์ง€ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
public key๋กœ ์•”ํ˜ธํ™”ํ•œ ๋ฐ์ดํ„ฐ๋Š” private key๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋งŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค
SSL/TLS certificate๋Š” public key๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค private key๋Š” ์„œ๋ฒ„์— ์„ค์น˜๋œ๋‹ค
TLS handshake๋Š” public key๋ฅผ origin server์˜ ์‹ ์›์„ ์ธ์ฆํ•˜๊ณ  , ์„ธ์…˜ ํ‚ค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜(RSA or Diffie-Hellman)ํ•˜๋Š”๋ฐ์— ์‚ฌ์šฉ๋œ๋‹ค
์„ธ์…˜ ํ‚ค๋Š” ํ•ธ๋“œ์…ฐ์ดํฌ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„์— symmetric cryptography์— ์‚ฌ์šฉ๋œ๋‹ค
ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” ๊ฐ ํ†ต์‹  ์„ธ์…˜๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์„ธ์…˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์•…์˜์ ์ธ ํ–‰์œ„์ž๊ฐ€ ์ด์ „ ์„ธ์…˜ํ‚ค๋ฅผ ์‹๋ณ„ํ•˜๊ฑฐ๋‚˜ ๋„์šฉํ•ด๋„ ํ†ต์‹ ์„ ํ•ด๋…ํ•  ์ˆ˜ ์—†๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค

 

'Developing > TIL(CS)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋””์ž์ธ ํŒจํ„ด  (0) 2024.04.17
HTTP/HTTPS  (0) 2024.04.11
DB ๋กœ์ง ์ตœ์†Œํ™” ํ•˜๊ธฐ  (0) 2024.04.05
์ฟผ๋ฆฌ ์ตœ์ ํ™” ๋ฐฉ๋ฒ• Query Optimization  (0) 2024.04.05
TCP์™€ UDP  (0) 2024.04.03