분류 전체보기
-
호스트 네임서버 2017. 4. 19. 11:21
호스트 네임은 컴퓨터의 이름이고 도메인 네임은 컴퓨터 그룹의 이름입니다. 예를 들면 호스트 네임은 사람의 이름으로, 도메인 네임은 사람의 성으로 이해하면 됩니다. [홍길동]과 [홍기산]은 같은 '홍'씨 족의 사람들이지만 '길동'과 '기산'이라는 이름으로 구분됩니다. [장길산]과 [김길산]은 같은 '길산'이라는 이름을 사용하지만 '장'과 '김' 이라는 다른 성을 사용함으로써 구분됩니다. 여기서 '홍', '장', '김' 과 같은 성을 도메인 네임으로, '길동', '기산', '길산' 과 같은 이름을 호스트 네임으로 이해하면 됩니다. tom 과 tom.sunjin2.net과 sunjin2.net 에서 tom 은 호스트 네임이 되며, sunjin2.net 은 도메인 네임이 됩니다. kin.naver.com 과 m..
-
스니핑보안 & 보안 2017. 4. 12. 16:24
스니핑은 네트워크 패킷을 가로채서 분석하는 해킹기법입니다. 아래는 파이썬을 사용한 간단한 스니핑 프로그램 예제입니다.from socket import * import os def sniffing(host): # 아래 값들은 소켓을 생성할 때 프로토콜을 지정하는 세 번째 인자로 사용 # 윈도우는 프로토콜에 관계없이 들어오는 모든 패킷을 가로채기 때문에 IP를 지정해도 무관하지만 유닉스나 리눅스는 ICMP를 가로채겠다는 것을 명시적으로 표시해야함 if os.name == 'nt': socket_protocol = IPPROTO_IP else: socket_protocol = IPPROTO_ICMP # socket_protocol로 지정된 프로토콜을 이용하는 Raw 소켓을 만들고 호스트와 바인드 sniffer..
-
패스워드 크래킹보안 & 보안 2017. 3. 28. 21:22
1. 유닉스(리눅스) 패스워드 크래킹유닉스나 리눅스는 기본적으로 사용자의 패스워드를 MD5 해시값으로 변경하여 관리하고 있습니다. 예를 들어, abcd 아이디의 패스워드가 1234라고 하면 1234에 대한 MD5 해시값인 81 dc 9d db 52 d0 4d c2 00 36 db d8 31 3e d0 55를 사용합니다. 그런데 test 아이디를 가진 사람의 패스워드도 1234라고 하면 문제가 발생할 수도 있습니다. abcd 아이디를 가진 사람이 우연히 test의 비밀번호 MD5값이 동일하다는 것을 안다면 비밀번호가 1234라는 것을 알 수 있기 때문입니다. 그래서 이런 문제를 해결하기 위해 salt라 부르는 2개의 문자를 원래 패스워드에 추가한 후 MD5 해시를 구성하는 매커니즘을 사용하고 있습니다. 다..
-
알려진 평문 공격 (기지 평문 공격) - Known-plaintext attack보안 & 보안 2017. 3. 27. 21:15
기지 평문 공격은 공격자가 평문과 그를 암호화한 암호문을 모두 알고 있을 때 사용할 수 있는 암호 해독 기법들을 가리킵니다. 이 경우 이미 알고 있는 평문을 크립(crib)이라고 부르기도 합니다. 이미 알고 있는 평문과 암호문을 바탕으로 비밀 키를 알아내기 위해 사용합니다. 암호해독가가 암호를 해독하기 위해 의미 없어보이는 암호문만 보아서는 많은 정보를 얻기 힘들지만 암호문 안에 이미 알고 있는 평문이 포함되어 있다면, 그 사실이 암호문과 평문 사이의 관계를 추정하기 위한 단서가 될 수 있습니다.AES 등의 현대 암호체계는 기지 평문 공격의 영향을 받지 않는 것으로 알려져 있지만 예전 버전의 ZIP 파일 포맷에 사용되는 PKZIP 스트림 암호화 알고리즘은 기지 평문 공격에 취약합니다. 이 알고리즘으로 암..
-
무차별 대입 공격 (Brute Force Attack)보안 & 보안 2017. 3. 27. 21:04
개요무차별 대입 공격이란 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 문제를 푸는 것인데, 얼핏 무식하다고 생각할 수도 있겠지만 항상 정확도 100%를 보장한다는 점에서, 자원만 충분하면 가장 무서운 방법입니다. 이론적으로 가능한 모든 경우의 수를 다 검색해 보는 것이라 정확도 100%가 항상 보장되니, 암호학에서는 가장 확실한 방법으로 통용되고 있습니다. 무엇보다도 암호 확인 작업이라는 것이 손으로 입력한 문자열의 동일 여부를 확인하는 것이기 때문에, 가능한 경우를 하나씩 대입하다 보면 언젠가는 암호를 찾을 수 있게 되는 식입니다. 다만 정말로 그냥 무식하게 하는건 아니고, 숫자만 섞어서 대입해보기 한번, 로마자만 섞어서 대입해보기 한번 이런식으로 하다가 안되면 나머지를 순차적으로 하는 식으..
-
SSL (Secure Socket Layer)보안 & 보안 2017. 3. 27. 20:27
넷스케이프사가 개발한 인터넷 상에서 정보를 암호화하여 송수신하는 프로토콜입니다. WWW나 FTP등의 데이터를 암호화하여 프라이버시에 관한 정보나 크레딧카드 번호, 기업 비밀등을 안전하게 송수신할 수 있습니다. SSL은 공개키 암호나 비밀키암호, 디지털 증명서, 해쉬함수등의 시큐리티 기술을 조합하여 데이터의 도청이나 변경, 위장을 방지할 수가 있습니다. OSI 모델에서는 세션(5계층)과 트랜스포트(4계층)의 사이에서 동작하여 상위 프로토콜을 이용하는 어플리케이션에서는 특별히 의식할 필요없이 투과적으로 이용할 수 있습니다.
-
[Linux] SSH (Secure Shell)서버 2017. 3. 27. 20:26
SSH는 안전한 원격 통신을 위해 사용됩니다. SSH가 사용되기 이전에는 텔넷(Telnet)이 사용되었습니다. 텔넷 통신에는 기본적으로 23번 포트가 사용되는데 통신에서 데이터를 암호화하는 과정이 없기 때문에 같은 네트워크 상의 누군가가 통신을 가로챈다면 내용을 모두 엿볼 수 있다는 문제가 존재했습니다. 이러한 보안 상의 문제로 SSH가 설계, 개발된 것 입니다. SSH는 암호화 기법을 사용하기 때문에 누군가 통신을 가로챈다고 하더라도 암호화된 텍스트로 보이게 됩니다. 기본적으로 22번 포트가 사용되며 주로 리눅스, 유닉스 시스템에서 사용됩니다.
-
[Python] len()과 sys.getsizeof() 차이점언어/파이썬 & 장고 2017. 3. 27. 19:55
len()은 컨테이너에 포함된 항목의 수를 계산합니다. 다시 말해 문자열일 경우 문자의 길이를 반환하고 컨테이너타입인 튜플, 딕셔너리, 리스트의 경우는 속해있는 값의 개수를 반환합니다.반면 sys.getsizeof()는 객체의 메모리 사이즈를 바이트 단위로 반환합니다. 객체는 모든 유형이 될 수 있습니다.파이썬 문자열 객체는 문자 당 1바이트의 간단한 문자 시퀀스가 아닙니다. 특히, sys.getsizeof()함수에는 가비지 컬렉터의 오버헤드(아마 1바이트)가 포함되어 출력됩니다. getsizeof()는 object의 __sizeof__ 메서드를 호출하고 object가 가비지 컬렉터에서 관리되는 경우에는 가비지 컬렉터의 오버 헤드를 추가합니다.예시# python 3.4 import sys en = 'a'..
-
WSGI서버 2017. 3. 24. 14:01
웹 서버 게이트웨이 인터페이스(WSGI, Web Server Gateway Interface)는 웹서버와 웹 애플리케이션의 인터페이스를 위한 파이썬 프레임워크입니다.기존의 파이썬 웹 애플리케이션 프레임워크는 웹서버를 선택하는데 있어서 제약이 있었습니다. 보통 CGI, FastCGI, mod_python과 같은 커스텀API 중에 하나만 사용할 수 있도록 디자인 되었는데, WSGI는 그에 반하여 low-level로 만들어져서 웹서버와 웹 애플리케이션,프레임워크간의 벽을 허물었습니다. WSGI는 서버와 게이트웨이 , 애플리케이션과 프레임워크 양단으로 나눠져있습니다. WSGI 리퀘스트를 처리하려면, 서버단에서 환경정보와 콜백함수를 애플리케이션단에 제공해야합니다. 애플리케이션은 그 요청을 처리하고 미리 제공된 콜..