Open sungho-gurumnet opened 2 years ago
아까 회의시 문제 있을 수 있을것 같다고 말씀드렸던 부분 이슈로 남겨 놓습니다. https://github.com/uni2u/difs-cxx/blob/signatureinfo_nexthash/ndn-cxx/util/hc-segment-fetcher.cpp
if (segment != 0) { if (segment - 1 == before_segment) { NDN_LOG_DEBUG("Ordered data segment"); if(before_signature != nullptr && memcmp((void*)data.getSignatureValue().value(), (void*)before_signature->value(), data.getSignatureValue().value_size())) { NDN_LOG_DEBUG("Wrong hash key"); onError(HASHCHAIN_ERROR, "Failure hash key error"); } else { NDN_LOG_DEBUG("Correct hash key"); success_count++; afterSegmentValidated(data); } } else { NDN_LOG_DEBUG("Disordered data segment"); afterSegmentValidated(data); } } else { NDN_LOG_DEBUG("First segment data"); success_count++; afterSegmentValidated(data); }
hashchain검증시 hash 값을 data.getSignatureValue().value_size() 만큼 검사할 경우, 다음 블록의 data의 signatureValue의 길이를 0으로 보낼 경우 hashchain이 깨졌음에도 통과되지 않을까 합니다.
=> 실제로는 validator에서 sha256 검사시 걸리기에 문제가 발생 안 할수도 있을 것 같습니다.
아까 회의시 문제 있을 수 있을것 같다고 말씀드렸던 부분 이슈로 남겨 놓습니다. https://github.com/uni2u/difs-cxx/blob/signatureinfo_nexthash/ndn-cxx/util/hc-segment-fetcher.cpp
hashchain검증시 hash 값을 data.getSignatureValue().value_size() 만큼 검사할 경우, 다음 블록의 data의 signatureValue의 길이를 0으로 보낼 경우 hashchain이 깨졌음에도 통과되지 않을까 합니다.
=> 실제로는 validator에서 sha256 검사시 걸리기에 문제가 발생 안 할수도 있을 것 같습니다.