사용자 암호 총 10 개 질문 열 암호화 저장, 총리는 안전한 암호 저장을 통해 말했다

우리의 데이터베이스 권한 관리는 매우 엄격한, 민감한 정보의 개발 엔지니어 암호 내가 할 수없는 일반 텍스트로 저장 볼 수있다?

아니오. 얼굴에 많은 위협 데이터베이스에 저장된 데이터가 존재, 응용 프로그램 수준, 데이터베이스 수준, 운영 체제 수준, 객실 수준, 직원 수준이다 백퍼센트 해커에 의해 도난되지되고 싶어, 그것은 매우 어렵습니다.

암호가 다음 암호화 후 저장, 그래서 심지어 라이브러리를 드래그하는 경우, 해커는 사용자의 일반 텍스트 암호를 얻기가 어렵다. 우리는 혼자 여행을 할 때 당신이 그들을 확률 아닌 사용하지만, 암호, 암호화 된 사용자 계정의 속옷 시스템의 중요성, 당신의 돈 속옷에 해당하는 솔기를 저장되지만 키 순간 그들이 도움을 줄 수 있음을 말할 수있다.

즉, 예를 AES, 다음 암호화 암호 및 암호화 알고리즘 아래에 보관 한 다음 나는 일반 텍스트를 해독해야 할 때.

아니오. 이 키 일반 사용자 정보를 별도로 저장되어 있지만, 암호를 해독하는 데 사용되는 암호화 키를 저장하는 방법을 포함, 일부 성숙 산업, 소프트웨어 또는 하드웨어 기반의 키 스토리지 솔루션이있다. 그러나 사용자 정보를 저장에서, 당신은 불가능, 키 백퍼센트를 공개하지 않습니다. 이 방법으로 암호화 된 암호에서, 해커는 일반 텍스트 암호를 획득의 가능성을 줄일 수 있습니다. 그러나 키를 한 번 사용자의 일반 텍스트 암호는 안 좋은 방법, 그것을 유출, 손상.

또한, 사용자 계정 시스템은 사용자의 일반 텍스트 암호를 저장하지 말아야 사용자가 암호를 잊어 버린 경우, 암호 재설정 기능을 제공하는 대신 비밀번호를 검색 할 수 있습니다.

모두의 해시 값은 MD5로 암호를 저장. 그렇지?

모든 HASH 알고리즘은 정확하게는 암호화 해시해야한다 말할 수있다. 암호화 해시는 다음과 같은 특징이 있습니다 :

  • 입력의 모든 종류의 크기 감안할 때, 해시가 매우 빠르고 계산;
  • 해시, 방법은 대응하는 입력을 산출하지 해시 주어;
  • 입력 작은 변화가 큰 변화는 해시됩니까 않는다
  • 해시에게 같은 두 개의 입력을 계산하는 방법은 없습니다;

암호화 된 암호를 위해 설계,하지만 비록 매우 적합 같은 세 가지 2,3,4 암호화 해시의 특성은 사용자 암호를 암호화하는 데 사용. 일반적인 암호화 해시는 MD5를 가지고, SHA-1, SHA-2, SHA-3 / Keccak, BLAKE2.

1976 년부터, 업계 최초의 유닉스 크립트에서 볼 암호화 해시 암호화 된 사용자 암호를 사용하기 시작했다. 그러나, MD5, SHA-1은 더 이상 금이없는 암호를 저장하기에 적합하고있다.

나는 사용자 암호를 저장 SHA256 값입니다.

아니오. 해커는 사용자 암호를 해독 조회 테이블 또는 무지개 테이블을 사용할 수 있습니다. 이유에 따라 코드를 해독 할 수는 사용자가 자주 암호 뇌 메모리, 수동 입력을 필요로한다는 것입니다 SHA256 암호, SHA256 금이되지 균열 참고, 그것은 종종 공간의 가치를 결정하기 위해, 제한된 길이가 너무 복잡하지 않습니다.

간단한 암호 값의 짧은은 룩업 테이블에 금이 될 수있다

예를 들어 8 자리 암호 가능 ^ 10 = 8 1억가지 총. 하나 억은 많은 데이터가 해커가 SHA256, SHA256을 모두 계산 0-99999999 발전 할 수 있으며 키 암호 값이 조회 테이블, SHA256 주어진 해킹 할 필요가있을 때, 당신은 테이블에서 조회 할 수 있습니다로 저장하고 싶지 않아 즉 .

