니덤-슈뢰더 프로토콜
Needham–Schroeder protocolNeedham-Schroeder 프로토콜은 Roger Needham과 Michael Schroeder가 [1]제안한 안전하지 않은 네트워크를 통해 사용하기 위한 두 가지 핵심 전송 프로토콜 중 하나입니다.다음과 같습니다.
- 대칭 암호화 알고리즘을 기반으로 하는 Needham-Schroeder Symmetric Key Protocol.Kerberos 프로토콜의 기반이 됩니다.이 프로토콜은 일반적으로 추가 통신을 보호하기 위해 네트워크상의 두 당사자 간에 세션 키를 확립하는 것을 목적으로 합니다.
- 공개키 암호화에 기반한 Needham-Schroeder 공개키 프로토콜.이 프로토콜은 네트워크에서 통신하는 두 당사자 간에 상호 인증을 제공하기 위한 것이지만 제안된 형식에서는 안전하지 않습니다.
대칭 프로토콜
여기서 앨리스 {이 ( Bob B(\ B와의 통신을 시작합니다(\ S는 쌍방의 신뢰를 받는 서버입니다.통신 중:
- A와 B B는 각각 Alice와 Bob의 아이덴티티입니다.
- 는A(\ A와 S S에만 알려진 대칭 키입니다.
- BS은 (는) B스타일 B)와 S( S에만 대칭 키입니다.
- 는 각각 A A B B에 생성된 난스입니다.
- 은 대칭 생성 키입니다.이 키는와B
프로토콜은 보안 프로토콜 표기법으로 다음과 같이 지정할 수 있습니다.
- 앨리스는 자신과 밥의 신분을 나타내는 메시지를 서버에 보내 밥과 통신하고 싶다고 서버에 알립니다.
- 서버가 B를 합니다.{ style { K { }을 (를) 앨리스에게 보냅니다. S{ { K {BS을 (를) BOB에게 전송하고 복사본을 Alice에게 전달합니다.Alice는 여러 명의 다른 사용자에게 키를 요구할 수 있으므로, 난스는 Alice에게 메시지가 신선하고 서버가 특정 메시지에 회신하고 있으며 Bob의 이름이 포함된 것은 Alice에게 이 키를 공유할 수 있는 사용자가 누구인지 알려줍니다.
- Alice는 Bob에게 키를 전송하고, Bob은 서버와 공유하는 키로 키를 해독하여 데이터를 인증합니다.
- Bob이 Alice에게 displaystyle 로 암호화된 난스를 보냅니다.을 (를) 사용하여 키를 가지고 있습니다.
- Alice는 난스에서 간단한 조작을 수행하고, 다시 암호화하여 자신이 아직 살아있음을 확인하고 키를 가지고 있음을 확인합니다.
프로토콜에 대한 공격
이 프로토콜은 Denning 및[2] Sacco에 의해 식별된 재생 공격에 취약합니다.공격자가 오래된 값을 B에 하는 경우(\그 후 {B, S(\를 재생할 수 있습니다.BS는 키가 신선하지 않다는 것을 알 수 없는 BOB에게 한다.
공격 수정
이 결함은 타임스탬프를 포함하여 Kerberos 프로토콜에서 수정됩니다.아래 [3]설명된 난스를 사용하여 수정할 수도 있습니다.프로토콜 시작 시:
- 앨리스는 밥에게 요청을 보냅니다.
- Bob은 서버에 대해 자신의 키로 암호화된 난스로 응답합니다.
- 앨리스는 자신과 밥의 신분을 나타내는 메시지를 서버에 보내 밥과 통신하고 싶다고 서버에 알립니다.
- 난스가 포함되어 있는 것에 주의해 주세요.
그런 다음 위의 원래 프로토콜에 설명된 대로 마지막 세 단계를 계속합니다. B { N _ { }n 、 B}와는 다른 난스입니다.이 새로운 난스를 포함하면 손상된 의 B }K S{)가 재생되지 않습니다.BS은 (는) 는{, A, B 형식이어야 합니다.\ \ { _ {BS는 가 없기 때문에 공격자가 위조할 수 없습니다.
공개 키 프로토콜
여기에서는 공개키 암호화 알고리즘을 사용하는 것을 전제로 하고 있습니다.
여기에서는 앨리스displaystyle(BdisplaystyleSdisplaystyle(S)\displaystyle(을 하여 공개 키를 배포합니다키는 다음과 같습니다.
- 및 A A에 속하는 암호화 키쌍의 공개 키쌍과 비공개 키쌍의 각각 절반(서 S(\ S는 "비밀 키"를 의미합니다)
- SB B B에
- S{\ S에 것과 유사합니다.(이 키쌍은 디지털 서명(예: \에 사용됩니다. 서명에 사용되는 SS K_{) 검증에 사용됩니다.은 (는) 프로토콜이 시작되기 전에 A 및 B(style 에 대해 알고 있어야 합니다.
프로토콜은 다음과 같이 실행됩니다.
- 가에의 공개 키를 합니다(\A
- S가 로 응답합니다. 목적으로 서버에 의해 서명된 B B의 ID.
- A는 의 N_를 선택하여 B B로 전송합니다.
- B는 이제 A가 통신하기를 원하는 것을 알고 B B는 A A의 공개 키를 요청합니다.
- 서버가 응답합니다.
- B는 의 를 선택하여 와 함께 AA})로 전송하여 A})로 복호화할 수 있음을 증명합니다.
- A는 를 B B로 하고 로 복호화할 수 있음을 증명합니다.
프로토콜 말미에 A 스타일 A)와 B B는 서로의 신원을 알고 N_와 N_를 모두 알고 .이러한 난스는 도청자에게는 알려져 있지 않습니다.
프로토콜에 대한 공격
이 프로토콜은 중간자 공격에 취약합니다.은에게 세션을 시작하도록 할 수 있는 경우 에 를 전달하고에와 하고 있음을 에 시킬 수 있습니다
S S와의 (변하지 않음)을 무시하면 공격은 다음과 같이 실행됩니다.
- A가 를 I I로 하고, I(\displaystyle I)는 A})로 메시지를 합니다.
- 디스플레이 스타일 가 통신하는 것처럼 하여 B B에게 메시지를 합니다
- B가 를 합니다.
- 는 그것을중계한다
- 스타일 A가 NB NB를 해독하여 I I에게 확인합니다.
- 는를 암호화하고 B에게가 그것을 해독했다고 한다
공격 마지막에 B B는 A A가 자신과 통신하고 속이고 N_})과 N_는 A A와 B B만 있다고 .
다음 예시는 공격을 나타내고 있습니다.앨리스(A)가 자신의 은행(B)에 연락하려고 합니다.우리는 사기꾼(I)이 그들이 은행이라는 것을 A에게 납득시키는 데 성공했다고 가정합니다.그 결과, A는 자신의 은행에 송신하려는 메시지를 암호화하기 위해 B의 공개키를 사용하는 대신 I의 공개키를 사용한다.따라서 A는 I의 공개키로 암호화된 자신의 난스를 I에 전송합니다.개인키를 사용하여 메시지를 복호화하고 B에게 연락하여 B의 공개키로 암호화된 A의 난스를 전송합니다.B는 이 메시지가 실제로 I에 의해 전송되었음을 알 수 없습니다.B는 자신의 난스로 응답하고 A의 공개 키로 메시지를 암호화합니다.제가 A의 개인키를 가지고 있지 않기 때문에 내용을 모르는 상태에서 A에게 메시지를 중계해야 합니다.A는 개인 키로 메시지를 복호화하고 I의 공개 키로 암호화된 B의 난스로 응답합니다.나는 그들의 개인 키를 사용하여 메시지를 복호화하여 현재 난스 A와 B를 소유하고 있다.따라서, 그들은 이제 은행과 고객을 각각 가장할 수 있다.
중간자 공격 수정
이 공격은 Gavin Lowe의 [4]1995년 논문에서 처음 묘사되었다.또한 이 백서는 Needham-Schroeder라고 불리는 이 계획의 고정 버전을 설명한다.Lowe 프로토콜.이 수정에는 응답자의 ID를 포함하도록 메시지 6을 변경하는 작업이 포함됩니다.즉, 다음과 같이 치환합니다.
(고정 버전 포함):
침입자는 메시지를 정상적으로 재생할 수 없습니다.이는 A가 I의 ID를 포함한 메시지를 기다리고 있는데 반해 메시지는 B의 ID를 가지기 때문입니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Needham, Roger; Schroeder, Michael (December 1978). "Using encryption for authentication in large networks of computers". Communications of the ACM. 21 (12): 993–999. CiteSeerX 10.1.1.357.4298. doi:10.1145/359657.359659. S2CID 7704786.
- ^ Denning, Dorothy E.; Sacco, Giovanni Maria (1981). "Timestamps in key distribution protocols". Communications of the ACM. 24 (8): 533–535. doi:10.1145/358722.358740. S2CID 3228356.
- ^ Needham, R. M.; Schroeder, M. D. (1987). "Authentication revisited". ACM SIGOPS Operating Systems Review. 21 (1): 7. doi:10.1145/24592.24593. S2CID 33658476.
- ^ Lowe, Gavin (November 1995). "An attack on the Needham-Schroeder public key authentication protocol". Information Processing Letters. 56 (3): 131–136. CiteSeerX 10.1.1.394.6094. doi:10.1016/0020-0190(95)00144-2. Retrieved 2008-04-17.
외부 링크

- Roger Needham and Michael Schroeder (1978). "Needham-Schroeder Public Key". Laboratoire Spécification et Vérification.
{{cite web}}
: CS1 maint: 작성자 파라미터 사용(링크)
- Roger Needham and Michael Schroeder (1978). "Needham Schroeder Symmetric Key". Laboratoire Spécification et Vérification.
{{cite web}}
: CS1 maint: 작성자 파라미터 사용(링크)
- Gavin Lowe (1995). "Lowe's fixed version of Needham-Schroder Public Key". Laboratoire Spécification et Vérification.
{{cite web}}
: CS1 maint: 작성자 파라미터 사용(링크) - Computerphile의 중간자 공격에 대한 설명입니다.