[정보보안기사 PART 02] 암호학 - 암호학 개요


Section 02 암호학 개요

 

1. 암호학의 기본 개념

 

1) 암호학(Cryptology)의 정의

   암호는 약속된 당사자 또는 집단에서만 암호문에 내포된 내용을 알 수 있게 하는 일종의 문서

   암호학이란 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고, 특정 비밀키를 알고 있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호기술!

   제3자(도청자)가 해독하는 방법을 분석하는 암호해독에 관하여 연구하는 학문이다.

 

2) 암호화와 복호화

암호화 : 메일(평문)을 키와 알고리즘을 통해 암호문으로 바꾸는 과정

복호화 : 암호문키와 알고리즘을 통해 메일(평문)으로 바꾸는 과정

 

3) 암호와 보안 상식

(가) 비밀 암호 알고리즘을 사용하지 말 것

(나) 약한 암호는 암호화하지 않은 것보다 위험하다

(다) 어떤 암호라도 언젠가는 해독된다.

(라) 암호는 보안의 아주 작은 부분이다.

 

2. 암호기법의 분류

 

1) 치환 암호와 전치 암호

 

(가) 치환 암호(대치 암호, Substitution Cipher)

   비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체

   평문에서 사용하는 문자의 집합 ≠ 암호문에서 사용하는 문자의 집합

   "교환하는 규칙"   // 일대일 대응 아니어도 상관없음

 

(나) 전치 암호(Transposition Cipher)

   비트, 문자 또는 블록이 원래 의미를 감추도록 재배열

   평문에서 사용하는 문자의 집합 = 암호문에서 사용하는 문자의 집합

   "자리를 바꾸는 규칙"   // 일대일 대응 규칙 갖는다

 

2) 블록 암호와 스트림 암호

 

(가) 블록 암호(Block Cipher)

   어느 특정 비트 수의 "집합"을 블록이라 명함

   Round 기법 사용

   반복적으로 암호화 과정 수행

   진행 내부 상태 없음

 

(나) 스트림 암호(Stream Cipher)

   한번에 1비트 혹은 1바이트의 데이터 흐름(스트림)을 순차적으로 처리

   암호화 방식 : 평문과 키 스트림을 XOR 하여 생성

   진행 내부 상태 가짐

 

구분 스트림 암호 블록 암호
장점 암호화 속도 빠름, 에러 전파현상 없음 높은 확산, 기밀성, 해시함수 등 다양
단점 낮은 확산 느린 암호화, 에러 전달
사례 LFSP, MUX generator DES, IDEA, SEED, RC5, AES
암호화 단위 비트 블록
주요 대상 음성, 오디오/비디오 스트리밍 일반 데이터 전송, 스트리지 저장

 

3) 위치에 따른 암호화의 구분

 

(가) 링크 암호화(Link Encryption)

   헤더를 포함한 모든 데이터를 암호화

   라우터가 패킷을 다음 장소로 보내기 위해 홉(hop)을 이용

   라우터는 헤더 부분을 해독하고, 헤더 내의 라우팅과 주소 정보를 읽고, 그것을 다시 암호화하여 전송

   물리적 계층, 데이터 링크 계층에서 일어남

 

(나) 종단 간 암호화(End-to-End Encryption)

   헤더(라우팅 정보)는 암호화하지 않음

   근원지와 목적지 사이에 있는 장비들이 라우팅 정보만 읽고, 패킷을 그 진행 방향으로 통과

   애플리케이션 계층에서 일어남

 

구분 링크 암호화 종단간 암호화
특징

ISP나 통신업자가 암호화

헤더를 포함한 모든 데이터 암호화

유저가 알고리즘 통제 불가

사용자가 암호화

헤더(라우팅 정보)는 암호화하지 않음

알고리즘에 대한 통제는 사용자가 함

장점

User-transparent하게 암호화되므로 운영이 간단

트래픽분석을 어렵게 함

온라인으로 암호화

사용자 인증 등 높은 수준의 보안 서비스를 제공 가능

중간 노드에서도 데이터가 암호문으로 존재

단점

중간 노드에서 데이터가 평문으로 노출

다양한 보안 서비스를 제공하는데 한계

네트워크가 커지면 비용 과다

