문서만 읽는 건 좀 루즈하다면 - (4) 테코톡 발견, 네트워크 개념 돌아보기

yoorabaek·2022년 9월 11일
0

테코톡 영상을 통해 공부하는게 좋은 이유는 매 영상마다 발표자가 바뀌기 때문에 한 주제에 대해 필요한 배경지식이나 부가적인 개념을 매번 설명을 들을 수 있어서 다른 주제에서 이해 못했던 부분이 다른 영상에서 설명이 또 나와서 이해가 되기도 하는 것 같당,, 구웃



Topic 3. HTTPS

HTTPS 를 알기 전에 HTTP를 정확히 알고 가자면~

Hypertext Transfer Protocol. 서로 다른 시스템들 사이에서 통신을 주고받게 하는 가장 기본적인 프로토콜. 서버에서 브라우저로 데이터를 전송하는 용도로 가장 많이 사용한다.

HTTP는 전송되는 정보가 암호화가 이루어지지 않아 데이터가 쉽게 도난당할 수 있다는 문제가 있다.

HTTPS는

HyperText Transfer PRotocol Secure. SSL(보안 소켓 계층) 사용. SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버와 브라우저가 민감한 정보를 주고받을 때 해당 정보가 도난당하는 것을 막아준다.

HTTP 메시지 Body를 암호화 하는데 Header는 암호화되지 않는다. HTTPS를 사용하는 이유는 둘째로 검색엔진 최적화가 있다. 구글은 HTTPS 웹 사이트에 가산점을 주어 AMP(가속화 된 모바일 페이지 - 모바일에서 컨텐츠를 훨씬 빠르게 접근하도록 구글에서 만든 페이지)를 만들 때 HTTPS를 사용해야 한다.


SSL/TLS

둘은 동일한 용어로 보는데 TLS가 좀 더 발전된 형태라고 알아 두자.

(이하 SSL로 지칭)

SSL은 Secure Sockets Layer. Netscape Communications Corporation에서 웹 서버와 웹 브라우저간의 보안을 위해 만든 프로토콜. 공개키/개인키 대칭키 기반으로 사용한다.

두 가지 방식의 암,복호화를 같이 사용하는 이유는 무엇일까?

대칭키


동일한 키로 암, 복호화를 수행하는 방식이다. 누구든 암호화 키를 사용해 데이터를 복호화를 할 수 있다. => 쉽다.

공개키 (비대칭키)

서로 다른 키로 암, 복호화를 수행하는 방식이다. 공개키를 통해 암호화를 하지만 복호화는 개인키로만 가능하다.

공개키 방식은 대칭키에 비해 보안에 유리하지만 암호화 연산시간에 드는 비용이 더 크다.



두 방식은 서로 장단점이 반대되어 SSL은 이 두가지 방식을 적절히 함께 사용한다.


SSL은 공개키 방식으로 대칭키를 전달한다. 그리고 이 대칭키를 활용해서 암,복호화를 수행하고 서버와 브라우저 간 통신을 진행한다.

그렇다면, 사용자가 접속한 사이트가 유용한지 어떻게 알 수 있을까?

우선 사이트는 사이트 인증서(인증기관에서 발급한 문서)가 필요하다. 이를 위해 인증기관에서 사이트 정보와 사이트 공개키를 사이트에 전달한다. 인증기관의 검증 후 인증기관 개인키로 서명을 해서 사이트 인증서가 생성되고 이를 사이트에 전달하는 것이다. 그리고 인증기관은 사용자에게 자신의 공개키를 전달한다. 그러면 사용자의 브라우저에 공개키가 내장된다. 사용자가 사이트에 접속을 요청하면 자신의 사이트 인증서를 전달하고 사용자의 브라우저에 내장된 인증기관 공개키로 인증서를 복호화해서 검증한다. 인증서를 해독하면 사이트 정보와 사이트 공개키를 얻을 수 있어 자신의 대칭키를 암호화해서 이를 사이트에 전달하면 자신의 개인키로 사용자의 암호화된 대칭키를 해독해서 사용자의 대칭키를 얻는다. So, 사이트와 사용자는 SSL 방식으로 통신할 수 있게 된다.

