2011-01-18 3 views
0

https를 사용하는 경우에도 코드 숨김으로 이벤트 로그에 비밀번호를 쓸 수 있습니다. 데이터 저장소에 대해 비밀번호를 확인하는 동안 비밀번호로 코드를 암호화하는 방법은 없습니까?코드에서 비밀번호 보안

(사용하여 로그인 제어)

(앤드류의 대답에 주석을 추가 할 수 없습니다 그래서 여기 놓겠)
NTLM은 사용자 권한으로 로그온 한 컴퓨터의 사용자 이름/암호를 사용? 이를 위해 데이터 저장소로 서버에서 ActiveDirectory를 사용하려고 생각했습니다. 그것은 사용자가 현재 자신의 컴퓨터에 로그인 한 것과 다른 un/pw를가집니다.

답변

0

메모리에 일반 텍스트 암호가있는 것이 염려되는 경우 워크 플로에서 가능한 빨리 암호화하십시오. 또한 일반 텍스트 암호를 이벤트 로그에 기록하지 않도록하십시오.

+0

이것은 실제로 아무것도 수정하지 않습니다. 일반 텍스트 비밀번호는 생명주기의 모든 시점에서 요청 시작시 전달 된 컨텍스트 개체를 통해 계속 사용할 수 있습니다. 그것은 변경할 수 없으며, 완성 된 응답이 푸시 될 때까지 보편적으로 사용 가능합니다. –

+0

@Joel - 충분히 사실이지만 여기에 제시된 해결책은 동일한 문제를 갖습니다. –

+0

일 필요는 없습니다. 그의 인증 옵션이 무엇인지에 달려 있습니다. 그가 SQL 상점 또는 다른 유사한 DB로 붙어 있다면, 맞습니다. 통합 NTLM 인증을 사용할 수 있도록 자신의 인증 체계를 변경할 수 있다면 전체 프로세스를 통해 해시되고 즉시 암호를 보거나 저장해야합니다. –

1

SecureString 클래스를 확인하십시오.

기밀로 유지되어야하는 텍스트를 나타냅니다. 텍스트는 사용될 때 개인 정보 보호를 위해 암호화되고 더 이상 필요하지 않을 때 컴퓨터 메모리에서 삭제됩니다.

+0

'SecureString'은 멋지지만 ASP.NET에는 실제로 의미가 없습니다. 일반 텍스트 비밀번호는 서버에 문자열로 전달되며 'SecureString'으로 변환되어야합니다. 이 시점에서 OP는 암호를 암호화 할 수 있습니다. –

1

양식 제출시 일반 텍스트 암호를 보내는 경우 HttpContext 개체에서 항상 사용할 수 있습니다. 페이지 수명 기간 동안은 제거하거나 암호화 할 수 없습니다. 이를 저장하는 기능은 완료 페이지 응답이 클라이언트에 푸시 될 때까지 계속 사용할 수 있습니다. 그 이상으로 암호는 일반 텍스트로 메모리에 있고 16 진수 편집기 (RAM)를 통해 액세스 할 수 있습니다.

이러한 유형의 암호를 사용할 수 없다면 Windows 통합 인증을 통해 NTLM 인증을 활성화하는 것이 더 효과적입니다.이 인증은 강타에서 총알로 해시됩니다.