전체 글
-
[2021/03/03][짤막한 이야기 - 부인 방지]짤막한 이야기 2021. 3. 3. 15:04
[2021/03/03][짤막한 이야기 - 부인 방지] “부인 방지(Non-Repudiation)”는 어느 개체가 수행한 행위를 부정(거짓말)하는 것을 방지하는 속성이다. 기밀성, 무결성, 가용성 등과 같은 보안의 속성 중 하나에 해당하며, 부인 방지를 보장하지 못하였을 때 큰 문제가 될 수 있다. 부인 방지를 보장한다는 것의 의미는 간단히 이야기하면 특정 값의 생성은 특정 개체만이 할 수 있다는 것이다. 즉, 특정 값을 “밥(Bob)”이 가지고 있어도, 그 값을 “앨리스(Alice)”만이 생성할 수 있다면, 자연스럽게 “송신 부인 방지”를 보장한다. 즉 앨리스가 이 값을 (실제로 송신했지만) 송신한 적이 없다고 부인할 수 없는 것이다. 앞서 서술한 이야기에서 MAC은 메시지의 무결성과 인증을 동시에 보장..
-
[2021/03/02][짤막한 이야기 - 메시지 인증 코드]짤막한 이야기 2021. 3. 2. 18:11
[2021/03/02][짤막한 이야기 - 메시지 인증 코드] “메시지 인증 코드(Message Authentication Code, MAC)”는 “메시지 인증”을 위하여 사용되는 코드이다. “메시지 무결성”을 보호하기 위하여 “해쉬 함수”를 메시지에 적용한다고 하였는데, 이 때의 해쉬 값은 “변조 감지 코드(MDC, Modification Detection Code)”라고 소개한 바 있다. MDC는 기본적으로 안전한 채널로 전송되어야 한다고 했지만, 그것이 쉬운 일은 아니다. MAC도 MDC처럼 해쉬 함수를 사용하여 구성할 수도 있다. MDC와는 다르게 키를 함께 해쉬 함수에 넣는 것이다. 따라서 키를 모르는 개체는 동일한 MAC을 생성할 수 없다. 즉, MAC는 “메시지 무결성”과 “메시지 인증”을 동..
-
[핀툴 프로그래밍 기본서] - 할인 및 SNS 공유 이벤트 (신학기 이벤트)짤막한 공지 2021. 3. 1. 15:44
[핀툴 프로그래밍 기본서] - 할인 및 SNS 공유 이벤트 (신학기 이벤트) 안녕하세요, 루니프입니다. 요즘 코로나로 힘든 가운데에도 “개발자 대란”이라고 이야기가 점점 많아지고 있습니다. “개발자”에게 가장 필요한 능력은 “구현” 능력이겠지만, 그와 동시에 개발된 프로그램 내부 구조를 파악하는 “분석” 능력도 매우 중요합니다. 결국 개발이란 것도 뼈대를 모르는 상태에서는 쉽게 무너지기 때문입니다. 핀툴이란 소프트웨어 분석용 프레임워크입니다. 흔히 들어보셨을법한 디버거, 디스어셈블러 등과 같이 분석 도구로 생각하시면 됩니다. 핀툴은 기능만으로 보면 매우 강력한 분석 도구이지만, C언어를 아주 조금 알아야 합니다. 핀툴 자체가 “구현해나가는 분석 도구”같은 컨셉이기 때문입니다. 개발(공학)과 분석(역공학)..
-
[2021/03/01][짤막한 공지 - 신학기 이벤트]짤막한 공지 2021. 3. 1. 15:41
[2021/03/01][짤막한 공지 - 신학기 이벤트] ※ 해당 “신학기 이벤트” 공지 및 “홍보글”의 경우 영문 버전이 제공되지 않습니다. 안녕하세요, 루니프입니다. 코로나19가 만연하여도 우리들은 공부를 해야하고, 시간은 계속해서 흘러갈 것입니다. 신학기가 시작될 예정인 오늘부터 2주간 “신학기 이벤트”를 시작하겠습니다. ※ 금번 이벤트는 2021/03/01 ~ 2021/03/15까지 진행될 예정입니다. [신학기 이벤트 하나 - 핀툴 프로그래밍 기본서 할인] 이벤트 기간동안 [핀툴 프로그래밍 기본서]가 40% 할인됩니다. 기존 각 부(Part)당 25,000원이였지만, 해당 기간동안은 15,000원에 판매됩니다. 40% 할인이 적용되는 판매처는 다음과 같습니다. (크몽, 탈잉, 중고나라, 번개장터, ..
-
[2021/02/28][짤막한 이야기 - 하이브리드 암호시스템]짤막한 이야기 2021. 2. 28. 12:07
[2021/02/28][짤막한 이야기 - 하이브리드 암호시스템] 대칭키 암호는 동일한 키로 암호화 및 복호화를 수행하며, 비대칭키는 암호화 키와 복호화 키가 따로 존재한다. 간단하게 생각하면 비대칭키 암호시스템으로 암호화하는 것이 더 간편해보인다. 왜냐하면 대칭키 암호시스템에서는 복호화를 하기 위해서 사전에 “키 교환”이 이루어져야 하기 때문이다. 그러나 비대칭키 암호시스템은 수학적인 문제로 접근하기 때문에, 암호화 및 복호화에 소요되는 시간이 매우 크다. 그래서 교환하고 싶은 메시지의 길이가 길수록 비대칭키 암호시스템은 비효율적이게 된다. 위와 같은 각 암호시스템의 한계점을 보완하기 위하여 제안된 암호시스템이 “하이브리드 암호시스템”이다. 이는 메시지의 암호화 및 복호화는 대칭키 암호시스템으로 수행하고..
-
[2021/02/27][짤막한 이야기 - 대칭키 & 비대칭키]짤막한 이야기 2021. 2. 27. 16:26
[2021/02/27][짤막한 이야기 - 대칭키 & 비대칭키] “대칭키(Symmetric Key)”는 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 서로 같은 경우를 의미한다. “비대칭키(Asymmetric Key)”는 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 서로 다른 경우를 의미한다. 비대칭키에서는 암호화할 때 사용하는 키는 외부에 공개되어도 문제가 되지 않는다. 따라서 비대칭키를 사용하는 암호를 “비대칭키 암호”라고도 하지만 “공개키 암호”라고도 한다. 대칭키에서 사용되는 키는 보통 랜덤한 비트열을 의미하지만, 비대칭키에서 사용되는 키는 수학적으로 접근하여 생성되는 키이다. 즉, 비대칭키 암호에서 “암호화 키(=공개키)”와 “복호화 키(=비밀키)”는 따로 랜덤하게 생성하는 것은 ..
-
[2021/02/25][짤막한 이야기 - 제어흐름 평탄화]짤막한 이야기 2021. 2. 25. 20:55
[2021/02/25][짤막한 이야기 - 제어흐름 평탄화] “제어흐름 평탄화(Control-Flow Flattening)”은 제어흐름을 이해하기 어렵게하는 보호 기술 중 하나이다. 즉, 역공학을 방지하는 기술 중 하나이며, 이러한 기술을 “난독화(Obfuscation)”라고 한다. 난독화 기술 중 하나의 범주인 “제어흐름 난독화(Control-Flow Obfuscation)”에 해당한다. 단순한 “Hello World!”를 출력하는 코드를 실행 순서를 파악하기 어렵게 한다. 위 예시에서는 평탄화되는 코드 블록의 수가 2개밖에 되지 않지만, 만약 이것이 200개, 2000개로 분할된다면 분석하기 더욱 어려워질 것이다. 이 난독화의 적용 결과로 직렬로 내려가야 하는 제어흐름이 피라미드 형태로 퍼지게 되었다...
-
[2021/02/24][짤막한 이야기 - 안티디스어셈블]짤막한 이야기 2021. 2. 24. 17:26
[2021/02/24][짤막한 이야기 - 안티디스어셈블] “안티디스어셈블(Anti-Disassemble)”은 말 그대로 디스어셈블을 방해하기 위한 기술이다. “디스어셈블러”는 기계어를 읽어들여서 어셈블리어를 출력해주는 분석용 도구(Ex: IDA)이다. 그런데 소스코드 앞에 전혀 실행되지 않는 바이트(예시에서는 0xE8)를 삽입하는 것으로 어셈블리어의 출력을 방해할 수 있다. 전혀 실행되지 않는 바이트는 단순히 삽입하는 것이 아니라 JZ(Jump if Zero) 어셈블리어를 추가하여야 한다. XOR 어셈블리어와 JZ 어셈블리어를 조합하면 “조건분기문”을 “무조건분기문”으로 만들 수 있기 때문에 안티디스어셈블에 많이 활용된다. 소스코드에 단순히 위와 같이 추가하는 것만으로도 디스어셈블러를 방해할 수 있다. ..