2016-12-12 1 views
-1

컨텍스트 : 응용 프로그램 풀에 대한 사용자 지정 Windows 계정을 사용하고 Oracle 사용자 인증을 사용하도록 설정 파일에 DB 사용자 이름과 암호를 저장할 필요가 없습니다.IIS AppPool ID 비밀번호 보안

문제점 : 이 설정은 작동하지만 나는 appcmd.exe을 사용하여 '복구'할 수있는 것으로 나타났습니다. 관리 및 실제 액세스 권한을 가진 사람이 일반 텍스트로 비밀번호를 읽을 수 없도록하는 방법이 있습니까?

이것은 Windows 2016 시스템의 IIS 10입니다. 암호 applicationHost.config 파일을 볼 때이 암호화 된 것으로 보입니다.

%systemroot%\system32\inetsrv\appcmd.exe list apppool "ImoAppPool" /text:* 

enter image description here

답변

0

질문에 대답 : 다음 명령은 암호를 보여줍니다 "? 일반 텍스트 암호를 읽을 수 없습니다 관리 및 물리적 액세스해야합니다 사람을 만들 수있는 방법이 있나요"를

암호를 복구 할 수있는 방법으로 암호를 저장하지 마십시오. 암호는 약 100ms 동안 임의의 소금으로 HMAC를 반복하고 해시로 소금을 저장하십시오. PBKDF2 일명 Rfc2898DeriveBytes, password_hash, Bcrypt 및 이와 유사한 기능과 같은 기능을 사용하십시오. 이 해시 값을 DB에 저장하십시오. 요점은 공격자가 무차별 적으로 암호를 찾는 데 많은 시간을 소비하게하는 것입니다.

이 작업을 수행 할 수없는 경우 솔루션은 안전하지 않으므로 사용하지 않아야합니다.

사용자를 보호하는 것이 중요합니다. 안전한 비밀번호 방법을 사용하십시오.

+0

어쩌면 나는 대답을 이해하지 못하거나 질문을 명확한 방식으로 묻지 않았다. IIS는 특정 사용자 계정으로 실행해야합니다. 나는 정확한 암호를 제공해야한다. 나는 변형 된 암호를 제공하고 실행할 수있는 방법이 없다고 생각한다. 그런 다음 암호를 저장하는 방법을 선택합니다. 구성 파일을 살펴보면 암호가 변환됩니다 ('password = "[enc : IISWASOnlyCngProvider : cNM0PbFgUgr ...'). 질문에서 명령을 실행하면 일반 텍스트를 볼 수 있습니다. –

+0

요점은 다음과 같습니다. 암호를 복구 할 수있는 방식으로 저장하지 마십시오. 보안되지 않습니다. 공격자가 서버에 대한 관리자 액세스 권한을 얻고 사용자가 암호를 보호해야한다고 가정해야합니다. – zaph

+0

어떻게 저장합니까? 그들은 웹 서버에 저장됩니다. 제 질문은 운영 체제에 대해 인증 할 수 있고 암호를 일반 텍스트로 복구 할 수 없도록 서버를 구성하는 방법이 있는지 여부입니다.이 방법은 여러 가지 방법으로 구현할 수 있습니다 (예 : auth token). 그러나 우리는 웹 서버를 구현하는 것이 아니라 구성하는 것입니다. –

관련 문제