값은 상대적으로 복잡하고 길이가 긴 암호 무지개 테이블과 금이 될 수있다

이러한 숫자, 문자를 구분 암호 (10 + 26 + 26)의 총 84 ^ 10 수 천조에 함께 모든 룩업 테이블을 유지하도록 매우 어려운 기록 할 수 = 10, 등. 이 시간 해커는 일반적인 컴퓨터 세계의 문제 해결, 시간과 공간의 타협의 아이디어 무지개 테이블 균열라는 기술, 무지개 테이블을 사용합니다.

안쪽이 경우, 공간이 충분하고 약간의 시간을 할애하지 않습니다. 레인보우 테이블은 모든 SHA256 값은 브레이크가 처음 SHA256 해시 체인의 한, 그 계산이 존재주고 확인할 때, 단지 머리와 꼬리 해시 체인을 저장, 해시 체인의 여러 조각과 같은 길이로 변환 할 수있다 실시간 비교를 통해 해시 체인의 모든 sha256이 사용자 암호를 해독합니다.

사용자 암호 총 10 개 질문 열 암호화 저장, 총리는 안전한 암호 저장을 통해 말했다

 

해시 체인의 해시 값을 사용할 필요는 상기 R 기능 코드 값이 R의 충돌 확률 함수를 감소시키기 위하여, 다시 공간으로 매핑하므로, 무지개 해시 테이블 (3)의 사슬 길이의 뷰를 나타내며, 해시 체인의 길이 K, 다시 패스워드의 공간을 이용하여 R 함수 각 반복 맵은 동일하지 않기 때문에 무지개 테이블이 방법 균열 무지개 테이블 공격이라고, K R의 함수이다.

실제 상황보다 더 해시 체인은 예제 모두 84 억 일억 SHA256은 100 만 샤 체인 84000000000 길이로 변환 될 수있는 저장에서와 같이, 앞의 예보다 더 오래입니다. 레인보우 테이블 원리 관심, 당신은 위키 피 디아에서 읽을 수 있습니다.

인터넷과 심지어 일부 계산 한 무지개 테이블에 직접 사용하기 때문에 저장 사용자 암호의 sha256이 매우 안전하다 할 수있다.

어떻게 무지개 테이블 공격을 피하기 위해?

간단히 말해서, 그것은 소금이다. 일반적으로, 사용자 암호 문자열 키입니다, 소금은 우리 세대의 문자열 소금이다. 우리는 원래 키가 해시 값 HASH (키)은 저장, 그리고 지금 우리는 키와 소금을 함께 접합 해시 값 HASH (키 + 소금)을 저장합니다.

이러한 해커가 무지개 테이블을 생성하는 컴퓨팅 선진화 모두 실패합니다.

소금, 임의의 문자열을 생성 생성하는 방법을해야 하는가?

좋은 질문, 그리고, 안전을 위해 스트레스를 많이의 염을 형성하기 위해 소금을 추가하지.

대신 일반 난수 알고리즘의, CSPRNG (암호 학적 안전한 의사 난수 생성기) 소금 형성을 사용;

같은 랜드 () 메소드 내부의 C 언어 표준 라이브러리로 일반에 난수를 생성하는 알고리즘을 CSPRNG, 우리는 매우 다릅니다. 이름에서 알 수 있듯이, CSPRNG는 더 무작위 예측할 수있는 임의의 숫자를 생성하는 것을 의미 암호화 보안이다. 다음과 같이 일반적인 프로그래밍 언어, CSPRNG을 제공합니다 :

사용자 암호 총 10 개 질문 열 암호화 저장, 총리는 안전한 암호 저장을 통해 말했다

 

 소금은 너무 짧은 수 없습니다

소금이 매우 짧은 경우 원칙적으로 룩업 테이블과 무지개 테이블, 즉 길이의 문자열로 구성된 암호 + 소금을 의미 및 가치 공간이 제한 생각합니다. 해커는 + 소금의 모든 조합은 암호 무지개 테이블을 구축 할 수 있습니다.

소금은 재사용 할 수 없습니다

모든 사용자 암호는 같은 소금을 사용하여 암호화하는 경우. 그래서 아무리 복잡한 소금, 얼마나 많은 길이, 해커가 쉽게 고정 된 무지개 테이블 소금을 다시 설정하려면이 옵션을 사용할 수 없습니다, 모든 사용자의 비밀번호를 금이. 당신이 말한다면, 나는 다음 AES 암호화를 사용하는 이유를 충분히 안전하지에 대한 내 대답을 다시 읽어야한다, 다른 사람이 아 알려 고정 소금을 절약 할 수 있습니다.