트래픽분석이 취약

오프라인으로 암호화

 

4) 하드웨어와 소프트웨어 암호시스템

 

3. 주요 암호기술에 대한 개괄

 

1) 대칭키 암호와 비대칭키 암호

   대칭키 암호(symmertric cryptography) : 암호화, 복호화할 때 키가 동일한 암호 알고리즘 방식

   비대칭키 암호(asymmetric cryptography) : 암호화, 복호화 할 때 키가 다른 암호 알고리즘 방식

 

2) 하이브리드 암호 시스템(Hybrid cryptosystem)

   대칭키 암호 + 공개키 암호

 

3) 일방향 해시함수

   해시값은 일방향 해시함수(one-way hash function)를 사용하여 계산한 값

 

4) 메시지 인증코드

   생각했던 통신 상대로부터 온 것임을 확인하기 위해 사용

   전송 도중 변경되지 않았다는 것생각했던 통신 상대로부터 왔다는 걸 확인

   무결성, 인증 제공하는 암호 기술

 

5) 전자서명

   오프라인(off-line)에서 사용하는 도장이나 종이 위에 하는 서명을 온라인(on-line)에서 적용

   거짓 행세, 변경, 부인 방지하는 기술

   무결성, 인증, 부인방지 제공하는 암호 기술

 

6) 의사 난수 생성기

   의사난수 생성기(PRNG, pseudo random number generator) 난수열을 생성하는 알고리즘

 

4. 암호 분석(암호 해독)

 

1) 개요

   정규 참여자가 아닌 제3자가 암호문으로부터 평문을 찾으려는 시도

케르히호프의 원리(Kerckhoff's principle) : 암호학에서 암호 해독자는 현재 사용하고 있는 암호 방식을 알고 있다는 전제하에 시도

 

복호화 정상적으로 복호화키를 알고 있는 수신자가 암호문을 평문으로 복원하는 과정
해독 복호화키를 모르는 적 또는 암호분석가가 복호화키를 찾아내거나 평문내용을 알아내는 비정상적인 과정

 

2) 암호 분석의 분류

 

(가) 암호문 단독 공격(COA, Ciphertext Only Attack)

   통계적 성질, 문장의 특성 등을 추정하여 해독하는 방법

   암호문만 가지고 평문과 키를 찾아내는 방법

 

(나) 기지 평문 공격(KPA, Known Plaintext Attack)

   암호문에 대응하는 일부 평문이 사용 가능한 상황에서의 공격

   일정량의 평문에 대응하는 암호문을 알고 있는 상태에서 평문과 키를 찾아내는 방법

 

(다) 선택 평문 공격(CPA, Chosen Plaintext Attack)

   평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격

   사용자 암호기에 접근할 수 있어서, 평문에 해당하는 암호문을 얻어 키나 평문을 추정해 해독하는 방법

 

(라) 선택 암호문 공격(CCA, Chosen Ciphertext Attack)

   암호문을 선택하면 대응하는 평문을 얻을 수 있는 상황에서의 공격

   암호 복호기에 접근할 수 있어서, 암호문을 선택하면 그 암호문에 대한 평문을 얻어내 해독하는 방법

 

5. 암호 알고리즘의 안전성 평가

 

1) 안전성 개념

   1. 암호 시스템을 공격하기 위해 필요한 계산량이 매우 커 현실적으로 공격할 수 없는 경우

   2. 무한한 계산능력이 있어도 공격할 수 없는 경우

 

   암호 해독 비용이 암호화된 정보의 가치를 초과

   암호 해독 시간이 정보의 유효 기간을 초과

 

2) 암호기술 평가

   암호 알고리즘 평가(Crypto Algorithm)    // ex) AES, FIPS 107

   암호 모듈 평가(Crypto Mdoule)            // ex) 암호 모듈, FIPS 140-2

   정보보호제품 평가(Security Product)     // ex) 침입차단제품, Common Criteria

   응용시스템 평가(Application System)   // ex) 항공관제 시스템

 

3) 암호제품 평가체계

   CC(Common Criteria) 기반의 정보보호제품 평가

 

4) 암호모듈의 안전성 평가(CMVP)

   

 

 

6. 지적 재산권 보호

 

(1) 디지털 저작권 권리

