TortoiseSVN에서 저장 한 자격 증명을 추출하는 방법이 있습니까?
답변
간단한 대답 : TortoiseSVN Password Decrypter 를 사용 하여 암호를 포함하여 캐시 된 자격 증명을 쉽게 표시 할 수 있습니다.
긴 답변 : 도구가 작동하는 방식은 다음과 같습니다.
자격 증명은의 하위 디렉터리에 저장됩니다 %APPDATA%\Subversion\auth\
. 이 이전 답변 에서 나열한 내용은 다음 과 같습니다.
svn.simple
기본 인증을위한 자격 증명 (사용자 이름 / 암호) 포함svn.ssl.server
SSL 서버 인증서 포함svn.username
사용자 이름 전용 인증을위한 자격 증명 포함 (암호 필요 없음)
첫 번째 디렉토리는 관심있는 디렉토리입니다. GUID처럼 보이는 이름의 파일이 포함 된 것 같습니다. 자격 증명을 저장 한 각 저장소에 대해 하나씩.
이러한 파일의 암호는 Windows Data Protection API에 의해 암호화됩니다 . 위의 도구는 Obviex의 샘플 코드를 사용 하여이 API와 인터페이스하고 복호화를 수행합니다.
작동하려면 “인증 저장”확인란을 선택했을 때 실행 중이던 동일한 Windows 사용자 계정에 대한 액세스 권한이 있어야합니다. 이는 Windows Data Protection API가 Windows 계정에 연결된 암호화 키를 사용하기 때문입니다. 이 계정을 분실 한 경우 (또는 관리자가 암호를 재설정 한 경우) 더 이상 암호를 해독 할 수 없습니다 ( 아마도 무차별 대입 / 제 3 자 도구 를 사용하는 경우 제외 ). 동일한 사용자 이름 / 암호 (또는 아마도 SID)를 가진 새 Windows 계정을 갖는 것만으로는 충분하지 않습니다.
답변
아래 정보에 따르면 어떤 방식 으로든 로컬에서 해독 할 수있는 것 같습니다.
업데이트 : TortiseSVN 커뮤니티의 확실한 답변
암호화 된 유선을 통해 전송 될 때 연결시 핸드 셰이크 및 / 또는 동의 한 키를 사용하여 암호화됩니다.
로컬로 저장 / 읽을 때 Windows 계정에 연결된 키를 사용하는 Windows Crypto API를 통해 암호화 / 복호화됩니다.
로컬로 암호화 된 복사본은 키가 계정에 로컬이기 때문에 서버에서 해독 할 수 없습니다.
따라서 연결할 때 (HTTPS를 통해) 클라이언트는 적절한 Windows API를 통해 해독 된 자격 증명을 얻은 다음 HTTPS 전송에 포함합니다. HTTPS 는 자격 증명뿐만 아니라 SSL 인증서를 사용하여 클라이언트와 서버 간의 전체 통신을 암호화합니다 .