중국시가넷 - 개인 서명 - 클라우드 컴퓨팅 시대 비밀 키 교환의 보안 개요(1부)

클라우드 컴퓨팅 시대 비밀 키 교환의 보안 개요(1부)

인증암호에 대한 마지막 글(2부)이 나온 이후로 작성자는 이번주 일요일 밤까지 보안에 대한 기본 글을 계속 쓸지 고민을 많이 했습니다. 특히 프로그램팀은 칭화대학교 고등연구소 양진닝 석좌교수 왕샤오윤(53)을 초청해 암호학에 대한 그녀의 기여를 소개했다. 아이들과 가족들이 프로그램을 시청하면 MD5가 무엇인지, 왜 그것이 왜 그렇게 중요한지 명확하게 이해하게 됩니다. 특히 왕 교수가 MD5 디자인을 기반으로 한 국가 암호화 표준이 은행 카드, 사회 보장 카드에 널리 사용되었다고 언급했을 때 말이죠. 및 기타 분야에서 암호화를 이 오래되었지만 젊은 기술로 만드는 분야가 더 많은 사람들의 시야에 들어왔습니다.

앞서 소개한 내용은 주로 대칭 암호화에 중점을 두었습니다. 이 기사에서는 비대칭 암호화 알고리즘에 초점을 맞춥니다. 전체 알고리즘에는 매우 중요한 링크가 있습니다. 비밀 키 교환. 이름에서 알 수 있듯이 키 교환 "사람"은 비밀 키를 안전하게 교환하는 방법에 대한 본질적인 문제를 해결합니다. 우리의 오랜 친구인 앨리스 여왕과 밥 경에게 설명을 요청해 봅시다. Alice 여왕과 Bob 경이 안전하게 통신하기를 원한다고 가정하면 Alice 여왕과 Bob 경은 각자의 비밀 키를 서로에게 보냅니다. 결과적으로 통신 당사자 모두 이 공유 비밀 키를 보유하게 되며, 이 공유 비밀 키는 후속 정보 보안 상호 작용에 사용될 수 있습니다.

이후의 논의를 좀 더 현실적으로 만들기 위해, 앨리스 여왕과 밥 경이 한 번도 만난 적이 없다고 가정해 보겠습니다. 그렇다면 어떻게 여왕과 영주가 안전하게 소통할 수 있을까요? 이 문제는 비밀키 교환 알고리즘에 대한 가장 독창적인 적용 시나리오이기도 하다. 여왕과 영주 사이의 통신의 프라이버시를 보장하기 위해서는 양측 모두 공유 비밀 키가 필요하지만 안전한 통신과 공유 비밀 키는 상상만큼 간단하지 않습니다. 악의적인 공격자가 여왕과 영주 사이의 전화 통신이나 이메일 통신을 도청하는 경우(일반 텍스트 정보가 전송된다고 가정), 악의적인 공격자는 여왕과 영주가 공유한 비밀 키와 이후의 모든 여왕 사이의 통신을 훔칠 것입니다. 이 비밀 열쇠를 통해 해독될 수 있습니다. 여왕과 영주 사이의 모든 사적인 통신은 더 이상 왕국 전체의 화제가 되었습니다.

이 문제를 어떻게 해결하나요? 이것이 비밀키 교환 알고리즘이 해결해야 할 핵심 문제입니다. 간단히 말해서, 비밀키 교환 알고리즘을 통해, 악의적인 공격자가 모든 통신 회선을 듣고 있지 않더라도 앨리스 여왕과 밥 경은 안전하게 공유 비밀키를 교환할 수 있습니다. 양 당사자의 비밀 키를 얻기 위해 여왕과 영주는 마침내 걱정없이 험담을 할 수 있습니다.

