Pete Finnigan's Oracle Security Forum (http://www.petefinnigan.com/forum/yabb/YaBB.cgi)
Oracle Security >> Oracle Internals >> Oracle 11g Authentication
(Message started by: Pete Finnigan on Sep 13th, 2007, 5:28am)

Title: Oracle 11g Authentication
Post by Pete Finnigan on Sep 13th, 2007, 5:28am
hello,

well I have been trying to understand oracle authentication protocol and  now i'm confronted  with some issues that i'm not able to resolve. Does anyone have answers to these questions.

  • where does oracle get  password hash and spare4 from for authentication? it can't be sys.user$(i suppose) as it allows u to modify the entries(from sys account) and they restored back to original once the user tryies to log in again.
  • the new sha1 based password changes everytime the same user is created. so how is the client able to generate the correct password for decrypting the  auth session key everytime the user logs in?
  • is there a way to use the old 10g passwords(case insensitive) for authentication in 11g also?
    please reply if u know the answers?


Title: Re: Oracle 11g Authentication
Post by Pete Finnigan on Sep 17th, 2007, 5:35am
I'd say sys.user$ is used for the password hashes (it would be silly to have it there if it wasn't), but there's probably a cache.

"the new sha1 based password changes everytime the same user is created. so how is the client able to generate the correct password for decrypting the  auth session key everytime the user logs in? "

Based on
http://www.petefinnigan.com/weblog/archives/00001086.htm

One guess is the CTIME (user creation time) is used as a salt. That could be verified by cloning a database and then changing the password for both users and seeing if the SHA values are consistent.

Alternatively, it could be PTIME (Password change time). An ALTER SYSTEM SET FIXED_DATE... may be able to verify whether changing the password of same user at the same (Oracle clock) time (to the same password) gives a consistent SHA.

In which case, I'd further guess that the DB server sends the appropriate date/time (or hash of it) to the client. The client can then hash the user's password accordingly.

You can retain case-insensitive passwords with
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE


Title: Re: Oracle 11g Authentication
Post by Pete Finnigan on Sep 17th, 2007, 8:43am
thanks gamyers,

setting SET SEC_CASE_SENSITIVE_LOGON worked !!!

in fact it has to be set to FALSE to retain case insensitive password.





Title: Re: Oracle 11g Authentication
Post by Pete Finnigan on Sep 20th, 2008, 6:19am
Oracle Database 11g now offers a way to quickly identify users with default passwords, implemented in the rather ludicrously simple way of checking a single data dictionary view: DBA_USERS_WITH_DEFPWD. (Note that DBA_ is a standard prefix
----------------------
williamgeorge



Powered by YaBB 1 Gold - SP 1.4!
Forum software copyright © 2000-2004 Yet another Bulletin Board