知識ベース

ホモグリフ

正書法と活版印刷では、 ホモグリフは、同一または非常によく似た形の2つ以上の書記素、文字、またはグリフの1つです。指定は、これらのプロパティを共有する文字のシーケンスにも適用されます。

シノグリフは、外見は同じですが、同じことを意味するグリフです。シノグリフは、非公式にはディスプレイバリアントとも呼ばれます 。ホモグラフという用語はホモグリフと同義で使用される場合がありますが、通常の言語の意味では、ホモグラフは同じ綴りであるが、異なる意味、文字ではなく単語の特性を持っている単語です。

2008年、Unicodeコンソーシアムは、単一スクリプト内の文字の視覚的な類似性、および異なるスクリプト内の文字間の類似性に由来するさまざまな問題に関するテクニカルレポート#36を公開しました。

歴史的な観点でのホモグリフの混乱の例は、後者の文字を含まない書体で古い英語のテキストを設定するときに「y」を使用して「þ」を表すことに起因します。それは間違って暗示、 イェオールド専門店などの現象を現代につながっているという以前あなたがた / JIの/書かれた言葉。詳細については、とげを参照してください。

ホモグリフ記号の例は、(a)分音記号とウムラウト(両方ともドットのペアですが、意味は異なりますが、同じコードポイントでエンコードされています)。 (b)ハイフンとマイナス記号(両方とも短い水平ストロークですが、意味は異なりますが、多くの場合同じコードポイントでエンコードされます)。数字と文字のうち、数字1と小文字lは常に別々にエンコードされますが、多くのフォントでは非常によく似たグリフが与えられ、数字0と大文字Oは常に別々にエンコードされますが、多くのフォントでは非常によく似たグリフが与えられます。事実上、ホモグリフのペアのすべての例は、明確に区別可能なグリフと個別のコードポイントを使用してグラフィカルに区別できる可能性がありますが、これが常に行われるとは限りません。 one / elホモグリフとzero / ohホモグリフを明確に区別しない書体は、文脈なしでは文字を常に区別できない式、URL、ソースコード、ID、およびその他のテキストを書くのには不適切と見なされます。たとえば、スラッシュ0によってグリフを区別するフォントは、これらの用途に適しています。

ウムラウトと糖尿病

機械式タイプライターの時代には、これらは同じキーで入力されていましたが、これは二重反転コンマにも使用されていました。しかし、ウムラウトは、特に2つの短い垂直線(2つのドットではない)として発生しました(Sutterlinを参照)。ちなみに、アルバニア語の文字Eの上にある2つのドットは、糖尿病として説明されていますが、糖尿病の機能を果たしていません。

0およびO; 1、lおよび私

今日使用されている2つの一般的で重要なホモグリフのセットは、数字のゼロと大文字のO(つまり0とO)です。数字の1、小文字のLと大文字のi(1、l&I)。機械式タイプライターの初期には、これらのグリフの視覚的な違いはほとんど、またはまったくなかったため、タイピストはそれらをキーボードショートカットとして交換可能に扱いました。実際、ほとんどのキーボードは数字「1」のキーさえも持たず、代わりにユーザーが文字「l」を入力する必要があり、一部は0も省略していました。これらの同じタイピストは1970年代と1980年代にコンピューターのキーボードオペレーターに移行しました、彼らの古いキーボードの習慣は彼らと共に続いており、時折混乱の原因となった。

現在のほとんどのタイプデザインでは、通常、数字のゼロをより狭く描画し、目立つセリフを使用して数字の1を描画することにより、これらのホモグリフを慎重に区別しています。初期のコンピューター印刷はさらに進んで、ゼロにスラッシュまたはドットを付けました。スカンジナビア文字「Ø」とギリシャ文字Φ(phi)を含む新しい対立につながりました。これらの文字を区別するための文字タイプの再設計により、混乱が少なくなりました。特定の観察者に2つの異なる文字が同じように見える程度は、「視覚的類似性」と呼ばれます。