비밀 키 교환은 통신 당사자가 자신의 비밀 키를 생성하는 것으로 시작됩니다. 일반적으로 비대칭 암호화 알고리즘은 공개 키와 개인 키(공개 키와 개인 키)라는 두 가지 비밀 키를 생성합니다. 그런 다음 두 통신 당사자는 각각 서로에게 공개 키를 보냅니다. 여기서 공개 키의 "공개"는 공개를 의미하며, 이는 악의적인 공격자가 두 통신 당사자가 생성한 공개 키 정보도 얻을 수 있음을 의미합니다. 그러면 여왕과 영주는 받은 공개키와 그들이 갖고 있는 개인키를 결합하여 공유된 통신키가 된다. 이 공개키를 악의적인 공격자의 관점에서 볼 수 있습니다. 악의적인 공격자는 어느 쪽의 개인키도 갖고 있지 않기 때문에, 악의적인 공격자는 퀸과 통신에 사용되는 "*** 공유" 비밀키를 얻을 수 없습니다. 영주. 퀸과 로드 측에서 공유 비밀 키를 생성하는 과정에 대해서는 아래 그림과 같습니다.

비밀 키 교환 알고리즘의 일반적인 작동 메커니즘을 이해한 후 비밀 키를 살펴보겠습니다. 키 교환 알고리즘. 앨리스 여왕과 밥 경 사이의 보안 통신 문제를 해결하는 방법. 위의 과정에서 보듯이 여왕과 영주는 키 교환 알고리즘을 통해 안전한 통신에 사용할 수 있는 비밀키를 결정하게 되는데, 이 비밀키는 인증과 암호화를 위한 비밀키로 사용될 수 있으므로 MITM(man -중간 공격자) 여왕과 영주 사이의 통신 데이터를 가로채지만, 비밀키가 없기 때문에 통신 내용이 해독되지 않으므로 그림과 같이 여왕과 영주가 안전하게 통신할 수 있다. 아래 그림은 다음과 같습니다.

그러나 여기에 설명된 내용은 조금 느슨하게 말하면 이 시나리오를 기껏해야 수동적 MITM이라고 부를 수 있습니다. 일반적인 용어로 이는 악의적인 공격자가 수동적으로 모니터링하고 있음을 의미하지만 주요 차이점은 다음과 같습니다. 활성 MITM의 특징은 활성 중개자가 키 교환 알고리즘 교환 데이터를 가로채고 동시에 두 통신 피어의 역할을 시뮬레이션한다는 것입니다.

구체적으로 중개자는 퀸과 로드와 동시에 적극적으로 비밀키를 교환하게 된다. 통신하는 두 당사자는 공유된 비밀키에 대해 서로 이해했다고 "생각"하지만, 본질적으로 퀸과 로드는 영주는 중개인과만 합의했습니다. ***비밀 키에 대한 지식. 이러한 오해의 이유에 대해 생각해 볼 수 있습니까?

사실 그 이유는 통신을 하는 양측이 수신한 공개키와 통신 상대방 사이의 보유 관계를 판단할 수 있는 다른 수단이 없기 때문에 이해하기 어렵지 않습니다. 아래 그림과 같이 이 비밀 키 교환을 "인증되지 않은" "비밀 키 교환이라고 부릅니다.

그렇다면 활성 MITM 공격을 해결하는 방법은 무엇일까요? 인증된 키 교환을 추측할 수 있다고 생각합니다. 먼저 특정 비즈니스 시나리오를 살펴보고 이 인증된 모델이 필요한 이유를 살펴보겠습니다. 시간 정보를 제공하는 일련의 서비스를 개발한다고 가정해 보겠습니다. 이 서비스는 악의적인 공격자에 의해 시간 데이터가 수정되는 것을 방지하기 위해 MAC(메시지 인증 코드)를 사용합니다. , 저자의 이전 기사를 참조하십시오.

MAC에서는 데이터 기밀성과 무결성을 보호하기 위해 비밀 키가 필요하므로 애플리케이션을 배포할 때 비밀 키를 생성했는데 이 비밀 키가 어떤 식으로든 최종 사용자에게 불법적으로 제공되었습니다. , 애플리케이션은 매우 안정적으로 실행되며 비밀 키가 존재하므로 법을 준수하는 모든 클라이언트는 정확한 시간을 읽을 수 있습니다. 그러나 이 기사를 읽은 후 고객은 이 비밀 키가 데이터를 변조하는 데 사용될 수 있다는 사실을 발견했습니다. 따라서 당사 웹사이트에서는 판독 시간이 정확하지 않아 비즈니스 운영에 문제가 발생한다는 고객의 불만이 많이 접수되었습니다. 시스템의 데이터 처리.