(참고영상: 다니의 HTTPS)



Topic 4. 네트워크 보안

네트워크는 링크와 노드의 집합을 의미한다. => 이전 정의와는 또 다르게 해석
여기서 노드는 컴퓨터, 스마트폰, 서버와 같은 호스트가 될 수도 있고 라우터나 스위치가 같은 네트워크 연결 기기가 될 수도 있다. 링크는 노드간에 데이터를 전송하는 매체로 유선 또는 무선일 수 있다. 네트워크는 규모에 따라서 근거리 통신망 LAN 광대역 통신망 WAN 등으로 정의되고 전세계 네트워크가 공용망으로 연결된 것을 인터넷이라고 한다. 그럼 보안이란 무엇일까? 보안이란 자산을 위협요인으로 부터 보호하는 것이다.

네트워크 상의 자산을 보호하는 것이 네트워크 보안이다.

왜 네트워크 보안이 필요할까? 우리가 사용하는 인터넷 공용망은 TCP/IP에 따라 통신한다. 이는 1980년도에 설계되고 그 이후로 네트워크가 커지면서 보안 필요성이 생기게 되었다.

보안에는 세가지 요소가 있는데

네트워크 공격은 어떤 것이 있을까?

이는 네트워크 기밀성을 깨뜨리는 행위이다.

스푸핑은 네트워크 패킷을 변조해 무결성을 깨뜨린다.


자원을 소비시켜 서비스를 마비시키는 행위로 가용성을 침해한다.
여러 대에서 공격하는 것은 Ddos라고 함.

그래서 이를 막기 위해 전송계층과 인터넷계층에서 사용하는 보안 프로토콜을 몇가지 소개한다.

전송계층의 TLS의 핸드쉐이킹 방식 과정을 살펴보자.

Client에서 랜덤 32비트 값과 지원하는 암호화 방식 목록 (키 교환 알고리즘, 대칭키 암호화 알고리즘, 해시 암호화 등) 을 갖고 있다.

서버에서도 마찬가지로 암호화 정보를 담아 전달하고 이를 검증한 클라이언트는

위 과정을 거쳐 암호화 통신을 주고받을 수 있게 된다. TLS를 사용하는 애플리케이션 프로토콜을 끝에 S가 붙는데 HTTPS, FTPS, SMTPS 등이 있다.

다음으로는 IPsec(Internet Protocol Security)가 있다. 인터넷 계층의 보안 프로토콜 모음으로 TCP만 보호하는 TLS와 달리 TCP와 UDP 모두 보호한다. (ex. AH, ESP 프로토콜)

AH 프로토콜은 일반적인 IP 패킷의 데이터 앞에 AH 헤더를 함께 보냅니다. (= Authentication Header) 이 헤더에는 패킷의 무결성을 제공하는 인증 데이터 필드가 포함되어 있다.

ESP는 데이터 앞 뒤에 ESP 헤더와 ESP 트레일러, 인증 데이터를 붙이고 데이터는 암호화한다.. 이를 통해 데이터의 무결성과 기밀성을 제공한다.

하지만 Dos 와 같은 공격은 어떻게 막을까? 바로 방화벽, IDS, RPS같은 보안 솔루션을 사용하면 된다.

하지만 미리 감지된 공격만 방어가 가능하다. 이를 보완한 것이 IDS로 이는 실시간으로 네트워크를 모니터해서 지능형 엔진이 있고 여기에 차단 기능까지 적용한 것이 IPS이다. IPS는 방화벽과 함께 사용하면 효율적이다. 방화벽에서 미리 정해놓은 트래픽만 통과시키면 IPS는 그 트래픽만 검사를 하면 되기 때문이다.

(참고영상: 에드의 네트워크 보안)

0개의 댓글