목록전체 글 (57)
멜트다운 (http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5754) 당신이 키보드로 무엇을 입력했는지 훔쳐내려는 해커가 있다고 생각해보자. 키보드로 무엇을 입력했는지 알아내면 은행 거래 비밀번호 등 중요한 정보를 탈취해낼 수 있다. 해커의 목적이 키보드 입력값의 탈취라는 전제 하에 다음의 사항을 생각해 보자. 컴퓨터는 모든 것을 숫자로 처리한다. 가령 ASCII코드를 전제할 때 컴퓨터는 'a'라는 문자를 97로 이해하고 'b'라는 문자를 98로 이해한다. 우리가 키보드로 'a'를 칠 때, 컴퓨터는 메모리의 100번째 방에 숫자 '97'을 적어넣는다고 치자. 원칙적으로는 OS의 핵심부분인 커널 이외에는 메모리의 100번 방에 무슨 내용이 들어가 있..
전역변수 (global) - 프로그램 실행 시 데이터 영역에 할당되어서 프로그램이 종료될 때까지 남아있는 변수 - 초기화 되지않은 전역변수는 BSS(Block Started by Symbol) 영역에 할당 정적변수 (static) - 프로그램 실행 시 데이터 영역에 할당되어서 프로그램이 종료될 때까지 남아있는 변수 - 초기화 되지않은 정적변수는 BSS(Block Started by Symbol) 영역에 할당 (but 코드 본문에서 사용되지 않으면 메모리 할당x) - 전역변수의 성격을 지니는 지역변수로 static 변수가 선언된 함수가 처음 호출될 때 1번만 초기화 - 함수 내에서 접근 가능 + 함수가 끝나도 메모리 유지 가능 지역변수 (local) - 중괄호 {} 내에서 선언된 변수. 선언된 지역 내에서..
12345int *p = (int*) malloc(sizeof(int)); *p = 11; free(p);csfree()를 호출하여 p가 가리키는 메모리 공간을 해제해도 p는 여전히 해제된 메모리 공간을 가리키고 있기 때문에 이러한 댕글링 포인터 p는 잠재적인 보안위협, Segmentation fault, 예측 불가능한 동작을 야기한다. 123456789101112int *p; ... { int a= 5; p = &a; } // 이 위치에서 p는 댕글링 포인터가 된다. func();cs컴파일러에서 블록 구문으로 스택프레임이 다루어지기 때문에 변수 a는 스택프레임에 존재포인터 p는 a를 가리키고 있고 블록이 끝나면 스택프레임이 사라지고 댕글링 포인터 p는 여전히 a(사라진 스택프레임의 지역변수)를 가리킨다..
SSL-TLS 와 HTTPSTLS(Transport Layer Security)는 인터넷 상에서 통신할 때 주고받는 데이터를 보호하기 위한 표준화된 암호화 프로토콜입니다.TLS는 넷스케이프사에 의해 개발된 SSL(Secure Socket Layer) 3.0 버전을 기반으로 하며, 현재는 2008년 발표된 TLS버전 1.2가 최종 버전입니다.TLS는 전송계층(Transport Layer)의 암호화 방식이기 때문에 HTTP뿐만 아니라 FTP, XMPP등 응용 계층(Application Layer)프로토콜의 종류에 상관없이 사용할 수 있다는 장점이 있으며 기본적 으로 인증(Authentication), 암호화(Encryption), 무결성(Integrity)을 지원합니다.SSL에서 TLS로 이름이 변경된 지 ..