1) 스테가노그래피(Steganography)

   "감추어진 기록(covered writing)"

   메시지의 내용을 은폐하는 것을 의미

 

2) 디지털 워터마킹(Digital Watermarking)

   원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 삽입

 

3) 핑거프린팅(Fingerprinting)

   구매자의 정보를 삽입하여 불법 배포 발견 시 추적 가능할 수 있게 하는 기술

 

4) 디지털 저작권 관리(DRM, Digital Rights Management)

   디지털 콘텐츠 소유자가 자신의 콘텐츠에 대한 접근을 자신 또는 자신의 위임자가 지정하는 다양한 방식으로 제어할 수 있게 하는 기술적인 방법 또는 방법의 집합을 의미한다.

 

DRM 구성요소

1. 메타데이터(Metadata) : 콘텐츠 생명주기 범위 내에서 관리되어야 할 각종 데이터의 구조 및 정보

2. 패키지(Packager) : 보호 대상인 콘텐츠를 메타데이터와 함께 Secure Container 포맷으로 패키징 하는 모듈

3. 시큐어 컨테이너(Secure Container) : DRM의 보호 범위 내에서 유통되는 콘텐츠의 배포 단위

4. 식별자(Identifier) : 콘텐츠를 식별하기 위한 식별자

5. DRM 제어기(DRM Controller) : 콘텐츠를 이용하는 사용자의 PC 또는 디바이스 플랫폼에서 콘텐츠가 라이센스에 명시된 범위 내에서 지속적으로 보호될 수 있도록 프로세스 제어

 

DRM 모델

 콘텐츠 제공자(Content Provider)

 콘텐츠 배포자(Distributer)

 콘텐츠 소비자(Content Consumer)

 클리어링하우스(ClearingHouse)

 

 

 

 

 

*출처:[알기사] 2019 정보보안기사&산업기사

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[정보보안기사 PART 01]  정보보호 개요


Section 01 정보보호관리의 개념

 

1. 정보화 사회의 정보보호

 

(1) 정보사회의 특성과 정보화 역기능

1) 정보사회의 특성

 정보사회는 인터넷의 확산전자상거래를 통해 시, 분, 초를 다투는 단일 생활권으로 압축되고 있다. 즉, 전자메일 및 인터넷을 통해 신속하게 정보교환이 이루어짐으로써 재택근무 증가, 홈뱅킹이나 사이버 주식 거래를 나가서 할 필요가 없어졌다.

 

사이버 환경의 특징

-> 비대면성

-> 익명성

-> 시간 및 공간적 운영의 무제한성

-> 무제한적인 정보 및 신속한 전송

-> 미래의 범죄 및 전쟁 공간

 

2) 정보화 역기능

 정보화의 순기능은 편리하고 풍요로운 삶 보장하지만, 역기능은 심각한 사회문제 및 국가 안위까지 위협을 준다.

- 개인의 프라이버시 침해

- 해커와 바이러스의 기승

- 불법적인 위,변조를 통한 각종 컴퓨터 범죄행위

- 정보시스템의 파괴에 의한 사회 마비

 

(2) 정보보호(Information Security)

1) 정의

사전적 의미는 "정보의 수집, 가공, 저장, 검색, 송시, 수신 중에 발생하는 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 수단, 또는 그러한 수단을 이루어지는 행위"

다른 말로 하면 "기밀성, 무결성, 가용성, 인증성 및 부인방지보장하기 위하여 기술적, 물리적, 관리적 보호대책을 강구하는 것"

 

2) 정보의 가용성과 안정성(보안성)

 정보의 활용(가용성을 의미)과 정보의 통제(안정성을 의미) 사이에서 균형감각을 갖는 행위

 

3) 정보보호의 목표

(가) 기밀성(Confidentiality)

오직 인가된 사람, 인가된 프로세스, 인가된 시스템만이 알 필요성에 근거하여 시스템에 접근해야 한다는 원칙

보안 기술 : 접근제어, 암호화 등

 

(나) 무결성(Integrity)

네트워크를 통하여 송수신되는 정보의 내용이 불법적으로 생성 또는 변경되거나 삭제 되지 않도록 보호되어야 하는 성질

