app.config에 사용자 이름과 암호를 저장해야합니다. Rijndael 알고리즘을 사용하여이 값을 암호화하고 싶습니다. 어디에서 un와 pw를 해독 할 수있는 키와 IV를 저장해야합니까? 다른 사용자가있는 다른 서버에 응용 프로그램을 배포해야합니다.Rijndael에 IV 및 키 저장
답변
web.config 또는 app.config 파일 암호화는 일반적으로 RSA 또는 DPAPI 암호화로 수행됩니다.
귀하의 소송에서 귀하에게 적합한 지 확실하지 않은 경우, 애플리케이션 사용자가 관리자가 아닌 경우에만 효과적입니다.
DPAPI는 아마도 하드웨어 장치를 사용하지 않고 수행 할 수있는 최상의 방법 일 것입니다. RSA는 도움이되지 않습니다. –
키를 내보낼 수 있도록 허용하여 여러 서버에서 RSA 암호화를 사용할 수 있지만 여기서는 좋은 해결책이 아닙니다. –
분명히 어셈블리에 저장하지 마십시오. 일리노이를 비교적 단순하게 보면 비밀을 포기할 것입니다. 심지어 obsfuciating, 약간의 여분의 보안을 제공 할 것입니다.
가장 쉬운 방법은 다른 서버에서 OS \ 파일 시스템 보안을 사용하여 키 파일에 대한 읽기 액세스를 제어하는 것입니다.
웹을 통해 액세스 할 수없는 위치의 텍스트 파일에 이상적으로 액세스가 엄격한 로컬 파일 시스템을 통해서만 가능합니다. 앱을 배포해야하는 경우
, 당신은이 캐고 방지 할 수
가상 디렉터리에 대한 키 및 기타 개인 정보
C:\MyApp\www
을 위해 다음과 같은 구조
C:\MyApp
를 사용할 수 있습니다 눈 (또는 웹 서버 버그)을 사용하여 데이터에 액세스하십시오. 기계에 물리적으로 접근 할 때만 잠재적으로이를 나타낼 수 있으며 일반적으로 더 잘 제어 할 수 있습니다.
어떻게 할 컴퓨터 키 암호화를 사용하는 방법에 대해? (내가 아는 한)이 작업을 수행하는 쉬운 방법은 없지만 리플렉션을 사용하여 프레임 워크에 해킹 할 수 있습니다. 컴퓨터 키가 컴퓨터에 저장되어 있지 않거나 부분적으로 만 저장되어 있습니다. ASP.NET에서 '각 응용 프로그램에 대해 고유 한 키 생성'을 구성하면 응용 프로그램의 경로가 키를 파생시키는 데 사용됩니다.
private static MethodInfo _cookieEncryptMethod;
private static MethodInfo _cookieDecryptMethod;
public static string MachineKeyEncrypt(string data)
{
if (_cookieEncryptMethod == null)
{
_cookieEncryptMethod = Type.GetType("System.Web.Security.CookieProtectionHelper").GetMethod("Encode", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.InvokeMethod);
}
var dataBytes = Encoding.UTF8.GetBytes(data);
return (string) _cookieEncryptMethod.Invoke(null, new object[] { CookieProtection.All, dataBytes, dataBytes.Length });
}
public static string MachineKeyDecrypt(string source)
{
if (_cookieDecryptMethod == null)
{
_cookieDecryptMethod = Type.GetType("System.Web.Security.CookieProtectionHelper").GetMethod("Decode", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.InvokeMethod);
}
var data = (byte[]) _cookieDecryptMethod.Invoke(null, new object[] { CookieProtection.All, source });
return Encoding.UTF8.GetString(data);
}
@IUnknownPointer : 정말
코드는 다음과 같은 것입니까? 무엇처럼? –