반응형
CIA
CIA ( Confidentiality Integrity Availability )
- Confidentiality - 기밀성
- 개인정보, 민감한 정보 등을 인가된 사용자에게만 허가해 줍니다.
- Integrity - 무결성
- 내용의 변경이나, 훼손 없이 정확하게 보존합니다.
- Availability - 가용성
- 항상 정상적으로 신뢰성 있는 서비스를 할 수 있는 상태
예를 들어 A, B, C 세 나라가 있다고 가정해 봅시다.

- A나라가 B나라에게 문서를 전달하는데, 중간에서 C 나라가 문서를 탈취했습니다. → 기밀성이 깨짐

- A나라가 B나라에게 문서를 전달하는데, 이번에는 C나라가 위조된 문서를 전달시켰습니다. → 무결성이 깨짐

- B나라는 A나라가 보내준 문서를 잘 받았습니다. ( 사실 C나라가 위조시킨 문서 ) → 가용성이 깨짐
가용성을 지키는 방법

- 문서를 보낼 때, 문서를 지킬 전사를 함께 보내는 겁니다.
- BUT, C나라에 더 강한 전사가 있다면 → 똑같이 탈취
기밀성을 지키는 방법

- 문서를 A라는 열쇠로 잠그고(암호화) 보냅니다. → 기밀성을 지킴
- 하지만, C나라가 문서를 열지 못할지 몰라도 그건 B나라도 마찬가지입니다. 열쇠 전달 문제가 발생하게 됩니다.
누가 보낸 거지?

- A가 B에게 내일 10시에 보자고 보냈다.
- 그러자 B에게 알았다고 응답이 왔다. 하지만 다음날 B는 나오지 않았다.
- ???? 왜?????
B가 보낸 게 맞을 까?

A가 보낸게 맞을 까?

누가 보냈는지에 대한 문제가 발생합니다.
앞에 두 가지 문제가 있었습니다.
- 열쇠 전달 문제
- 누가 보냈는가에 대한 문제, 인증문제를 어떻게 할 것 인가
RSA( 암호화 )
- Public Key : 공개 키
- 자신의 블로그나 오픈된 공간에 공개해도 문제 되지 않는 키
- Private Key : 개인 키
- 오직 자신만 알고 있어야 하는 키
공개키로 암호화를 했다면, 개인키로만 열 수 있습니다.
만약 개인키로 암호화를 했다면, 공개키로만 열 수 있습니다.
이전 문제에 RSA를 적용하여 해결해 봅시다.

- A가 비밀번호를 보낼 때, B의 공개키로 암호화를 한 뒤 보냈다.
- 하지만, 중간에 C가 문서를 가로챘다. BUT C는 내용을 볼 수가 없다. WHY? B의 공개키는 반드시 B의 개인키로만 열 수 있기 때문!
< 열쇠 전달 문제 해결 >
그렇다면 누가 보냈는지는 어떻게 인증할 수 있을까?
- 위에서 B의 공개키는 반드시 B의 개인키로만 열 수 있다고 했다.
- 이를 반대로 적용하면
- A가 보냈다는 의미로 자신의 개인키로 한번 더 잠그는 것이다. ( 이중 잠금 )
- 만약 A가 보낸 게 맞다면 무조건 A의 공개키로 열려야만 한다는 것이다!

B는 이제 문서를 받았을 때, 아래와 같이 처리를 합니다.
인증
- A의 공개키로 문서를 열어본다.
- 열림 → A가 보낸 것이 확실하다. ( 인증 완료 )
- 안 열림 → A가 보낸 것이 아니므로 열지 않는다.
암호화
- B의 개인키로 열어본다.
- 열림 → 암호화가 잘 되었다. ( 암호화 완료 )
- 안열림 → 암호화가 되지 않았다.
공개키 → 개인키 ( 암호화에 주로 사용 )
개인키 → 공개키 ( 전자 서명에 주로 사용 )
[ 참고자료 ]
728x90
반응형
'Spring' 카테고리의 다른 글
| Spring Boot ) Hibernate 사용 시 Error creating bean with name 'entityManagerFactory' 해결법 (0) | 2023.03.19 |
|---|---|
| Spring Security / RFC 문서 (0) | 2023.03.18 |
| Spring Security / TCP (1) | 2023.03.18 |
| 스프링 AOP 관점 지향 프로그래밍 (0) | 2023.03.18 |
| Spring Security 적용시 circular reference, dependency cycle 형성 해결법 (0) | 2023.03.17 |
댓글