각 사용자에 대한 임의의 소금을 생성하는 경우에도 소금을 사용자가 다시 암호를 변경할 때 때문에, 보안, 충분하지 아직도있다. 그것은 당신이 새 암호를 저장해야 할 때마다, 새로운 염을 생성하여 암호화 된 해시 값과 함께 저장해야합니다.

참고 : 일부 시스템은 소금 암호화 암호로, 다른 필드 각 사용자, UID, 전화 번호 또는 다른 것을 사용합니다. 이 위에서 생성 된 모든 세 가지 소금의 규칙에 거의 반대되는 좋은 생각이 아니다.

그 HASH 알고리즘은 자신을 모르는 해커를 설계, 크랙 방법에 대한 당신의 사람들은 효과가 없다.

하지 않습니다.

당신이 암호 전문가가 있다면 첫째, 보안 해시 알고리즘을 설계하기 어렵다. 만족하지, 당신은 다시 볼 수있는 암호 해시에 나는 위에서 설명한 후 자신의 디자인 알고리즘은 속성의 네 가지를 충족하는 방법에 대해 생각합니다. 당신이 디자인은 암호화 해시 기존의 기초를 기반으로 최대하더라도, 디자인이 후, 새로운 알고리즘 암호화 해시 여전히 요구 사항을 충족하는지 확인하기가 어렵습니다. 알고리즘이 안전 요구 사항을 충족하지 않는되면, 더 많은 방법 당신은 해커에게 사용자 암호를 해독하기 쉬운을 제공합니다.

당신은 사람들이 암호 해시 알고리즘을 모르는 디자인 할 수있다하더라도, 당신은 당신의 알고리즘을 모를 해커를 보장 할 수 없습니다. 해커는 종종 코드에 액세스 할 수있는 능력을 가지고, 또는 커크 호우 섀넌 원칙 킬로미터 생각 :

암호 시스템은 모든 사람이 운전 스텝 시스템이 여전히 안전 경우에도 것을 알고 있어야한다.

다른 암호를 각각 고품질의 소금 결합의 경우, HASH를 수행 한 후 저장합니다. 이 옳을까요?

가능할하는 데 사용 지금은 할 수 없습니다. 컴퓨터 하드웨어의 급속한 발전, 현대 범용 CPU는 GPU 클러스터가 SHA256을 계산하면서, 초당보다 100 억 배까지이며, 한달 배의 속도 수백만에서 SHA256을 계산할 수 있습니다. 이 해커는 더 이상 조회 테이블 또는 무지개 테이블에 의존하는 것이 가능 힘 암호를 짐승 할 수 없지만, 사용자 정의 하드웨어 및 독점 알고리즘의 사용을 통해 가능한 모든 직접, 실시간 균열 사용자 암호를 계산합니다.

그것을 어떻게? 암호화 해시 대해 특성에있어서, 상기 제와 상기 호출 :

입력의 모든 유형에서 어떤 크기 감안할 때 해시가 매우 빠른 계산

암호화 해시 암호화 암호는 매우 빠른이 기능은 다른 응용 프로그램 시나리오에서 매우 유용 계산을 위해 설계되지 않으며, 현재 상태에서 컴퓨터 하드웨어, 암호 부적절 암호화하는 데 사용됩니다. 이 시점에, 암호 사용자는 암호 해시라는 암호를 암호화하는 데 사용되는 해시 알고리즘으로 PBKDF2, BCRYPT, SCRYPT을 고안했다. 자신의 알고리즘 내에서 종종 우리는 강력한 해킹의 비용을 증가, 해쉬 연산의 속도를 둔화, 암호화 해시 여러 번 계산해야합니다. 암호 해시가 필요에 따라 계산 과정이 느릴 수있는 설계 원칙이며, 하드웨어 가속 될 가능성이 아니라고 말할 수있다.

어떤 암호 해시를 사용한다?

PBKDF2, BCRYPT, SCRYPT 세 가장 일반적으로 사용되는 암호 해시 알고리즘을 한 번에하는 것처럼 알고리즘 최고의 년의 암호 해독 자 결정적인하지 않았다. 그러나이 세 가지 알고리즘이 완벽하지 있으며, 단점 것이 확실하다. 이 GPU / ASIC 가속 될 수 있기 때문에 PBKDF2 계산 과정이 더 적은 메모리를 필요로하며, bcrypt 메모리 풋 프린트 FPGA 쉽게 조정 가속을 지원하지 않습니다, 조정은 개별 SCRYPT 컴퓨팅 시간이나 메모리를 지원하지 않으며, 점유 할 수 있으며, ASIC이 공격을 가속화 우회 한 가능합니다.

