일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 계정 탈취
- 보안
- AttackGraph
- 액티브스캐닝
- 대학원
- dnsenum
- Social Network in Game
- 강의
- 무선채널
- cgroups
- Container
- OIDC
- OpenID Connect
- Kublet
- NMAP
- airdecap-ng
- ip forwarding
- 넷크래프트
- decap
- davtest
- Mimikatz
- Mac
- Chrome 작업관리자
- 패시브스캐닝
- SecurityMetric
- 공격그래프
- 프로젝트
- Shift + ESC
- recon-ng
- 화이트해커
- Today
- Total
네른
[정보보안] 3. Encoding vs Encryption vs Hashing vs Obfuscation 본문
[정보보안] 3. Encoding vs Encryption vs Hashing vs Obfuscation
친구랑 이런저런 이야기를 나누다가, Encoding과 Encryption에 대한 이야기가 나왔다. 두 용어를 오용하여 혼났는데, 이 참에 다시한번 해당 개념에 대해 정리해보려한다.
1. Encoding
- Encoding은 쉽게 생각해서 '치환' 이라고 보면 된다.
- URL Encoding, 즉 사용자가 타이핑 한 값을 컴퓨터가 이해할 수 있도록 '치환' 해주는 Encoding.
- 그러므로 Encoding은 Security의 측면에서는 전혀 역할이 없다고 볼 수 있다.
- 심지어 이러한 Encoding들은 Encoding Table과 같은 방식으로 모든 정보가 공개되어있어, 역연산 또한 쉽다.
2. Encryption
- Encryption은 흔히 우리가 생각하는 '암호화' 이다.
- 타 사용자가 내 정보를 알아볼 수 없도록 숨기는 것이다.
- 앞에서 말한 '치환'과 비슷하다고도 생각할 수 있는데, Encryption은 Key 개념을 이용하여 '특정 사용자' 만이 해당 정보를 역연산 할 수 있다.
- 또한 '컴퓨터가 이해할 수 있도록 바꾼다' 와 같은 개념이 아님을 생각해보면 둘의 차이를 이해하기 쉽다.
- 다양한 암호화 알고리즘들이 공개되어있지만, 이들은 '역연산' 자체가 어렵기에 암호문을 알아도 복호화하기가 불가능하다.
3. Hashing
- Hashing 또한 암호화와 혼동하기 쉬운데, 이는 단순히 'integrity check'를 위한 개념이라고 보면 쉽다.
- 물론 단지 저것만을 위한 기법은 아니지만, 대부분의 Hashing은 정보의 무결성을 검증하고자 할 때 사용한다.
- 혹은, 데이터를 효율적으로 저장하기 위해서도 종종 사용하곤 한다. 데이터베이스의 크기를 줄이기 위한다던가. 혹은 cache에도 사용된다.
4. Obfuscation
- Obfuscation은 'Reverse Engineer'가 프로그램을 뜯어? 해부하여? 리버스 엔지니어링 하여! 프로그램 내부를 알고자 할 때, 이를 어렵게 하기 위한 기법이다.
- 지금까지 이를 도입한 프로그램을 몇번 본 적이 있는데, 게임 매크로 라던가 악성코드가 대부분이었다.
- 아 그리고 Mobile App 중에서도 특히 게임들이 이를 이용해 코드를 알 수 없도록 하곤 했다.
'궁금 > 정보보안' 카테고리의 다른 글
6. OAuth / OIDC(OpenID Connect) (0) | 2020.06.17 |
---|---|
[정보보안] 5. Mimikatz - sekurlsa (0) | 2019.05.21 |
[정보보안] 4. CPU Meltdown (0) | 2018.01.11 |
[정보보안] 2. 2FA ( Two-Factor Authentication ) (0) | 2017.09.25 |
[정보보안] 1. 공인인증서 (0) | 2017.09.19 |