다음을 통해 공유


폼 인증 자격 증명

업데이트: 2007년 11월

로그온할 때 사용자의 유효성을 검사하는 데 사용되는 폼 인증 자격 증명은 외부 데이터 소스 또는 응용 프로그램 구성 파일에 저장될 수 있습니다.

참고:

ASP.NET 멤버 자격은 폼 인증된 응용 프로그램에서 사용자 자격 증명을 저장하고 관리하는 데 사용할 수 있는 기본 방법입니다. 자세한 내용은 멤버 자격을 사용하여 사용자 관리를 참조하십시오.

응용 프로그램 구성 파일에 사용자 저장

폼 인증을 사용하는 경우 웹 사이트 구성 파일의 credentials 섹션에 지정된 사용자/암호 쌍으로 사용자의 유효성을 검사할 수 있습니다. Authenticate 메서드를 사용하면 사용자로부터 수집한 자격 증명과 credentials 섹션의 사용자/암호 쌍 목록을 비교하여 액세스 허용 여부를 결정할 수 있습니다. 다음 예제에서 사용자인 Kim과 John은 올바른 암호를 제공하는 경우 로그온할 수 있습니다.

<credentials passwordFormat="SHA1" >
    <user name="Kim"
          password="07B7F3EE06F278DB966BE960E7CBBD103DF30CA6"/>
    <user name="John" 
          password="BA56E5E0366D003E98EA1C7F04ABF8FCB3753889"/>
</credentials>

이 예제의 자격 증명 쌍은 SHA1(Secure Hash Algorithm-1) 암호 해시 형식을 사용하여 암호화되었습니다. PasswordFormat 특성이 필요합니다. 다음 표에서는 이 속성의 값을 보여 줍니다.

설명

Clear

일반 텍스트로 암호를 저장합니다. 사용자 암호는 더 이상 변환되지 않고 이 값과 직접 비교됩니다.

MD5

MD5(Message Digest 5) 해시 다이제스트를 사용하여 암호를 저장합니다. 자격 증명의 유효성을 검사하기 위해 사용자 암호는 MD5 알고리즘을 사용하여 해시되고, 저장된 값과 비교됩니다. 이 값을 사용할 때는 일반 텍스트 암호가 저장되거나 비교되지 않습니다. 이 알고리즘을 사용하면 SHA1 알고리즘을 사용할 때보다 성능이 향상됩니다.

SHA1

SHA1 해시 다이제스트를 사용하여 암호를 저장합니다. 자격 증명의 유효성을 검사하기 위해 사용자 암호는 SHA1 알고리즘을 사용하여 해시되고, 저장된 값과 비교됩니다. 일반 텍스트 암호는 저장되지 않습니다. 이 알고리즘을 사용하면 MD5 알고리즘을 사용할 때보다 보안이 향상됩니다.

.NET Framework에는 영구 저장소용으로 해시된 값을 프로그래밍 방식으로 쉽게 만들 수 있도록 도와 주는 클래스와 메서드가 포함되어 있습니다. 이 작업을 프로그래밍하는 데 유용한 클래스는 FormsAuthentication 클래스뿐입니다. 이 클래스의 HashPasswordForStoringInConfigFile 메서드로 해시를 수행할 수 있습니다. 좀 더 구체적으로 제어하려면 System.Security.Cryptography 클래스도 사용할 수 있습니다.

텍스트 파일에 저장된 해시된 암호는 원래 암호를 다시 생성하는 데 사용될 수 없지만 사전 공격에 노출될 가능성이 있습니다. 이 유형의 공격에서 공격자는 암호 파일에 액세스한 후, 소프트웨어를 사용하여 큰 사전에 있는 모든 단어를 반복적으로 해시하고 생성된 해시를 저장된 해시와 비교함으로써 암호를 알아내려고 합니다. 방법에 상관없이 해시된 암호를 저장할 경우 사전 공격을 방지하려면 일반적인 단어가 아니고 숫자와 영숫자 문자가 포함된 암호를 선택하도록 사용자에게 요청해야 합니다. 또한 ASP.NET 멤버 자격을 사용하여 자격 증명을 저장하면 자격 증명 관리가 훨씬 쉽습니다. 자세한 내용은 멤버 자격을 사용하여 사용자 관리를 참조하십시오.

참고 항목

참조

FormsAuthenticationModule

기타 리소스

ASP.NET 웹 응용 프로그램 보안

폼 인증 공급자