보안

    VM ware, Kali Linux, DVWA로 웹해킹 환경 구축하기

    해킹 공부 환경을 구축하려면 가상화 툴을 이용해야 한다. 실제 사용하는 시스템 자체에 설치하면 취약해지거나 건들다가 망가질 가능성이 있기 때문이다. 대표적인 가상화 환경 툴, 버추얼 머신으로는 VM ware와 Virtual Box가 있다. 원래 VM ware는 유료라고 알고 있었는데, 비상업적 목적 & 개인 사용자에게는 무료로 제공된다고 해서 VM ware를 설치해보기로 했다. VMware 설치 VMware 설치는 어렵지 않다. 윈도우 환경 내에서 설치하는 것이므로 간단한 선택 몇 번을 거치면 실행할 수 있다. KALI Linux(칼리 리눅스) 설치 KALI Linux 다운로드 다음으로 칼리 리눅스를 설치할 차례다. https://www.kali.org/get-kali/ Get Kali | Kali Li..

    비대칭 암호화

    비대칭키 암호화 알고리즘(Public Key Enctyption) 암호화에 사용하는 키와 복호화에 사용하는 키가 다른 암호화 알고리즘이다. 키 생성 알고리즘은 공개 키(Public key)와 개인 키(Private key)를 생성하고, 암호화 알고리즘은 수신자의 공개키를 사용하여 암호문을 생성하고, 복호화 알고리즘은 수신자가 자신의 개인키를 사용해 복호화하는 과정이다. 개인키를 가진 사람 이외에 다른 사람은 암호문의 내용을 확인할 수 없다. 암호화 알고리즘은 무작위 알고리즘을 사용해 암호화를 진행할 때마다 다른 암호문이 나온다. 트랩도어 함수(TDF, Trapdoor Function) 해시 함수와 같은 일방향 함수는 입력이 주어지면 출력을 계산할 수 있지만, 출력이 주어지면 입력을 계산할 수 없다. 트랩..

    블록체인 암호학 - 블록 암호

    블록 암호(Block cipher) 블록 암호는 정보를 블록 단위로 암호화하는 대칭키 암호 시스템이다. 입력 비트와 출력 비트가 정해져 있다. AES가 많이 사용된다. AES(Advanced Encryption Standard) 2001년 미국 표준 기술 연구소에서 제정된 암호화 방식이다. DES의 안전성에 대한 논란 이후 새로운 암호 프로토콜이 필요했고, 링델(Rijndael) 암호가 가장 적합한 알고리즘으로 선정되어 AES라는 표준으로 채택되었다. 128비트, 192비트, 256비트 세 가지 키 길이로 처리할 수 있다. 안전성을 바란다면 256비트를, 빠른 속도를 바란다면 129비트를 이용한다. 입력과 출력 사이에는 레이어(라운드)가 있다. 128비트에서는 10라운드, 192비트에서는 12라운드, 2..

    블록체인 암호학 - 고전 암호, 현대 암호 시스템

    치환 암호(Substitution Cipher) 문자 매핑에 관한 테이블이 주어지는 암호 방식이다. 입력 문자에 대해 테이블 매핑을 그대로 적용하여 암호화를 진행한다. 복호화는 이 테이블을 거꾸로 적용한 것이다. 테이블을 어떻게 만들어 내느냐에 따라 다양한 값이 만들어진다. 알파벳의 경우 a는 a~z까지 26가지 값을 매핑할 수 있고, b는 a가 매핑된 값을 제외한 25가지, c는 24가지... 그래서 $26!$의 키가 존재하게 된다. 단순하게는 시저 암호(Ceasar Cipher)를 예로 들 수 있다. 키가 단순한 덧셈 형태로 이루어져있어 a의 경우는 +3한 d에 매핑되는 방식이다. 치환 암호는 어떻게 파훼할 수 있을까? 빈도 분석을 사용해서 암호를 깰 수 있다. 시저 암호의 경우 같은 테이블을 이용한..

    블록체인 암호학 - 전자 서명 2

    공인인증서 전자 서명을 검증하는 데 필요한 공개키에다 소유자 정보를 추가한 증명서이다. CA(Certificate Authority, 인증기관)와 사용자 간 인증서 체결을 통해 사용자 공개키를 인증한다. 사용자는 검증키와 서명키 쌍을 보유한다. CA는 사용자 정보를 확인하고, 검증키와 사용자 정보에 서명해 인증서를 생성한 후 사용자에게 전달한다. CA에서 받은 인증키로 검증키를 인증하고, 서명을 확인한다. 사용자는 개인 서명키를 이용해 데이터나 자금을 거래할 수 있다. 서명 압축(Signature Aggregation) 블록체인에서 서명이 차지하는 비중은 크다. 효율성을 위해서 서명 크기를 줄여야 하는데, 이를 구현한 것이 서명 압축이다. 다수의 서명을 하나로 압축하는데, 개수에 상관 없이 일정한 크기로..

    블록체인 암호학- 전자서명

    전자서명 전자서명은 서명자가 전자문서에 서명했다는 사실을 확인할 수 있는 정보이다. 키 생성 알고리즘, 서명 알고리즘, 검증 알고리즘으로 구성된다. 키 생성 알고리즘 전자서명을 생성하는 서명키와 서명을 확인하는 검증키를 생성한다. 서명키와 검증키는 개인 별로 다르게 만들어진다. 서명키는 서명하는 본인만 아는 비밀정보이다. 검증키는 모든 이가 아는 공개된 정보이다. 서명키로부터 검증키를 도출할 수는 있지만, 검증키로부터 서명키를 계산할 수는 없다. 서명 알고리즘 문서를 받아 서명키를 사용해 서명값을 계산한다. 문서의 크기가 크다면 알고리즘 내부에서 해시 함수를 사용해 크기를 줄인다. 서명자만이 알고 있는 서명키를 사용해 전자서명을 만든다. 검증 알고리즘 문서와 서명값을 입력으로 받고, 검증키를 사용해 서명..

    블록체인 암호학 - 작업 증명(PoW), 양자 안정성, 머클 해시 트리

    작업 증명(Proof of Work) 합의 알고리즘 많은 분산 시스템에서는 합의 알고리즘을 통해 일을 처리한다. 합의란 다수의 참여자가 적절한 합의 방법을 이용해 통일된 의사결정을 내리기 위해 사용하는 알고리즘을 말한다. 상태 기계 복제(SMR, State machine Replication) 상태 기계가 같은 상태로 시작하면, 처리가 정상적으로 이루어졌을 경우 모두 같은 상태를 가지게 된다. SMR같은 시스템은 일부가 고장나거나 악의적인 행동을 보여도 전체 시스템은 정상적으로 동작한다고 보장해야 한다. CFT(Crash Fault Tolerant) 서버가 단순히 고장난 형태에 대응할 수 있는 알고리즘이다. BFT(Bizantine fault Tolerant) 서버가 악의적인 행동을 보일 때 대응할 수 ..

    wargame.kr 3번. QR CODE PUZZLE

    시작하면 랜덤하게 생성된 QR코드 퍼즐 조각들이 있다. 각 조각을 더블클릭하면 빈 공간으로 움직인다. 개발자 도구로 보면 각각 번호가 매겨져 있다. 이걸 보고 하나하나 맞춰야 하나 싶었는데, 스크립트를 보면 unescape 함수가 있다. 웹을 통해서 데이터를 전송할 때 특정 문자들은 특수한 기능으로 사용되는데, 이로 인해 생기는 문제를 해결하기 위한 방법이 이스케이핑이다. unescape는 escape로 이스케이핑 된 문자열을 되돌린다. 참고: opentutorials.org/module/2/2824 콘솔창에 함수를 복사해 붙이면 주소를 얻을 수 있다. 소스 탭으로 가 보면 img 폴더 내에 qr.png 파일이 있다. 완성된 qr코드 이미지이다. 이 파일 주소를 복사한다. qr code decoder라 ..