동일한 IP 대역에서는 ARP를 통해 원하는 목적지에 주소를 찾을 수 있지만, 다른 대역의 IP 경로를 찾아가고자 한다면 경로를 찾아가기 위한 라우팅(Routing)이 필요하다. 라우팅은 어떤 방식으로 이루어지는지 이해한다면, 어떤 방식으로 네트워크를 통해 목적지에 도달할 수 있는지 이해할 수 있다. 스위치 vs 라우터 `스위치`는 같은 네트워크. 즉 동일한 IP 대역대를 가지는 네트워크의 데이터를 전송할 수 있도록 하는 장비이다. 그럼 이와 달리 `라우터`는 어떤 기능을 수행할까? `라우터`는 서론에서 말하였듯이 다른 IP 대역으로 갈 수 있도록 경로를 안내해주는 역할을 하게 되며 이를 `Routing`이라고 한다. 짧게 한 줄로 요약한다면, 스위치는 동일한 IP 대역(네트워크)에 속한 장비들끼리의 네..
리눅스에서 내가 원하는 프로세스를 할당하기 위해, 유저 레벨에서 fork()를 활용하여 나의 실행 프로그램을 부모로 하는 자식 프로세스를 생성할 수 있다. fork()가 어떤 식으로 동작하는지 정확히 이해하지 못한다면, 원치 않는 결과를 만들 수 있으므로 정리해보고자 한다. fork 살펴보기 리눅스에서 위와 같이 `man fork`를 입력하면 `fork()`에 대한 설명이 나온다. 간단히 설명하자면, `fork()`를 호출하는 프로세스, 즉 부모 프로세스를 그대로 복제한 새로운 프로세스를 생성한다. 또한, 실행 결과에 따라 반환 결과도 상이하다. 새로운 프로세스를 할당할 수 없는 경우는 `-1`을 반환한다. 부모 프로세스의 경우 생성한 자식 프로세스의 `pid`를 반환하며, 자식 프로세스의 경우 `0`을..
기본이 되는 배경지식들 Punycode 다양한 언어의 hostname을 표현하기 위해 ASCII로 변경하는 포맷 https://en.wikipedia.org/Punycode HSTS HTTP Strict Transport Security 다음과 같은 공격을 방지하기 위함 main-in-the-middle attacks protocol downgrade attacks cookie hijacking HTTPS를 사용할 경우, 강제적으로 https로 접속하도록 함 http를 통해 접속한 후 https로 리다이렉션 할 경우 위의 공격에 노출되게 됨 DNS DNS로 요청 정보를 보내기 전에 캐시를 확인 브라우저 내의 캐시 OS 내의 캐시 라우터 내의 캐시 ISP(Internet Service Provider) 내..
렉토피아 정혜경 강사님의 Secure & Generic C 강의를 듣고, 정리한 내용입니다. 해당 내용의 저작권은 정혜경 강사님에게 있습니다. 동적 할당 user level에서 사용할 수 있는 동적 할당으로는 대표적으로 `malloc`과 `calloc`이 있다. `malloc`은 사용하고자 하는 메모리 공간을 할당 후 별도의 초기화가 없어 쓰레기 값을 같는다. 이와 달리 `calloc`은 메모리 공간 할당 후에 할당된 공간을 모두 0으로 초기화 한다. malloc malloc은 parameter로 할당하고자 하는 크기를 받는다. 보통은 할당하고자 하는 공간의 데이터 타입에 따라 `sizeof(데이터 타입)` 연산을 통해 할당한다. 만약 malloc을 사용하여 크기가 5인 int 1차원 배열을 할당한다면 ..