아키텍트에게 빨리 처리해 달라고 요청하고, 아키텍트는 사용자별로 전용 비밀키를 생성하겠다는 계획을 세웁니다. 실현 불가능하고 운영 및 유지 관리가 불가능합니다. 사용자 수가 증가함에 따라 정기적인 교체는 말할 것도 없고 이러한 키를 구성하고 관리하는 방법이 큰 문제가 되었습니다. 여기서는 키 교환 알고리즘이 유용합니다. 우리가 해야 할 일은 서버 측에서 비밀 키를 생성한 다음 각 신규 사용자에게 공개 키 정보를 제공하는 것입니다. 클라이언트는 서버의 공개 키 정보를 알고 있으므로 중간에 양방향으로 MITM 공격을 시뮬레이션할 수 없습니다. 이 모드를 인증 키 교환이라고도 합니다.

이 시나리오를 계속 분석해 보겠습니다. 중개자는 서비스와 비밀 키를 교환할 수도 있지만 현재로서는 중개자와 일반 클라이언트 사이에 차이가 없으므로 적극적인 MITM 공격을 수행하는 것은 불가능합니다. .

과학과 기술의 발달로 인해 인터넷은 우리 삶에 거의 스며들게 되었습니다. 통신 당사자 간의 비밀 키를 안전하게 설정하는 방법은 매우 중요해졌습니다. 그러나 앞서 소개한 모델은 클라이언트가 서버의 공개 키를 미리 설정해야 하기 때문에 확장성이 별로 좋지 않습니다. 이는 특히 인터넷 시나리오에서 명백합니다. 예를 들어, 사용자로서 여러 은행 웹사이트 및 사회 보장 웹사이트와 안전하게 통신하고 싶습니다. 안전하게 액세스하기 위해 휴대폰, 태블릿 또는 데스크톱에서 각 웹사이트의 공개 키 정보를 미리 설정해야 하는 경우 Think를 사용할 수 있습니다. 얼마나 편리성이 떨어질지, 새로 개발된 웹사이트에 안전하게 접속하려면 어떻게 해야 할까요?

따라서 독자들은 매우 중요한 점을 이해해야 합니다. 비밀 키 교환은 매우 중요하지만 위에서 설명한 확장성 문제가 있습니다. 이 문제에 대한 해결책은 디지털을 결합한 디지털 서명 기술에 의존하는 것입니다. 서명과 비밀 키 교환은 나중에 소개할 SSL 기술의 기초이므로 명확하게 설명하는 데 시간이 오래 걸리므로 SSL의 원리를 소개하기 위해 전용 장을 사용하겠습니다. 그러나 이어지는 소개의 원활한 진행을 위해 몇 가지 특정 키 교환 알고리즘과 그 뒤에 숨은 수학적 원리에 대해 이야기하겠습니다.

저자 시리즈의 첫 번째 기사에서 언급된 Diffie-Hellman 키 교환 알고리즘부터 시작해 보겠습니다. Whitfield Diffie와 Martin E. Hellman은 이를 소개하기 위해 1976년에 획기적인 논문을 발표했습니다. 비밀 키 교환 알고리즘인 이 알고리즘은 논문에서 "암호화의 새로운 방향"이라고 불립니다.

이 논문이 획기적인 것으로 평가받는 주된 이유는 최초의 비밀 키 교환 알고리즘과 최초로 공개된 공개 키 암호화 알고리즘(또는 비대칭 암호화 알고리즘)이라는 두 가지 최초 때문입니다.

