오늘날 기업들은 지속적인 운영을 유지해야 하는 막중한 부담을 안고 있습니다. 사업이 원활하게 진행되도록 설정된 경우, 보안팀은 운영을 방해할 수 있는 모든 위협으로부터 회사를 보호해야 합니다.
하지만 오늘날 안전한 것이 내일에는 취약해질 수 있다는 점이 문제입니다. 이러한 현상은 알고리즘의 발전과 함께 새로운 취약점이 발생하고, 사이버 공격자들이 대부분의 기업이 의존하는 암호화를 무력화하는 새로운 방법을 개발하면서 발생합니다.
코드 분석이라고도 불리는 암호 분석은 코드, 암호 또는 암호화된 텍스트를 해독하고 조사하는 데 사용되는 기술에 대한 심층적인 이해를 필요로 합니다. 암호 분석은 수치 규칙을 활용하여 알고리즘의 취약점을 찾고 정보 보안 시스템의 암호화를 더욱 발전시키는 데 사용됩니다.
본 가이드는 암호 분석에 대해 알아야 할 모든 것을 알려줍니다. 이 주제를 자세히 이해하고 조직이 암호 분석에 면역이 되도록 하는 방법을 배울 수 있습니다.
암호 분석이란 무엇인가?
암호 해독 과정은 약점과 정보 유출을 식별하기 위해 암호화 시스템을 연구하는 데 목적을 두고 있습니다. 부채널 공격과 약한 엔트로피 입력과 같은 구현상의 취약점을 포함하여 암호화 시스템의 기초적인 수학적 구조의 결함을 탐색하는 것으로 볼 수 있습니다.
암호 시스템은 코드를 통해 정보 및 통신을 보호하여 지정된 사람만 처리할 수 있도록 하는 암호를 사용하는 컴퓨터 시스템을 말합니다.
암호 분석 대 암호화
정의에서 알 수 있듯이 암호화는 메시지를 안전하지 않은 채널을 통해 전송하기 전에 숨겨진 텍스트로 변환하여 메시지를 감추는 것과 관련이 있습니다. 반면 암호 분석은 안전하지 않은 채널을 통해 전송된 숨겨진 메시지에서 원문을 얻는 것을 목표로 합니다.
암호화는 정보를 전송하는 과정에서 자산으로 입증되었습니다. 대표적인 예로 은행 거래나 이메일 메시지와 같이 정보를 보호해야 하는 상황에서 암호화가 필요합니다. 암호화 체계에는 비밀 키, 공개 키 및 해시 함수가 포함됩니다.
암호 분석은 암호문을 원문으로 해독하는 것과 관련된 기술입니다. 이 경우 권한이 없는 사람이 채널을 도청하여 메시지를 해독하려고 시도합니다.
누가 암호 분석을 사용하는가?
암호 분석은 다른 국가의 개인 통신을 해독하려는 정부 기관, 보안 제품의 안전 기능을 테스트하는 기업, 해커, 크래커, 독립 연구원, 암호화 프로토콜과 알고리즘의 취약점을 확인하려는 학술 전문가 등 다양한 조직에서 사용합니다.
암호학의 발전은 데이터 보안을 원하는 암호 작성자와 암호 시스템을 해독하려는 암호 분석가 간의 끊임없는 경쟁을 통해 이루어집니다.
공격자의 목표는 암호 분석을 수행하기 위한 특정한 요구 사항과 관련이 있습니다. 성공적인 암호 분석은 일반적으로 숨겨진 텍스트에서 정보를 추론하는 것 이상을 의미합니다. 그러나 목표는 공격자마다 다를 수 있으며, 다음을 포함한 공격자의 필요에 따라 달라집니다.
- 완전한 해독 – 비밀 키를 찾는 것.
- 전역 추론 – 비밀 키에 대한 지식 없이 암호화 및 암호 해독을 위한 동일한 기능을 가진 알고리즘을 찾는 것.
- 정보 추론 – 암호문과 원문에 대한 정보를 얻는 것.
- 구별 알고리즘 – 임의의 비트 순열에서 암호화 출력을 구별하는 것.
이해를 돕기 위해 실질적인 예를 살펴보겠습니다. 하지만 이 예시는 현대적인 암호화 암호에는 적용되지 않으며, 단지 이해를 돕기 위한 것임을 인지해야 합니다.
빈도 분석 기법은 기본적인 암호화 알고리즘에 적용할 수 있습니다. 기본적인 암호화 알고리즘은 각 문자를 동일한 알파벳 내에서 미리 결정된 매핑된 문자로 바꾸는 단일 알파벳 치환을 수행합니다.
이 모델은 문자를 일정한 위치만큼 이동하고, 그 결과 알파벳 위치에 있는 이전 문자를 새 문자로 대체하는 더 기본적인 기술에서 개선된 것입니다.
단일 알파벳 치환 암호는 무차별적인 검색에는 탄력적이지만 내성이 없으며, 펜과 종이만으로도 쉽게 해독할 수 있습니다. 그렇다면 방법은 무엇일까요? 빈도 분석은 자연어가 임의적이지 않으며, 단일 문자 치환은 언어의 통계적 특성을 숨길 수 없다는 특징을 활용합니다.
좀 더 자세히 살펴보면, 특정 빈도(예: 12.7%)를 갖는 “E”와 같은 특정 알파벳으로 범위를 좁힐 수 있습니다. 암호문을 얻기 위해 E를 치환하면 결과 텍스트는 원래 빈도를 유지합니다. 암호 분석가가 이 빈도를 알고 있다면 암호문을 해독하기 위한 치환을 빠르게 결정할 수 있습니다.
암호 분석 공격 유형
암호 분석 공격은 시스템의 약점을 이용하여 암호화를 해독합니다. 암호 분석 공격을 시작하려면 공격 방법의 특성과 원문의 일반적인 속성을 알아야 합니다. 여기서 ‘일반적’이라는 것은 영어 또는 Java 코드와 같은 모든 언어를 의미할 수 있습니다.
다음은 공격 유형 목록입니다. 처음 5가지가 가장 일반적이고 나머지는 덜 일반적이며, 때로는 생략됩니다. 하지만 알아두는 것이 좋습니다.
- KPA(Known-Plaintext Analysis): 이 경우 공격자는 원문-암호문 쌍에 접근할 수 있습니다. 그 다음으로 공격자가 해야 할 일은 쌍을 매핑하여 암호화 키를 찾는 것입니다. 이 공격은 공격자가 이용할 수 있는 풍부한 정보가 있기 때문에 사용하기 쉽습니다.
- CPA(Chosen-Plaintext Analysis): 이 경우 공격자는 임의의 원문을 선택하고 이를 사용하여 해당 암호문을 얻은 다음 결국 암호화 키를 크래킹합니다. 이 방법은 KPA와 유사하지만 성공 가능성은 적습니다.
- COA(Ciphertext-Only Analysis): 이 경우 공격자는 일부 암호문을 알고 있으며 해당 원문과 암호화 키를 찾으려고 합니다. 공격자는 알고리즘을 이해하고 있습니다. 이 기술은 가장 어려운 방법이지만 암호문만 있으면 되기 때문에 성공률이 높습니다.
- MITM(Man-In-The-Middle) 공격: 두 당사자가 키를 사용하여 안전해 보이지만 손상된 채널을 통해 통신을 공유할 때 발생합니다.
- ACPA(Adaptive Chosen Plaintext Analysis): 이 경우는 CPA와 유사합니다. ACPA는 과거 암호화에서 얻은 데이터를 기반으로 식별된 원문과 암호문을 사용합니다.
- 무차별 대입 공격: 이 경우 공격자는 알고리즘을 사용하여 가능한 논리적 원문 집합을 예측합니다. 그런 다음 추측된 원문을 암호화하고 초기 암호와 비교합니다.
- 사전 공격: 이 경우 공격자는 단어 사전에 대해 원문 또는 키를 실행합니다. 이 기술은 일부 암호화된 암호를 해독하려고 할 때 자주 사용됩니다.
암호 분석은 어떻게 작동하는가?
암호 분석의 핵심 목표는 결함을 노출하거나 암호화 알고리즘을 우회하는 것입니다. 암호 작성자는 암호 분석가의 연구를 활용하여 기존 알고리즘을 개선하거나 수준 이하의 방법을 업그레이드합니다.
암호화 및 기타 기술을 생성하고 강화하는 암호화와 함께, 암호 분석은 암호화된 데이터를 해독하는 데 집중합니다. 이 두 작업은 대화하면서 코드, 암호, 관련 알고리즘에 대한 수학적 연구인 암호학의 영역에 속합니다.
연구원들은 암호화 키 없이 암호문 암호화 알고리즘의 암호 해독을 시도하면서, 암호화 체계를 뛰어넘는 공격 전략을 개발하기 위해 상당한 노력을 기울입니다. 종종 암호 분석을 사용하여 개념 및 구현 방법의 결함을 드러냅니다.
암호 분석 공격으로부터 보호하는 방법
안타깝게도 안전한 암호화 체계를 사용하고 전체 디지털 인프라를 암호화하며 소프트웨어를 최신 상태로 유지하는 것 외에는 암호 분석에 대한 면역력을 확립하기 위해 할 수 있는 일이 많지 않습니다. 그러나 다음은 보안을 강화하기 위해 사용할 수 있는 몇 가지 팁입니다.
- 업데이트된 암호화 및 해시 알고리즘을 사용합니다. 안전하지 않다고 간주되는 SHA1 및 MD5와 같은 도구를 피하는 것이 좋습니다.
- 긴 암호화 키를 사용하십시오. 예를 들어 RSA 키는 VPN 핸드셰이크에 대해 최소 2048비트 길이여야 합니다.
- 대체된 키 폐기를 기억하십시오.
- 강력한 암호를 사용하고 테스트를 거친 난수 생성기를 구현하여 키를 선택합니다.
- 해시에 솔트를 사용하십시오. 여기서 해시에 임의의 노이즈를 추가합니다. 암호로 작업할 때와 마찬가지로 솔트를 길고 무작위로 유지해야 합니다.
- PFS(Perfect Forward Secrecy)를 사용하여 키가 손상된 경우 과거 및 미래 세션의 암호 해독을 방지합니다. 이는 VPN(가상 사설망)에서 자주 사용됩니다.
- 암호화된 트래픽을 난독화합니다. 트래픽이 규칙적으로 보이고 암호화되었다는 사실이 드러나지 않도록 합니다. Obfsproxy와 같은 소프트웨어는 Tor 네트워크에서 잘 작동하는 좋은 예제입니다.
- 인프라에 침입 탐지 시스템(IDS)을 통합하십시오. 이 시스템은 위반 또는 공격을 알려주지만, 위반을 막지는 못합니다. 그러나 응답 시간을 줄여 심각한 손상으로부터 시스템을 보호합니다. 시스템에 좋은 IDS를 통합하는 것이 가장 좋습니다.
암호 분석의 응용
암호 분석에는 몇 가지 실질적인 응용 프로그램이 있습니다. 때로는 암호화와 결합하여 잠재력을 최대한 발휘할 수 있습니다. 다음은 몇 가지 응용 프로그램입니다.
#1. 스토리지의 무결성
암호 분석을 사용하여 스토리지의 무결성을 유지할 수 있습니다. 이 경우 접근 제어 시스템에서 잠금 장치와 키를 사용하여 원하지 않는 접근으로부터 데이터를 보호합니다. 또한 바이러스에 의해 수정된 데이터에 쉽게 접근할 수 있는 동적 환경에 저장된 데이터의 진위 여부를 확인하기 위해 암호화 체크섬을 생성할 수도 있습니다.
체크섬은 데이터 전송 중에 개발되고 예상 값과 비교됩니다. 암호 분석은 대량의 데이터 또는 장기간 노출된 데이터에 따른 공격에 취약한 스토리지 매체를 보호하는 데 도움이 됩니다.
#2. 신원 인증
신원 인증에서 주요 초점은 사용자의 데이터 접근 권한을 확인하는 것입니다. 암호 분석은 암호 교환 중에 이 과정을 용이하게 합니다. 현대 시스템은 사용자를 안정적이고 효율적으로 식별하기 위해 암호화 변환을 사용자 속성과 결합합니다.
암호는 접근 권한이 있는 애플리케이션에서 사용할 수 있는 암호화된 형식으로 저장됩니다. 암호가 원문으로 저장되지 않기 때문에 시스템의 보안이 위협받지 않습니다.
#3. 시스템 자격 증명
암호 분석 및 암호화를 사용하여 시스템 자격 증명을 생성할 수 있습니다. 사용자가 시스템에 로그인할 때마다 개인 자격 증명을 생성해야만 로그인할 수 있습니다.
이제 전자 인증을 용이하게 하기 위해 전자 자격 증명이 생성되고 있습니다. 이 기술은 종종 데이터 저장을 포함하여 암호화 작업을 수행하기 위해 스마트 카드에 적용됩니다.
#4. 디지털 서명
디지털 서명은 메시지가 알려진 보낸 사람이 보낸 것임을 인증하기 위해 통신에 자주 사용됩니다. 이것은 펜과 종이로 작성한 문서 서명과 유사합니다. 물론 디지털 서명이 아날로그 서명을 대체하려면 암호 해독 기술을 이용하여 위조하지 않아야 합니다.
이는 조직에 팀이 여러 위치에 분산되어 있고 일부 협업 문서 작업을 수행하기 위해 직접 만나지 않은 경우에 유용합니다. 디지털 서명 형식을 사용하면 공개 키를 소유한 사람은 누구든 암호화폐 분야에서 널리 채택된 문서를 확인할 수 있습니다.
#5. 전자 자금 이체(EFT)
최근에 전자 화폐가 현금 거래를 대체하는 것을 보았습니다. 전자 자금 이체, 가상 화폐, 디지털 금화, 암호 화폐, 계좌 이체 등은 모두 암호화 기반 자산입니다. ATM 인출, 직불 카드 결제 및 전신 송금은 전자 화폐 운영의 예입니다.
암호 분석가가 되는 방법
다양한 암호 분석 응용 프로그램을 살펴본 후 암호 분석가가 되는 것을 고려할 수 있습니다. 그렇게 한다면 데이터를 암호화하기 위한 알고리즘, 암호 및 보안 시스템을 개발하는 작업을 수행하게 될 것입니다. 또한 암호화 방법과 통신 프로토콜의 정보를 분석하고 해독해야 합니다.
보안 시스템 설계, 가로채기로부터 중요한 정보 보호, 신뢰성을 위한 계산 모델 테스트, 재무 데이터 암호화, 데이터 분석을 위한 통계 및 수학적 모델 개발, 보안 문제 해결과 같은 역할 수행을 기대할 수도 있습니다. 이 분야가 충분히 흥미롭다면 함께 읽어보고 암호 분석가가 되는 방법을 알아봅시다.
컴퓨터 과학, 공학, 수학 또는 전기 및 전자 공학과 같은 관련 분야에서 학사 학위를 취득할 수 있습니다. 하지만 일부 조직에서는 기술 학위가 없더라도 집중적인 교육과 실무 경험을 바탕으로 채용할 수 있습니다. 일부 사이버 보안 인증을 보유하면 추가적인 이점이 있을 것입니다.
마지막 말
암호 분석은 공격 자체라기보다는 사이버 공격 수단에 더 가깝습니다. 그리고 대부분의 암호화 시스템이 암호 분석 시도에 저항하기 때문에 취약한 부분을 이해하려면 정교한 수학적 능력이 필요합니다.
암호 분석 학습을 고려하고 있다면 금융, 스토리지 및 ID 부문과 같은 광범위한 제품에서 작업하는 것은 흥미로운 분야가 될 것입니다.
암호 분석이 얼마나 강력한지, 실제 응용 프로그램을 구축하는 데 얼마나 도움이 되는지 확인했습니다. 암호 분석을 추구하는 것은 괜찮을 것이며, 더 안전한 유틸리티를 구축하는 것과 같은 기술을 사용하는 것이 더 좋을 것입니다.
다음으로 데이터 암호화: 주요 용어를 확인할 수 있습니다.