2009-08-12 8 views
1

텍스트 파일 (예 : XML)이 사용자가 편집하지 못하도록하는 가장 쉬운 방법은 무엇입니까? 사용자 이름을 저장 한 파일과 데스크톱 응용 프로그램에 대한 권한을 간단히 편집 할 수 없도록해야합니다.파일 편집 금지

어쩌면 파일 인증서를 생성 할 수 있으며 데스크톱 응용 프로그램에서이를 확인합니까?

WinForms 앱에서 C#을 사용하고 있습니다.

답변

2

편집을 방지하기 위해 파일 시스템 사용 권한을 사용할 수 있습니다.

편집을 감지하기 위해 파일을 어려운

당신이 얻을 수있는 해시 값을 편집하기 위해 암호화를 사용할 수 있습니다.

나는 파일을 암호화 한 다음 해독하는 것이 가장 쉽다고 생각합니다. 비록 그들이 충분히 똑똑하다면 사용자는 여전히 파일의 내용을 읽을 수 있습니다. 예 : 메모리에서 일반 텍스트 읽기

0

사용자의 권한을 XML 파일에 직접 저장하는 것이므로 사용자가 파일을 편집하지 못하게하는 수준 이상의 보안이 필요합니다. 운영 체제 수준에서 파일 편집에 대한 일부 제한을 가할 수 있다고해도 (가상의) 모든 관리 사용자는 다른 컴퓨터에서 파일을 편집 한 다음 보호 된 버전을 덮어 쓸 수 있습니다.

따라서 사용자는 파일을 편집 할 수 있다고 가정해야합니다. 당신이 가지고있는 유일한 방법은 언제 가지고 있는지 확인하고 편집 내용을 무시하는 것입니다.

인증서를 만들 때 제안하는 방법은 정확합니다. 전체 파일에 대한 해시를 계산할 수도 있고 사용자 별 (사용자 컨텍스트에서 가장 합당한 것)으로 해낼 수도 있습니다. 개인 또는 비밀 키를 사용하여 파일을 편집 할 수 없도록 할 수 있습니다 단순히 해시를 다시 계산하십시오.

1

가장 간단한 방법은 아마도 사용자 이름과 암호 인증을 사용하는 데이터베이스를 사용하는 것입니다.

가장 똑똑한 방법은 데이터를 암호화 할 수 없도록 암호화하는 것입니다. 사용자 이 진정으로가 자신의 컴퓨터에있는 파일에 대한 액세스를 원하는 경우

그러나, 그들은를 얻을 것이다 . 유용하다고 읽거나 유용하게 편집 할 수 없도록 만들 수 있지만 원하는 경우 파일을 편집 할 수 있습니다.

+0

데이터를 암호화하는 방법은 무엇입니까? 공개 키와 개인 키가 있습니까? –

0

IMHO 아무도 수정할 수 없지만 정보를 보호하기 위해 파일을 암호화 할 수 있습니다.

예를 들어 디스크 시작을 사용하여 컴퓨터를 부팅하고 텍스트 파일을 간단하게 편집 할 수 있다고 보장 할 수 없습니다.

0

데이터를 XML 텍스트 파일에 보관해야하는 경우 수정할 때마다 응용 프로그램에서 디지털 서명을하고 파일을 읽을 때 디지털 서명을 확인하는 것이 좋습니다.

sign XML file에 대한 자세한 내용 및 방법은 verify signature입니다.

하지만 데이터베이스, 암호화 된 파일, 응용 프로그램 속성 등 다양한 형식으로 이러한 종류의 데이터를 유지하는 것이 더 좋습니다.

+0

데이터베이스를 사용할 수 없으므로 응용 프로그램에서 디지털 서명하는 것이 좋습니다. 어떻게 그럴 수 있니? –

+0

MSDN에서 단계별 XML 서명 및 서명 확인 방법을 설명하는 링크를 내 답변에 추가했습니다. – RaYell

0

개인적으로 XML은이 경우 보안 정보를 저장하는 데 적합한 형식이라고 생각하지 않습니다. 바이너리 형식에 비해 XML의 전체적인 점은 사람이 읽고 편집 할 수 있다는 것입니다. 전체 보안을 원할 경우 간섭을 받았는지 알려주는 알려진 해쉬/crc와 함께 암호화 된 바이너리 형식을 사용하십시오.

+0

xml이 아닌 경우 어떤 종류의 이진 파일을 만드시겠습니까? –

+0

잘 모르겠습니다! 하지만 암호의 해시를 포함하는 일종의 바이너리 직렬화 목록일까요? http://dotnetperls.com/serialize-list-tutorial –

0

암호화는 사용할 수 있지만 DPAPI는 Windows에 내장되어 있으므로 안전하게 암호화 키를 저장해야하므로 또 다른 번거 로움이 있습니다.

DPAPI 사용의 이점은 사용자 나 컴퓨터에 고유 한 키를 사용하며 프로그래머에게도 공개되지 않는다는 것입니다. 그러나 파일을 다른 사용자의 프로필이나 컴퓨터로 옮기면 읽을 수 없습니다.

+0

사용자 나 컴퓨터에만 제한된 것이 필요하지 않습니다. 내 앱 외에 다른 사람이 파일을 편집하고 싶지 않습니다. 그게 가능하니? –