보안 기술 : 접근 제어, 메시지 인증     // 무결성 보장 기술

                 침임 탐지, 백업              // 정보가 변경되었거나 복구할때

 

(다) 가용성(Availability)

시스템이 지체 없이 동작하도록 하고, 합법적 사용자서비스 사용을 거절당하지 않도록 하는 것

보안 기술 : 데이터의 백업, 중복성의 유지, 물리적 위협요소로부터의 보호

 

(라) 인증성(인증, Authenticity)

진짜라는 성질을 확인할 수 있고, 확인신뢰할 수 있다는 것

즉, 정보의 출처를 확인할 수 있는 의미

 

(마) 책임추적성(책임성, Accountability)

정보의 사용 출처를 찾아낼 수 있는 것

-> 개체의 행동을 유일하게 추적해서 찾아낼 수 있어야 한다는 보안 목적이 있다.

보안 기술 : 부인 봉쇄, 억제, 결함 분리, 침입 탐지 예방, 사후 복구, 법적인 조치

 

 

2. 정보보호관리

 

1) 정보보호 관리(Information Security Management)의 개념

 정보는 기업이나 공공기관의 중요한 자산!

 정보가 의도하지 않은 비인가자에게 노출되거나 갈취당하게 되면 위험 초래되기 때문에 관리해야 한다.

 

2) 정보보호 관리와 정보보호 대책

(가) 개요

 정보보호관리는 기술적 보호대책, 물리적 보호대책, 관리적 보호대책으로 구분

 

(나) 기술적 보호대책

- 정보 시스템, 통신망, 정보(데이터)를 보호하기 위한 가장 기본적인 대책

- 보안 대책 : 접근통제, 암호기술, 백업 체제, 정보시스템 자체에 보안성이 강화된 시스템 소프트웨어를 사용하

 

(다) 물리적 보호대책

- 화재, 수해, 지진, 태풍 등과 같은 자연재해로부터 보호하기 위한 대책

- 보안 대책 : 출입통제, 시간 장치

 

(라) 관리적 보호대책

- 법·제도·규정·교육 등을 확립하고, 보안계획 수립하여 이를 운영하며, 위험분석보안감사를 시행해 정보시스템의 안정성과 신뢰성을 확보 위한 대책

- 보안 대책 : 다양한 기술적 보호대책, 계획, 설계, 관리하기 위한 제도·정책·절차 등의 관리적 보호대책, 내부자들 교육

  

3. OSI 보안 구조

(1) 개요

- ITU-T 권고안 X.800, OSI 보안 구조는 관리자가 효과적으로 보안 문제를 조직화할 수 있는 유용한 방법 제공

- OSI 보안 구조 핵심은 보안 공격, 보안 메커니즘, 보안 서비스

   보안 공격(Security attack) : 정보의 안정성 침해하는 제반 행위

   보안 메커니즘(Security mechanism) : 보안 공격 탐지, 예방, 침해 복구하는 절차

   보안 서비스(Security service) : 보안을 강화하기 위한 처리 또는 통신 서비스

 

(2) 보안 공격(Security attack)

(가) 기밀성 위협하는 공격

- 스누핑(Snooping) : 데이터에 대한 비인가 접근 또는 탈취

- 트래픽분석(Traffic Analysis) : 암호화된 데이터를 공격자가 트래픽을 분석함으로써 다른 형태의 정보 얻는 것 

 

(나) 무결성 위협하는 공격

- 변경(메시지 수정, Modification) : 메시지의 일부를 불법으로 수정하거나 전송을 지연

- 가장(Masquerading) : 한 개체가 다른 개체의 행세를 하는 것

- 재연(재전송, Replaying) : 획득한 데이터 단위를 보관하고 있다가 시간이 경과한 후에 재전송

- 부인(Repudiation) : 메시지 송신자는 차후 자신이 메시지를 보냈다는 것을 부인할 수 있고, 메시지의 수신자는 차후에 메시지를 받았다는 것을 부인할 수 있다.

부인에 대한 보안대책 : 부인방지(부인 봉쇄, Nonrepudiation)

 

(다) 가용성을 위협하는 공격

- 서비스 거부(Denial of Service) 

 

(라) 소극적 공격과 적극적 공격

