질문/이슈
워터마크 삽입 처리를 위해 세션 API 데이터를 생성해 호출했는데, API 서버에서 "Hash verification failed." (에러코드 A1007) 에러를 응답합니다.
간략한 설명
해당 에러는 API 요청 데이터의 hash 값을 구성하는 입력 데이터가 잘못되었거나 sha256 해시 처리가 잘못 되었을 때 발생합니다.
우선 PallyCon 포렌식 워터마킹의 세션 매니저 API 가이드를 확인해 요청 데이터의 hash 입력 값이 규격에 맞게 구성되었는지 확인합니다. 입력 값에 이상이 없는 경우는 sha256 해시 함수의 결과 값이 규격에 따라 처리되지 않았을 가능성이 높습니다.
해결 방법
1단계: hash 입력 값 확인
PallyCon 서비스에서 사용하는 각종 HTTP API들은 다음과 같은 JSON 데이터를 Base64 인코딩한 문자열을 요청 데이터로 이용합니다.
{
"data":"{각 API 별 `API 데이터` JSON 값을 aes256 cbc 암호화한 base64 문자열}",
"timestamp":"{yyyy-mm-ddThh:mm:ssZ}",
"hash":"{SHA256 입력 포맷'의 문자열 값을 sha256 해시 처리한 base64 문자열}"
}
우선 Docs 사이트의 세션 매니저 API 가이드를 참고해 `data`와 `timestamp` 값을 생성하고, 다음 네 가지 문자열 데이터를 하나로 조합해 hash 입력 값을 구성합니다.
- 액세스 키: PallyCon 서비스 계정에 할당된 액세스 키 값 (PallyCon 콘솔에서 확인)
- 사이트 ID: PallyCon 서비스 계정에 할당된 네자리 사이트 ID 값 (PallyCon 콘솔에서 확인)
- data 값
- timestamp 값
2단계: sha256 결과 값 처리 확인
1단계에서 조합한 문자열을 sha256 함수에 입력하고 결과 값을 base64 인코딩합니다. 이때 sha256 결과 값은 문자열로 변환하지 않고 바이너리 데이터 그대로 base64 함수에 입력되어야 합니다. '해시 검증 실패'(A1007) 에러는 주로 sha256 결과 값을 문자열 형태로 받아 base64 함수에 입력하는 경우에 발생합니다.