ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 네트워크 보안
    Computer기본지식/Computer 2021. 9. 15. 09:00
    반응형

     

     

    이번 포스팅은 네트워크 보안에 관한 글을 적으려합니다.

    예전부터 보안에 관심은 있었는데 직접 쓰는일도 드물고 뭔가 전문가만이 공부해야하는 부분으로 느꼈습니다.

    그러나 공부를 할수록 이러한 네트워크 부분에 대해서도 깊게 알아야 여러문제를 해결할 수 있겠구나라고 느꼈습니다.

    기본적인 네트워크 보안에 대해서 설명드리겠습니다.

     

     보안이란?

    물리적인 또는 소프트웨어 방어 도구를 이용해 기반 네트워크 인프라를 승인되지 않은 액세스나

    오동작, 수정 등으로부터 보호하는 프로세스

     

     보안의 3대 요소

    기밀성 : 인가되지 않은 사용자가 정보의 내용을 알 수 없게 하는것.

    무결성 : 인가된 사용자에 의해서만 변경가능한 것.

    가용성 : 정보에 대한 사용이 확실하게 보장하는 것.

     

     

    위에서 보안의 정의 보안의 3대 요소를 살펴봤습니다.

    그럼 위의 3대 요소를 깨뜨리는 문제들이 발생하는데 어떠한 문제들이 대표적으로 있을까요?

    대표적이 3가지 문제를 살펴보겠습니다.

     

     발생 할 수 있는 문제

     

    스니핑

    네트워크 패킷을 인증되지 않은사람이 이용하는 경우(기밀성이 유지되지 않음)

     

    스푸핑

    네트워크 패킷을 중간에 변경하여 서버로 보내는 경우(무결성이 유지되지 않음)

     

    Dos(Denial of Service)또는 DDos

    공격 대상의 자원을 소모시켜 정상서비스를 하지 못하게 만드는 경우(가용성이 유지되지 않음)

     

     

    위에서 대표적인 3개의 문제를 살펴봤습니다.

    인터넷은 이러한 경우들을 방지하기 위해서 계층별로 보안을 유지하기 위한 방법을 사용합니다.

    현재는 주로 TCP/IP 프로토콜을 사용하고 있습니다.

    그래서 TCP/IP 4계층 모델을 기준으로 설명하겠습니다.

    계층별 보안 방법

     

    Internet Layer

    IPsec(Internet Protocol Security)를 사용합니다.

    IPsec는 각 IP패킷을 암호화하고 인증하는 안전한 프로토콜입니다. 종류에는 크게 AHESP가 존재합니다.

    IPsec는 2가지 동작모드를 가집니다.

    첫 번째는 "전송모드"로 페이로드를 보호하는 모드입니다.

    다음으로 "터널모드"로 IP패킷 전체(헤더+페이로드)를 보호하는 모드입니다.

     

    - AH(Authentication Header) : 무결성 제공

    위의 그림에서 보시듯이 AH-H를 패킷에 포함하게 됩니다.

    MAC(메세지 인증 코드)를 이용하여 무결성을 제공하게 됩니다. 아래는 AH구조입니다.

    중요한 부분 3가지를 알아보겠습니다.

    Security Parameter Index : 보안 설정 정보 식별자(32BIT)

    Sequence Number : 재전송 공격 방지 필드(32BIT)

    Authentication Data : 변경되는 값이 있는 필드 값을 제외한 IP 패킷 전체 해시값 (32BIT)

     

     

    - ESP(Encapsulating Security Payload) : 무결성 + 기밀성 보장

    ESP Header + ESP Trailer + ESP Auth를 활용하여 보안을 검증합니다.

    트레일러를 사용하여 가변 데이터를 검증 할 수 있기 때문에 기밀성도 유지될 수 있습니다.

     

    ❗ Transport Layer

    TLS(Transport Layer Security)를 사용합니다. 다른 용어로는 SSL이라고도 합니다.

    간단한 동작 방식을 알아보겠습니다.

    클라이언트는 랜덤데이터(32바이트) + 암호화 방식 + 세션 ID를 서버로 전송합니다.

    서버도 랜덤데이터(32바이트) + 세션 ID + CA인증서를 클라이언트로 전송합니다.

    클라이언트는 CA인증서를 확인하고 믿을 수 있는 서버인지 확인합니다.

    물론 여기서 서버도 클라이언트에게 인증서를 요구할 수 있습니다.

    인증이 끝나고나면 키 교환을 위한 정보를 서버에게 제공합니다. 어떻게 제공할까요?

    서버로 부터 받은 랜덤데이터와 클라이언트가 가지고 있는 랜덤데이터를 조합합니다.

    조합한 데이터를 인증서에 있는 서버의 공개키로 암호화하여 서버에게 전송합니다.

    그러면 안전하게 클라이언트와 서버는 같은 데이터를 가질 수 있습니다.

    이렇게 대칭키를 사용하여 패킷을 주고받게 됩니다.

     

    ❗ Application Layer

    HTTPS(HyperText Transfer Protocol over Security Socket Layer)사용.

     

     

    이러한 보안들이 필요한 이유는 웹은 Public하다는 특징이 있기 때문입니다.

    Public하면 할수록 인증되지 않은 곳에서 수 많은 공격들이 올 수 있기 때문이죠.

    이러한 문제를 막기 쉬운 방법은 물리적으로 Private한 사설망을 구축하는게 최고입니다.

    그러나 비용적인 부분을 고려하면 너무 비효율적이죠.

    그래서 이러한 Public한 인터넷망을 Private하게 사용하도록 만들어 줄 수 있는 기술이 나오게됩니다.

    바로 VPN기술입니다.

     

    🧐 VPN(Virtual Private Network)

    공개적인 사설망을 사적으로 사용하도록 만들어주는 기술.

    즉 나의 기기 IP를 숨기고 다른 IP를 이용하여 다른 곳에서 인터넷에 연결하는 것처럼

    보이게 만드는 기술이라고 생각하시면됩니다.

    물론 이러한 방법이 보안에는 장점이 있습니다. 그러나 데이터들을 암호화하는 작업에 상당한

    시간이 소요되므로 속도적인 측면에서는 비효율적이라고 말할 수 있습니다.

    그래서 SKT나 KT와 같은 통신사업자들이 별도의 Private회선을 구성해놓고 그것을 사용자들이

    사용하는 MPLS VPN방식도 있습니다. 물론 비용이 들긴합니다..

    이렇게 VPN이라는 기술까지 알아봤습니다.

     

     

    이번 포스팅을 하면서 정말 기본적인 웹 네트워크 보안에 대해서 알아봤습니다.

    TLS, VPN등 어떻게 동작되어지고 구성되어져 있는지를 확인해보니 다음에 관련 문제를 맞닥드릴 떄

    더 쉽게 문제를 해결 할 수 있을 것 같습니다.

    긴 글 읽어주셔서 감사합니다.

    반응형

    'Computer기본지식 > Computer' 카테고리의 다른 글

    리눅스 메모리 관리  (0) 2021.09.27
    리눅스 파일 시스템  (0) 2021.09.25
    WAS vs 웹 서버  (0) 2021.09.17
    Process와 Thread  (0) 2021.09.14
    쿠키와 세션 구현  (0) 2021.08.17

    댓글

Designed by Tistory.