💡 A가 B에게 CIP를 지켜 메시지를 안전하게 전달하기 위해 암호화 키와 함께 메세지 전달

CIP
: 기밀성(Confidentiality), 무결성(Integrity), 인증(Authentication)

 

 

‼️ 발생할 수 있는 문제

1. 암호키 탈취 위험

C가 암호키를 탈취하여 메세지 해독 가능

A → [메시지1 + 암호화키] → C(해커) → B
     ↓
C가 암호키를 탈취하여 메시지 해독 가능

 

2. 인증 문제 (송신자 위조)

C가 암호키를 몰라도 메세지를 가로채고 다른 메세지로 교체 가능

B는 실제 송신자가 누구인지 확인할 수 없음

A → [메시지1] → C(해커) 
C → [메시지2] → B (B는 A가 보낸 줄 알고 받음)

 

 

RSA로 보안문제 해결

RSA
· Public Key (공개키): 누구나 알 수 있는 키
· Private Key (개인키): 본인만 알고 있는 키

핵심원리
1. 공개키로 암호화 → 개인키로 복호화 (기밀성, 암호화)
2. 개인키로 암호화 → 공개키로 복호화 (인증, 전자서명)

 

1. 암호키 탈취 위험 해결 : 기밀성 확보

1. A가 B의 공개키로 메세지 암호화
2. A → [암호화된 메시지] → 해커C → B
3. 해커C가 가로채지만 읽을 수 없음
4. B만이 자신의 개인키로 복호화 가능
  • 해커가 메시지를 가로채도 내용을 알 수 없음
  • B의 개인키 없이는 절대 복호화 불가능

2. 인증 문제 (송신자 위조) 해결 : 인증 확보

1. A가 자신의 개인키로 메시지 암호화 (디지털 서명)
2. A → [서명된 메시지] → 해커C → B
3. 해커C가 내용을 볼 수는 있음 (A의 공개키로 복호화 가능)
4. 하지만 B는 A의 공개키로 복호화되므로 A가 보낸 것임을 확신
  • 송신자가 A임을 확실히 증명
  • 해커가 메시지를 위조하면 A의 공개키로 복호화되지 않음
  • 부인방지: A는 자신이 보냈다는 것을 부인할 수 없음
 
 
🤔 만약 해커C가 B의 개인키가 없어 해독할 수 없는 메세지를 날려버리고 새로운 데이터를 B에게 보낸다면?
  • 기밀성 필요 (해커가 내용을 보면 안 됨)
  • 인증 필요 (A가 보낸 것임을 증명)
1. A가 "1234"를 B의 공개키로 암호화 (기밀성)
   → 결과: [B공개키로 암호화된 "1234"]

2. 1번 결과를 A의 개인키로 한 번 더 암호화 (인증)
   → 최종: [A개인키로 암호화된 [B공개키로 암호화된 "1234"]]

3. B가 받아서 복호화:
   - 먼저 A의 공개키로 복호화 → 송신자 A 확인 ✅
   - 그 다음 B의 개인키로 복호화 → 내용 "1234" 확인 ✅
 

+ Recent posts