소극적 공격이란?
수동적 공격이라고도 하고, Passive Attack이라고 불린다.
단지 정보를 획득하는 것이다. 데이터를 변경하거나 시스템에 해를 끼치지 않는다.
탐지보다는 예방에 더 많은 신경을 써야 한다.

 

적극적 공격이란?
능동적 공격이라고도 하고, Active Attack이라고 불린다.
데이터를 바꾸거나 시스템에 해를 입힐 수 있다.
방지보다는 탐지가 더 쉽다.

 

Attack Passive/Active Threatening
Snooping, Traffic analysis Passive Confidentiality
Modification, Masquerading, Replaying, Repudiation Active Integrity
Denial of Service Active Availability

 

4. 기본 보안 용어 정의

1) 자산(Asset)

 조직이 보호해야 할 대상으로 데어터 혹은 자산 소유자가 가지를 부여한 실체

 

2) 취약점(취약성, Vulnerability)

 위협의 이용대상으로 관리적, 물리적, 기술적 약점

컴퓨터나 네트워크에 침입하여 화경 내의 리소스에 대한 허가되지 않은 접근을 시도하려는 공격자에게 열린 문을 제공할 수 있는 소프트웨어, 하드웨어, 절차 혹은 인력상의 약점

 

3) 위협(Threat)

 손실이나 손상의 원인이 될 가능성을 제공하는 환경의 집합

 보안에 해를 끼치는 행동이나 사건

 

임의의 위험 4가지

가로채기(interception) : 비인가자가 자산에 접근                 // 기밀성 영향

가로막음(interruption) : 자산 손실, 사용 불가능                  // 가용성 영향

변조(modification) : 비인가가 내용 변경                           // 무결성 영향

위조(fabrication) : 비인가자가 불법 객체의 위조 정보 생성   // 무결성 영향

 

4) 위협 주체(위협원, Threat agents)

 취약점을 이용하는 존재

 

5) 위험(Risk)

 위협 주체가 취약점을 이용하여 위협이라는 행동을 통해 자산에 악영향을 미치는 결과를 가져올 가능성

 

6) 노출(Exposure)

 위협 주체로 인해서 손실이 발생할 수 있는 경우

 

7) 대책/안전장치 (Countermeasure / Safeguard)

 잠재적 위험을 완화시키기 위해 존재

 

8) 다계층 보안/심층 방어(Defense in Depth)

 여러 계층의 보안대책이나 대응수단을 구성

 

 

 

 

 

*출처: [알기사] 2019 정보보안기사&산업기사 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[SuNiNaTaS(써니나타스)] 24번 문제 미해결


이번 문제는 24번 문제이다. 풀었던 것까지 해설해보고자 한다.

 

24번 문제는 아래와 같다.

(24번 문제)

 

 

문제를 다운로드하면 'suninatas.zip'으로 다운로드가 된다. 

(suninatas.zip)

 

그래서 zip 파일을 풀게 되면 아래의 파일(모르는 파일)을 얻을 수 있다.

(모르는 파일)

 

 

해당 파일이 무엇인지 모르겠으니 'Exeinfo PE'을 이용해 확인해 본다. 확인해본 결과 zip 파일로 그 안에 내용은 Android 관련된 파일인 것 같았다.

(파일 분석)

 

 

그래서 나는 모르는 파일의 확장자명을 zip으로 바꿨다.

(zip 파일)

 

그 다음 압축을 풀어서 아래와 같은 폴더를 얻을 수 있었다.

(폴더!)

 

 

아래 화면은 압축을 풀었던 폴더의 내용물이다. 안드로이드와 관련된 파일 같아서 'classes.dex'파일을 분석하기로 했다.

(폴더의 내용)

 

 

*.dex 파일을 분석하기 위해선 'dex2jar' 도구를 이용해야 한다.

도구 사용법은 아래 링크를 이용해서 확인해보면 된다!

https://200301.tistory.com/32

 

 

'dex2jar'도구를 이용해서 jar 파일을 얻어냈다.

(jar 파일 추출)

 

 

그다음 JD-GUI 도구를 이용해서 jar 파일을 JAVA 코드로 확인해봤다.

도구 사용법은 아래 링크를 이용해서 확인해보면 된다!

https://200301.tistory.com/32

