2009-03-04 2 views
6

데이터가 있습니다. 현재 XML 파일이지만 아키텍처가 변경 될 수 있습니다. 이제는 C# 클래스라고 가정 해 봅시다.일부 데이터의 변조 증명 생성?

데이터를 디스크 나 데이터베이스에 저장할 때 어느 누구도 데이터를 수정할 수 없도록 어떤 종류의 서명이나 지문 또는 체크섬을 추가해야합니다. 주의 사항 : 모든 소스 코드에 액세스 할 수있는 관리자 또는 개발자조차도이를 수정할 수 없어야합니다.

전체 코드 액세스 권한을 가진 사람이 새 서명을 쉽게 만들 수 있습니다 (서명을 프로그래밍 방식으로 수행해야하므로 수동 암호 구문 입력이 필요하지 않음) 서명에 어떻게 든 추가 데이터가 필요하다고 가정합니다. 이상적으로는 서명에서이 데이터를 다시 추출 할 수 있어야합니다 (예 : 서명 날짜 및 일부 문자열).

내 일반적인 접근 방식은 대칭 암호화를 사용하는 것입니다. 모든 필드에서 해시 (SHA-512)를 생성 한 다음 해당 해시 및 내 추가 데이터를 암호화하여 해시를 암호로 사용하여 내 서명을 얻습니다. 해독하기 위해, 내 함수는 파일의 실제 데이터에서 해시를 생성하고 서명의 해독을 시도합니다. 그것은 서명 날짜와 추가 정보가 여전히 손상되지 않은 곳에서 서명을 생성하기 쉽기 때문에 위조가되지 않습니다.

나는 현장에서 전문가가 아니기 때문에 휠체어를 다시 발명하려고 노력하고 있으며 휠씬 좋지 않다고 생각합니다. 표준 접근법이 있는지 궁금합니다. 나는 나의 요청의 일부가 불가능하다고 믿는다. (어쨌든 누군가가 전체 환경을 통제한다면 그 사람도 시스템 시간을 통제한다.) 그러나 나는 아직도 이것이 일반적으로 어떻게 다루어지고 있는지 궁금하다.

+1

관리자와 개발자가 소스 코드에 대한 모든 권한을 갖고 있는지 확인하고 싶지만 비대칭 키를 사용하는 경우 키의 개인 부분에 액세스 할 수 있습니까? – Ants

답변

6

digital signaturesecure digital timestamp의 조합을 원하는 것처럼 들리 오.

간단히 말하면 데이터에 서명 한 후 타사 웹 서비스를 호출하여 서명 된 값에 해당 타임 스탬프를 연결하는 공식 타임 스탬프와 고유 한 디지털 서명을 제공함으로써 원본 서명 (따라서 원본 데이터)는 해당 날짜 이전에 작성되었습니다. 이 구성표를 사용하면 원래 서명 키가 나중에 손상되거나 해지되거나 무효화 되더라도 무효화 전의 모든 서명은 타임 스탬프 덕분에 여전히 유효합니다.

변조 방지 하드웨어 서명 장치가 도움이 될 수 있습니다. 대상 하드웨어가 비교적 최신 인 경우 이미 마더 보드에 TPM의 형태로 일부 지원을 제공 할 수 있지만 자체적으로 팔과 다리를 기꺼이 청구 할 많은 공급 업체가 있거나 smart card의 경우 다소 적습니다. .

기술만으로는 충분한 보안을 달성하지 못할 수도 있습니다. 시스템을 독립적으로 검증해야 할 수도 있습니다.원격 CCTV 모니터링 및 기기의 위치 또는 다른 물리적 보안 수단을 기록하여 변조를 감지하거나 중지해야 할 수 있습니다. 시스템에로드 된 코드가 의도 한 것임을 확인하고 코드에 백도어 논리 삽입을 방지 및/또는 탐지하기 위해 제 3 자 코드 에스크로, 검토 및 서명이 필요할 수 있습니다.

결론은이 돈을 얼마나 많이 쓰느냐에 달려 있습니다. 레코드가 위조되면 잃어버린 것에 크게 의존합니다.

0

비대칭 암호화를 사용하여 digital signature이 필요합니다.

article에는 좋은 예와 설명이있는 것 같습니다.

0

이것은 기본적으로 code signing을 제외한 것입니다. 귀하의 상황에서는 실제로 서명 된 코드가 아닙니다. 인증서를 구입하거나 자신의 인증서 서버를 설정해야합니다.

3

digital signaturetrusted timestamp이 모두 필요합니다. 신뢰할 수있는 타임 스탬프는 메시지의 유효성을 검사하기 위해 제 3자를 포함합니다. 그러면 모든 공격자는 전체 시스템에 대한 '완전한 제어권'을 갖지 못합니다.

+0

Ninja'd 23 초! :) –

1

(GnuPG Made Easy) 응용 프로그램에서 GnuPG에 쉽게 액세스 할 수 있도록 설계된 라이브러리를 사용하여 PGP를 활용할 수 있습니다.

1

제프리 한틴 (Jeffrey Hantin)의 대답은 내가 할 수있을 것 같은 최고의 생각입니다. 그래도 이 아닙니다.은 완벽합니다.

1) 검은 모자가 완전히 가짜 거래를하는 것을 막지는 않습니다.

2) 트랜잭션의 변조를 완벽하게 중지하지 않습니다. 예, 새 트랜잭션의 타임 스탬프는 달라질 수 있지만 관련 데이터를 정리하면 타임 스탬프가 엉망이되었음을 어떻게 증명합니까? 변조 방지 영수증 (해시 &에 데이터에 서명)을 제공하더라도 대결에 관해서는 누구의 기록이 위조되었는지 어떻게 증명할 수 있습니까?

관련 문제