Skip to content

Commit

Permalink
Merge pull request #17 from HyunJunSon/main
Browse files Browse the repository at this point in the history
기술세미나 blog upload: Http 누구냐 넌?
  • Loading branch information
anso33 authored Dec 27, 2023
2 parents 13da7f0 + a59b24c commit 66f2917
Show file tree
Hide file tree
Showing 24 changed files with 160 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .idea/blog.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/jpa-buddy.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
19 changes: 19 additions & 0 deletions .idea/sonarlint/issuestore/index.pb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
19 changes: 19 additions & 0 deletions .idea/sonarlint/securityhotspotstore/index.pb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

110 changes: 110 additions & 0 deletions _posts/2023-11-15-Https.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
---
layout: post
title: Https 누구냐 넌?
author: 손현준
categories: 기술세미나
banner:
image: https://github.com/Kernel360/blog-image/blob/main/2023/1115/1.jpg?raw=true
background: "#000"
height: "100vh"
min_height: "38vh"
heading_style: "font-size: 4.25em; font-weight: bold; text-decoration: underline"
tags: [네트워크, Https, Http, 공개키, 개인키 ,기술세미나]
---

안녕하세요. 저는 이번 Kernel360의 기술세미나에서 Https를 주제로 발표하게된 손현준입니다.

HTTPS는 인터넷을 통한 안전한 데이터 전송에 사용되는 보안 버전의 HTTP입니다. Https를 통해
데이터 개인 정보 보호 및 보안을 보호하기 위해 정보를 암호화합니다.<br>


## 1. Https 란?
https://github.com/Kernel360/blog-image/blob/main/2023/1115/2.jpg?raw=true

우리가 인터넷에서 자주 사용하는 인터넷 주소를 살펴보면, 프로토콜, 호스트(도메인), 포트번호, 경로, 쿼리값 등으로 이루어져 있습니다. 이 중 가장 앞부분에

자리하고 있는 http 부분을 hyper text Protocol 이라고 부릅니다. 하이퍼 텍스트 프로토콜이 무엇일까요? 프로토콜은 쉽게 말해, 인터넷 상에서 하이퍼 텍스트

문서를 주고 받을때 지켜야 할 규약을 의미합니다. 그러면 Https 는 무엇일까요? 바로 기존의 Http에 Secured 즉, 보안처리, 암호화된 하이퍼텍스트 통신규약을

의미한다고 보면 됩니다.

https://github.com/Kernel360/blog-image/blob/main/2023/1115/3.jpg?raw=true

## 2. Https 와 Http 의 차이점?
https://github.com/Kernel360/blog-image/blob/main/2023/1115/4.jpg?raw=true

Http 와 Https에는 위 표와 같은 차이점이 존재합니다. Https는 장점만 존재하지는 않습니다. Http 보다 추가적인 보안과정이 필요하므로, Http보다는 느릴수

밖에 없습니다. 따라서, 특별한 보안이 필요하지 않는, 사내망이나, 인트라넷의 경우는 Https를 하는것이 오히려 더 부적절 할 수 있습니다.

https://github.com/Kernel360/blog-image/blob/main/2023/1115/5.jpg?raw=true

Https는 왜 그림과 같이 SSL 이나, TLS 과정이 포함됩니다. SSL은 Secure Sockets Layer의 약자로 인터넷 연결을 안전하게 유지해 주고, 두 시스템 간에

전송되는 중요한 데이터를 보호하고 범죄자들이 잠재적인 개인 정보를 포함하여 전송된 정보를 읽고 수정하는 것을 방지하기 위한 보안 표준 기술을 뜻합니다. TLS는

Transport Layer Security의 약자로, SSL보다 더 안전한 업데이트 버전이라고 생각하시면 됩니다.

## 3. Http 의 문제점과 해결책

### 문제점1. 내가 접속한 사이트가 진짜 사이트인지 판단 할 수 없다.
https://github.com/Kernel360/blog-image/blob/main/2023/1115/6.jpg?raw=true

Https를 사용하지 않으면, 내가 지금 접속하여 통신하고 있는 서버가 진짜, 서버인지 가짜 서버인지 확인할 수 있는 방법이 없다. 이는 사람들에을 피싱사이트로 유도
해 범죄행위를 일으키는 해커들의 주요 타켓이 될 수 있다는 위험성을 가진다.