DH 알고리즘의 데이터 원리는 그룹 이론이며, 이는 오늘날 우리가 접하는 모든 보안 메커니즘의 초석이기도 합니다. 저자가 수학과를 졸업하지 않았고, 나의 수학적 기초가 그다지 탄탄하지 않기 때문에 안전한 관점에서 어떻게 더 깊이 탐구해야 할지 망설여 왔습니다. 이 알고리즘을 독자들이 더 쉽게 이해할 수 있도록 다음 내용에는 약간의 기본적인 데이터 지식이 포함되어 있을 것입니다. 고등학교 수학 지식이 있는 학생들도 이해할 수 있어야 한다고 생각합니다.

집단이론을 소개하기 위해서는 먼저 집단이 무엇인지 명확히 정의하는 것이 첫 번째 문제이다. 저자는 관련 정보를 참고한 결과 그룹이 수학 분야에서 다음과 같은 두 가지 특성을 가지고 있음을 발견했습니다.

1. 요소 집합으로 구성됩니다.

2. 특수 이진 연산이 정의됩니다. 요소 연산자(예: ? 또는 ?) 사이

위의 정의에 따라 이 요소 그룹과 위에 정의된 이진 연산자가 특정 속성을 만족하는 경우 이러한 요소를 그룹이라고 부릅니다. DH 알고리즘의 경우 그 뒤에 사용되는 그룹을 곱셈 그룹, 즉 곱셈 이항 연산자를 정의하는 요소 집합이라고 합니다. 독자들은 이 곱셈 그룹이 어떤 특정 속성을 만족하는지 물을 수 있습니다. 이 부분에는 내용이 많기 때문에 하나씩 소개하겠습니다.

- 마무리. 집합의 두 요소가 정의된 연산자로 평가되면 결과도 집합에 포함됩니다. 예를 들어 집합 M이 있고 M ​​(c=a*b)에 요소 a, b, c가 있는 경우 이 세 요소는 클로저 속성을 따르며 집합에 정의된 연산자는 다음과 같습니다. 곱셈.

- 연관성. 이는 중학교 수학의 연관성 개념과 일치합니다. 수학 공식 a × (b × c) = (a × b) × c를 이해할 수 있습니다.

- ID 요소입니다. 집합에는 단위 요소가 포함되어 있습니다. 연산자가 요소와 단위 요소를 계산한 후에는 해당 요소의 값이 변경되지 않습니다. 예를 들어, 요소(1, a, b, c...)를 포함하는 집합 M이 있고 1*a = a이기 때문에 1이 단위 요소입니다. a 이후의 단위 요소 1은 연산자를 통해 계산됩니다. 결과는 변경되지 않습니다.

- 역요소. 예를 들어 집합 요소 a가 있는 경우 이 요소의 역 요소는 1/a입니다. 요소 a와 역 요소는 연산자를 통해 계산됩니다. 결과는 1입니다.

저자는 나의 피상적인 수학적 지식으로 인해 위의 네 가지 속성에 대한 설명이 모든 사람을 혼란스럽게 할 수 있음을 인정해야 합니다. 따라서 그룹의 네 가지 속성을 명확히 하기 위해 다음 그림을 준비했습니다. . 속성에는 더 자세한 보충 설명이 있습니다.

그룹, 그룹 속성, 기타 정보에 대한 이전 소개를 마치고 DH 알고리즘에서 사용하는 그룹이 어떤 모습인지 자세히 살펴보겠습니다. DH 알고리즘에서 사용하는 그룹은 양의 정수로 구성되며, 대부분의 경우 그룹을 구성하는 요소는 이 그룹(1, 2, 3, ...., p-1)과 같은 소수입니다. 여기서 p는 일반적으로 알고리즘의 보안을 보장하기 위해 매우 큰 소수입니다.

참고: 소수의 수학적 정의는 2, 3, 5, 7, 11 등과 같이 자기 자신과 1로만 나누어질 수 있는 숫자입니다. 소수는 비대칭 암호화 알고리즘에 널리 사용됩니다. 컴퓨터 공학을 전공하는 학생들은 대학에서 소수를 찾아 출력하는 프로그램을 작성해 두어야 합니다. 알고리즘의 핵심은 소수인지 확인하기 위해 모든 숫자를 열거하고, 소수라면 이를 출력하는 것입니다. 그러나 알고리즘 관점에서 볼 때 이러한 철저한 모델은 효율적이지 않습니다. 따라서 업계에는 효율적인 알고리즘이 많이 등장했으며 상대적으로 큰 소수를 빠르게 찾을 수 있습니다.

