2009-08-31 4 views
4

우리 회사의 기존 응용 프로그램에 대한 .NET 플러그 인 (클래스 라이브러리)을 개발 중입니다. 플러그 인을 기존에 지원하는 데스크톱 응용 프로그램입니다..NET 플러그 인 보안

1) 기존 데스크톱 응용 프로그램에서만 호출되도록 플러그를 보호하는 메커니즘이 있습니까? (우리는 데스크톱 애플리케이션 코드베이스에 대해 아무런 통제력이 없습니다.)

2) 악의적 인 사용자가 코드 기반을 분해하고 (난독 처리를 제외하고) 메소드를 호출하거나 가시성에 관계없이 메소드를 호출하는 것을 막을 수있는 방법이 있습니까? 나는 우리가 적절한 장소에서 인증/허가를 사용할 수 있다는 것을 이해하지만 대안이 있는지 궁금해하고있었습니다.

3) 플러그인 구성 파일에서 중요한 데이터를 암호화하는 표준 메커니즘은 무엇입니까?

답변

1
  1. 플러그인과 응용 프로그램간에 디지털 서명 또는 공개/개인 키 교환 유형을 조사 할 수 있습니다. 그러나 개인 키가 서버를 떠나지 않는 일종의 온라인 인증을 사용하지 않으면 개인 키 보호가 거의 불가능합니다.

    덜 안전한 방법으로 플러그인에서 Assembly.GetEntryAssembly() 메소드를 사용하여 플러그인을 호출하는 .NET 실행 파일의 세부 사항을 얻을 수 있습니다. 그런 다음 예를 들어 항목 어셈블리 이름이 예상 한 것과 다를 경우 중지하십시오.

  2. 사실 .NET은 실제로 리플렉션과 같은 메커니즘을 제공하여 디스 어셈블리를 단순화합니다. Obfuscation은 .NET에서 "최상의"접근 방법이지만 결정/숙련 된 해커를 더 이상 막지는 못합니다. 어셈블리를 네이티브 코드로 변환 할 수는 있지만, 이는 코드가 특정 플랫폼과 연결될 때 .NET을 처음부터 사용하는 것을 실제로 무효화합니다. 네이티브 코드는 물론 해체 될 수도 있습니다.

  3. ConfigurationManager 클래스와 SectionInformation.ProtectSection() 메서드 및 DataProtectionConfigurationProvider 공급자를 살펴보십시오.

관련 문제