database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
ㆍLDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
LDAP Q&A 586 게시물 읽기
No. 586
Re: userpassword에 대해서
작성자
김경하
작성일
2001-05-18 10:22
조회수
8,801

복호화가 불가능한 걸로 알고 있습니다.

복호화가 가능할려면 Key가 있어야 하는데, Key가 있으면 또 그 Key는 어떻게 관리해야 하는가 하는 문제가 생기죠.

(그 Key가 노출된다면 모든 비밀번호가 노출되는게 됩니다 -> 보안의 취약점)

그래서, 비밀번호 같은 경우에는 복호화가 가능한 암호화가 아니라,

단방향 암호화(보통 Hash 함수 같은 걸 많이 씁니다)를 해서, 복호화가 불가능하게 저장합니다.

 

Netscape LDAP의 경우 userPassword에서 UNIX Crypt나 SHA-1 알고리즘으로 단방향 암호화해서 저장하는 걸로 알고 있습니다.(옵션으로 선택 가능)

 

암호를 확인하는 방식은 2가지가 있는데, 보통 첫번째 방법을 씁니다.

 

첫번째는 Bind를 시도해서 성공여부로 인증을 하는 겁니다.

해당 사용자의 ID/PW로 LDAP에 Bind해서 LDAP_SUCCESS가 떨어지면 비밀번호가 맞다고 보는 거죠.

그런데, 이경우 보통 사용자는 ID정보만 입력하지만 실제 LDAP에 BIND할때는 DN을 사용하게 됩니다.

그래서, 보통은 Anonymous나 관리자로 LDAP에 bind해서 해당 id를 검색하여 해당 id가 존재하는지 여부를 판단한후 그 id에 해당하는 DN을 가져온 후 다시 DN과 사용자가 입력한 비밀번호로 bind를 시도해서 성공여부를 확인하는 거죠.

1. 관리자로 Bind

2. ldap_search( ..., "(uid=xxx)", ... );

3. ldap_get_dn()

4. ldap_bind( DN, 비밀번호, )

-> SUCCESS : 인증성공

5. ...

 

(*) 주의 : LDAP API 에서 비밀번호나 ID 중 하나가 NULL인 경우 무조건 Anonymous bind로 인식하기 때문에 사용자가 입력한 비밀번호가 NULL이 아닌지 반드시 사전에 체크해야 합니다.

 

 

두번째는 LDAP에서 위의 UNIX Crypt나 SHA-1 중 어느 알고리즘으로 되어 있는지 확인한 후 사용자가 입력한 비밀번호를 같은 알고리즘으로 단방향 암호화 한 후에 LDAP에 있는 userPassword랑 비교하는 거죠.

여기서 주의할 점은 Netscape LDAP의 경우 userPassword를 ldap_get_value()할 경우,

암호화 방식에 따라 {CRYPT}나 {SHA}라는 문자라 딸려 오기 땜에 반드시 이부분을 떼어낸 값이랑 비교해야 합니다.

 

그럼...

 

 

>>lriss 님께서 쓰시길<<

 

:: ldap에서 기본적으로 지원하는 attribute 중 하나인 userpassword를 기본적으로 제공하는 암호화 방

:: 식으로 암호화를 시켰는데 나중에 복호화를 시켜서 보거나 비교를 할려면 어떻게 해야 합니까? 메소드

:: 를 지원하지는 않는지요? jndi로 구현을 할려고 하는데 어떻게 해야 할지 몰라서 글을 올립니다.

:: 답변 부탁 드립니다.

[Top]
No.
제목
작성자
작성일
조회
595[질문]사용자 추가시에 에러 ldap_sasl_interactive_bind_s: No such attribute 가 생깁니다
soulkiss
2001-05-23
8233
596┕>Re: [질문]사용자 추가시에 에러 ldap_sasl_interactive_bind_s: No such attribute 가 생깁니다
심도선
2001-05-23 09:56:23
9031
597 ┕>Re: Re: [질문]사용자 추가시에 에러 ldap_sasl_interactive_bind_s: No such attribute 가 생깁니다
soulkiss
2001-05-23 10:06:54
8591
599  ┕>Re: Re: Re: [질문]사용자 추가시에 에러 ldap_sasl_interactive_bind_s: No such attribute 가 생깁니다
심도선
2001-05-23 11:01:04
8993
600   ┕>Re: Re: Re: Re: [질문]사용자 추가시에 에러 ldap_sasl_interactive_bind_s: No such attribute 가 생깁니다
soulkiss
2001-05-23 11:14:05
9214
602┕>openLdap은 잘 모르겠지만 개체를 add 할때..
하만복
2001-05-23 15:00:14
8601
592스키마 구성을 할 때
심도선
2001-05-22
8016
593┕>도움이 되실지..
하만복
2001-05-22 19:42:42
8515
594 ┕>근데 사랑넷도 등록이 되어 있네여 +_+
하만복
2001-05-22 20:16:03
8507
598 ┕>Re: 윗글에 덧붙여서..
심도선
2001-05-23 10:45:55
8346
605  ┕>oid 가 없으면...
하만복
2001-05-23 17:38:17
8295
615   ┕>Re: oid 가 없으면...
심도선
2001-05-25 10:12:24
8392
607  ┕>Re: Re: 윗글에 덧붙여서..
김경하
2001-05-24 12:05:51
8555
588Wheel이라는 분이 저에게 질문한 내용입니다. 답변은 빨간색으로
송상준
2001-05-20
7166
585userpassword에 대해서
lriss
2001-05-18
7219
586┕>Re: userpassword에 대해서
김경하
2001-05-18 10:22:19
8801
589 ┕>답변 감사합니다.
lriss
2001-05-21 14:40:45
8018
583제가 프로그램의 세계에 연재를 5월 - 8월까지 합니다.
송상준
2001-05-17
6113
584┕>Re: 제가 프로그램의 세계에 연재를 5월 - 8월까지 합니다.
유주열
2001-05-17 19:34:15
6843
582JavaLDAP을 사용하여 보았습니다. 후기(근오씨는 자료를 넘 잘 찾는다. 방법 좀 알려줘요)
송상준
2001-05-17
5723
587┕>Re: JavaLDAP을 사용하여 보았습니다. 후기(근오씨는 자료를 넘 잘 찾는다. 방법 좀 알려줘요)
박근오
2001-05-18 13:55:28
6469
581SUN서버에 LDAP1.x설치 성공. ^^
송지훈
2001-05-17
5597
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.030초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다