2009-10-20 7 views
2

정기적으로 제조 프로세스의 데이터를 기록하는 응용 프로그램이 있습니다 (다양한 샘플 속도, 최소 1 초, 보통 최대 10 분 이상). 고객은 데이터가 변경되었는지 (장소가 변경되었는지, 레코드가 추가되었는지, 레코드가 삭제되었는지) 알고 싶습니다.보관 된 데이터에 디지털 서명

데이터는 2 진 레코드로 기록됩니다. 데이터 스트림이 여러 개있을 수 있으며 각 데이터 스트림은 자체 파일로 이동하며 각 데이터 스트림은 자체 데이터 형식을가집니다. 데이터는 한 번에 한 레코드 씩 기록되며 모니터링 PC 또는 프로세스가 다운되면 제조가 반드시 중단되는 것은 아니므로 보관 프로세스가 계속 유지 될 것이라고 보장 할 수는 없습니다. 분명히 내가 실제로 녹음 한 것만 인증 할 수 있지만 녹음이 시작되고 중지 될 수 있습니다.

해당 데이터를 인증하는 데 사용할 수있는 방법은 무엇입니까? 이전 버전과의 호환성을 유지하기 위해 데이터의 유효성을 검사하기 위해 별도의 '로깅'파일을 사용하는 것이 좋지만 가능하지는 않습니다. 직접적인 답변이 없으면 검색어에 대한 제안 사항이 있습니까?

감사합니다.

답변

1

디지털 서명이 필요하다고 생각하지 않습니다. 보안 해시 (예 : SHA-256)로 충분해야합니다.

각 레코드가 기록 될 때 해당 레코드의 보안 해시를 계산하고 로그 파일에 해시 값을 저장하십시오. 어떤 종류의 레코드 ID가 있다면 그 레코드도 저장하십시오. 해시를 해당 레코드와 일치시키는 방법이 필요합니다.

아무도 로깅 파일을 변조하지 않는 한, 레코드의 변경 내용을 감지 할 수 있습니다. 변조를 어렵게 만들려면 주기적으로 로그 파일을 해시하고 해당 해시 및 로그 파일의 레코드 수를 안전한 곳으로 보내십시오. 이상적으로는 다른 사람의 통제하에 각각 여러 곳으로 보냅니다.

좀 더 정교한 접근법은 Merkle 트리를 사용하는 것입니다. Merkle 트리는 기본적으로 로그 파일의 단일 해시가 아니라 해시의 이진 트리입니다. 그런 다음 전체 트리 (매우 크지 않은)를 저장하고 "루트"해시를 여러 위치로 보냅니다. 루트 해시를 사용하면 트리의 무결성을 확인할 수 있으며 로그 파일의 무결성을 확인할 수 있습니다. 무결성 검사가 실패하면 수정 된 레코드를 확인할 수도 있습니다.

+0

이것은 본질적으로 내가 한 것입니다. 감사합니다! 데이터 파일의 시작 위치와 데이터의 길이를 지정하는 레코드가 있고 그 데이터의 해시 (및 시작/len)가 있습니다. (레코드와 해시의 길이도 지정됩니다. 오, 파일이 오염 된 경우 : 누군가가 합법적으로 변조 된 파일을 편집했습니다.) .digest는 이러한 레코드의 목록 일뿐입니다. –

0

대신 디지털 타임 스탬프를 볼 수 있습니다. GuardTime은 정보 무결성을 보장하는 확장 성이 뛰어난 1 초 정밀도 타임 스탬핑을 지원하는 기술을 보유하고 있습니다.

+0

흥미 롭습니다. 내 응용 프로그램에 대한 과잉의 비트,하지만 오래된 죽은 나무 에디션의 영리한 사용. –