[Computer Science][Network] πŸ” λŒ€μΉ­ν‚€μ™€ κ³΅κ°œν‚€: μ•”ν˜Έν™” μ•Œκ³ λ¦¬μ¦˜μ˜ 핡심 이해

κΉ€μƒμš±Β·2024λ…„ 8μ›” 18일
post-thumbnail

μ•”ν˜Έν™”μ™€ λ³΅ν˜Έν™”λŠ” ν˜„λŒ€ λ³΄μ•ˆ μ‹œμŠ€ν…œμ—μ„œ 맀우 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” λŒ€μΉ­ν‚€μ™€ κ³΅κ°œν‚€μ˜ κ°œλ…μ„ μ„€λͺ…ν•˜κ³ , ν•˜μ΄λΈŒλ¦¬λ“œ 방식을 톡해 λ³΄μ•ˆμ„±κ³Ό μ„±λŠ₯을 λͺ¨λ‘ ν™•λ³΄ν•˜λŠ” 방법을 μ•Œμ•„λ΄…λ‹ˆλ‹€.

πŸ”‘ λŒ€μΉ­ν‚€(Symmetric Key)

μ•”ν˜Έν™”μ™€ λ³΅ν˜Έν™”μ— λ™μΌν•œ μ•”ν˜Έν‚€(λŒ€μΉ­ν‚€)λ₯Ό μ‚¬μš©ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜

λŒ€μΉ­ν‚€λŠ” μ•”ν˜Έν™”μ™€ λ³΅ν˜Έν™”μ— λ™μΌν•œ ν‚€λ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ, 맀우 λΉ λ₯΄κ²Œ μ²˜λ¦¬λœλ‹€λŠ” μž₯점이 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ, 이 ν‚€λ₯Ό μ£Όκ³ λ°›λŠ” κ³Όμ •μ—μ„œ ν•΄ν‚Ή μœ„ν—˜μ΄ μ‘΄μž¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ”“ κ³΅κ°œν‚€(Public Key) / λΉ„λŒ€μΉ­ν‚€(Asymmetric Key)

μ•”ν˜Έν™”μ™€ λ³΅ν˜Έν™”μ— μ‚¬μš©ν•˜λŠ” μ•”ν˜Έν‚€λ₯Ό λΆ„λ¦¬ν•œ μ•Œκ³ λ¦¬μ¦˜

κ³΅κ°œν‚€λŠ” λŒ€μΉ­ν‚€μ˜ ν‚€ λΆ„λ°° 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ κ³ μ•ˆλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λŒ€μΉ­ν‚€ λ°©μ‹μ—μ„œλŠ” μ†‘μ‹ μžμ™€ μˆ˜μ‹ μž κ°„μ˜ ν‚€ λΆ„λ°°κ°€ λ³΅μž‘ν•˜κ³  μœ„ν—˜ν•  수 μžˆμ§€λ§Œ, κ³΅κ°œν‚€μ™€ λΉ„λ°€ν‚€λ‘œ λΆ„λ¦¬λœ λ°©μ‹μ—μ„œλŠ” κ³΅κ°œν‚€λ₯Ό λˆ„κ΅¬μ—κ²Œλ‚˜ κ³΅κ°œν•΄λ„ λ¬Έμ œκ°€ μ—†μŠ΅λ‹ˆλ‹€.

πŸ”„ κ³΅κ°œν‚€ μ•”ν˜Έν™” 방식 μ§„ν–‰ κ³Όμ •
  1. Aκ°€ B의 κ³΅κ°œν‚€λ‘œ μ•”ν˜Έν™”: AλŠ” 웹에 곡개된 B의 κ³΅κ°œν‚€λ₯Ό μ΄μš©ν•΄ 평문을 μ•”ν˜Έν™”ν•˜μ—¬ Bμ—κ²Œ λ³΄λƒ…λ‹ˆλ‹€.
  2. Bκ°€ λΉ„λ°€ν‚€λ‘œ λ³΅ν˜Έν™”: BλŠ” μžμ‹ μ˜ λΉ„λ°€ν‚€λ‘œ μ•”ν˜Έν™”λœ λ©”μ‹œμ§€λ₯Ό λ³΅ν˜Έν™”ν•˜μ—¬ 평문을 ν™•μΈν•˜κ³ , A의 κ³΅κ°œν‚€λ‘œ 응닡을 μ•”ν˜Έν™”ν•΄ Aμ—κ²Œ λ³΄λƒ…λ‹ˆλ‹€.
  3. Aκ°€ λΉ„λ°€ν‚€λ‘œ λ³΅ν˜Έν™”: AλŠ” μžμ‹ μ˜ λΉ„λ°€ν‚€λ‘œ μ•”ν˜Έν™”λœ 응닡문을 λ³΅ν˜Έν™”ν•©λ‹ˆλ‹€.

