JAVA

RSA 개념 완벽하게 이해하기

RSA 개념 완벽하게 이해하기

보안에 필요한 3가지 요소

CIA

CIA

1. 기밀성(Confidentiality)

엘리스가 밥에게 ‘사랑해’라는 메시지를 보냈다. 이 메시지를 이브가 중간에 탈취하여 메시지를 확인한다. 비록 밥에게 메시지는 제대로 전달되었지만 이 메시지는 이브에게 노출되었기 때문에 기밀성이 깨졌다고 할 수 있다. 즉, 기밀성이랑 특정 정보에 대해 허가된 송신자(Sender) 및 수신자(Resiver)에 한해서만 정보를 확인할 수 있는 것을 의미한다.

2. 무결성(Integrity)

엘리스가 밥에게 ‘사랑해’라는 메시지를 보냈다. 이 메시지를 이브가 중간에 탈취하여 ‘사랑해’라는 메시지를 ‘싫어해’라는 메시지를 위조하여 밥에게 보낸다. 밥은 엘리스에게 메시지를 받았다고 생각하지만 이 메시지는 위조된 메시지이다. 이처럼 정보의 일관성이 없어지는 것을 무결성이 깨졌다고 할 수 있다. 즉, 무결성은 특정 정보에 대해 허가된 송신자 및 수신자에 한해서만 정보를 수정/삭제할 수 있어야 하는 것을 의미한다.

3. 가용성(Availability)

엘리스가 밥에게 ‘사랑해’라는 메시지를 보낸다. 이 때 엘리스는 특수한 자물쇠를 걸어 밥에게 메시지를 보낸다. 이 자물쇠는 잠그는 키와 여는 키가 다르다. 하나는 개인키이고 하나는 공개키이다. 공개키로 잠그면 개인키로 열 수 있고 개인키로 잠그면 공개키로 열 수 있다. 엘리스는 밥의 공개키로 메시지를 잠궈서 밥에게 보낸다. 이 메시지는 밥의 개인키로만 열 수 있기 때문에 메시지의 탈취와 위조를 면할 수 있다. 하지만 이 방법은 엘리스와 밥이 서로 합의된 후에 성립될 수 있다. 만약 합의가 되지 않았다면 이는 가용성이 깨졌다고 할 수 있다. 즉, 가용성은 특정 정보에 대해 송신자 및 수신자가 필요시에 항상 사용할 수 있어야하는 것을 의미한다.

보안 기술의 변화

DES ASE RSA

DES와 ASE는 대칭키(Semantic key) 암호화 방법으로 자물쇠를 잠그는 키와 여는 키가 같다. 이 방법은 엘리스가 밥에게 메시지를 전송하는 것과 함께 열쇠도 전송해야 하는데 메시지도 탈취할 수 있는 이브라면 열쇠도 탈취할 가능성이 있다. 이처럼 대칭키 교환으로 인한 문제를 해결하기 위해 나온 것이 바로 대칭키를 사용하지 않는 방식인 RSA 보안 기술이다.

여기서 말하는 보안 기술은 암호화와 복호화가 모두 가능한 기술을 말합니다. 스프링부트 블로그 만들기에서 사용한 암호화 방법인 해시(Hash)는 암호화는 되지만 복호화는 할 수 있는 방법이에요.

RSA 암호화란

기존의 대칭키 교환으로 인한 문제를 해결하기 위해 등장한 방법이다. RSA 암호화는 공개키 암호화 시스템으로 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한 활용을 가능하게한다.

SSH 프로토콜

SSH(Secure Shell)는 RSA 암호화에 사용되는 프로토콜로 다른 OS와 통신하기 위해 필요한 프로토콜이다. 앞서 설명한 것과 같이 공개키와 개인키, 두 가지 열쇠를 사용하여 열고 잠글 때 각각 다른 키를 사용하도록 만든 통신 규약이다. 공개키로 잠그면 개인키로만 열 수 있기 때문에 암호화에 적합하며, 개인키로 잠궈 공개키로 열 수 있게 하면 전자서명과 같은 인증에 적합하다.

암호화

RSA.drawio

인증 (공인인증서)

전자서명

 

최신글