2014-01-13 2 views
2

Windows에서 sybase 데이터베이스에 대한 DBA 권한이 있습니다.Sybase 데이터베이스 암호 "recovery"

암호를 모르는 다른 사용자가 있습니다.

나는 정기적으로 에 암호를 알고있는 응용 프로그램을 사용하고 암호를 사용하여 응용 프로그램에 자동으로 로그인합니다. 그러나, 응용 프로그램이나 해당 DLL/파일/registry/etc에서 암호를 찾을 수있는 방법을 찾을 수 없습니다.

분명히 사용자의 암호를 변경하고 싶지 않습니다. 응용 프로그램의 암호를 업데이트 할 수 없기 때문입니다.

이 사용자로 데이터베이스에 로그인 할 수있게되었습니다.

암호를 일반 텍스트로 기록 할 데이터베이스 서버에 대한 로깅 설정이 있습니까? 또는 (login_procedure를 통해) 암호를 얻는 데 사용할 수있는 다른 방법은 무엇입니까? 암호 해시를 얻는 것만으로도 괜찮습니다.

+0

이 문제는 소프트웨어 개발과 어떻게 관련이 있습니까? 즉, 코드로 인해 발생하는 문제는 무엇입니까? –

+1

"암호를 일반 텍스트로 기록 할 데이터베이스 서버에 대한 로깅 설정이 있습니까?" -있는 경우, 해당 서버의 사용자가되고 싶지 않습니다. 암호를 일반 텍스트로 저장하는 것은 일반적으로 좋지 않습니다. (대부분의 규칙에 예외가 있기 때문에 "항상"이라고 말하지는 않겠지 만, 항상 그렇습니다.) –

+0

@RobertHarvey, 좋은 질문입니다. 저는 다른 SQL 쿼리와 프로 시저를 사용하여 데이터베이스를 찾으려고했습니다. Visual Studio 및 프로세스 모니터를 통해 디버깅 할 수 있습니다. 또한 일단 발견되면 데이터베이스에 액세스하기 위해 내 응용 프로그램 내에서이 암호를 사용하게됩니다. 그래서, 내가 코드로 내 문제를 해결하려고 시도하는 동안, 나는이 주제를 Off Topic으로 닫아야하는지 이해한다. –

답변

3

암호가 일반 텍스트로 제공되는 SAP Sybase 지원 방법이 없습니다. master..syslogins.passwords 열을 쿼리하여 해시 된 암호를 볼 수 있습니다.

가능한 해결 방법은 새 사용자를 만들고 해당 사용자의 데이터베이스에서 별칭을 지정하는 것입니다.

sp_addalias 같은 명령을 사용하면됩니다.

당신은 해시 된 암호

+0

나는 길 *이있을 것이라고 확신한다; 나는 sybase 데이터베이스와 서버가 뚫을 수 없다는 것을 믿기가 힘듭니다. 아마도 오랜 시간이 걸릴 수 있고 가짜 sybase 서버를 설정하는 방법을 알아낼 수 있습니다.이 서버는 연결 문자열을 얻을 수 있어야하지만 ...이 작업을 수행하기 위해 어디에서 시작해야할지 모르겠습니다. –

+0

나는 암호 해쉬, btw도 괜찮을 것이다. –

+0

'Select password from syslogins'는 모든 사용자에게'NULL '을 반환합니다. –

2

볼 수 있습니다 당신은 그것을 아무데도 기록되지 그리고 우리가 그것을 저장하지 않는 한 일반 텍스트 암호를 얻을 수 없습니다. ISYSUSER 시스템 테이블에 저장된 내용은 암호의 SHA-256 해시이므로 암호를 가져올 수 없습니다. (암호의 해시가 아닙니다. 임의의 소금을 포함합니다.)

그러나 DBA 권한이있는 경우 데이터베이스의 모든 작업을 수행 할 수 있습니다. 특정 사용자로 을 연결해야하는 경우 DBA 권한을 가진 사용자로 연결 한 다음 SETUSER 문을 사용할 수 있습니다.

면책 조항 : SQL Anywhere 엔지니어링에서 SAP를 위해 일합니다.

+0

맞아요, 나는 소금을 가지고 있다고 생각했습니다. 얼마나 오래 또는 어디에서 해시가 저장되는지 생각해보십시오. 내 생각에 첫 번째 바이트 (0x01)는 중요하지 않으며 다음 72 개는 해시와 소금을 포함하며 64 개는 해시를 나타내고 8 개 채널은 남겨 둡니다 aracter (4 바이트 16 진수) 소금. 나는 해시의 600000 가지 이상의 방법을 시도했다. –

+0

몇 가지 배경 정보 : 나는 모두'auto_user'라는 사용자가 모두 같은 (알지 못하는) 패스워드를 가지고있는 약 400 개의 파일을 가지고 있습니다. 적어도 적어도 * 그것은 각각 같다고 생각합니다. 이 사용자 및 암호는 타사 응용 프로그램에서 작성한 것입니다. DBA 사용자 이름과 암호는 각각 다르므로이 모든 파일에 대해 DBA에 액세스 할 수는 있지만 힘든 과정입니다.이 (민감한) 정보를 유지 관리하고 싶지 않습니다. –

+0

해시에서 암호를 가져올 수 없다면 ... 실제로 강제력이 강한 컴퓨터를 실행하거나 2 주 동안 10 번을 시도해도 괜찮습니다. 그래서 내가 알 고를 얻을 수 있다면, 그것은 실제로 많은 도움이 될 것입니다. (분명히 당신이 그것을 출판하지 않을 것이라는 것을 알고 있습니다, 나는 단지 나의 의도를 설명하고 싶었습니다.) –

0

또 다른 옵션은 응용 프로그램을 디 컴파일하여 암호를 찾는 것일 수 있습니다. 나는 올바른 생각으로 누가 암호를 프로그램 코드로 하드 ​​코딩할지 모릅니다. 그러나 그런 소리가 들렸습니다. 내부적으로 개발 된 앱이라면 소스 코드에 액세스 할 수 있습니까?

인 경우 응용 프로그램을 다시 컴파일 할 수있는 경우 키링 (Mac, Linux) 또는 DPAPI (Windows)를 사용하여 가능한 한 암호의 암호화 된 인스턴스를 안전하게 저장할 수 있습니다. 애플리케이션 코드 외부. 당신은 그것을 바꿀 수있을 것이고, 해킹하고 소스 코드 나 바이너리에 접근 할 수있는 임의의 사람은 당신이 시도하는 것처럼 프로그램을 검사 할 수 없을 것이다.

나는 또한 이것이 오래된 게시물임을 깨닫고 문제를 해결했거나 지금으로 옮겼습니다.;-)

+0

응용 프로그램은 QuickBooks Desktop이며 사용자 암호없이 어떻게 든 기본 SQL Anywhere 서버에 액세스 할 수 있습니다. 우리는 문제를 해결하지 못하고 그 문제를 해결했습니다. –

+1

Oohhh, QuickBooks. 내 애도. ;-) – Craig

+0

Windows Everyone 그룹에서 DBA로 통합 매핑을 사용하는 로그온 매핑을 수행하고 있는지 궁금합니다. 그냥 큰소리로 외치다. – Craig

관련 문제