1 |
*8. Security Considerations
|
2 |
> The security considerations discussed in [RFC3986] also apply to
|
3 |
IRIs. In addition, the following issues require particular care for IRIs.
|
4 |
|
5 |
安全性に関して [[RFC 3986]] で議論されていることが [[IRI]]
|
6 |
にも適用されます。また、次の問題を IRI では特に注意する必要があります。
|
7 |
|
8 |
> Incorrect encoding or decoding can lead to security problems. In
|
9 |
particular, some UTF-8 decoders do not check against overlong byte
|
10 |
sequences. As an example, a "/" is encoded with the byte 0x2F both
|
11 |
in UTF-8 and in US-ASCII, but some UTF-8 decoders also wrongly
|
12 |
interpret the sequence 0xC0 0xAF as a "/". A sequence such as
|
13 |
"%C0%AF.." may pass some security tests and then be interpreted as
|
14 |
"/.." in a path if UTF-8 decoders are fault-tolerant, if conversion
|
15 |
and checking are not done in the right order, and/or if reserved
|
16 |
characters and unreserved characters are not clearly distinguished.
|
17 |
|
18 |
不正な符号化や復号が安全上の問題を招くことがあります。
|
19 |
特に、 UTF-8 復号器には長過ぎのバイト列の検査を行わないものがあります。
|
20 |
例えば、 [CODE(char)[/]] は UTF-8 でも US-ASCII でもバイト [CODE[0x2F]]
|
21 |
で符号化しますが、 UTF-8 復号器には誤って [CODE[0xC0]] [CODE[0xAF]]
|
22 |
というバイト列をも [CODE(char)[/]] と解釈します。 UTF-8
|
23 |
復号器が誤りに寛容であったり、変換と検査が正しい順序で行われなかったり、
|
24 |
予約文字と非予約文字を明確に区別しなかったりすると、 [CODE(ABNF)[[[path]]]] 中の
|
25 |
[SAMP(URI)[%C0%AF..]] のような列が安全試験をすり抜けて
|
26 |
[SAMP(URI)[/..]] と解釈されてしまうかもしれません。
|
27 |
|
28 |
> There are various ways in which "spoofing" can occur with IRIs.
|
29 |
"Spoofing" means that somebody may add a resource name that looks the
|
30 |
same or similar to the user, but that points to a different resource.
|
31 |
The added resource may pretend to be the real resource by looking
|
32 |
very similar but may contain all kinds of changes that may be
|
33 |
difficult to spot and that can cause all kinds of problems. Most
|
34 |
spoofing possibilities for IRIs are extensions of those for URIs.
|
35 |
|
36 |
IRI では色々な方法で[Q[なりすまし]]ができます。
|
37 |
[Q[なりすまし]]とは、他の資源名と同じか似たような名前に見えて実際には異なる資源を指しているようなことをいいます。
|
38 |
なりすました資源は実際の資源とよく似て見えるように偽装されているかもしれませんし、
|
39 |
どんな見つけにくい変更が加えられているかもしれませんし、
|
40 |
どんな問題が起こるかもわかりません。 IRI
|
41 |
のなりすましの余地は URI の余地を拡大したものとなっています。
|
42 |
|
43 |
> Spoofing can occur for various reasons. First, a user's
|
44 |
normalization expectations or actual normalization when entering an
|
45 |
IRI or transcoding an IRI from a legacy character encoding do not
|
46 |
match the normalization used on the server side. Conceptually, this
|
47 |
is no different from the problems surrounding the use of
|
48 |
case-insensitive web servers. For example, a popular web page with a
|
49 |
mixed-case name ("http://big.example.com/PopularPage.html") might be
|
50 |
"spoofed" by someone who is able to create
|
51 |
"http://big.example.com/popularpage.html". However, the use of
|
52 |
unnormalized character sequences, and of additional mappings for user
|
53 |
convenience, may increase the chance for spoofing. Protocols and
|
54 |
servers that allow the creation of resources with names that are not
|
55 |
normalized are particularly vulnerable to such attacks. This is an
|
56 |
inherent security problem of the relevant protocol, server, or
|
57 |
resource and is not specific to IRIs, but it is mentioned here for completeness.
|
58 |
|
59 |
なりすましは色々な理由で起こり得ます。まず、 IRI を入力したり遺物文字符号化から転符号化したりする時の利用者が期待する正規化や実際に行われる正規化が鯖側で使われている正規化と一致しない場合です。
|
60 |
これは、概念的には大文字・小文字を区別しないウェブ鯖を使うときの問題と変わりません。
|
61 |
例えば、混ぜ書きの人気ウェブ頁 ([SAMP(URI)[http://big.example.com/PopularPage.html]])
|
62 |
に[Q[なりすまし]]て何者かが [SAMP(URI)[http://big.example.com/popularpage.html]]
|
63 |
を作ることができるかもしれません。正規化されていない文字列を使ったり、
|
64 |
利用者の便宜を図って追加の写像を行ったりすると、
|
65 |
なりすましの機会が増えます。正規化されていない名前の資源の作成を認めるプロトコルや鯖は特にこのような攻撃に脆弱です。
|
66 |
これは関係するプロトコル、鯖、資源の生来の安全上の問題であって、 IRI
|
67 |
特有の問題ではありませんが、完全性のためにここで言及します。
|
68 |
|
69 |
> Spoofing can occur in various IRI components, such as the domain name
|
70 |
part or a path part. For considerations specific to the domain name
|
71 |
part, see [RFC3491]. For the path part, administrators of sites that
|
72 |
allow independent users to create resources in the same sub area may
|
73 |
have to be careful to check for spoofing.
|
74 |
|
75 |
なりすましはドメイン名部や [CODE(ABNF)[[[path]]]] 部などいろいろな IRI
|
76 |
部品で起こり得ます。ドメイン名部に関しては [[RFC 3491]] をご覧下さい。
|
77 |
[CODE(ABNF)[path]] 部については、同じ部分領域に別々の利用者が資源を作成できるようにしているサイトの管理者がなりすましの検査を銃bん行わなければならないかもしれません。
|
78 |
|
79 |
> Spoofing can occur because in the UCS many characters look very
|
80 |
similar. Details are discussed in Section 7.5. Again, this is very
|
81 |
similar to spoofing possibilities on US-ASCII, e.g., using "br0ken"
|
82 |
or "1ame" URIs.
|
83 |
|
84 |
なりすましは UCS によく似た文字が多くあることから起こり得ます。
|
85 |
詳細は7.5節で議論しています。繰り返しますが、これは US-ASCII
|
86 |
における[Q[コ 'フ |ノ夕]]、[Q[不 + 分な]] URI でのなりすましの可能性とよく似ています。
|
87 |
|
88 |
> Spoofing can occur when URIs with percent-encodings based on various
|
89 |
character encodings are accepted to deal with older user agents. In
|
90 |
some cases, particularly for Latin-based resource names, this is
|
91 |
usually easy to detect because UTF-8-encoded names, when interpreted
|
92 |
and viewed as legacy character encodings, produce mostly garbage.
|
93 |
|
94 |
なりすましは古い利用者エージェントに対応するために色々な文字符号化に基づいて[[百分率符号化]]した
|
95 |
URI を認めている時に起こり得ます。場合により、
|
96 |
特にラテン文字による資源名の場合には、
|
97 |
UTF-8 で符号化した名前を遺物文字符号化で解釈・
|
98 |
表示するとほとんどごみになってしまうので簡単に検出できるのが普通です。
|
99 |
|
100 |
> When concurrently used character encodings have a similar structure
|
101 |
but there are no characters that have exactly the same encoding,
|
102 |
detection is more difficult.
|
103 |
|
104 |
並行して使用している文字符号化が似たような構造を持っていて丁度同じ符号化の文字がない時には検出はより難しくなります。
|
105 |
|
106 |
> Spoofing can occur with bidirectional IRIs, if the restrictions in
|
107 |
section 4.2 are not followed. The same visual representation may be
|
108 |
interpreted as different logical representations, and vice versa. It
|
109 |
is also very important that a correct Unicode bidirectional
|
110 |
implementation be used.
|
111 |
|
112 |
なりすましは4.2節の制限に従わなかったときに双方向性 IRI
|
113 |
で起こり得ます。同じ視覚的表現が異なる論理的表現で解釈されたり、
|
114 |
その逆になったりします。正しい Unicode 双方向性実装を使うことも非常に重要です。
|
115 |
|
116 |
* メモ
|