2013 NIST (국립 표준 기술 연구소), 함께 일부 암호 해독 자 초대 암호를 암호화하는 데 사용되는 표준 해시 알고리즘을 찾기위한 암호화 해시 알고리즘 대회 (암호 해싱 경쟁), 조직과에 업계에서 저장 사용자 암호로 암호화의 중요성을 추진하고 있습니다. 콘테스트 항목은 알고리즘이 직면 할 수있는 상장 공격은 다음과 같습니다 :

  • 암호화 알고리즘 (비용 감소, 해시 충돌, 즉 2,3,4 문서가 암호화 해시 특성을 만족한다)을 분해하는 단계;
  • 조회 테이블 / 무지개 테이블 공격;
  • CPU 최적화 공격;
  • GPU, FPGA, ASIC 및 기타 특수 하드웨어 공격;
  • 우회 공격;

2015 년 7 월 최종, Argon2 알고리즘은 이번 대회에서 우승, NIST는 최고의 암호 해시 알고리즘으로 확인되었습니다. 알고리즘이 너무 새로운이기 때문에,이 듣지 못한 어떤 큰 회사는 비밀번호 암호화 Argon2로하고있다.

피곤에 걸쳐 모든 방법을 물어 당신은 내게 얼마나 큰가 사용자 비밀번호를 암호화 예를 줄 수 있습니까?

올해 (2016) 사용자 암호 데이터 침해의 보관 용 부분이 발생, 그것은 CTO들이 암호, 사용자의 신뢰를 암호화 할 길의 확신 말했다. 그 후, 드롭 박스는 사용자 암호 암호화 스토리지 솔루션에 대해, 공식 기술 블로그에 "드롭 박스는 안전하게 암호를 저장하는 방법"이라는 제목의 기사를 발표했다.

사용자 암호 총 10 개 질문 열 암호화 저장, 총리는 안전한 암호 저장을 통해 말했다

 

 

상술 한 바와 같이, 보관 처음 64 바이트로 사용자 암호 해시 암호 SHA512 만든 후 SHA512 Bcrypt 알고리즘의 결과를 산출한다 (각각의 사용자가 독립적으로 강도 10, 염), 그리고 마지막으로 AES를 사용하여 사용 알고리즘과 결과 Bcrypt 전역 고유 키 암호화 알고리즘 및 저장합니다.

블로그 게시물, 드롭 박스는 이유를 암호화의 세 가지 레이어를 설명합니다 :

먼저 사용 SHA512, 사용자 패스워드는 64 바이트 해시 값을 정규화. 두 가지 이유를 들어 하나는 사용자가 입력 한 암호가 너무 느린 될 수 있습니다 경우 더 민감한 Bcrypt를 입력 할 수있는 연산자에 Bcrypt 계산 응답 시간에 영향을 미치는, 다른 일부 Bcrypt 알고리즘을 달성 긴 입력이 직접 72 바이트로 잘린다 , 리드 정보 이론, 엔트로피 사용자 정보의 관점에서 말하면 작다;

그런 다음 Bcrypt 알고리즘을 사용합니다. 선택 이유 Bcrypt 알고리즘은 더 많은 경험, 파라미터 선택 기준에 더 익숙한 조정에 보관 엔지니어 약 100ms의에서 결과를 계산할 수있는 온라인 보관 용 API 서버입니다. 또한, 결론이 나지도 더 나은, 암호 학자를 산법 Bcrypt 및 Scrypt합니다. 한편, 보관 또한 암호화 해시 알고리즘 신인 Argon2 염려, 그는 적시에 도입된다;

마지막으로, AES 암호화를 사용하여. 드롭 박스는 더 키의 누설을 방지하기 위해, 손상 암호의 위험을 줄이기 위해 AES 및 글로벌 키를 사용하므로 Bcrypt 알고리즘이 완벽하지 않기 때문에, 드롭 박스는 전용 하드웨어 키 저장을 사용합니다. 드롭 박스는 최종 사용 AES 암호화의 또 다른 이점을 언급, 그 키는 사용자 정보의 위험을 줄이기 위해 정기적으로 교체 할 수 있습니다 / 키 타협 제공합니다.

 

추천

출처www.cnblogs.com/CQqf2019/p/11124748.html