인코딩과 암호화 비교
Base64, 16진수, 암호
인코딩과 암호화 비교은(는) CoddyKit의 무료 Ethical Hacking Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ethical Hacking Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
서로 다른 두 가지 목표
인코딩과 암호화는 모두 데이터를 처음에는 알아보기 어려운 형태로 변환하므로 비슷해 보이지만, 목표는 완전히 다릅니다.
- 인코딩은 데이터를 안전하게 저장하거나 전송할 수 있도록 데이터의 형식을 변경합니다.
- 암호화는 키를 가진 사람만 읽을 수 있도록 데이터의 기밀성을 보호합니다.
둘을 혼동하는 것은 보안 초보자가 가장 흔히 저지르는 실수 중 하나입니다.
누구나 디코딩할 수 있는 인코딩
인코딩은 공개된 잘 알려진 방식을 사용합니다. 비밀 요소는 없습니다. 방식을 아는 사람은 누구나 즉시 데이터를 디코딩할 수 있습니다.
일반적인 인코딩에는 Base64, hex, URL encoding, ASCII가 있습니다. 이러한 인코딩은 이메일이나 HTTP 헤더처럼 텍스트만 전달하는 채널에서도 이진 데이터가 손상되지 않도록 하기 위해 사용됩니다.
실제 Base64 사용
Base64는 64개의 출력 가능한 문자(A-Z, a-z, 0-9, +, /)를 사용하여 이진 데이터를 표현합니다. 데이터 크기는 약 33퍼센트 증가합니다. 끝에 붙는 =는 패딩입니다.
키가 전혀 없어도 모든 Linux 시스템에서 디코딩할 수 있습니다.
echo 'aGVsbG8gd29ybGQ=' | base64 -d
# Output: hello worldBase64 식별하기
해커로서 Base64를 어디에서나 보게 됩니다. JWT 토큰, 쿠키, 구성 파일, 유출된 데이터 등에 사용됩니다. 어떤 데이터 덩어리가 Base64인지 보여 주는 단서는 다음과 같습니다.
A-Za-z0-9+/만 포함하며,=패딩이 있을 수 있습니다.- 길이가 4의 배수입니다.
- 디코딩하면 읽을 수 있는 텍스트나 알아볼 수 있는 파일 헤더가 나옵니다.
의심스러운 문자열이 암호화되었다고 추정하기 전에 항상 먼저 디코딩해 보십시오.
16진수 인코딩
16진수 인코딩은 각 바이트를 두 개의 문자(0-9, a-f)로 표현합니다. 네트워크 캡처, 메모리 덤프, 해시 출력에서 널리 사용됩니다.
바이트 값 0x68 0x69는 ASCII 텍스트 'hi'를 나타냅니다.
echo -n 'hi' | xxd -p
# Output: 6869
echo '6869' | xxd -r -p
# Output: hi암호화가 추가하는 것: 키
암호화는 암호 알고리즘과 비밀 키를 적용합니다. 키가 없으면 출력 결과인 암호문을 계산적으로 되돌리는 것이 사실상 불가능합니다.
- 평문 = 원래의 읽을 수 있는 데이터.
- 암호문 = 암호화된 출력.
- 키 = 암호화와 복호화를 제어하는 비밀.
키를 변경하면 암호문은 완전히 달라집니다.
고전 암호: 카이사르
카이사르 암호는 각 문자를 일정한 양만큼 이동합니다. 3만큼 이동하면 A가 D가 됩니다. 가능한 키가 25개뿐이므로 무차별 대입으로 쉽게 깨집니다. 따라서 교육용 예제로만 사용됩니다.
ROT13은 13만큼 이동하는 카이사르 암호입니다. 기술적으로는 암호이지만 실제 보안은 전혀 제공하지 않습니다.
echo 'hello' | tr 'a-z' 'd-za-c'
# Output: khoor (shift of 3)현대 암호
실제 암호화는 AES(대칭) 및 RSA(비대칭)와 같은 알고리즘을 사용합니다. 이러한 알고리즘은 알고리즘 자체를 비밀로 유지하는 대신 큰 키와 풀기 어려운 수학적 문제에 의존합니다.
케르크호프스의 원칙: 키를 제외한 모든 정보가 공개되어도 암호 시스템은 안전해야 합니다. 보안은 알고리즘을 숨기는 것이 아니라 항상 키에서 나옵니다.
암호화는 무작위처럼 보입니다
관찰할 수 있는 중요한 차이가 있습니다. 좋은 암호문은 엔트로피가 높은 무작위 잡음처럼 보이지만, 인코딩된 데이터는 그렇지 않습니다.
- 'hello'의 Base64 인코딩은 누구에게나 항상
aGVsbG8=입니다. - 'hello'의 AES 암호화 결과는 키와 초기화 벡터에 따라 달라지므로 매번 다른 출력이 생성됩니다.
키 없이 문자열을 디코딩하여 읽을 수 있는 텍스트가 나온다면, 그것은 암호화된 것이 아니라 인코딩된 것입니다.
해커에게 중요한 이유
보안 평가를 수행하다 보면 가려진 데이터를 끊임없이 발견하게 됩니다. '이것은 인코딩인가, 암호화인가?'라고 질문하면 다음 행동을 결정하는 데 도움이 됩니다.
- 인코딩되었습니까? 키 없이 지금 디코딩하십시오. Base64에 숨겨진 자격 증명은 즉시 얻을 수 있는 성과입니다.
- 암호화되었습니까? 키를 찾거나, 키 관리를 공격하거나, 구현상의 결함을 찾아야 합니다.
인코딩을 보안으로 취급하는 것은 보안 취약점이며, 이를 지속적으로 보고하게 될 것입니다.
난독화는 세 번째 유형입니다
세 번째 범주인 난독화도 주의하십시오. 난독화는 실제 암호 알고리즘이나 키 관리 없이 데이터를 일부러 읽기 어렵게 만드는 것입니다(축소된 JS, 패킹된 이진 파일, 고정 바이트를 사용한 XOR 등).
인코딩과 마찬가지로 난독화는 진정한 기밀성을 제공하지 않습니다. 단지 부주의한 관찰자의 분석을 늦출 뿐입니다. 숙련된 분석가는 이를 일상적으로 되돌립니다.
빠른 확인
핵심적인 차이에 대한 이해도를 확인해 보십시오.
복습
인코딩과 암호화의 중요한 차이를 학습했습니다.
- 인코딩(Base64, hex)은 누구나 되돌릴 수 있으며 형식만 변경합니다.
- 암호화(AES, RSA)는 비밀 키가 필요하며 기밀성을 보호합니다.
- 난독화는 데이터를 숨기지만 보호하지는 않습니다.
- 의심스러운 문자열은 항상 먼저 디코딩하십시오. 암호문은 무작위 잡음처럼 보이는 반면, 인코딩된 데이터는 키 없이도 읽을 수 있는 내용으로 디코딩됩니다.
다음으로는 두 방식과 모두 다른 단방향 변환인 해싱을 자세히 살펴봅니다.
자주 묻는 질문
“인코딩과 암호화 비교” 강의는 무료인가요?
네 — “인코딩과 암호화 비교” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ethical Hacking Academy 강의 전체를 잠금 해제할 수 있습니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“인코딩과 암호화 비교”에서 뭘 배우나요?
Base64, 16진수, 암호 브라우저에서 직접 실행하는 실습 코드로 Ethical Hacking Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ethical Hacking Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ethical Hacking Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“인코딩과 암호화 비교” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ethical Hacking Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ethical Hacking Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 인코딩과 암호화 비교
- 해싱
- 대칭 암호와 비대칭 암호
- 해시 크래킹