HMAC-SHA1의 보안이 충돌 저항에 의존하지 않는다고합니까? HOTP 또는 HMAC-SHA1과 관련하여 구체적으로 말하고 있습니까?
문서의 무결성을 확인하기 위해 HMAC-SHA1을 사용하고 충돌을 찾을 수 있다면 문서를 변경할 수 있습니다.
http://tools.ietf.org/html/rfc2104#section-6
RFC조차도 충돌에 대한 저항력이 관련성이 있음
여기에 제시된 메시지 인증 메커니즘의 보안은 해시 함수 H의 암호화 속성에 따라 다릅니다. 충돌 찾기에 대한 저항 (초기 값이 비밀이고 무작위이고 함수의 출력이 공격자에게 명시 적으로 제공되지 않는 경우로 제한됨) 단일 블록에 적용될 때 H의 압축 기능의 메시지 인증 속성
여기서 누락 된 사항은 무엇입니까?
댓글
h3>
- 질문에 혼란이있는 것 같습니다. HMAC-SHA1은 문서 서명에 사용되지 않습니다 (적어도 보통은 아니지만 키 입력이 비밀이라는 HMAC의 표준 가정은 ' 전자 서명 확인 절차는 공개). 정답 이 꽤 좋습니다.
- @fgrieu-용어를 잘못 입력 한 것 같습니다. 서명을 작성할 때 실제로 무결성을 보호하기 위해 메시지 인증 다이제스트를 생성하여 작성되었습니다. 충돌이 발생하면 메시지를 변경하고 동일한 MAC을 유지할 수 있으므로 문제가되지 않습니까?
- HMAC-MD5는 암호화 된 데이터를 인증하는 데 안전한 것으로 간주됩니까? ? 이 질문은 MD5가 아니라 SHA1에 관한 것이지만 대답은 거의 동일합니다.
- 나는 ' SHA에 대한 사전 이미지 공격이 있는지 확실합니다. -1 이것은 폭발적입니다.
답변
이 답변의 첫 번째 섹션에서는 하드웨어 또는 / 및 알고리즘 개선으로 인해 Xiaoyun Wang, Yiqun Lisa Yin 및 Hongbo Yu와 유사한 방법으로 SHA-1에 대한 충돌이 발생하는 것이 일상적으로 가능해졌습니다. ” s 공격 또는 Marc Stevens의 공격 . 이것은 공개적으로 달성 2017 년 초에 명확하게 실현 가능했습니다 (이 노력은 비트 코인 채굴에 사용 된 해싱 노력 에 불과한 시간을 나타냅니다. 그러나이를 위해 사용 된 하드웨어는 그렇지 않습니다. SHA-1에 대한 공격을 위해 용도가 변경됨).
질문에서 고려한 것과 달리 공격자가 코잉하지 않도록 허용하지 않습니다 . 문서에서 감지되지 않은 변경을 수행하기위한 HMAC-SHA-1 키 여기에는 공격자가 나중에 변경할 수있는 문서를 준비 할 수 있는지 여부도 포함됩니다.
한 가지 설명은 우리가 고려중인 SHA-1에 대한 충돌 공격은 상태에 대한 지식이 필요하다는 것입니다. SHA-1 체인 변수 및 키를 알지 못하는 HMAC의 공격자는 메시지가 HMAC에있는 라운드 반복의 양쪽 끝에서 입력되는 키에 의해 해당 지식에서 박탈됩니다. HMAC를 중단하려면 SHA-1 “의 라운드 기능을 훨씬 더 깊이 중단해야합니다. 우연이 아닙니다. M. Bellare의 NMAC 및 HMAC에 대한 새로운 증명 : 보안 충돌 저항없이 HMAC의 보안은 해당 해시의 충돌 저항에 필요한 것보다 라운드 함수에서 약한 속성 만 가정한다고 가정합니다.
가능한 것은 공격자는 HMAC 키를 알고 MAC을 변경하지 않고 변경할 수있는 나중에 변경할 수있는 문서를 준비합니다. 하지만 공격자가 HMAC 키를 보유하고 있기 때문에 “HMAC 중단으로 간주되지 않습니다.
댓글 이 SHA-1은 언제 사용하지 말아야합니까?
충돌 저항이 필요한 애플리케이션에서는 SHA-1을 신속하게 단계적으로 제거하는 것이 좋습니다 (이미지로 : 종료 할 때 빠르게 연기가 없을 때 화재 경보가 울리는 건물). 여기에는 무결성 검사를위한 해싱 또는 다른 사람이 준비한 문서의 디지털 서명이 포함됩니다 (대부분의 문서). SHA-1을 계속 사용하는 것이 강력한 운영상의 이점이있는 경우, 공격자가 영향을 미칠 수있는 메시지 부분 앞에 공격자가 예측할 수없는 것을 삽입하여 안전하게 예외가 될 수 있습니다.예를 들어, 인증서 요청시 예측할 수없는 인증서 일련 번호를 적용함으로써 인증 기관은 내부 서명에 SHA-1을 사용하여 인증서를 안전하게 발급 할 수 있습니다.
이 첫 번째 섹션에서 설명한대로 HMAC-SHA-1의 키가 비밀로 간주되는 한, HMAC-SHA-1이 SHA-1을 사용하기 때문에 안전하지 않다는 표시는 없습니다. 키가 공개 된 것으로 간주되거나 키가 공개 된 후 준비된 메시지를 포함하여 HMAC에 대한 충돌 저항이 여전히 필요한 작동 가능성으로 간주되는 경우 이전 단락에서 설명한 예방 조치가 적용됩니다.
댓글
- 그러면 언제 SHA1을 사용하지 말아야합니까? 즉, SHA1에서 문제가 발견되어 어디에서 사용할 수 없습니까?
- 일반적으로 이동하는 것이 좋습니다 (" ' SHA-1에서 " 실행 "이 아닌 div> walk ". 즉, HMAC-SHA1의 특정 구조는 기본 PRF의 충돌 저항에 의존하지 않는 HMAC에 대한 보안 증명으로 인해 여전히 사용하기에 안전한 것으로 간주됩니다 (비밀 키 가정). 확실하지 않은 경우 SHA-2로 이동합니다.
- @StephenTouset-네 알았습니다. 하지만 SHA-1을 사용하여 다른 곳으로 이동하거나 떠나지 않고 도주해야 하는 것이 있습니까?
- 아니요, 그렇지 않으면 그게 조언이 될 것입니다. SHA-1 '의 충돌 저항은 현재 이론적으로 만 깨졌습니다. 현재 최선의 공격은 가능성의 가장자리에 있지만 알려진 충돌은 아직 발견되지 않았습니다.
답변
사람들이 HMAC-MD5 또는 HMAC-SHA1이 여전히 안전하다고 말하는 것은 “PRF 및 MAC으로 여전히 안전함을 의미합니다.
여기서 핵심 가정은 키가 공격자에게 알려지지 않았다는 것입니다.
$$ \ mathrm {HMAC} = \ mathrm {hash} (k_2 | \ mathrm {hash} (k_1 | m)) $$
-
잠재적 공격 1 : “많은 키에 대해 유효한 범용 충돌을 찾습니다.
HMAC를 사용하면 메시지가”직접 해시되지 않지만 접두어로 $ k_1 $가 있습니다. 이것은 공격자가 그렇지 않다는 것을 의미합니다. ” t 메시지가 시작될 때 해시의 내부 상태를 알고 있습니다. 대부분의 선택과 충돌하는 메시지를 찾는 것은 $ k_1 $입니다. 매우 어렵습니다 1 .
-
잠재적 공격 2 : 키 복구
이 작업이 성공하려면 해시 함수가 단순히 충돌보다 훨씬 더 큰 중단이 필요합니다. 이것은 MD5와 SHA1 모두에 대해 여전히 강력한 속성 인 첫 번째 사전 이미지 공격과 유사합니다.
반면에 공격자에게 알려진 키를 사용하고 공격자가 기본 해시 (임의 IV의 경우)에서 충돌을 찾을 수있는 능력이있는 경우 HMAC의 충돌로. 따라서 키가 지정되지 않은 시나리오에서 보안이 필요하면 SHA2와 같은 충돌 방지 해시를 사용하고 HMAC를 전혀 사용하지 않는 것이 좋습니다.
1 그렇지 않은 것 같습니다. 계산적으로 제한되지 않은 공격자에게도 가능하지만 (현실적인 메시지 크기의 경우) 어렵습니다.
댓글
- 그러면 언제 SHA1을 사용하지 말아야할까요? 즉, SHA1에서 문제가 발견되어 어디에서 사용할 수 없습니까?
- @ user93353 앞서 말했듯이 HMAC-SHA1의 보안은 알 수없는 키에 의존합니다. 키가 없거나 공격자가 알고있는 경우 , SHA1의 충돌은 위협이됩니다.하지만 SHA1은 더 나은 대안이 있기 때문에 새로운 설계에서 거의 사용하지 않아야합니다.
- 공격자가 키를 알고 있으면 SHA2도 마찬가지입니다. 문제가 되시죠?
- @ user93353 달성하려는 것에 따라 다릅니다. 물론 키가 지정되지 않은 해시는 MAC이 아닙니다.
- @CodesInChaos-HMAC-SHA1이 키를 알고있는 경우에만 문제가 발생합니다. HMAC 해시 작업에 문제가 될 것입니다.