티스토리 뷰
반응형
SSL 디지털 인증서
SSL 인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서이다.
- 클라이언트가 서버에 접속한 직후 서버는 클라이언트에게 이 인증서 정보를 전달한다.
- 클라이언트는 이 인증서 정보가 신뢰할 수 있는 것인지를 검증 한 후에 다음 절차를 수행하게 된다.
- 통신 내용이 공격자에게 노출되는 것을 막을 수 있다.
- 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버인지를 판단할 수 있다.
- 통신 내용의 악의적인 변경을 방지할 수 있다.
SSL에서 사용하는 암호화의 종류
- SSL의 핵심은 암호화이다.
대칭키
- Key를 통해 암호화된 메시지를 복호화 하는 방식이다.
-
Ex. LOVE라고 하는 메시지를 전송하자.
- 이 때, LOVE를 MPZF라는 메시지로 암호화하여 전송하게 되고, 해당 메시지를 수신하는 곳은 MPZF가 알파벳 순으로 -1될 시 LOVE가 되는 것을 알고 있어 LOVE로 복호화할 수 있게 되는 것이다.
-
즉, 전송 메시지를 암호화하고 기준 데이터인 KEY(Ex. 알파벳 -1)를 통해 암호화된 메시지를 복호화하는 것이다.
-
위 같은 방식을 대칭키 방식이라고 한다.
-
해당 방식은 혼자만 암호화하는 방식일 때 사용하는 암호화 방식이다.
- 그런데, 암호화된 해당 메시지를 멀리 있는 사람에게 전달할 때 여러 경유지를 거쳐서 전달하게 되는데 이 때, 멀리있는 사람이 암호화된 메시지를 풀기 위해서는 key값을 알아야하므로 Key값도 같이 전달될 수 있다.
- 이런 경우는 결국, Key값이 노출될 수 있다는 것이고 Key값을 알게되면 암호화된 메시지를 복호화할 수 있어 우리의 암호화 메시지가 노출될 수 있다는 것이라는 단점이 존재한다.
공개키
-
대칭키 방식을 개선한 방식이다.
-
공개키의 가장 큰 특징은 Key가 2개가 있다는 것이다.
-
공개키 방식은 2개의 키를 갖게 되는데, A키로 암호화를 하면 B키로 복호화할 수 있고, B키로 암호화하면 A키로 복호화 할 수 있는 방식이다.
- 2개의 키 중 하나는 비공개키(private key, 개인키, 비밀키)로 하고, 나머지를 공개키(public key)로 지정한다.
- 공개키는 누구에게나 제공이 되고, 비공개키만 자신이 가지고 있는 방식이다.
-
멀리있는 이에게 메시지를 전송하고자할 때, 공개키를 가지고 있는 사람이 메시지를 전송하게 되고, 메시지를 받는 자는 자신만의 개인키를 가지고 있어 메시지를 복호화할 수 있는 것이다.
- 즉, 개인키로만 메시지를 복호화할 수 있으므로 메시지가 노출되는 현상을 방지할 수 있는 것이다.
-
공개키를 활용하여 인증 서비스도 진행이 된다.
-
인증이란 메시지를 전달받았을 때 자신이 알고 있는 사람이 전송한 정보가 맞는지를 확인하는 것을 말한다.
- 공개키를 이용하면, 공개키를 가진 사람이 해당 메시지를 암호화한 후 비공개키를 가진 사람들에게 전송을 하는 것이다.
- 이렇게 되면 공개키를 가진 메시지가 전 영역에 전파가 되니 해당 메시지는 암호 개념에서 벗어나게 된다.
- 즉, 메시지를 전달 받았을 때 우리가 가진 공개키로 해당 메시지를 복호화하는데 성공했다면, 비공개키를 가진 사람이 해당 메시지를 전송했다라는 보증을 받을 수 있는 것이다.
-
반응형
'Network' 카테고리의 다른 글
[Network] TCP와 UDP (0) | 2020.05.11 |
---|---|
[Network] SSL 인증서 (0) | 2020.05.10 |
[Network] HTTP 1.1 vs HTTP 2.0 (0) | 2020.05.03 |
[Network] HTTPS와 HTTP 그리고 SSL (0) | 2020.04.27 |
[Network] HTTP 1.0 vs HTTP 1.1 (1) | 2020.04.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 김영한
- 스프링부트
- jdk버전
- java
- flatMap
- 점층적 생성 패턴
- try catch finally
- ifPresent
- 이펙티브자바
- junit
- 연관관계
- 인프런
- try with resources
- springboot
- 자바8
- java8
- 빌더 패턴
- 팩토리 메소드 패턴
- Effective Java
- 빈 순환 참조
- Spring
- 이펙티브 자바
- 생성자
- mustache
- 정적팩터리메서드
- @Lazy
- 복사 팩토리
- package-private
- JPA
- effectivejava
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함