(JD-GUI 툴 이용)

 

 

MainActivity파일에서 소스코드를 확인할 수 있었다. 

 

 

해당 소스코드를 확인하면 될 것 같다. 하지만 java 공부를 하지 않아서 코드 분석이 원활하게 이루어지지 않았다. JAVA공부를 조금 더 하고 문제를 다시 풀어야겠다.

 

 

 

 

 

 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

Classes.dex 파일을 디컴파일(decompile)하는 방법


이번엔 classes.dex파일을 디컴파일 하는 방법에 대해서 공부하려고 한다.

 

일단 classes.dex 파일에 대해서 간략하게라도 알아야한다.

 

 

classes.dex 란?

Android 가상 머신인 Dalvik이 인식할 수 있도록 Java로 짜여진 코드가 컴파일되어 바이트 코드로 변환 된 소스 파일

 

 

필요한 도구


1. dex2jar

2. jd-gui

 

1. dex2jar은 dex 파일을 jar 파일로 변환시켜주는 도구입니다.

2. jd-gui는 jar 파일을 Java 코드로 볼 수 있게 도와주는 도구입니다.

 

 

디컴파일 방법


dex2jar

 

 

1. dex2jar 설치

아래의 링크를 통해서 다운받는다.

https://sourceforge.net/p/dex2jar

 

2. 디컴파일할 파일을 다운로드한 'dex2jar'에 옮긴다.

 

3. 'dex2jar'폴더의 경로를 복사한다.

아래의 화면처럼 복사하면 쉽다.

 

4. 'cmd'창에서 cd 입력후 한칸 띄운 다음 복사한 경로를 붙여넣는다.

ex) cd C:\Users\joon\Downloads\dex2jar-2.0

 

5. 'd2j-dex2jar classes.dex' 입력 하면 jar 파일로 변환이 된다.

ex) d2j-dex2jar calsses.dex

 

이때 d2j-dex2jar이 안된다면 dex2jar로 하면 될 수 있다. 이건 각 pc마다 다르게 적용되는 것 같다.

 

 

JD-GUI

 

 

1. JD-GUI 설치

아래의 사이트를 이용해서 다운받으면 된다. 

http://java-decompiler.github.io/

 

2. 사이트에 들어가면 아래와 같은 화면을 볼 수 있는데, 개인 PC 환경에 맞게 설치하면 된다.

(나는 window 유저라서 맨 밑에 있는 것을 다운 받았다.)

 

3. 설치가 끝났으면 exe 파일을 실행시켜준다.

 

4. 실행한 모습이다.

 

5. 아까 변환한 jar 파일을 JD-GUI에 넣는다!

 

 

 

 

 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[SuNiNaTaS(써니나타스)] 17번 문제 풀이


오늘은 17번 문제를 풀었다. 해당 문제는 많은 노력이 필요했다....

아래의 화면이 17번 문제이다. 'QR코드가 망가졌으니 고쳐라' 라고 문제가 주어졌다. 아마도 빨간색으로 칠해진 부분을 수정하는 문제인 듯하다.

(17번 문제)

 

 

포토샵을 한 번도 사용해본 적이 없어서 그림판을 이용해서 최대한 QR코드를 복구해보았다.

(멋있게 포토샵을 이용해서 하고 싶으나.... 프로그램도 없고, 사용해본 적도 없어서 그림판을 이용했다...)

(그림판을 이용한 QR코드 복구)

 

 

최대한 복구한 QR코드는 처음에는 인식을 하지 못했다. 그래서 주변 색상(흰색)과 QR선을 비슷하게 만들어 놓고 QR코드를 인식되게 만들었다.

 

휴대폰으로 QR코드를 인식했더니 아래와 같이 키값을 얻을 수 있었다.

"Good Job! Congraturation! AuthKey is YouAreQRCodeMaster~!"

 

 

키값을 그대로 들고 가 정답에 넣으니 아래와 같이 축하한다는 팝업창과 함께 문제가 풀리는 것을 알 수 있다.

(정답!)

 

 

점수도 조금씩 향상되는 것을 알 수 있다!

(점수 향상!)

 

 

 

 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[SuNiNaTaS(써니나타스)] 19번 문제 풀이


