💡 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" 확인 ✅
'Back-End > ↳ Spring Security' 카테고리의 다른 글
[Spring Security] JWT (0) | 2025.07.27 |
---|---|
[Spring Security] Session (1) | 2025.07.27 |
[Spring Security] 권한 설정 (3) | 2025.07.27 |
[Spring Security] 회원가입 / 로그인 (2) | 2025.07.27 |
[Spring Security] 기본 설정 - URL별 접근 권한 설정 (0) | 2025.07.26 |