### 해결책1. CA (Certificate Association)
CA 는 인증기관으로, 웹사이트, 이메일주소, 회사 또는 개인같은 엔티티의 신원을 확인하고 전자 문서를 발행하여 암호화 키에 바인딩하는 회사 또는 조직을 말한다.
CA의 인증은 내가 통신하고 있는 주체에 대한 신뢰성을 부여한다.

https://github.com/Kernel360/blog-image/blob/main/2023/1115/7.jpg?raw=true

위와 같이 CA의 인증을 받은 사이트의 경우는, 인증서를 확인할 수 있다.

### 문제점2. 클라이언트와 서버가 주고 받는 정보를 제3자가 볼 수 있다.
https://github.com/Kernel360/blog-image/blob/main/2023/1115/8.jpg?raw=true

Https 환경이 아니면, 보안측면에서 주고 받는 데이터에 대한 암호화가 되지 않아, 클라이언트와 서버간의 주고 받는 데이터를 제3가 탈취할 수 있다는
위험성이 생긴다.

### 해결책2. 암호화

데이터 탈취에 대한 위험성을 줄이기 위한 해결책으로 암호화를 생각해 볼수 있다. 암호화는 크게 두가지 방식을 생각해 볼 수 있는데, 대칭키 방식과 비대칭키 방식이
있다.
https://github.com/Kernel360/blog-image/blob/main/2023/1115/9.jpg?raw=true


## 4. Https 의 내부작동원리

암호화 방식과 관련해 Https가 내부에서 어떻게 작동하는지 살펴보자.
이 내용은 널널한개발자 유튜브의 아래 참고링크의 내용을 기반으로 작성하였다.

### 대칭키의 한계
https://github.com/Kernel360/blog-image/blob/main/2023/1115/10.jpg?raw=true

대칭키는 하나의 키로 암호화와 복호화를 모두 진행한다. 따라서, 본질적으로 제3자(해커) 몰래 대칭키를 어떻게 나누어 가질 것인가 라는 문제에 부딪친다.
따라서, 이에 대안으로 등장한 것이 비대칭키 이다. 비대칭키는 공개키와 개인키 두개로 각각 암호화와 복호화의 하나의 기능만 하도록 만들었다.

https://github.com/Kernel360/blog-image/blob/main/2023/1115/11.jpg?raw=true

비대칭키를 교환하는 방식은 위와 같다.

https://github.com/Kernel360/blog-image/blob/main/2023/1115/12.jpg?raw=true
1. 클라이언트와 서버 각 사이드가 공개키와 개인키 각각의 키쌍을 생성합니다.
2. 각 사이드의 public 키를 교환합니다. 이 public 키는 전세계 모든 컴퓨터에게 개방되어 있고 용도는 암호화 입니다.
3. 받은 상대방의 public키로 평문을 암호화 하고, 암호화된 암호문을 상대방에게 보냅니다.
4. 받은 암호문을 개인키로 복호화 합니다.

https://github.com/Kernel360/blog-image/blob/main/2023/1115/13.jpg?raw=true

---
**참고자료, 사진출처**

https://velog.io/@younara/HTTP%EC%99%80-HTTPS%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90
https://kicassl.com/sslcert/sslcert/printSslCert.sg
https://www.youtube.com/watch?v=H6lpFRpyl14&ab_channel=%EC%96%84%ED%8C%8D%ED%95%9C%EC%BD%94%EB%94%A9%EC%82%AC%EC%A0%84
https://www.youtube.com/watch?v=wPdH7lJ8jf0&t=626s&ab_channel=%EC%9A%B0%EC%95%84%ED%95%9C%ED%85%8C%ED%81%AC
https://www.youtube.com/watch?v=0cfUVrQW_yg&ab_channel=%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9
https://www.youtube.com/watch?v=jyZ7TQaFy_o&ab_channel=%EB%84%90%EB%84%90%ED%95%9C%EA%B0%9C%EB%B0%9C%EC%9E%90TV
---

0 comments on commit 66f2917

Please sign in to comment.