이 방식은 λ°μ΄ν„°μ˜ κΈ°λ°€μ„±(Confidentiality)을 보μž₯ν•΄μ£Όμ§€λ§Œ, 무결성(Integrity)κ³Ό 인증(Authenticity)은 보μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 즉, 데이터λ₯Ό ν—ˆκ°€λ˜μ§€ μ•Šμ€ μ‚¬λžŒμ—κ²Œμ„œ λ³΄ν˜Έν•΄μ£Όμ§€λ§Œ, 데이터가 전솑 쀑에 λ³€κ²½λ˜μ§€ μ•Šμ•˜λŠ”μ§€ λ˜λŠ” μ†‘μ‹ μžκ°€ μ‹€μ œλ‘œ κ·Έ μ‚¬λžŒμΈμ§€ 확인할 수 μ—†μŠ΅λ‹ˆλ‹€.

➑️ 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ MAC(Message Authentication Code)와 μ „μž μ„œλͺ…(Digital Signature)이 μ‚¬μš©λ©λ‹ˆλ‹€. (유의: MAC은 λŒ€μΉ­ν‚€ λ°©μ‹μž„!)

πŸ” MAC(Message Authentication Code)
  • λŒ€μΉ­ν‚€ μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜μ—¬ λ©”μ‹œμ§€μ™€ 곡유된 λΉ„λ°€ν‚€λ‘œ MAC 값을 μƒμ„±ν•©λ‹ˆλ‹€. 이 MAC 값은 λ©”μ‹œμ§€μ™€ ν•¨κ»˜ μ „μ†‘λ©λ‹ˆλ‹€.
  • μˆ˜μ‹ μžλŠ” λ™μΌν•œ λΉ„λ°€ν‚€λ‘œ λ™μΌν•œ λ°©μ‹μœΌλ‘œ MAC 값을 μƒμ„±ν•˜κ³ , μ „μ†‘λœ MAC κ°’κ³Ό λΉ„κ΅ν•©λ‹ˆλ‹€. μΌμΉ˜ν•˜λ©΄ λ©”μ‹œμ§€κ°€ λ³€μ‘°λ˜μ§€ μ•Šμ•˜κ³ , μ†‘μ‹ μžκ°€ μ˜¬λ°”λ₯Έ μ‚¬λžŒμž„μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • MAC ν˜•μ‹: T=MAC(K,M)
    • TλŠ” μƒμ„±λœ MAC κ°’
    • KλŠ” μ†‘μ‹ μžμ™€ μˆ˜μ‹ μžκ°€ κ³΅μœ ν•œ λΉ„λ°€ν‚€
    • M은 λ©”μ‹œμ§€
  • μ€‘μš”: MAC은 λŒ€μΉ­ν‚€λ₯Ό μ‚¬μš©ν•˜λ―€λ‘œ, μ†‘μ‹ μžμ™€ μˆ˜μ‹ μžκ°€ λ™μΌν•œ ν‚€λ₯Ό κ³΅μœ ν•΄μ•Ό ν•˜λ©°, μ΄λŠ” κ³΅κ°œν‚€ μ•”ν˜Έν™” 방식이 μ•„λ‹Œ λŒ€μΉ­ν‚€ μ•”ν˜Έν™” λ°©μ‹μž…λ‹ˆλ‹€.
βœ’οΈ μ „μž μ„œλͺ…(Digital Signature)
  • μ†‘μ‹ μžλŠ” λ©”μ‹œμ§€μ— μžμ‹ μ˜ λΉ„λ°€ν‚€λ‘œ μ„œλͺ…ν•©λ‹ˆλ‹€. μ„œλͺ…은 일반적으둜 λ©”μ‹œμ§€μ˜ ν•΄μ‹œκ°’μ„ λΉ„λ°€ν‚€λ‘œ μ•”ν˜Έν™”ν•˜μ—¬ μƒμ„±λ©λ‹ˆλ‹€.
  • μˆ˜μ‹ μžλŠ” μ†‘μ‹ μžμ˜ κ³΅κ°œν‚€λ‘œ μ„œλͺ…을 λ³΅ν˜Έν™”ν•˜κ³ , λ©”μ‹œμ§€μ˜ ν•΄μ‹œκ°’μ„ κ³„μ‚°ν•˜μ—¬ λΉ„κ΅ν•©λ‹ˆλ‹€.
  • μ„œλͺ… 검증이 μ„±κ³΅ν•˜λ©΄, λ©”μ‹œμ§€κ°€ λ³€μ‘°λ˜μ§€ μ•Šμ•˜κ³  μ†‘μ‹ μžκ°€ μ‹€μ œλ‘œ λ©”μ‹œμ§€λ₯Ό 보낸 것이 ν™•μΈλ©λ‹ˆλ‹€.
  • μ°Έκ³ : μ—¬κΈ°μ„œμ˜ μ•”ν˜Έν™”μ™€ λ³΅ν˜Έν™”λŠ” 일반적인 의미의 μ•”ν˜Έν™”-λ³΅ν˜Έν™”μ™€λŠ” λ‹€λ¦…λ‹ˆλ‹€. μ΄λŠ” μ„œλͺ…이 μ‹€μ œλ‘œ μ†‘μ‹ μžμ˜ λΉ„λ°€ν‚€λ‘œ μƒμ„±λœ 것인지λ₯Ό ν™•μΈν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€.

