본문 바로가기

Python/Forensic

Python Forensics (2) - Concept of Network Programming 네트워크 프로그래밍은 3가지의 definition을 갖는다. (1) Client : 개인용 컴퓨터 및 워크 스테이션에서 실행 (2) Server : 동일 컴퓨터 혹은 다른 컴퓨터의 프로그램 (3) WebSockets : client와 server 사이의 TCP연결을 통해 프로토콜을 제공. 양방향 메시지 전송 위와 같은 그림은 다른 사용자가 보내거나 받은 정보의 유효성을 검사하는데 사용된다. 암호화는 메시지를 보호하는데 사용되는 방법 중 하나로 메시지가 이용하는 채널을 보호하는 것도 중요하다. 클라이언트가 handshaking을 사용하는 python 프로그램을 살펴보자. # client.py import socket # create a socket..
Python Forensics (1) 들어가기에 앞서, 해당 포스팅 시리즈는 tutorialspoint를 기반으로 작성된 포스팅입니다. 파이썬은 읽기 쉽고 이해하기 쉬운 프로그래밍언어이다. 입력으로 돌아갈 수 없어서 brute force attack로 복호화를 하는것은 불가능하다. 참고로 brute force attack이란 암호가 4글자로 이루어진 비밀번호라면 0000~9999까지 대입하여 암호를 알아내는 방식이다. 이런 종류의 알고리즘을 one-way cryptographic algorithm이라고 한다. 이러한 해시 알고리즘은 네 가지 중요 속성을 갖는다. - 주어진 입력에 대해 해쉬 값 계산이 쉽다. - 해시에서 입력을 생성할 수 없다. - 해시를 변경하지 않고 입력을 수정할 수 없다. - 동일한 해시를 가진 두 개의 입력은 없어야 ..