소수인 요소 외에도 DH 알고리즘에서 사용하는 그룹의 다른 속성은 모듈러 연산자, 특히 모듈러 곱셈 연산이라고 합니다. 모듈러 산술부터 시작해 보겠습니다. 모듈러 산술은 몫과 나머지에 초점을 맞춘 초등학생용 고급 수학 문제와 매우 유사합니다.

예를 들어 모듈러스를 5로 설정하면 숫자가 5보다 크면 순환하여 1부터 다시 시작됩니다. 예를 들어 숫자 6이 모듈러스 5로 계산된 후 결과는 1이고 결과는 7입니다. 2 등입니다. 모듈식 계산의 가장 전형적인 예는 시계입니다. 하루는 24시간이므로 12시간을 계산할 때 13 = 1*12 + 1이므로 13시를 오후 1시라고 합니다. (12는 모듈로입니다).

다음으로 모듈러 곱셈의 정의를 살펴보겠습니다. 6 = 3 ? 2. 모듈로가 5이면 6은 모듈로 5와 합동이라는 것을 알 수 있습니다.

3 × 2 = 1 mod 5

위 방정식에서 mod 5를 제거하면 3 ×라는 매우 중요한 결론을 얻을 수 있습니다. 2 = 1이면 3과 2는 서로 역원소입니다.

마지막으로 DH 알고리즘 기반 그룹의 두 가지 특징을 요약해 보겠습니다.

- 교환법칙(commutative law), 그룹의 두 요소 계산에는 교환법칙이 있습니다. 즉, ab= ba, 일반적으로 교환법칙을 따르는 그룹을 갈루아 그룹이라고 부릅니다.

- 유한체의 특징은 아래에서 자세히 소개하겠습니다.

그룹 DH 알고리즘에 의해 정의된 것은 FFDH(Finite Field Diffie-Hellman)라고도 하며, 하위 그룹은 그룹의 하위 집합을 의미하며 정의된 연산자를 통해 하위 집합의 요소를 연산한 후 다른 하위 그룹에 도달하게 됩니다.

그룹 이론에서 매우 중요한 개념은 순환 하위 그룹입니다. 일반 영어에서는 생성자(또는 기본)가 자체적으로 계속해서 곱셈 연산을 수행한다는 의미입니다. 및 4:

4 mod 5 = 4

4 × 4 mod 5 = 1

4 × 4 × 4 mod 5 = 4(다시 시작하세요. 또한 순환 하위 그룹의 구현입니다)

4 × 4 × 4 × 4 mod 5 = 1

잠깐

모듈러스가 소수인 경우 그룹의 각 요소는 아래 그림과 같이 순환 하위 그룹을 생성할 수 있는 생성기입니다.

마지막으로 DH에 의해 정의된 그룹과 갈루아 그룹에 대한 완전한 요약을 제공합니다.

- 그룹은 이진연산을 정의하는 요소들의 집합으로 폐쇄성, 결합성, 항등요소, 역요소의 속성을 가지고 있습니다.

- DH가 정의한 그룹을 갈루아 그룹이라고 합니다. 그룹을 구성하는 요소는 소수이며 모듈러 곱셈 연산은 그룹에 정의됩니다.

- DH로 정의된 그룹에서는 각 요소가 자체적으로 곱셈을 반복한 후 하위 그룹이 됩니다. 제작됩니다

여러 그룹이 있습니다. 저자는 암호화 알고리즘의 기본을 간략하게만 소개했습니다. 이 부분에 관심이 있는 독자라면 관련 자료를 참고하면 됩니다. 이제 그룹에 대한 사전 이해가 끝났으므로 다음 기사에서는 DH 알고리즘의 작동 원리를 소개할 예정이니 계속 지켜봐 주시기 바랍니다!