일단 마스터 암호를 디스크에 저장하면 암호화가 전혀 필요 없으며 성능이 저하됩니다.
누군가가 세션 기간 동안 HDD를 꺼냈다면 쉽게 암호를 사용하여 파일을 열 수있었습니다.
거친 관리자가되면 파일 열기 전에 비밀번호를 저장할 수 있기 때문에 방금 완료했습니다. 그래서 나는 관리자가 당신쪽에 있다고 가정하고 시스템을 잘 구성했습니다.
주먹 할 수있는 일은 disk encryption입니다. 실제로 보안이 많이 향상됩니다. 누군가가 세션에서 일반 텍스트 암호로 HDD를 훔쳤다면 어쨌든 그것을 읽을 수 없습니다.
HTTPS를 사용하는 것보다 ... HTTP를 사용하는 경우 비밀번호로 작업 할 때 필수이며 전체 계획이 쓸모가 없어야합니다.
PHP에서 ... 나는 당신이 할 수 있는지 잘 모르겠습니다. 당신이 HTTPS를 사용하지만이 작업을 수행 할 수 있습니다
- 저장소 암호
$pass
에
- 임시 랜덤 암호화 키를 생성
$rand
에 의해 암호화 ($rand
)
- 저장소 암호는
- (난 그냥 XOR을 사용)
$_COOKIE
변수
- 사용
$_COOKIE
값으로 저장 $rand
모든 요청 마스터 암호 해독
예 :
$pass = 'iddqd';
$rand = 'abcde';
echo base64_encode($pass^$rand); // CAYHFQE=
$_COOKIE['phrase'] = $rand;
$_SESSION['password'] = base64_encode($pass^$rand);
unset($pass);
// And on every other request:
$pass = $_COOKIE['phrase']^base64_decode($_SESSION['password'])
는 부가가치 무엇입니까?일반 텍스트로 암호를 저장하는 것은 인증 된 디스크 액세스에만 의존합니다.
임시 구문을 생성하여 사용자 브라우저에만 저장하면 (사용자 측에서만) 인증 된 디스크 액세스 + 사용자 인증시 생성 된 쿠키 값 (스푸핑하기가 어려워야 함)에 의존합니다.
그리고 한 가지 더 많은 것은 https를 사용할 때 각 요청에 구문 문구를 보낼 때 걱정할 필요가 없습니다. (10-100-1000 요청마다 변경할 수 있음)
왜 실제 데이터베이스를 사용하지 않습니까? –
왜 데이터베이스에 액세스하기 위해 마스터 비밀번호가 필요합니까? 데이터베이스를 찾고 그것을 여는 데 사용할 수있는 사용자 아이디가 아닌가? – dqhendricks
@ 대각선, 내가 가지고있는 유일한 다른 옵션은 MySQL이지만, 나는 암호화 문제를 해결하지 못할 것이라고 생각합니다. – chrisklaussner