λŒ€μΉ­ν‚€μ— λΉ„ν•΄ μ•”ν˜Έν™”μ™€ λ³΅ν˜Έν™” 과정이 맀우 λ³΅μž‘ν•˜μ§€λ§Œ, μ•”ν˜Έν™”ν•˜λŠ” 킀와 λ³΅ν˜Έν™”ν•˜λŠ” ν‚€κ°€ μ„œλ‘œ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— μ•ˆμ „μ„±μ΄ λ†’μŠ΅λ‹ˆλ‹€.

πŸ”„ ν•˜μ΄λΈŒλ¦¬λ“œ 방식: λŒ€μΉ­ν‚€μ™€ κ³΅κ°œν‚€ μ•”ν˜Έν™”μ˜ κ²°ν•©

SSL(Secure Sockets Layer)의 μ‹œμ΄ˆκ°€ 된 방식

  1. λŒ€μΉ­ν‚€ 전솑: AλŠ” B의 κ³΅κ°œν‚€λ‘œ μ•”ν˜Έν™” 톡신에 μ‚¬μš©ν•  λŒ€μΉ­ν‚€λ₯Ό μ•”ν˜Έν™”ν•΄ Bμ—κ²Œ λ³΄λƒ…λ‹ˆλ‹€.
  2. λΉ„λ°€ν‚€λ‘œ λ³΅ν˜Έν™”: BλŠ” μžμ‹ μ˜ λΉ„λ°€ν‚€λ‘œ μ•”ν˜Έλ¬Έμ„ λ³΅ν˜Έν™”ν•©λ‹ˆλ‹€.
  3. λŒ€μΉ­ν‚€λ‘œ μ•”ν˜Έν™”: BλŠ” Aλ‘œλΆ€ν„° 받은 λŒ€μΉ­ν‚€λ‘œ 평문을 μ•”ν˜Έν™”ν•˜μ—¬ Aμ—κ²Œ λ³΄λƒ…λ‹ˆλ‹€.
  4. λŒ€μΉ­ν‚€λ‘œ λ³΅ν˜Έν™”: AλŠ” μžμ‹ μ˜ λŒ€μΉ­ν‚€λ‘œ μ•”ν˜Έλ¬Έμ„ λ³΅ν˜Έν™”ν•©λ‹ˆλ‹€.
  5. λŒ€μΉ­ν‚€λ‘œ 톡신: μ΄ν›„λ‘œλŠ” 이 λŒ€μΉ­ν‚€λ₯Ό μ‚¬μš©ν•΄ 톡신을 μ§„ν–‰ν•©λ‹ˆλ‹€.

➑️ ν•˜μ΄λΈŒλ¦¬λ“œ 방식은 κ³΅κ°œν‚€ μ•”ν˜Έν™”λ₯Ό μ‚¬μš©ν•˜μ—¬ λŒ€μΉ­ν‚€λ₯Ό μ•ˆμ „ν•˜κ²Œ κ΅ν™˜ν•œ ν›„, λŒ€μΉ­ν‚€λ₯Ό μ΄μš©ν•΄ λΉ λ₯΄κ³  효율적으둜 ν†΅μ‹ ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

❓ μ™œ ν•˜μ΄λΈŒλ¦¬λ“œ 방식을 μ‚¬μš©ν•˜λŠ”κ°€?

  • κ³΅κ°œν‚€ μ•”ν˜Έν™”λŠ” μ•ˆμ „ν•˜μ§€λ§Œ 속도가 느리기 λ•Œλ¬Έμ—, μ΄ˆκΈ°μ—λŠ” λŒ€μΉ­ν‚€λ₯Ό μ•ˆμ „ν•˜κ²Œ κ΅ν™˜ν•˜λŠ”λ°λ§Œ μ‚¬μš©λ©λ‹ˆλ‹€.
  • λŒ€μΉ­ν‚€ μ•”ν˜Έν™”λŠ” λΉ λ₯΄κ³  νš¨μœ¨μ μ΄μ§€λ§Œ, ν‚€μ˜ μ•ˆμ „ν•œ κ΅ν™˜μ΄ μ–΄λ ΅μŠ΅λ‹ˆλ‹€.

μ΄λŸ¬ν•œ ν•˜μ΄λΈŒλ¦¬λ“œ 방식은 λ³΄μ•ˆμ„±κ³Ό μ„±λŠ₯을 λͺ¨λ‘ 확보할 수 μžˆμ–΄, SSLκ³Ό TLS(Transport Layer Security)와 같은 ν”„λ‘œν† μ½œμ—μ„œ 널리 μ‚¬μš©λ©λ‹ˆλ‹€.

0개의 λŒ“κΈ€