오늘은 19번 문제를 풀어봤다. 문제를 풀 때 한참을 고민해서 풀었던 문제였지만, 정답을 알고 보니 쉽게 해결할 수 있는 문제였다.

 

아래의 화면은 19번 문제이다.

19번 문제를 보면 이진수로 이루어져있는 것을 볼 수 있다. 그러면 이진수를 텍스트로 바꿔야 하는 것을 알 수 있다. 

(19번 문제)

 

 

그래서 나는 binary를 string으로 바꿔주는 사이트를 이용하기로 했다.

http://www.unit-conversion.info/texttools/convert-text-to-binary/

 

Convert text to binary - Converters

About Convert text to binary tool Convert text into binary. Computers store all characters as numbers stored as binary data. Binary code uses the digits of 0 and 1 (binary numbers) to represent computer instructions or text. Each instruction or symbol gets

www.unit-conversion.info

 

 

아래 사이트는 19번 문제에 있는 binary를 그대로 복사해서 붙여 넣기 한 모습이다. 그리고 변환한 모습을 보인 것이다.

(string으로 변환한 모습)

 

 

이진수를 텍스트로 변환하니 아래와 같은 문자로 바뀌었다. 해당 문자를 보고 쉽게 문제에 접근할 수가 없었다. 왜냐하면 무슨 문자인지 모르게 나타냈기 때문이다.

" NVCTFDV KF JLEZERKRJ REU KFURP ZJ R XFFU URP REU RLKYBVP ZJ GCRZUTKWZJMVIPYRIU "

 

 

나는 이상하게 나열되어있는 문자열을 보고 일정한 법칙에 의해 치환되었다는 것을 감지했다. 

(사실 이 사실을 알기까지 꽤 오랜 시간이 있었다.)

그래서 '치환 암호'라는 개념을 적용해서 문제를 풀기로 했다.

 

 

치환 암호란?
일정한 법칙에 따라 평문의 문자 단위를 다른 문자 단위로 치환하는 암호화 방식.

(출처: 위키백과)

 

 

아래의 사진은 치환 암호가 어떻게 이루어지는 간략하게 보여주는 사진이다.

평문 A -> D, B -> E, C -> F 으로 변환해서 서로 약속을 한 사람만 평문을 읽을 수 있게 치환하는 것이다.