複数文字のホモグリフ

文字のいくつかの他の組み合わせは似ています。たとえば、 rnmに似ており、 cldに似ており、 vvwに似ています。

特定の狭いスペースのフォント(Tahomaなど)では、j、l、iなどの文字の隣に文字cを配置すると、cj cl ci(gda)などのホモグリフが作成されます。

一目で一緒に見られるいくつかのキャラクターが隣り合って配置されると、それらは別の無関係なキャラクターの視覚的な印象を与えます。もっと正確に言うと、一部のタイポグラフィの合字は、スタンドアロンのグリフに似ていることがあります。例えば、Fiの結紮 (FI)は 、いくつかの書体やフォントでAに似て見ることができます。この混乱の可能性は、合字の使用に反対する議論である場合があります。

Unicodeホモグリフ

Unicode文字セットには、多くの強く同形の文字が含まれています。これらはさまざまな状況でセキュリティリスクを引き起こし(UTR#36に対応)、最近では国際化ドメイン名に関して特に注意を喚起しています。 1つの文字をそのホモグリフで置き換えることにより、意図的にドメイン名をスプーフィングし、フィッシングで悪用される可能性のある2番目のドメイン名を作成します( メイン記事IDN homograph attackを参照 )。多くのフォントでは、ギリシャ文字「Α」、キリル文字「А」およびラテン文字「A」は、ラテン文字「a」およびキリル文字「а」と同じように視覚的に同一ですラテン文字「aBeHKopcTxy」およびキリル文字「аВеНКорсТху」)。ドメイン名は、これらのフォームの1つを別の登録名で別のフォームに置き換えるだけで、偽装できます。同じスクリプト内には、「í」(鋭いアクセント付き)、「i」、É(E-acute)、Ė(E dot above)、È(E-grave)などの準ホモグリフの例も数多くあります。 Í(鋭アクセント付き)およびĺ(鋭アクセント付き小文字L)。この特定のセキュリティ問題を議論するとき、類似文字の任意の2つのシーケンスは、「ホモグリフペア」と見なされる可能性の観点から、またはシーケンスが明らかに単語のように見える場合は「疑似ホモグラフ」として評価される場合がありますこれらの用語自体が他のコンテキストで混乱を引き起こす可能性があること)。中国語では、多くの簡体字中国語文字は、対応する繁体字中国語文字のホモグリフです。

TLDレジストリとWebブラウザの設計者による努力は、同形異義語の混乱のリスクを最小限に抑えるために進行中です。一般的に、これは複数の言語の文字セットを混在させる名前を禁止することで達成されます(キリル文字usingを使用したtoys-Я-us.orgは無効になりますが、wikipedia.orgとwikipedia.orgはまだ別のWebサイトとして存在します)。カナダの.caレジストリは、発音区別記号だけが異なる名前に同じ所有者と同じレジストラを持たせることを要求することで、さらに一歩前進します。中国語の文字の処理は異なります。.orgと.infoでは、1つのバリアントの登録により、他のバリアントは誰も使用できなくなります。一方、.bizでは、同じ名前の従来の簡略バージョンが2ドメインバンドルとして配信されます。同じドメインネームサーバー。

関連するドキュメントは、開発者のWebサイトとICANNが提供するIDNフォーラムの両方にあります。

正規化

あらゆる種類のホモグリフは、「二重正規化」と呼ばれるプロセスを通じて検出できます。このプロセスの最初のステップは、ホモグリフセット、つまり特定のオブザーバーに同じように見える文字を識別することです。ここから、ホモグリフセットを表す単一のトークンが指定されます。このトークンはキヤノンと呼ばれます。次のステップでは、正規化と呼ばれるプロセスで、テキスト内の各文字を対応するキヤノンに変換します。テキストの2つの実行のキャノンが同じで、元のテキストが異なる場合、テキストにホモグリフが存在します。