문제

우리는 현재 저장하는 일반 텍스트에 대한 암호 응용 프로그램입니다.

유지를 옹호하는 이를 암호 해시지만 다른 개발자의 말하는 것이 적은 안전한--더 암호가 일치할 수 있는 해시 사전/해시 공격에 빠르게 할 수 있습니다.

어떤 진리를 이 인수?

도움이 되었습니까?

해결책

절대로 없습니다.하지만 그것은 중요하지 않습니다.나는 게시 유사하기 전에 응답:

그것은 불행한 일이지만,사람들,심지어 프로그래머,너무 감정을 쉽게 흔들리에 의해 인수입니다.그가 그 투자에서 자신의 위치(고,게시하는 경우 여기에,그가)있지 않을 가능성이 그를 설득으로 사실 혼자입니다.당신이 무엇을 해야 할 전환하는 방법을 확인하시기 바랍니다당신이 그를 얻기 위해 필요 찾는 데이터에 대한 그는 희망한다는 것을,그리고 그렇게 진실을 알아보십시오.불행하게도 그가 그의 이익을 상태,그래서 당신이 있어 힘들도 있다.

다른 팁

Wikipedia

일부를 저장하는 사용자 컴퓨터 시스템 비밀번호,을 비교할 수 있는 사용자가 로그에도,일반 텍스트로.는 경우 공격자에 대한 액세스 권한을 얻을 내부 암호를 저장하는 모든 암호 그래서 모든 사용자 계정 손상됩니다.일부 경우 사용자 사용 에 대해 동일한 암호를 계정에서 다른 시스템에 사람들이 될 것입 손상뿐만 아니라.

더 보안 시스템에 저장소 암호를 암호화 보호된 형태로,그래서 액세스 비밀번호전 려한 스파이들의 이익 내부 시스템에 대한 액세스 동안, 검증 사용자의 액세스도 남 가능합니다.

일반적인 approache 점만 "해시된"양식의 일반 텍스트 암호입니다.사용자가 형식 비밀번호에 같은 시스템 비밀번호 처리 소프트웨어 실행 을 통해 암호화 해시 알고리즘을 경우 해쉬값 에서 생성된 사용자의 항목 과 일치하는 해쉬에 저장됩 비밀번호 데이터베이스는 사용자 을 허용하세요.이 값은 해쉬 에 적용하여 만든 암호화 해쉬 기능을 문자열로 구성된 의 제출된 암호와, 일반적으로 다른 값으로 알려져 소금입니다.소금을 방지하는 공격자에서 목록 해시의 값 일반 암호를 암호화합니다.MD5 및 SHA1 가 자주 사용하는 암호화 해시 기능입니다.

더 많은 읽을 수 있는 주제에는 여기에 포함되지 않습니다.내 생각에,그 모든 것을 내가 읽고,함께 일을 해시에 더 나은 시나리오를 사용하지 않는 아주 작은(< 256 비트)알고리즘이 있습니다.

절대로 변명을 유지하는 일반 텍스트에서 암호합니다.표준을 사용하는 해싱 알고리즘(SHA-1,지 MD5!) 소금 가치,그래서 그는 무지개를 공격이 불가능합니다.

난 이해하지 못하는 방법을 다른 개발자 일'더 암호가 일치할 수 있는 해시'.

거기에 인수'해시의 공격이 더 빠를 것이라는 점을'있지만,없을 경우에만 소금으로 암호를 그들은 해시.일반적으로 해시 기능을 제공할 수 있도록 소금을 만드는 사용하는 알려진 해시 테이블에 시간을 낭비입니다.

개인적으로,나는'no'.기반 위에서,뿐만 아니라는 사실은 경우에 당신은 어떻게든 일반 텍스트에 노출지,소금,해시된 값은 작은 값을 사람이 거리에 있습니다.더 보기해싱도 제공의 이익을 만들고 암호를 모두'보기'동일한 길이 있습니다.

ie,해싱하는 경우 어떤 문자열이 항상 결과에 20 자 해시,다음만 있으면 해 봐,당신은 여부를 말할 수 없어 원래 암호가 여덟 문자 또는 여섯 예를 들어.

나이 정확히 동일한 문제에 직장합니다.무엇을 했는지,그를 설득하는 해싱이었다 더 안전하였을 작성 SQL injection 는 반환되는 사용자 목록 및 암호는 공중에서의 섹션에 우리의 사이트입니다.그것은 에스컬레이 바로 주요 보안 문제가:)

을 방지에 대한 사전/해시 공격을 해야 해쉬에 대하여는 토큰의 독특한 각 사용자와 정적(사용자 이름/가 date/userguid 잘 작동)

지 않는 경우에는 소금의 암,당신은 용의자를 무지개 테이블의 공격(미리 컴파일한 사전 유효한 입력을 위해 주어진 해시)

다른 개발자 중지해야에 대해 얘기하 보안 경우 암호를 저장하는 일반 텍스트 읽기 시작해 보안이다.

의 충돌이 가능하지만,큰 문제는 암호를 위한 앱은 일반적으로(그들은 주로 문제 영역에서 해시를 사용하는 방법으로의 무결성을 확인 파일).

그래서:소금의 암호(추가하여 소금의 오른쪽으로 암호*)사용하고 좋은 해시 algorhithm 다음과 같 SHA-1 거나 바람직하게는 SHA-256 또는 SHA-512 입니다.

PS:좀 더 세부사항에 대해 해시 .

