고전 암호화 키 교환 및 인증
시다 앨리스와 밥 소망으로 의사 소통을합니다. 이러한 경우 공유하는 공통 키가, 그들을 사용할 수있습니다 클래식 cryptosystem. 그렇다면 어떻게 그들에 동의하는 일반 키가? 앨리스 보내는 경우 하나를 밥, 이브가 eavesdropper 보게하고 이들 사이의 트래픽을 읽을 수있습니다. 이 부트 스트랩 문제를 방지하려면, 클래식 프로토콜 의존을 신뢰할 수있는 제 3 자, 캐시합니다. 앨리스와 캐시를 공유 비밀 키, 그리고 밥과 캐시를 공유합니다 (서로 다른)를 비밀 열쇠입니다. 목표가를 제공하는 비공개 키가 앨리스와 밥을 공유합니다. 다음과 같은 간단한 프로토콜을 제공하는 출발점입니다.
밥 지금 deciphers의 메시지를 사용하는 ksession를 통신할 앨리스. 이 특정 프로토콜이의 기반에 대한 많은 복잡한 프로토콜입니다. 그러나, 밥하지 않는다을 누구에게 자신이 이야기를 알고있습니다. 정해 앨리스 밥으로 메시지를 보냅니다 (예 : "예금 $ 500의 급료의 은행 계좌가 오늘") enciphered 아래 ksession. 이브를 기록하면 위의 두 번째 메시지를 교환하고 메시지 enciphered 아래 ksession, 그녀 밥의 메시지를 보낼 수있습니다 (ksession) kbob 다음에 메시지를 enciphered 아래 ksession. 밥 않습니다을 보내는 사람은 그것을 알고있습니다. 이와 같은 문제가 발생하지 않도록 복기의 공격을 추가 상당히 복잡합니다. 키 교환 프로토콜이 일반적으로 추가, 최소한, 일부 종류의 인증 및 국방 반대 복기 공격을합니다. 하나의 베스트 - 알려진이 같은 프로토콜입니다 needham - 슈뢰더 프로토콜입니다.
이 프로토콜을 rand1 및 rand2은 두 번호를 생성한 무작위를 제외하고는 그들이 볼 수없는 서로 다른 프로토콜 간의 교류를 반복합니다. 이 번호는 전화 nonces. (만일 앨리스가 시작하여 프로토콜을 새롭게, 그녀의 rand1의 첫 번째 교류가되지 않았을 사용하기 전에 발생합니다.) 이 프로토콜은 보안을위한 기초가 모두 앨리스와 밥 신뢰를 캐시합니다. 밥 받게되면 세 번째 메시지와 deciphers 것이, 그는 것으로보고있다는 메시지 이름이 앨리스. 이후 그는 해독할 수있다는 메시지를 메시지는 enciphered를 사용하는 키가 그 지분 캐시에서만 사용합니다. 그는을 갖고 있기 때문에 트러스트를 캐시하지 않습니다 공유의 키 kbob와 누구, 메시지가 있어야합니다되었습니다 enciphered하여 캐시합니다. 즉, 캐시는 vouching 그 생성된 ksession 그래서 밥 앨리스와 통신할 수있다. 그래서 밥 트러스트가 캐시를 보낸 메시지를 앨리스, 그리고 그것을 전달하는 앨리스 하였다. 그러나, 만약 이브의 메시지를 기록, 그녀가 할 수있는 재생 밥. 이 경우, 이브 것이없는 알려진이 세션 키, 그래서 밥 세트 명을 확인하는 그의 알 수없는 사람은 그것을 알고있습니다. 그는 임의의 메시지를 enciphered 의해 ksession가 앨리스를 보냅니다. 만약 이브 intercepts의 메시지, 그녀는 알고로 돌아; 는 그녀를 보내 아무것도 확률은 그녀가 임의로 선택하는 메시지가 올바른가 매우 낮고 밥이 감지 재생을 시도합니다. 하지만 앨리스는 참으로 초기화면의 통신을 확보했을 때 그녀는 메시지 그녀 해독할 수있습니다 그것 (않기 때문에 그녀는 알고 ksession), 적용을 일부 고정 기능을 임의의 데이터 (여기서, 감소하면 1), 그리고 encipher의 결과와 반환 그것을 밥. 그런 다음 밥은 반드시 자신이 대화를 앨리스. 앨리스는 자신에게 확신을 필요로 대화를하는 그녀는 밥, 수도있습니다. 두 번째 메시지를 수신했을 때 그녀 캐시, 그녀 deciphers 그것을 검사하는 앨리스, 밥, 그리고 rand1이 흐릅니다. 이 줄은 그녀가 캐시 보낸 두 번째 메시지 (이라 enciphered와 함께 kalice하고있는 유일한 그녀와 캐시겠다), 사실에 대한 응답을 첫 번째 메시지 (때문에 rand1가에 모두의 첫 번째와 두 번째 메시지). 그녀를 얻습 세션 키와 포워드가 나머지를 밥. 그녀를 알고있는 유일한 밥이 ksession, 때문에 그녀와 밥만이 포함된 메시지를 읽을 수있는 열쇠입니다. 그래서 수신 메시지를 enciphered과 함께했을 때 그녀는 키, 그녀는 대화를 유지하는 그녀는 밥. 가 needham - 슈뢰더 프로토콜을지지하는 모든 암호화 키가 안전합니다. 의 연습, 세션 키가 생성됩니다 pseudorandomly. 에 따라 알고리즘을 사용, 같은 키에을 예측 수도있습니다. denning 및 sacco 추정 이브를 얻을 수있다는 세션 키 및 subverted가 프로토콜입니다. 위에있는 프로토콜을 정합니다 일어났다. 다음 :
이제는 대화를 앨리스 밥 생각했다. 자신이 진짜로 대화를 이브입니다. denning하고 사용하시기 바랍니다 sacco 타임 스탬프를 활성화하려면 밥을 감지할이 재생됩니다. 그들의 방법을 적용하면 결과가 needham - 슈뢰더 프로토콜
여기서 것은 시간입니다. 밥 얻을 때 메시지를 3 단계에서, 그는 그것을 거부하면 타임 스탬프가 너무 오래된 (너무 오래되고 결정에서 시스템에서 사용). 이러한 수정을 동기화된 시계가 필요합니다. denning 및 sacco 유의 교장과 함께하는 느린 클럭은 복기의 공격에 취약합니다. 당사자가 빠른 클럭은 또한 취약, 그리고 간단하게 재설정에 시계가 취약점을 제거하지 않습니다. 이러한 문제를 해결해가 향하여 - 나무 프로토콜의 사용을 피하고 시간 기록입니다.
목적은 정수 숫자판은 모든 메시지를 사용하여 특정 교류를 연결합니다. 다시 고려 요소의 프로토콜입니다. 앨리스의 네 번째 메시지를 받게되면 밥, 그녀와 함께 수표가 숫자판 동의합니다 숫자판의 첫 번째 메시지는 그녀에게 보낸 밥. 그렇다면, 그녀는 아는 사실이 부분을 교환합니다. 또한 그녀가 신뢰하는 세션 키를 생성하기 때문에 캐시 캐시와 앨리스만이 아는 kalice, 그리고 임의의 숫자 rand1 공감 무엇 앨리스에 삽입 enciphered 부분은 메시지입니다. 이러한 요소를 결합, 앨리스는 이제 확신 그녀는 대화를 밥. 밥 메시지를 수신하면 캐시, 그는 숫자판에 해당하는 것으로 판단에서받은 한 그는 앨리스와 캐시로 전송됩니다. 그는 deciphers이 부분은 메시지를 enciphered와 함께 자신의 키, 및 검사를하는 rand2은 그 발송합니다. 그 다음 캐시를 보낸 것으로 알고있습니다 회신, 그리고이 프로그램에 적용되는 교류와 앨리스. 타임 스탬프가 사용되지 않았기 때문에,이 동기화의 시스템 클럭은 관계가있습니다. 이제 이브를 인수하는시다 오래된 세션 키와 메시지를 3. 그녀는 전달되는 메시지를 앨리스. 앨리스는 즉각 배척 그것이 없다면 그녀는 지속적인 핵심 교류와 함께 밥. 만일 그녀가, 그리고 숫자판이 일치하지 않습니다, 그녀 이브의 메시지를 거부합니다. 장할 수있는 유일한 방법 이브 밥이 경우 인수한 ksession에 대한 그녀에 지속적인 교류를 기록한 3 번째 메시지를, 그리고 다시의 관련 부분을 앨리스 밥 수 작업을 수행하기 전에합니다. 이 경우, 그러나, 이브의 음악을들을 수있다 단순히 트래픽을, 그리고 재생이없습니다 관련된 것이다. 이것은 문서가 추가 빌 kuriko
|
|||
|