암호화 시스템에 대한 공격
오늘날에는 비즈니스뿐만 아니라 인간 생활의 거의 모든 측면이 정보에 의해 좌우됩니다. 따라서 공격과 같은 악의적 인 활동으로부터 유용한 정보를 보호하는 것이 필수적이되었습니다. 정보가 일반적으로받는 공격 유형을 고려해 보겠습니다.
공격은 일반적으로 공격자가 수행 한 작업에 따라 분류됩니다. 따라서 공격은passive 또는 active.
패시브 공격
수동 공격의 주요 목표는 unauthorized access to the information. 예를 들어, 통신 채널에 대한 가로 채기 및 도청과 같은 행위는 수동적 공격으로 간주 될 수 있습니다.
이러한 조치는 정보에 영향을 미치거나 통신 채널을 방해하지 않기 때문에 본질적으로 수동적입니다. 수동적 공격은 종종 정보 도용으로 간주됩니다 . 실제 상품을 훔치고 정보를 훔칠 때의 유일한 차이점은 데이터 도난이 여전히 해당 데이터를 소유하게된다는 것입니다. 따라서 수동적 정보 공격은 정보 도용이 소유자가 알아 차리지 못하도록 상품을 훔치는 것보다 더 위험합니다.
적극적인 공격
능동적 공격은 정보에 대한 일부 프로세스를 수행하여 어떤 방식 으로든 정보를 변경하는 것을 포함합니다. 예를 들면
무단으로 정보를 수정합니다.
의도하지 않거나 무단으로 정보를 전송하는 행위.
정보와 관련된 발신자 이름 또는 타임 스탬프와 같은 인증 데이터 변경
데이터의 무단 삭제.
합법적 인 사용자에 대한 정보 액세스 거부 (서비스 거부).
암호화는 위에서 설명한 대부분의 공격을 방지 할 수있는 암호화 시스템을 구현하기위한 많은 도구와 기술을 제공합니다.
공격자의 가정
이러한 시스템을 파괴하기 위해 사용 된 공격 유형이 뒤 따르는 암호화 시스템 주변의 일반적인 환경을 살펴 보겠습니다.
Cryptosystem 주변 환경
암호 시스템에 대한 공격 가능성을 고려하는 동안 암호 시스템 환경을 알아야합니다. 공격자의 환경에 대한 가정과 지식이 자신의 능력을 결정합니다.
암호화에서는 보안 환경과 공격자의 능력에 대해 다음 세 가지 가정이 이루어집니다.
암호화 체계의 세부 사항
암호화 시스템의 설계는 다음 두 가지 암호화 알고리즘을 기반으로합니다.
Public Algorithms −이 옵션을 사용하면 알고리즘의 모든 세부 정보가 모든 사람에게 알려진 공개 도메인에 있습니다.
Proprietary algorithms − 알고리즘의 세부 사항은 시스템 설계자와 사용자 만 알고 있습니다.
독점 알고리즘의 경우 모호성을 통해 보안이 보장됩니다. 사설 알고리즘은 사내에서 개발되어 가장 강력한 알고리즘이 아닐 수 있으며 약점에 대해 광범위하게 조사되지 않을 수 있습니다.
둘째, 폐쇄 된 그룹 간의 통신 만 허용합니다. 따라서 사람들이 많은 수의 알려 지거나 알려지지 않은 개체와 통신하는 현대 통신에는 적합하지 않습니다. 또한 Kerckhoff의 원칙에 따르면 알고리즘은 키 에있는 암호화의 강도를 가진 공개적으로 선호됩니다 .
따라서 보안 환경에 대한 첫 번째 가정은 encryption algorithm is known to the attacker.
암호문의 가용성
일반 텍스트가 암호문으로 암호화되면 전송을 위해 보안되지 않은 공개 채널 (예 : 이메일)에 저장됩니다. 따라서 공격자는 분명히 자신이access to the ciphertext generated by the cryptosystem.
일반 텍스트 및 암호문의 가용성
이 가정은 다른 것만 큼 분명하지 않습니다. 그러나 공격자가 다음을 가질 수있는 상황이있을 수 있습니다.access to plaintext and corresponding ciphertext. 이러한 가능한 상황은 다음과 같습니다.
공격자는 보낸 사람에게 영향을 주어 자신이 선택한 일반 텍스트를 변환하고 암호문을 얻습니다.
수신자가 실수로 일반 텍스트를 공격자에게 누설 할 수 있습니다. 공격자는 열린 채널에서 수집 된 해당 암호문에 액세스 할 수 있습니다.
공개 키 암호화 시스템에서 암호화 키는 공개 도메인에 있으며 잠재적 인 공격자에게 알려져 있습니다. 이 키를 사용하여 해당하는 일반 텍스트와 암호문 쌍을 생성 할 수 있습니다.
암호화 공격
공격자의 기본 의도는 암호 시스템을 깨고 암호문에서 일반 텍스트를 찾는 것입니다. 일반 텍스트를 얻으려면 알고리즘이 이미 공개 도메인에 있으므로 공격자는 비밀 암호 해독 키만 알아 내면됩니다.
따라서 그는 암호 시스템에서 사용되는 비밀 키를 찾는 데 최대한의 노력을 기울입니다. 공격자가 키를 결정할 수있다되면 같이 공격 시스템이 고려된다 고장 또는 손상 .
사용 된 방법론에 따라 암호화 시스템에 대한 공격은 다음과 같이 분류됩니다.
Ciphertext Only Attacks (COA)−이 방법에서 공격자는 일련의 암호문에 액세스 할 수 있습니다. 그는 해당 일반 텍스트에 대한 액세스 권한이 없습니다. COA는 주어진 암호문 세트에서 해당 일반 텍스트를 판별 할 수있을 때 성공한 것입니다. 때때로이 공격으로부터 암호화 키가 결정될 수 있습니다. 최신 암호화 시스템은 암호문 전용 공격으로부터 보호됩니다.
Known Plaintext Attack (KPA)−이 방법에서 공격자는 암호문의 일부에 대한 일반 텍스트를 알고 있습니다. 작업은이 정보를 사용하여 나머지 암호문을 해독하는 것입니다. 이것은 키를 결정하거나 다른 방법을 통해 수행 할 수 있습니다. 이 공격의 가장 좋은 예는 블록 암호에 대한 선형 암호화입니다.
Chosen Plaintext Attack (CPA)−이 방법에서 공격자는 자신이 선택한 텍스트를 암호화합니다. 그래서 그는 자신이 선택한 암호문-일반 텍스트 쌍을 가지고 있습니다. 이것은 암호화 키를 결정하는 그의 작업을 단순화합니다. 이 공격의 예는 해시 함수뿐만 아니라 블록 암호에 대해 적용된 차등 암호화입니다. 널리 사용되는 공개 키 암호화 시스템 인 RSA는 선택된 일반 텍스트 공격에도 취약합니다.
Dictionary Attack−이 공격에는 '사전'을 컴파일하는 다양한 변형이 있습니다. 이 공격의 가장 간단한 방법으로 공격자는 일정 기간 동안 배운 암호문 및 해당 일반 텍스트 사전을 구축합니다. 앞으로 공격자가 암호문을 받으면 사전을 참조하여 해당 일반 텍스트를 찾습니다.
Brute Force Attack (BFA)−이 방법에서 공격자는 가능한 모든 키를 시도하여 키를 확인하려고합니다. 키가 8 비트 길이 인 경우 가능한 키 수는 2 8 = 256입니다. 공격자는 암호문과 알고리즘을 알고 있으므로 이제 256 개의 키를 모두 해독을 위해 하나씩 시도합니다. 키가 길면 공격을 완료하는 데 걸리는 시간이 매우 길어집니다.
Birthday Attack−이 공격은 무차별 대입 기술의 변형입니다. 암호화 해시 함수에 대해 사용됩니다. 학급의 학생들이 생일에 대해 질문을 받으면 대답은 가능한 365 일 중 하나입니다. 하자 우리는 첫 번째 학생의 생일이 3 가정 번째 그리고 누구의 생일 3 다음 학생 찾을 8월 번째 8월, 우리는 1.25 문의 할 필요가 * ?? √365 ≈ (25 명) 학생.
마찬가지로 해시 함수가 64 비트 해시 값을 생성하는 경우 가능한 해시 값은 1.8x10 19 입니다. 다른 입력에 대해 함수를 반복적으로 평가하면 약 5.1x10 9 개의 임의 입력 후에 동일한 출력이 얻어 질 것으로 예상됩니다 .
공격자가 동일한 해시 값을 제공하는 두 개의 다른 입력을 찾을 수있는 경우 collision 그리고 그 해시 함수는 깨 졌다고합니다.
Man in Middle Attack (MIM) −이 공격의 대상은 대부분 통신이 이루어지기 전에 키 교환이 관여하는 공개 키 암호 시스템입니다.
호스트 A는 호스트로 통신하려는 B , 따라서의 공개 키 요청 B를 .
공격자는이 요청을 가로 채고 대신 자신의 공개 키를 보냅니다.
따라서 호스트 A 가 호스트 B에 보내는 모든 내용을 공격자는 읽을 수 있습니다.
통신을 유지하기 위해 공격자는 자신의 공개 키로 데이터를 읽은 후 데이터를 다시 암호화하여 B 에게 보냅니다 .
공격자는 자신의 공개 키를 A 의 공개 키로 전송하여 B 가 A 로부터 가져 오는 것처럼 가져옵니다 .
Side Channel Attack (SCA)− 이러한 유형의 공격은 특정 유형의 암호화 시스템 또는 알고리즘에 대한 것이 아닙니다. 대신 암호화 시스템의 물리적 구현의 약점을 악용하기 위해 시작됩니다.
Timing Attacks− 그들은 서로 다른 계산이 프로세서에서 계산하는 데 서로 다른 시간이 걸린다는 사실을 이용합니다. 이러한 타이밍을 측정하면 프로세서가 수행하는 특정 계산에 대해 알 수 있습니다. 예를 들어 암호화에 시간이 오래 걸리면 비밀 키가 길다는 것을 나타냅니다.
Power Analysis Attacks − 이러한 공격은 기본 계산의 특성에 대한 정보를 얻기 위해 전력 소비량이 사용된다는 점을 제외하면 타이밍 공격과 유사합니다.
Fault analysis Attacks − 이러한 공격에서 암호 시스템에 오류가 발생하고 공격자는 결과 출력을 조사하여 유용한 정보를 얻습니다.
공격의 실용성
여기에 설명 된 암호화 시스템에 대한 공격은 대부분 학술 커뮤니티에서 발생하므로 매우 학술적입니다. 사실, 많은 학문적 공격은 환경과 공격자의 능력에 대한 매우 비현실적인 가정을 포함합니다. 예를 들어, 선택된 암호문 공격에서 공격자는 의도적으로 선택한 평문-암호문 쌍의 비실용적 수를 필요로합니다. 완전히 실용적이지 않을 수 있습니다.
그럼에도 불구하고 공격이 존재한다는 사실은 특히 공격 기술이 개선 가능성이있는 경우 우려의 원인이되어야합니다.