반응형

HTTPS (Hyper-Text-Transfer-Protocol-Secure)

- 기존 HTTP에 보안 기능(Secure)가 추가된 것으로 기존 HTTP보다 안전하다.

- 정보 전송 시 특정대상만 알아 볼 수 있도록.

(내가 사이트에 보내는 정보를 제 3자가 못 보게 한다.)

- 접속한 사이트가 정품인지, 신뢰할 수 있는 사이트인지 확인해준다. (피싱 사이트 등의 수상한 사이트가 아닌지 확인해준다.)

 

*대칭키 방식

- 그동안 널리 사용되어 온 방식, 동일한 키를 이용하여 암호화, 복호화 진행.

- 메시지를 보내는 쪽, 받는 쪽이 메시지를 암호화하고, 이를 다시 메시지로 바꾸는 복호화하는 같은 방식을 공유하는 것.

- 사용된 키 값을 알지 못하면 절대 복호화가 불가능 하다. 

- 대칭키의 한계 : 키 값을 통해 암호화, 복호화가 이루어 지는데 중간에 제 3자가 이를 탈취한다면 문제가 발생할 수 있다.

 

*비 대칭키 (공개키) 방식

- 서로 다른 한 쌍의 키를 사용.

- 서로 다른 한 쌍의 키를 사용한 암호화 방식을 공개키 라고 한다.

- 대칭키와 달리 A키로 암호화를 진행하면 B키로만 복호화가 가능하다. 반대로, B키로 암호화를 진행하면 A키로만 복호화가 가능하다.

- 서버는 대칭이 되는 키 중 하나는 비밀로 보관(개인키), 다른 하나는 대중들에게 공개(공개키)하여 사용자 들은 공개키를 이용하여 정보를 암호화 하여 서버에 전달하는데, 중간에 제 3자가 이를 탕취해도 개인키가 없다면 복호화가 불가능하므로, 안전하다.

 

*CA (Certificate Authority)

- 서버의 공개키가 정품인지 인증해 주는 공인된 민간기업을 의미

- CA는 아무나 할 수 있는 것이 아니라, 엄격한 인증과정을 거쳐야 CA를 할 수 있다.

- 크롬, 사파리 등의 브라우저에는 CA 목록들이 내장되어 있다.

1. handShake

- 사용자 or 브라우저(클라이언트)가 서버가 신뢰할 수 있는지 탐색하는 과정.

- 클라이언트는 랜덤한 데이터를 생성하여 서버에 전달, 서버도 랜덤한 데이터를 생성하여 데이터와 인증서를 클라이언트에 전달한다.

- 클라이언트는 서버로 부터 받은 인증서가 진짜인지 브라우저에 내장된 CA들의 정보를 통해 확인 한다.

(비대칭키  시스템을 이용)

- CA의 인증을 받은 인증서 들은 CA의 개인키로 암호화가 되어있는데, 이게 진짜라면 브라우저에 저장된 해당 CA의 공개키로 복호화가 가능하다. (이 공개키로 복호화될 수 있는 인증서를 발급할 수 있는 건 그에 대응하는 개인키를 가진 CA 뿐이므로)

- 성공적으로 복호화된 인증서에는 서버의 공개키가 포함되어 있다.

- 데이터를 대칭키로 함호화, 해당 대칭키를 공유할 땐 비 대칭키를 사용한다.

- 클라이언트는 handShake를 통해 생성된 무작위 데이터를 혼합하여 임시 키를 생성, 해당 임시키는 서버의 공개키로 암호화돼서 서버로 전달된 다음, 양쪽에서 일련의 과정을 거쳐 동일한 대칭키로 만들어진다. 

- 이 과정을 통해 서버와 클라이언트는 둘만 갖고 있는 대칭키를 이용하기 때문에, 제 3자가 중간에 정보를 탈취하여 확인하는 것은 거의 불가능하다.

반응형

'기타' 카테고리의 다른 글

이클립스 디버거 사용법  (0) 2020.07.04
톰캣 오류 해결방법  (0) 2020.06.26
CRUD (Create / Read / Update / Delete)  (0) 2020.06.20
스프링 개발환경 설정  (0) 2020.06.19
스트링 빌더(Stringbuilder)  (0) 2020.06.18

+ Recent posts