1
0
mirror of https://github.com/apache/httpd.git synced 2025-05-30 01:07:09 +03:00
apache/docs/manual/mod/mod_auth_digest.xml.ko
André Malo ef27013c2f update revision references
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@421136 13f79535-47bb-0310-9956-ffa450edef68
2006-07-12 05:37:53 +00:00

330 lines
12 KiB
XML

<?xml version="1.0" encoding="EUC-KR" ?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
<!-- English Revision: 105989:420990 (outdated) -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_auth_digest.xml.meta">
<name>mod_auth_digest</name>
<description>MD5 Digest Authentication을 사용한 사용자인증.</description>
<status>Experimental</status>
<sourcefile>mod_auth_digest.c</sourcefile>
<identifier>auth_digest_module</identifier>
<summary>
<p>이 모듈은 HTTP Digest Authentication을 구현한다.
그러나 많은 테스트를 거치지 않은 실험적인 모듈이다.</p>
</summary>
<seealso><directive module="core">AuthName</directive></seealso>
<seealso><directive module="core">AuthType</directive></seealso>
<seealso><directive module="core">Require</directive></seealso>
<seealso><directive module="core">Satisfy</directive></seealso>
<section id="using"><title>Digest Authentication 사용하기</title>
<p>MD5 Digest authentication은 매우 쉽게 사용할 수 있다.
<code>AuthType Basic</code><directive
module="mod_auth_basic">AuthBasicProvider</directive> 대신
<code>AuthType Digest</code><directive
module="mod_auth_digest">AuthDigestProvider</directive>
사용하여 간단히 인증을 설정할 수 있다. 그리고 최소한 보호하려는
영역의 기본 URI을 <directive module="mod_auth_digest"
>AuthDigestDomain</directive> 지시어에 사용한다.</p>
<p><a href="../programs/htdigest.html">htdigest</a> 도구를
사용하여 사용자 (문자)파일을 만들 수 있다.</p>
<example><title>예제:</title>
&lt;Location /private/&gt;<br />
<indent>
AuthType Digest<br />
AuthName "private area"<br />
AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
<br />
AuthDigestProvider file<br />
AuthUserFile /web/auth/.digest_pw<br />
Require valid-user<br />
</indent>
&lt;/Location&gt;
</example>
<note><title>주의</title>
<p>Digest authentication은 Basic authentication보다 더
안전하지만, 브라우저가 지원해야 한다. 2002년 11월 현재 digest
authentication을 지원하는 브라우저에는 <a
href="http://www.w3.org/Amaya/">Amaya</a>, <a
href="http://konqueror.kde.org/">Konqueror</a>, (Windows용은
질의문자열과 함께 사용하면 안되지만 - 해결방법은 아래 "<a
href="#msie">MS Internet Explorer 문제 해결하기</a>"를 참고)
Mac OS X와 Windows용 <a
href="http://www.microsoft.com/windows/ie/">MS Internet
Explorer</a>, <a href="http://www.mozilla.org">Mozilla</a>,
<a href="http://channels.netscape.com/ns/browsers/download.jsp"
>Netscape</a> 버전 7, <a href="http://www.opera.com/">Opera</a>,
<a href="http://www.apple.com/safari/">Safari</a> 등이 있다.
<a href="http://lynx.isc.org/">lynx</a>는 digest authentication을
지원하지 <strong>않는다</strong>. digest authentication이
basic authentication 만큼 널리 구현되지 않았기때문에 모든
사용자가 지원하는 브라우저를 사용하는 경우에만 사용해야
한다.</p>
</note>
</section>
<section id="msie"><title>MS Internet Explorer 문제 해결하기</title>
<p>현재 Windows용 Internet Explorer는 Digest authentication
사용시 질의문자열이 있는 <code>GET</code> 요청을 RFC와 다르게
처리하는 문제가 있다. 몇가지 방법으로 이 문제를 해결할 수
있다.</p>
<p>
첫번째는 프로그램에 자료를 넘겨주기위해 <code>GET</code>
대신 <code>POST</code> 요청을 사용하는 방법이다. 이 방법이
가능하다면 가장 간단한 해결책이다.
</p>
<p>또, 아파치 2.0.51부터 <code>AuthDigestEnableQueryStringHack</code>
환경변수를 제공하여 문제를 해결한다. 요청에
<code>AuthDigestEnableQueryStringHack</code>을 설정하면
아파치는 MSIE 버그를 피해갈 조치를 취하고 요청 URI를 digest
비교에서 제외한다. 이 방법은 다음과 같이 사용한다.</p>
<example><title>MSIE에서 Digest Authentication 사용하기:</title>
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
</example>
<p>선택적인 환경변수 설정에 대한 자세한 내용은 <directive
module="mod_setenvif">BrowserMatch</directive> 지시어를
참고하라.</p>
</section>
<directivesynopsis>
<name>AuthDigestProvider</name>
<description>이 위치에 대한 인증제공자를 지정한다</description>
<syntax>AuthDigestProvider On|Off|<var>provider-name</var>
[<var>provider-name</var>] ...</syntax>
<default>AuthDigestProvider On</default>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>
<usage>
<p><directive>AuthDigestProvider</directive> 지시어는 이
위치에서 사용자를 인증할 제공자를 지정한다. 값이
<code>On</code>이면 기본제공자(<code>file</code>)를 사용한다.
<module>mod_authn_file</module> 모듈이 <code>file</code>
제공자를 구현하기때문에 서버에 이 모듈이 있는지 확인해야
한다.</p>
<p>제공자는 <module>mod_authn_dbm</module>
<module>mod_authn_file</module>을 참고하라.</p>
<p>값이 <code>Off</code>이면 제공자 목록을 지우고 기본상태로
돌아간다.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestQop</name>
<description>digest authentication가 사용할
보호수준(quality-of-protection)을 지정한다.</description>
<syntax>AuthDigestQop none|auth|auth-int [auth|auth-int]</syntax>
<default>AuthDigestQop auth</default>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>
<usage>
<p><directive>AuthDigestQop</directive> 지시어는
<dfn>보호수준(quality-of-protection)</dfn>을 지정한다.
<code>auth</code>는 (사용자명/암호) 인증만 하고,
<code>auth-int</code>는 인증과 완결성 검사를 (MD5 해쉬도
계산하여 검사한다) 한다. <code>none</code>은 (완결성 검사를
하지않는) 오래된 RFC-2069 digest 알고리즘을 사용한다.
<code>auth</code><code>auth-int</code>를 모두 지정할
수 있다. 이 경우 브라우저는 어떤 것을 사용할지 선택한다.
브라우저가 어던 이유에서건 challenge를 좋아하지 않는다면
<code>none</code>을 사용해야 한다.</p>
<note>
<code>auth-int</code>는 아직 구현되지 않았다.
</note>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestNonceLifetime</name>
<description>서버 nonce가 유효한 기간</description>
<syntax>AuthDigestNonceLifetime <var>seconds</var></syntax>
<default>AuthDigestNonceLifetime 300</default>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>
<usage>
<p><directive>AuthDigestNonceLifetime</directive> 지시어는
서버 nonce가 유효한 기간을 조절한다. 클라이언트가 만기된
nonce를 가지고 서버에 접근하면 서버는 <code>stale=true</code>
함께 401을 반환한다. <var>seconds</var>가 0보다 크면 nonce가
유효한 기간을 지정한다. 아마도 10 초보다 작게 설정하면 안된다.
<var>seconds</var>가 0보다 작으면 nonce는 영원히 만기되지
않는다. <!-- 아직 구현되지 않았음: <var>seconds</var>가
0이면 클라이언트는 정확히 한번만 nonce를 사용할 수 있다.
한번만 사용할 수 있는 nonce는 재생공격(replay attack)에
대해 더 안전한 보안을 제공하지만, 브라우저가 요청들을 연속해서
보내거나 여러 연결을 동시에 할 수가 없어서 성능이 상당히
떨어질 수 있음을 주의하라. 브라우저는 nonce를 이미 사용하였는지
쉽게 알아낼 수 없기때문에 요청을 연속해서 보낸후, 첫번째
요청을 제외하고 401 응답을 받은 다음 요청을 다시 보내게
된다. 또 재생공격에 대한 보호는 POST 요청과 같이 동적으로
내용을 생성하는 경우에만 의미가 있음을 주의하라. 정적인
내용의 경우 공격자는 이미 완전한 내용을 가지고 있으므로,
한번만 사용할 수 있는 nonce는 의미가 없다. -->
</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestNonceFormat</name>
<description>nonce를 만드는 방법을 결정한다</description>
<syntax>AuthDigestNonceFormat <var>format</var></syntax>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>
<usage>
<note>아직 구현되지 않았다.</note>
<!-- AuthDigestNonceFormat 지시어는 nonce를 만드는 방법을
결정한다. -->
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestNcCheck</name>
<description>서버가 보내는 nonce-count를 검사할지 여부</description>
<syntax>AuthDigestNcCheck On|Off</syntax>
<default>AuthDigestNcCheck Off</default>
<contextlist><context>server config</context></contextlist>
<usage>
<note>
아직 구현되지 않았다.
</note>
<!--
<p>AuthDigestNcCheck 지시어는 서버가 보내는 nonce-count를
검사할지 결정한다.</p>
<p>보안상 권장하지만 이 지시어를 On으로 설정하면 성능이
크게 떨어진다. nonce-count를 검사하려면 (digest authentication
여부와 관계없이 Authorization 헤더를 보내는) *모든* 요청을
임계영역(critical section)을 통해 처리해야 한다. 서버가
Authorization 헤더를 포함한 매우 많은 요청을 처리한다면
성능이 현저히 떨어질 수 있다.</p>
-->
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestAlgorithm</name>
<description>digest authentication에서 challenge와 response
hash를 계산하는 알고리즘을 선택한다</description>
<syntax>AuthDigestAlgorithm MD5|MD5-sess</syntax>
<default>AuthDigestAlgorithm MD5</default>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>
<usage>
<p><directive>AuthDigestAlgorithm</directive> 지시어는
challenge와 response hash를 계산하는 알고리즘을 선택한다.</p>
<note>
<code>MD5-sess</code>는 아직 완전히 구현되지 않았다.
</note>
<!--
<p><code>MD5-sess</code>를 사용하려면
<code>mod_auth_digest.c</code>의 <code>get_userpw_hash()</code>
함수를 먼저 작성해야 한다.</p>
-->
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestDomain</name>
<description>digest authentication에서 같은 보호영역에 속하는
URI들</description>
<syntax>AuthDigestDomain <var>URI</var> [<var>URI</var>] ...</syntax>
<contextlist><context>directory</context><context>.htaccess</context>
</contextlist>
<override>AuthConfig</override>
<usage>
<p><directive>AuthDigestDomain</directive> 지시어는 같은
보호영역에 있는 (<em>예를 들어</em> 같은 영역과 사용자명/암호
정보를 사용하는) URI들을 지정한다. 지정한 URI는 접두사로
사용한다. 클라이언트는 URI "아래" 모두를
같은 사용자명/암호로 보호한다고 가정한다. URI는
(<em></em>, 스킴(scheme), 호스트, 포트 등을 포함하는)
절대 URL이거나 상대 URI이다.</p>
<p>이 지시어는 항상 <em>지정해야</em> 하며, 최소한 영역들의
기본 URI(들)를 포함<em>해야</em> 한다. 생략하면 클라이언트는
이 서버로 보내는 <em>모든 요청</em>에 Authorization 헤더를
포함한다. 그러면 요청의 크기가 커지며, <directive
module="mod_auth_digest">AuthDigestNcCheck</directive>
사용한다면 성능에 나쁜 영향을 줄 수 있다.</p>
<p>다른 서버의 URI를 지정하면, (이를 이해하는) 클라이언트는
여러 서버마다 매번 사용자에게 묻지않고 같은 사용자명/암호를
사용할 수 있다.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AuthDigestShmemSize</name>
<description>클라이언트를 추적하기위해 할당하는 공유메모리량</description>
<syntax>AuthDigestShmemSize <var>size</var></syntax>
<default>AuthDigestShmemSize 1000</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p><directive>AuthDigestShmemSize</directive> 지시어는
클라이언트를 추적하기위해 서버가 시작할때 할당하는
공유메모리량을 정의한다. 공유메모리는 최소한 <em>하나의</em>
클라이언트를 추적하기위해 필요한 공간보다 작을 수 없음을
주의하라. 이 값은 시스템에 따라 다르다. 정확한 값을 알려면
<directive>AuthDigestShmemSize</directive><code>0</code>으로
설정하고 서버를 시작한후 오류문을 참고하라.</p>
<p><var>size</var>는 보통 바이트 단위이지만, 뒤에
<code>K</code><code>M</code>을 사용하여 KBytes나 MBytes를
나타낼 수 있다. 예를 들어, 다음 지시어들은 모두 같다:</p>
<example>
AuthDigestShmemSize 1048576<br />
AuthDigestShmemSize 1024K<br />
AuthDigestShmemSize 1M
</example>
</usage>
</directivesynopsis>
</modulesynopsis>