*내지지 여부에 소금을 시작 또는 끝까지의 문자열입니다.문제는 당신이에 충돌이(두 개의 입력과 동일한 해시)추가하면 소금을"잘못된"것을 변경하지의 결과로 해시입니다.어떤 방법으로,당신은 없을 것이 큰 문제가 무지개 테이블,만으로 충돌

옛 말에 대한 프로그래머는 척하는 암호:)

제프 앳 우 좋은 주제에 게시: 당신은 아마 암호를 저장하는 잘못

답장을 더욱 광범위하게,동의함으로 위의 모든,해시 그것이 쉽 이론 를 얻는 사용자의 암호기 때문에 여러 암호가 일치 같은 해시입니다.그러나, 이것은 훨씬 더 가능성이 일어나는 사람보다 액세스하는 데이터베이스.

진실이 있는 경우에 당신이 뭔가를 해시,네,있을 것입니다 그래서 충돌이 가능할 것 두 개의 서로 다른 암호 잠금을 해제하는 동일한 계정입니다.

실용적인 관점에서도,그 가난한 인수-좋은 해쉬함수(또는 md5sha1 것 벌금)할 수 있는 것을 보장에 대한 모든 문자열이 의미 있는,특히 사람이 없 충돌 사고로 이어질 수 있습니다.심지어가 있다면,두 개의 암호가 일치 하나의 계정에 대해 큰 문제가-만약 누군가가 위치에 무작위로 추측 암호를 충분히 빠르게 가능성이 있다는 것을 얻을 수 있을에서,당신이 더 큰 문제입니다.

내가 주장하는 암호를 저장 일반 텍스트에 나타내는 훨씬 더 큰 보안 위험을 이 해시의 충돌에 암호가 일치합니다.

나는 보안 전문가 그러나 나는 느낌이 있는 경우에는 일반 텍스트가 더 안전한 해싱상에 존재하는 첫 번째 장소입니다.

에서,이론 그렇습니다.암호할 수 있는 더 이상(자세한 정보)이 해시,그래서 가능성이 있는 해시의 충돌 사고로 이어질 수 있습니다.그러나,대부분의 공격을 사전에,그리고 확률의 충돌이 무한히 보다 작은 성공적인 직 일치합니다.

에 따라 무엇이 당신을 방어합니다.의 경우 공격자는 아래로 당겨하는 데이터베이스(또는 속 응용 프로그램으로 표시하는 데이터베이스),다음,일반 텍스트 암호를 쓸모가 있다.많은 공격에 의존하는 응용 프로그램을 설득력을 뱉 그것은 개인 데이터-SQL injection,세션 납치,등등.그것은 종종 더 나은지를 유지하는 데이터는 모두에,그러나 유지하는 해시된 그래서 나쁜 놈들을 쉽게 확인할 수 없습니다.

로의 공동 작업자 제안이 될 수 있는 손쉽게 패배를 실행하여 같은 해시 알고리즘에 대한 사전하고 무지개를 사용하여 테이블을 끌어 정보니다.일반적인 솔루션을 사용하는 것입 비밀금 플러스 사용자 추가적인 정보를 확인 해결과 독특한 무언가가 다음과 같:

String hashedPass=CryptUtils.MD5("alsdl;ksahglhkjfsdkjhkjhkfsdlsdf" + user.getCreateDate().toString() +  user.getPassword);

큼의 소금입 비밀,또는 당신의 공격자는지 알고 정확한 작업을 수행할 사용자의 기록,사전 공격이 실패하는 경우에도 수 있다는 것을 아래로 당겨 암호 필드를 입력합니다.

아무것도 더 적은 안전한 저장하는 일반 텍스트 암호를 암호화합니다.를 사용하는 경우에는 괜찮은 해싱 알고리즘(적어도 SHA-256 지만,SHA-1 는 아무것보다는 더 낫다)다음 예,충돌이 가능하지만,그것은 중요하지 않기 때문에 주시는 것이 불가능*무엇을 계산하는 문자열을 해습니다.는 경우에 당신은 해시 사용자 이름과 비밀번호,그 가능성은 창뿐만 아니라.

*기술적으로 불가능하지 않지만,"실행 불가능"

사용자 이름은"그"와 비밀번호는"유래",그리고 생성한 문자열"그램-유래-1234"어디 1234 은 임의의 수,그리고 해시고 저장"hashoutput1234"데이터베이스에서.올 때 유효성을 검사하는 암호,취 사용자 이름,암호 및 번호의 끝에서 저장된 값(해시는 길이 그래서 당신은 항상 할 수 있다)및 그들을 함께 해시,그리고 그것을 비교 해시의 일부에 저장된 값입니다.

더 많은 암호가 일치할 수 있는 해시 사전/해시 공격에 빠르게 할 수 있습니다.

예 아니다.사용하는 현대적인 해싱 알고리즘처럼,SHA 변형,그리고 인수가 매우,매우 주입니다.당신이 정말로 걱정을 경우에는 공격하려고만 352 년 대신 467 년?(일화는 농담이 없다.) 값을 얻은 것(가지고 있지에 저장된 암호를 일반 텍스트에서는 시스템)훨씬 동료의 관심사입니다.

희망은 당신이 나를 용서 연결하기위한 솔루션을 썼는데 이것을 사용하여 클라이언트 측의 자바스크립트를 해시 비밀번호하기 전에 전달되: http://blog.asgeirnilsen.com/2005/11/password-authentication-without.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top