(출처: https://starlibrary.org/ecollection/infogudIemList.do?id=GUD00000000000001082 )

 

 

그래서 자동으로 치환 암호를 평문으로 바꿔주는 사이트를 이용하기로 했다.

http://theblob.org/rot.cgi

 

ROT encoder/decoder

 

theblob.org

 

 

치환암호 사이트를 이용해서 아래의 화면처럼 처음에 문자열로 바꾼 값을 넣어준다.

 

 

값을 넣어주면 총 25가지의 평문이 나오게 되는데 그중에서 우리가 알아볼 수 있는 평문은 9번째에 있는 값이다. 

(평문 변환 값)

 

 

9번째 열을 보게 되면 키값을 발견할 수 있다.

" WELCOME TO SUNINATAS AND TODAY IS A GOOD DAY AND AUTHKEY IS PLAIDCTFISVERYHARD "

 

 

키 값을 그래도 들고 가서 정답에 넣어주면 아래와 같이 축하한다는 팝업창을 볼게 된다.

(축하한다는 팝업창)

 

 

물론 점수도 향상됐다!

(점수향상)

 

 

 

 

 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[SuNiNaTaS(써니나타스)] 9번 문제 풀이


오늘은 9번 문제를 풀었다. 리버싱에 대한 개념을 잘 몰라서 문제를 풀기가 매번 꺼려진다. 그런데 이번 9번 문제는 잘 얻어걸린 문제였다. 

 

9번 문제를 들어가 보면 아래와 같은 창을 보게 된다. 'Download' 표시가 있고 밑에 비밀번호가 있으니, 파일을 다운로드한 후 비밀번호를 입력하면 될듯하다.

(9번 문제)

 

 

파일을 다운로드하고, 압축을 풀면 아래와 같은 파일을 얻을 수 있다.

 

 

항상 문제를 풀 때는 실행파일이 무엇인지에 대해 알아봐야 한다. 문제에서는 exe 파일이 사실 zip 파일일 수도 있기 때문이다.

그래서 나는 'Exeinfo PE' 툴을 이용해서 해당 실행파일이 무엇인가 확인해봤다. 확인해보면 해당 파일은 'OllyDbg'를 이용하면 된다고 한다.

(Exeinfo PE)

 

 

'OllyDbg'는 아래의 폴더에서 실행시켜주면 된다!

(없으신 분들은 설치를 권장합니다!)

(OllyDbg 파일 폴더)

 

 

사실 'OllyDbg'의 사용에 대해 익숙하지가 않다. 대략적으로 설명하면 4 분할되어있는 왼쪽 위부터 시계방향으로 '어셈블리 코드' , '레지스터', '스택', 'DUMP(덤프)' 이다. 

 

 

'OllyDbg'에 다운로드한 실행파일을 옮겨 놓고, 아래의 네모 박스 칠해져 있는 실행 표시를 눌렀다.

('OllyDbg' 메뉴바)

 

 

그다음, '어셈블리 코드' 부분에서 조금만 위로 올려보니 Text 부분에 Congratulation 이라는 문구가 있었다. 아마 이쪽 부분에서 확인을 해보면 정답을 얻을 수 있을 것 같았다. 

바로 위쪽에 ASCII "913465" 가 있어서 이 값을 실행시켜본 프로그램에다가 넣어보기로 했다.

(실행파일을 'OllyDbg'에 넣은 모습)

 

 

사실 실행 버튼을 누르면 아래와 같이 프로그램이 실행된다.

(실행된 모습)

 

 

913465를 넣어보니 Congratulation!이라는 문구를 출력하는 것을 볼 수 있다.

 

 

그래서 이 값이 키값으로 인지하고 바로 정답에 넣어봤더니, 아래와 같이 축하한다는 문구를 볼 수 있는 팝업창을 볼 수 있다.

(문제해결!)

 

 

점수도 차곡차곡 쌓여간다!

(점수향상!)

 

 

 

 

 

*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.

[dotPeek] 설치 방법


오늘은 "dotPeek" 다운로드에 대해 설명을 드리려고 합니다. 

 

dotPeek 란?
.NET 어셈블리를 해당 C# 코드로 디컴파일하고 내부적으로 어떻게 프로그래밍 되어있는지 확인 할 수 있도록 도와주는 프로그램

 

여기서 디컴파일러(Decompiler)란 간단하게 설명을 드리면 컴파일러와 반대의 역할을 하는 컴퓨터 프로그래밍입니다. 

 

 

이제부터 설치 방법에 대해 알려드리겠습니다.

 

1. 첫번째로 'dotPeek' 홈페이지에 접속합니다.

공식 홈페이지

https://www.jetbrains.com/decompiler/

 

dotPeek: Free .NET Decompiler & Assembly Browser by JetBrains

dotPeek is a free tool based on ReSharper. It can reliably decompile any .NET assembly into C# or IL code.

www.jetbrains.com

 

 

2. 홈페이지 화면 내 'Download' 클릭

홈페이지에 접속하면 아래와 같은 화면을 볼 수 있을 겁니다. 해당 화면에 오른쪽에 'Download'를 클릭해줍니다.

(2020.03 기준)

 

 

3.  한번더 'Download' 클릭해줍니다.

 

그러면 아래의 화면처럼 다운로드 중이라고 화면 창에 뜰 것입니다.

 

 

4. 홈페이지에서 다운로드가 끝났다면, 실행파일을 실행시켜 설치를 진행합니다. 보이는 화면처럼 'Next'을 클릭해줍니다.

 

5. 또다시 'Next' 클릭

 

 

아래와 같은 화면이 뜨면 설치가 정상적으로 진행이 되는 것입니다.

 

 

6. 아래의 화면은 설치가 완료 된 화면입니다.

 

 

 

실행화면


 

 

 

 

 

*해당 블로그는 개인적인 공부와 정보공유를 위해 만들었습니다.

'공부 > Tools' 카테고리의 다른 글

[Wireshark(와이어샤크)] 설치방법  (4) 2020.03.22
[Burp Suite (버프스위트)] 설치 및 설정 방법  (12) 2020.03.07

+ Recent posts