高校「情報Ⅰ」単語帳 - 実教出版「図説情報Ⅰ」 - 情報通信ネットワークの仕組みと役割

パケット ⭐⭐⭐

「小包」という意味の英単語で、通信回線やネットワークを流れる情報のうち、データをある長さごとに区切り、送信元や宛先などの制御情報を付加した小さなまとまりのこと。

一つのパケットは制御情報が記述された先頭のヘッダ部(header)と、それに続く送りたいデータ本体であるペイロード部(payload)で構成される。大きなデータを送信する場合は一定の大きさごとに分割され、それぞれにヘッダ部が付加されて複数のパケットとして独立に伝送される。末尾にも制御情報やデータ長を調整するための埋め草データ(パディング)が連結されることがある。

大きなデータを複数のパケットに分解して送受信することで、一本の回線や伝送路を複数の通信主体で共有して効率よく利用することができる。パケットを利用した通信方式を「パケット通信」(packet communication)、パケットが流通する通信ネットワークを「パケット交換網」「パケット通信網」という。現代のコンピュータネットワークや通信サービスはほぼすべてパケット交換方式で実装されている。

また、狭義には、様々な通信方式で定められるデータの送受信単位(PDU:Protocol Data Unit)のうち、末端から末端(大本の送信元から最終的な宛先)まで送り届けられるものをパケットと呼ぶ場合がある。

途中の通信経路が複数の伝送媒体やネットワークにまたがる場合でも、中継機器によって転送を繰り返し、時にはより小さい伝送単位へ分解・再統合されながら相手先まで送り届けられる。インターネット上をIP(Internet Protocol)や上位のプロトコルで伝送されるデータなどが該当する。

より狭義には、末端から末端まで配送される伝送単位のうち、エラー検出と再送制御による確実な伝送、データ受信順の保証(送信順による並べ替え)などが行われる信頼性の高い通信プロトコルのPDUをパケットとする立場もある。これらが保証されないIPやUDPと対比した場合のTCPなどである。

規格上の呼称としてはIPとUDPは「データグラム」(datagram)、TCPは「セグメント」(segment)、より上位層のプロトコル(HTTPなど)では「メッセージ」(message)あるいは「リクエスト」(request)および「レスポンス」(response)などが正式あるいは一般的で、「パケット」はこれらの総称あるいは通称として用いられることが多い。

一方、下位のデータリンク層(リンク層)では、イーサネット(Ethernet)やWi-Fi(無線LAN)、PPPなどは「フレーム」(frame)、ATMなどでは「セル」(cell)などのPDUが用いられる。

パリティビット 【パリティデータ】 ⭐⭐

データの伝送や記録の際に生じる誤りを検知できるように算出・付加される符号の一つで、ビット列中に含まれる「1」の数が偶数か奇数かを表すもの。これを利用した誤り検出方式を「パリティチェック」(parity check)という。

データを0と1が並んだビット列で表したときに、各ビットの値を足し合わせた値が奇数であるか偶数であるか(「1」の数が奇数か偶数か)を1ビットの値として表す。

和が奇数のときに1とする(偶数なら0)ものを「偶数パリティ」(even parity)、偶数のときに1とするものを「奇数パリティ」(odd parity)という。パリティを足すことでどのビット列も偶奇性が同じになる(偶数パリティを含めた全ビットの和は常に偶数)という意味でこのように呼ばれる。

データの送り手(送信者や書き込み時)は元のデータに対して一定の長さごとにパリティビットを算出して付加する。受け手(受信者や読み込み時)は受け取ったデータから同じようにパリティビットを算出し、付加されたパリティビットと比較する。

両者のパリティビットが一致すれば、パリティを含めたビット列中には誤りが存在しないか偶数個存在し、一致しなければ奇数個の誤りが生じていることが分かる。一つのパリティビットだけではどの位置に誤りがあるかは分からず、正しい値に訂正することはできない。

バースト誤りのような特殊な状況を除き、通常の用途では短いビット列中に同時に複数の誤りが生じる可能性は低いため、実用上はパリティビットが一致しなければ1ビットの誤りが含まれ、一致すれば誤りが生じていないとみなすことが多い。

パリティチェック 【奇偶検査】

データの誤り検出方式の一つで、ビット列中に含まれる「1」の数が偶数か奇数かを表す符号を算出してデータに付加する手法。最も単純な誤り訂正符号で、1ビットの誤り検出しかできないが算出や検証が容易で高速なため広く普及している。

データはコンピュータ上では「0」と「1」が並んだビット列として表されるが、これを一定の長さのブロックごとに区切り、各ビットの値を足し合わせた値が奇数であるか偶数であるか(「1」の数が奇数か偶数か)を表す1ビットの値(パリティビット)を末尾に付加する。

パリティを含むデータを受け取った側は、各ブロックごとに同じようにパリティを算出し、付加されたものと比較する。両者が一致すれば、そのブロックには誤りが存在しないか偶数個あることが分かり、一致しなければ奇数個の誤りがあることが分かる。

実用上、短く区切られたブロック中に同時に複数の誤りが生じる確率は低いため、パリティが一致すれば誤りが無く、一致しなければ1ビットの誤りが生じたとみなしてデータの再送や破棄などの制御を行う。

偶数パリティと奇数パリティ

パリティビットの値は、ブロックの各ビットとパリティを足し合わせた時、その偶奇性が常に同じになるように設定される。

全体の和が偶数になるように決められる(ブロック中の1の数が奇数なら1、偶数なら0)ものを「偶数パリティ」(even parity)、奇数になるように決められる(1の数が奇数なら0、偶数なら1)ものを「奇数パリティ」(odd parity)という。

水平パリティと垂直パリティ

一定の長さのブロックごとにパリティを算出して末尾に付加する方式を「垂直パリティ」(vertical parity)と呼び、単にパリティチェックといった場合はこの方式を指すことが多い。

一方、連続する数ブロックごとに、各ブロックの同じ位置にあるビット群をグループ化してパリティを算出・付与する方式を「水平パリティ」(horizontal parity)という。

両者を併用した「垂直水平パリティ」が用いられる場合もあり、パリティ用の記憶容量は約2倍必要になるが、同じブロック中の偶数個の誤りを検出したり、1ビットの誤りの訂正を行うことができる。

ネットワーク 【ネット】 ⭐⭐

「網」という意味の英単語。網そのものを指す用法の他に、複数の要素が互いに接続された網状の構造のことを比喩的にネットワークという。

ネットワーク状の構造を構成する各要素のことを「ノード」(node)、ノード間の繋がりのことを「リンク」(link)あるいは「エッジ」(edge)と言う。

ITの分野では、複数のコンピュータや電子機器などを繋いで信号やデータ、情報をやりとりすることができるコンピュータネットワークあるいは通信ネットワークのことを意味することが多い。

一般の外来語としては、人間関係の広がりのことや、組織や集団、拠点などの間の繋がりや体系、交通機関や道路などの地理的な構造(交通網)などをネットワークと呼ぶ。

WAN 【Wide Area Network】 ⭐⭐⭐

地理的に離れた地点間を結ぶ広域的な通信ネットワーク。建物内や敷地内を構内ネットワークと対比される用語で、通信事業者が設置・運用する回線網のことを指すことが多い。

また、通信事業者の回線網を通じて複数の拠点間のLANを相互に結び、全体として一つの大きなネットワークとした企業内ネットワークのことをWANと呼ぶこともある。

文脈によっては、世界の通信事業者、企業、各種組織などのネットワークを相互に結んだものという意味合いから、インターネットのことをWANと呼ぶ場合もある。

MAN (Metropolitan Area Network)

広域的な回線網のうち、一つの都市や市街地の内部を繋ぐ高速・高密度な回線網をMAN(マン/Metropolitan Area Network:メトロポリタンエリアネットワーク)と呼ぶことがある。

WANとLANの中間規模のネットワークの類型の一つで、通信拠点や施設間を光ファイバー回線などで結ぶ中長距離の高速な通信ネットワークと、建物内で末端のコンピュータや通信機器を結ぶLANを組み合わせて構築される。前者の拠点間ネットワークのみを指す場合もある。

CAN (Campus Area Network)

企業の大規模拠点や工場、大学、基地などで、広大な敷地内の建物や施設をまたいで敷設される構内ネットワークをCAN(キャン/Campus Area Network:キャンパスエリアネットワーク)と呼ぶことがある。

WANとLANの中間規模のネットワークの類型の一つで、複数の施設内のLANを地中などに敷設した高速な光ファイバー回線などで相互接続し、一体的に運用したものを指す。

概ね、単一の主体が所有・管理する地理的に連続した用地に敷設されたコンピュータネットワークをこのように呼ぶが、MANとの区別は必ずしも明確ではない。一つの街のように広大なアメリカの総合大学や大企業本社などでは構内ネットワークをMANと呼ぶ例も見られる。

プロトコル 【通信規約】 ⭐⭐⭐

手順、手続き、外交儀礼、議定書、協定などの意味を持つ英単語。IT分野では、複数の主体が滞りなく信号やデータ、情報を相互に伝送できるように定められた約束事や手順である「通信プロトコル」を指すことが多い。他分野や一般の外来語としては「規定の手順」などの意味で用いられることもある。

コンピュータ内部で回路や装置の間で信号を送受信する際や、通信回線やネットワークを介してコンピュータや通信機器がデータを送受信する際に、それぞれの分野で定められたプロトコルを用いて通信を行う。英語しか使えない人と日本語しか使えない人では会話ができないように、対応しているプロトコルが異なると通信することができない。

機器やソフトウェアの開発元が独自に仕様を策定し、自社製品のみで使用されるクローズドなプロトコルと、業界団体や標準化機関などが仕様を標準化して公開し、異なる開発主体の製品間で横断的に使用できるオープンなプロトコルがある。インターネットなどで用いられるプロトコルの多くは、IETF(Internet Engineering Task Force)などが公開している標準プロトコルである。

プロトコルの階層化

<$Img:TCP-IP-Layer-Model.png|right|TCP/IP階層モデル[PD]>

人間同士が意思疎通を行う場合に、どの言語を使うか(日本語か英語か)、どんな媒体を使って伝達するか(電話か手紙か)、というように伝達の仕方をいくつかの異なる階層に分けて考えることができるが、コンピュータ通信においても、プロトコルの役割を複数の階層に分けて考える。

階層化することによって、上位のプロトコル(を実装したソフトウェア)は自分のすぐ下のプロトコルの使い方(インターフェース)さえ知っていれば、それより下で何が起きているかを気にせずに通信を行うことができる。電話機の操作法さえ知っていれば、地中の通信ケーブルや通信会社の施設で何が起きているか知らなくても通話できるのに似ている。

各階層のプロトコル群の機能や役割の範囲はモデル化して整理することがある。現在広く普及しているのはインターネット通信などで一般的な「TCP/IP階層モデル」(DARPAモデル)で、物理的な装置や伝送媒体に近い側から順に「リンク層」「インターネット層」「トランスポート層」「アプリケーション層」の4階層に分類している。

OSI参照モデル 【OSI reference model】

コンピュータネットワークで様々な種類のデータ通信を行うために機器やソフトウェア、通信規約(プロトコル)などが持つべき機能や仕様を複数の階層に分割・整理したモデルの一つ。1980年代にCCITT(現在のITU-T)が策定した標準規格。

異機種間のデータ通信を実現するためのネットワーク構造の設計方針「OSI」(Open Systems Interconnection)に基づき、通信機能を7階層に分けて各層ごとに標準的な機能モジュールを定義している。

1984年にISO(国際標準化機構)と当時のCCITT(国際電信電話諮問委員会/現在のITU-T)が共同で策定した規格で、ISO側ではISO 7498として、CCITT側ではX.200として発行された。現代ではOSIを参照しないTCP/IPが事実上の標準として広く普及しているため、OSI参照モデルはほぼ有名無実化している。

第1層(L1:Layer 1)は「物理層」(physical layer)とも呼ばれ、データを通信回線に送出するための物理的な変換や機械的な作業を受け持つ。ピンの形状やケーブルの特性、電気信号や光信号、無線電波の形式などの仕様が含まれる。

第2層(L2:Layer 2)は「データリンク層」(data link layer)とも呼ばれ、回線やネットワークで物理的に繋がれた二台の機器の間でデータの受け渡しを行う。通信相手の識別や認識、伝送路上の信号の衝突の検知や回避、データの送受信単位(フレーム)への分割や組み立て、伝送途上での誤り検知・訂正などの仕様が含まれる。

第3層(L3:Layer 3)は「ネットワーク層」(network layer)とも呼ばれ、物理的な複数のネットワークを接続し、全体を一つのネットワークとして相互に通信可能な状態にする。ネットワーク内のアドレス(識別符号)の形式や割当の方式、ネットワークをまたいで相手方までデータを届けるための伝送経路の選択などの仕様が含まれる。

第4層(L4:Layer 4)は「トランスポート層」(transport layer)とも呼ばれ、データの送信元と送信先の間での制御や通知、交渉などを担う。相手方まで確実に効率よくデータを届けるためのコネクション(仮想的な専用伝送路)の確立や切断、データ圧縮、誤り検出・訂正、再送制御などの仕様が含まれる。

第5層(L5:Layer 5)は「セッション層」(session layer)とも呼ばれ、連続する対話的な通信の開始や終了、同一性の維持などを行う。アプリケーション間が連携して状態を共有し、一連の処理を一つのまとまり(セッション)として管理する機能を実現するもので、利用者の認証やログイン、ログアウトなどの状態管理を行う。

第6層(L6:Layer 6)は「プレゼンテーション層」(presentation layer)とも呼ばれ、アプリケーション間でやり取りされるデータの表現形式を定義する。通信に用いられるデータのファイル形式やデータ形式、暗号化や圧縮、文字コードの定義や形式間の変換などの仕様が含まれる。

第7層(L7:Layer 7)は「アプリケーション層」(application layer)とも呼ばれ、具体的なシステムやサービスに必要な機能を実装する。最上位の階層で、利用者が操作するソフトウェアが提供する具体的な機能や通信手順、データ形式などの仕様が含まれる。

クライアントサーバシステム 【CSS】 ⭐⭐

通信ネットワークを利用したコンピュータシステムの形態の一つで、機能や情報を提供する「サーバ」(server)と、利用者が操作する「クライアント」(client)をネットワークで結び、クライアントからの要求にサーバが応答する形で処理を進める方式。

サーバはシステムで利用されるデータを保存・管理したり、接続された周辺機器などのハードウェアを管理したり、何らかのデータ処理機能を有するコンピュータやその上で動作するソフトウェアで、これらの機能や情報などをネットワークを通じて外部に提供することができる。

クライアントはサーバから機能や情報の提供を受ける機器やソフトウェアで、利用者が手元で操作し、画面表示や入力の受付などを担当する。クライアントはネットワークを通じてサーバに様々な要求を送り、サーバがこれに応えて処理を行い、応答を返す。

狭義には、企業などの情報システムの実装形態の一つで、機能や情報を提供するサーバソフトウェアと、これに対応する専用のクライアントソフトウェアにより役割を分担して処理を進める方式のことをクライアントサーバシステムと呼ぶことがある。

この文脈では、クライアントとしてWebブラウザなど汎用の製品を用いる「Webアプリケーション」(Web系システム)などは区別・対比される。広義には(あるいは、原理的には)、Webもクライアント-サーバ型のモデルで実現されるシステムであるため注意が必要である。

他の方式との違い

1980年代頃から普及し始めたシステム形態で、それ以前はメインフレームなどの大型コンピュータ(ホスト)などに通信回線を通じて入出力端末(ターミナル)を接続し、ホストが集中的に処理を行う方式が一般的だった。

クライアントサーバシステムと比べると、ホストとサーバ、ターミナルとクライアントの役割はそれぞれ似ているが、ターミナルにコンピュータとしての機能がなく表示や操作に単純な方式しか利用できない一方、クライアントは独立した一台のコンピュータやデジタル機器であり、サーバから受信したデータを用いて複雑な処理や表示、操作などを利用者に提供することができる。

ちなみに、サーバとクライアントのように非対称に役割を分担するのではなく、対等な機能や立場のコンピュータやソフトウェアがネットワークを通じて相互に要求や応答を送り合って一つの機能を実現する形態もあり、「ピアツーピアシステム」(Peer to Peer system、P2Pシステム)などと呼ばれる。

クライアント ⭐⭐⭐

顧客、依頼人、得意先、施主などの意味を持つ英単語。ITの分野では、他のコンピュータやソフトウェアから機能や情報の提供を受けるコンピュータやソフトウェアのことをクライアントという。

コンピュータシステムの構成のうち、機能や情報を提供する側である「サーバ」(server)と、機能や情報の提供を受けて利用する側である「クライアント」(client)に役割を分けた方式を「クライアントサーバシステム」(client-server model)という。

クライアントはサーバの機能や情報の提供を受け、自らは利用者への情報の提示や入力・操作の受け付けなどを担当することが多い。クライアントがサーバに処理要求(リクエスト)を送り、サーバがこれに応じて処理を行い、結果を返答(レスポンス)する、という形で一連の処理が進められる。

コンピュータ(ハードウェア)のことを明示的に指し示す場合は「クライアントコンピュータ」「クライアントマシン」「クライアント機」などと呼ばれ、ソフトウェアのことを指す場合は「クライアントソフト」「クライアントソフトウェア」「クライアントプログラム」などと呼ばれる。また、「メールクライアント」「DHCPクライアント」のように、システムや通信方式などの種類を冠して「○○クライアント」と称することも多い。

ファットクライアントとシンクライアント

企業の情報システムなどのクライアントコンピュータのうち、パソコンなど単体でも利用される汎用コンピュータを流用したものを「ファットクライアント」(fat client)、独立したコンピュータとしては機能せず、サーバへ接続して利用することに特化した特殊なクライアント専用機を「シンクライアント」(thin client)という。

シンクライアントは企業などで多数のクライアントが必要な場合に、管理コスト低減やセキュリティ向上のために導入される。自らはデータの処理・保存などの能力をほとんどまったく持たず、通信・入出力機能のみの構成としたものは「ゼロクライアント」(zero client)と呼ばれることもある。

ターミナルとの違い

大型コンピュータ(メインフレーム)などの分野では、コンピュータ本体など集中的に処理を行う機械を「ホスト」(host)、利用者が操作する端末装置を「ターミナル」(terminal)と呼ぶことがある。

これらはサーバとクライアントの役割分担に似ているが、ターミナルにはコンピュータとしての機能が(ほとんど)なく本質的には入出力装置のセットに過ぎない一方、クライアントは独立した一台のコンピュータとして、サーバから受信したデータを用いて複雑な処理や表示、操作などを利用者に提供することができる。

LAN 【Local Area Network】 ⭐⭐⭐

限られた範囲内にあるコンピュータや通信機器、情報機器などをケーブルや無線電波などで接続し、相互にデータ通信できるようにしたネットワークのこと。概ね室内あるいは建物内程度の広さで構築されるものを指す。

銅線や光ファイバーなどを用いた通信ケーブルで機器間を接続するものを「有線LAN」(wired LAN)、電波などを用いた無線通信で接続するものを「無線LAN」(wireless LAN)という。

有線LANの通信方式としては「イーサネット」(Ethernet/IEEE 802.3)系諸規格が、無線LANの通信方式としては「Wi-Fi」(ワイファイ/IEEE 802.11)系諸規格がそれぞれ標準として普及しており、単にLANといった場合はこれらの方式を用いたネットワークを指すことが多い。他にも建物内に電気を供給するために張り巡らされた電力線を流用して通信する方式などがある。

主な用途

1980年代頃から企業や公的機関、大学、研究機関などで普及し始め、施設内にあるコンピュータを相互に接続し、高機能・高性能なサーバコンピュータでファイルなどの情報資源を一元的に管理したり、プリンタなどの機器を複数のコンピュータで共有するのに用いられてきた。

インターネットの一般への普及が始まると、構内の機器を外部への回線に接続する中継手段としても広く用いられるようになった。近年では一般家庭でもパソコンやスマートフォン、デジタル家電などを相互に接続したり、インターネットに接続するための通信ネットワークとして「家庭内LAN」が普及している。

他の分類

これに対し、通信事業者の回線網などを通じて地理的に離れた機器や施設間を広域的に結ぶネットワークを「WAN」(Wide Area Network:広域通信網、ワイドエリアネットワーク)と呼び、LANの対義語として用いられる。

LANとWANの中間規模のネットワークとして、一都市内などに収まる範囲の「MAN」(Metropolitan Area Network:メトロポリタンエリアネットワーク)や、大学のキャンパスや工場などで敷地内の複数の建物のLANを一つのネットワークに結んだ「CAN」(Campus Area Network:キャンパスエリアネットワーク)などの概念を用いることもある。

また、LANに似た概念として、個人の所有・利用するコンピュータや携帯機器、周辺機器などを無線通信などで相互に結ぶネットワークを「PAN」(Personal Area Network:パーソナルエリアネットワーク)、自動車などの(大型の)機器の内部で装置間を結ぶネットワークを「CAN」(Controller Area Network:コントローラエリアネットワーク)、これらをLANの一種に分類することもある。

無線LAN 【wireless Local Area Network】 ⭐⭐⭐

電波による無線通信により複数の機器間でデータの送受信を行なう構内ネットワークのこと。狭義にはIEEE 802.11規格に準拠した方式を指し、「Wi-Fi」(ワイファイ)の愛称で親しまれる。

LAN(Local Area Network)は室内や建物内、あるいはそれに準じる屋外の比較的狭い範囲内の機器を相互に接続するコンピュータネットワークで、機器間を通信ケーブルで繋いで電気信号や光信号を伝送するものを「有線LAN」(wired LAN)、直接繋がっていない機器間で電波などをやり取りするものを無線LANという。

通信ケーブルの取り回しがないことが最大のメリットで、同世代の技術や製品で比較すると有線LANに比べ通信速度や安定性、機密性などで劣ることが多いが、オフィスや家庭での日常的なネットワーク利用には十分な性能があるため、急速に普及が進んでいる。

単に無線LANと言えばほとんどの場合にIEEE 802.11シリーズの標準規格に準拠した機器で構成されるネットワークを指し、業界団体の推進する「Wi-Fi」の名称で普及している。広義にはBluetoothやZigBeeなど他方式によるネットワークを含むが、これらはWi-Fiよりも狭い範囲の通信が主な用途であるため無線PAN(Wireless Personal Area Network)と呼ばれることもある。

一方、同じ無線通信網でも通信事業者などが運用する広域的なネットワークは無線WAN(Wide Area Network)という。携帯電話網やそれを応用した移動体データ通信網などが該当する。スマートフォンは無線LANと無線WANの両方に対応しているのが一般的で、環境に応じて切り替えたり、両ネットワーク間を中継(テザリング/モバイルルータ)することができる。

アクセスポイント 【AP】 ⭐⭐

通信ネットワークの末端でコンピュータなどからの接続要求を受け付け、ネットワークへの通信を仲介する施設や機器のこと。現代では無線LANの中継機器を指すことが多い。

無線LANアクセスポイント

無線LAN(Wi-Fi)を構成する機器の一種で、ネットワーク内の機器間の通信を中継したり、有線ネットワークや有線通信の機器へ接続するための装置を無線LANアクセスポイント(無線アクセスポイント/Wi-Fiアクセスポイント)という。現代では単にアクセスポイントといった場合はこれを指すことが多い。

Wi-Fiの通常の通信モードでは、ネットワーク内の各機器はアクセスポイントと一対一で通信し、他の機器への通信はアクセスポイントが中継・転送する形で行われる。また、アクセスポイントにはイーサネット(Ethernet)や光ファイバーなどの通信ケーブルの接続口があり、これを通じて他のネットワークやインターネットなどに通信を中継することができる。

通信サービスのアクセスポイント

通信サービス事業者などが運用する施設や設備で、契約者が公衆回線などを通じて事業者のネットワークへ接続するための中継拠点のことをアクセスポイントという。00年代前半頃まではアクセスポイントといえばこれを指していた。

特に、インターネットサービスプロバイダ(ISP)やパソコン通信ネットワークに電話回線やISDN回線を通じてダイヤルアップ接続を行なう際、ダイヤル先の通信拠点のことをこのように呼んだ。

アクセスポイントにはパソコン通信のホストコンピュータやインターネットと常時接続された回線が用意されており、利用者からの接続を受け付けて通信サービスを提供する窓口となっていた。常時接続が一般的になった今日では利用者が機器に最寄りのアクセスポイントの設定などをする必要がなくなり、意識されることもなくなった。

インターネット 【Internet】 ⭐⭐⭐

共通の通信仕様を用いて全世界の膨大な数のコンピュータや通信機器を相互に繋いだ、巨大なコンピュータネットワーク。

通信規約(プロトコル)の「IP」(Internet Protocol)と関連技術を用いて、様々な組織の運用するネットワークや機器を互いに接続した地球規模のネットワークシステムである。個人や企業、公的機関など様々な主体が利用する、国の枠を超えた人類共通の通信インフラ・情報インフラとして広く普及している。

機能

インターネット上では様々な機能、サービス、システムが構築、提供されている。膨大な文書を相互に関連付けたWeb(ウェブ)や、手紙のように利用者間でメッセージを送受信できる電子メール(e-mail)、利用者間の交流を促進するSNS、テレビのように映像を流す動画配信サービスなどはその一例である。

今日ではインターネットにおける情報やサービスの多くはWebを通じて提供されるため、日常的にはWebのことを指してインターネットあるいはネットと呼ぶことも多いが、厳密にはWebはインターネット上の機能・サービスの一つに過ぎない。モバイルアプリのようにソフトウェアやサービスの運用基盤としてインターネットが用いられることも多く、人々は意識せずに様々な場面でインターネットの恩恵を受けている。

構成・運用

インターネット全体を管理・運営する単一の主体というものはなく、様々な組織の運営するネットワークが相互に接続された分散型のネットワークとなっている。ただし、IPアドレスやドメイン名、ポート番号、通信プロトコルの仕様など、インターネット全体で共有される識別情報や技術規格などについては、管理・統括する国際的な民間非営利団体(ICANN、IETF、W3Cなど)が存在する。

組織内の構内ネットワーク(LAN)などをインターネットに接続するには、すでにインターネットに参加しているネットワークへ接続する必要がある。通信事業者の光ファイバー回線などを敷設・契約して、通信事業者自身や他の主体(企業や官公庁、大学など)が運営する既存のネットワークへ接続する。

個人や家庭などでインターネットを利用するには、接続を仲介する専門の事業者「インターネットサービスプロバイダ」(ISP:Internet Service Provider)と契約し、通信会社の回線を経由して接続することが多い。モバイル回線では移動体通信事業者(携帯キャリア)がISPの機能も兼ねており、回線が開通すればすぐに端末からインターネットに接続できる。

歴史

インターネットの起源は1969年に米国防総省が中心となってアメリカの大学や研究所などを通信回線で相互に結んだ「ARPANET」とされ、学術機関を結ぶ情報ネットワークとして発展した。1986年に大学間の相互接続ネットワークは全米科学財団が主催する「NSFNet」に移り、初期のインターネットのバックボーンネットワークとなった。

1989年に米国でNSFNetと民間事業者ネットワークの相互接続が始まり、商用インターネット利用が開始された。日本では1984年の「JUNET」が起源となって大学や研究機関からNSFNetに接続できるようになり、1992年に当時のAT&T JensとIIJが一般向けISP事業を開始した。

当初は電話回線でISPの通信拠点(アクセスポイント)に接続し、データを電話の音声信号に変換して送受信する「ダイヤルアップ接続」が用いられたが、1999年には電話回線に音声と異なる周波数でデジタル信号を流す「ADSL」方式で常時接続サービスが開始され、2000年代以降は光ファイバー回線に置き換わっていった。

日本で広く一般にインターネットが認知され普及し始めたのはWindows 95が発売された1995年頃で、WindowsパソコンやMacintosh(現在のMac)でWeb(当時はWWW:World Wide Webと呼ばれた)を閲覧したり電子メールを送受信するという使い方が主流だった。

同時期に携帯電話の爆発的な普及が始まり、1990年代末には携帯電話端末からのインターネット電子メールの送受信、NTTドコモの「iモード」などネット技術を利用した情報サービスなどが普及した。2007年に「iPhone」「Android」が登場するとスマートフォンやタブレット端末が普及し、個人のネット利用の主流はパソコンからこれらの携帯端末に移っていった。

クラウドサービス

従来は手元のコンピュータに導入して利用していたようなソフトウェアやデータ、あるいはそれらを提供するための技術基盤(サーバなど)を、インターネットなどのネットワークを通じて必要に応じて利用者に提供するサービス。

機材やソフトウェア、処理性能、記憶領域、ファイル、データなど何らかの計算資源をインターネットなどの通信ネットワークを通じて提供し、利用者がいつでもどこからでも必要なときに必要なだけ資源にアクセスできるようなサービスの総称として用いられる。

どのような資源をサービス化したものかによって大きく3つに分類される。「SaaS」(Software as a Service)あるいは「ASPサービス」(Application Service Provider)は特定の機能を提供するアプリケーションソフトをサービス化したもので、利用者はWebブラウザなどを通じて事業者のサーバにアクセスし、その機能やデータを利用する。

「PaaS」(Platform as a Service)はソフトウェアの実行基盤であるオペレーティングシステム(OS)や言語処理系が導入済みのサーバ環境をサービス化したもので、契約者は自らが必要なソフトウェアを導入し、ネットワークを通じてその機能を利用する。

「IaaS」(Infrastructure as a Service)または「HaaS」(Hardware as a Service)は情報システムの運用基盤となるコンピュータ自体や通信回線などをサービス化したもので、契約者はOSやアプリケーションなど必要なソフトウェアやデータを導入して運用する。

いずれの場合も利用者はパソコンやスマートフォンなど最低限の操作環境(クライアント)さえあれば基本的な機能を利用することができ、ハードウェアやソフトウェア、データなどの資源を固定的に所有したり持ち歩いたりする必要がない。利用者に属するデータや情報も事業者側のコンピュータに保存されるため、使用環境(場所や端末など)が変わっても自らの資格情報(アカウント)を入力することで同じように利用できる。

かかるコストも従来のような個々の資産の購入代金ではなく、利用期間や使用量に応じた都度課金や月額課金などサービス利用料の形となる。個人向けのサービスでは基本的な機能が無料で提供され、追加の機能や記憶容量などにのみ課金される方式も多い。

P2P 【Peer to Peer】 ⭐⭐

ネットワーク上で機器間が接続・通信する方式の一つで、機能に違いのない端末同士が対等な関係で直に接続し、互いの持つデータや機能を利用しあう方式。また、そのような方式を用いるシステムやソフトウェアなどのこと。

一般的なネットワークシステムでは、データや機能の提供側と利用側に役割が分割されたクライアントサーバ方式がよく用いられる。利用者が操作するクライアントからの要求に基づいてサーバがデータや機能を提供する形態で、実装や運用が容易なため広く普及している。

P2P方式はこれと対比され、クライアントやサーバといった役割の違いがなく、同等の機能が実装されたソフトウェア同士が接続を結び、互いにデータや機能を提供し合う。三台以上の端末が互いに通信する場合、これをP2Pネットワークという。

通信や処理が特定のサーバに集中するクライアントサーバ方式に比べ、拡張性(スケーラビリティ)や耐障害性が高く、低コストで運用できる。また、用途や実装方式によっては通信の匿名性を高める効果が期待できる場合もある。

ただし、一元的なデータや状態の記録や管理が必要な用途には向かず、性能の安定性や処理の確実性、データの真正性なども期待しにくい。適用可能な用途であってもシステムの実装は困難で、システム全体の制御や動作確認、セキュリティの確保なども容易ではない。

ピュアP2PとハイブリッドP2P

すべての端末の機能や役割が完全に同一な、本来の意味でのP2Pシステムのことを特に「ピュアP2P」(pure P2P)ということがある。同じソフトウェアを導入したコンピュータが複数集まれば利用できるため運用しやすいが、すべての情報が各端末に分散しているため通信効率は低い。

一方、一部の端末にデータの所在や端末の接続状態などの情報を集め、データや端末を効率的に探索・接続できるようにした方式を「ハイブリッドP2P」(hybrid P2P)という。ある種のサーバに情報を集中して通信効率を高めた方式で、運用のためには性能や回線容量の大きなサーバ用の端末を誰かが常に用意しなければならない。

歴史

2000年代初頭に、不特定多数の利用者がインターネット上でパソコン上のファイルを共有・交換できるP2P方式のソフトウェアが多数登場し、P2Pという用語及び概念が浸透した。そうしたファイル共有ソフトを指して「P2Pソフト」と呼ぶこともあった。

電話のようにメッセージを交換する通信方式としても用いられ、一部のIP電話システムやメッセンジャーなどは利用者間の接続の仲介(呼び出し)を中央サーバが行い、メッセージの交換自体はP2P方式で行うハイブリッドP2Pとして実装されている。

音声や動画などの大容量のデータを多数の利用者に効率よく配信する通信方式としても期待され、端末間でバケツリレー式にデータを運んでいく放送型の動画・音声配信サービスなども登場した。

2010年代になると、台帳などの記録情報を不特定多数の端末間で改ざん不可能な状態で交換・共有するブロックチェーン技術が発明され、仮想通貨(暗号通貨)の技術的な基盤としてP2P方式が再び注目を集めるようになった。

TCP/IP 【Transmission Control Protocol/Internet Protocol】 ⭐⭐⭐

インターネットなどで標準的に用いられる通信プロトコル(通信手順)で、TCP(Transmission Control Protocol)とIP(Internet Protocol)を組み合わせたもの。また、TCPとIPを含む、インターネット標準のプロトコル群全体の総称。

IPは複数のネットワークを繋ぎ合わせて同じ識別番号の体系(IPアドレス)により相互に通信可能にするプロトコルで、これを用いて世界的に様々な組織の管理するネットワークを相互接続してできたオープンなネットワークを「インターネット」(Internet)と呼んでいる。

プロトコル階層

IPではプロトコル群を役割に応じて階層化して整理しており、下位プロトコルのデータ送受信単位(パケットやフレーム、データグラムなど)の中に上位プロトコルの送受信単位を入れ子状に埋め込んで運ぶ仕組み(カプセル化という)になっている。

例えば、HTTPメッセージはTCPセグメントに格納されて運搬され、TCPセグメントはIPデータグラムに格納されて運搬され、IPデータグラムはイーサネットフレームやPPPフレームなどに格納されて運搬される。上位プロトコルは下位プロトコルに運搬を依頼するだけでよく、下層で何が起きているか詳細を知る必要がない。

階層は物理的な装置や回線に近い側からリンク層、インターネット層、トランスポート層、アプリケーション層となっており、IPはインターネット層、TCPはトランスポート層のプロトコルである。リンク層はIPの関連規格群では規定せず、イーサネットやWi-Fiなど各機器が対応している通信手段を利用する。

アプリケーション層は用途やシステムの種類ごとに多種多様なプロトコルが定義されている。例えば、Webコンテンツの伝送にはHTTP(Hypertext Transfer Protocol)、電子メールの送受信にはSMTP(Simple Mail Transfer Protocol)やPOP3(Post Office Protocol)、IMAP4(Internet Mail Access Protocol)などが用いられる。

総称としての「TCP/IP」

IPネットワーク上ではIPと組み合わせてTCPではなくUDP(User Datagram Protocol)や他のプロトコルを用いることもあるが、「TCP/IP」という呼称はTCPとそれ以外を区別するという意味合いは薄く(UDPを使う場合を「UDP/IP」とはあまり呼ばない)、「IPを中心とする標準的な通信プロトコルの総称」を表すことが多い。

歴史的な経緯からそのような意味合いが定着しているが、今日ではそのような総称的な意味は「インターネットプロトコルスイート」(Internet Protocol Suite)のような用語で表すか、「IP接続」「IPネットワーク」のように単に「IP」一語で代表させるようになってきている。

IPアドレス 【Internet Protocol Address】 ⭐⭐⭐

インターネットなどのIPネットワークに接続された、個別のネットワークや機器を識別するための識別番号。インターネット上で通信するには重複した番号を使うことはできないため、管理団体に申請して割り当てを受ける必要がある。

インターネットなどのネットワークでは機器間の通信をIP(Internet Protocol)と呼ばれる共通のプロトコル(通信規約)によって行う。IPアドレスはこのIPネットワークにおける個々の機器を識別するための番号で、データの宛先の指定や送信元の特定などに用いられる。

現在インターネットなどで広く普及しているIPは「IPv4」(IPバージョン4)で、アドレスを32ビットの値として表す。書き表す場合には先頭から順に8ビットごとに区切り、それぞれを十進数の値として「.」(ピリオド/ドット)で区切って表記する。例えば、「11000110 00110011 01100100 00000001」というアドレスは「198.51.100.1」のように表記する。

IPアドレスとドメイン名

IPアドレス自体は数字の羅列で人間には覚えたり書き表したりしにくく、読み間違いや入力ミスも起こりやすいため、「www.example.com」のようにアルファベットや記号を組み合わせた分かりやすい識別名をつけられる仕組みが考案された。

これをDNS(Domain Name System)と呼び、IPアドレスの代わりとしてネットワーク上で用いることができる識別名をドメイン名という。ドメイン名には特定のIPアドレスに対応し、個別の機器を指し示す完全修飾ドメイン名(FQDN:Fully Qualified Domain Name)あるいはホスト名(host name)と、複数の機器や領域を包含する領域の識別名がある。

IPアドレスとドメイン名の対応関係は各組織が設置・運用するDNSサーバによって管理・提供される。人間が指定したドメイン名の指し示す機器に接続するにはDNSサーバへ問い合わせて対応するIPアドレスを得る必要があり、通常はソフトウェアが内部的にこの処理を行う。

機器が通信処理を行うのに必須なのはIPアドレスのみであるため、すべてのIPアドレスに対応するドメイン名が設定されているわけではない。通常必要なのはドメイン名からIPアドレスへの変換(正引き)であるため、逆にIPアドレスから対応するドメイン名を割り出す変換(逆引き)は常に可能とは限らない。また、IPアドレスとドメイン名は常に一対一に対応している必要はなく、一つのIPアドレスに複数(場合によっては多数)のドメイン名が対応付けられていることもある。

グローバルIPアドレス

インターネット上で使用するアドレスをグローバルIPアドレス(global IP address)、特定の組織内ネットワークのみで通用するアドレスをプライベートIPアドレス(private IP address)あるいはローカルIPアドレス(local IP address)という。

グローバルアドレスはインターネット全体で一意に特定できなければならず、複数の組織や端末で重複があってはならないため、勝手に設定して名乗ることはできず、アドレス発行組織に申請を行って割り当てを受けなければならない。

インターネット上のIPアドレスについて全世界で一元的に割り当ての調整を行う機関としてICANN(Internet Corporation for Assigned Names and Numbers)が設置されている。そこから世界を5つに分けた各地域を管轄するRIR(Regional Internet Registry)に大きなアドレスブロック単位で割り当てが行われ、RIRから域内の各国・地域をそれぞれ管轄するNIR(National Internet Registry)へ小さなブロック単位で割り当て行われる。

インターネットへの接続を希望する各組織・個人からの申請を受けてアドレスを割り当てるのはNIRの担当となる。日本を管轄するRIRはAPNIC(Asia Pacific Network Information Centre)、NIRはJPNIC(Japan Network Information Center)である。

プライベートIPアドレス

プライベートアドレスは各組織ごとに設置・運用されているLAN(構内ネットワーク)などのネットワーク上で用いられるアドレスで、申請などは不要で自由に機器に設定して使用してよい。ただし、各アドレスがそのネットワークの内部で重複してはならない点はグローバルアドレスと変わらない。

プライベートアドレスしか持たない機器はインターネットに直接接続して通信することはできないため、ネットワーク境界にゲートウェイやルータ、プロキシサーバなどを設置してアドレス変換やデータの中継などを行い、一定の制約(インターネット側から接続を開始できないなど)の元で通信できるようにすることが多い。

IPv4アドレスではプライベートアドレス用の領域として、10.0.0.0~10.255.255.255(最大約1677万台)、172.16.0.0~172.31.255.255(最大65535台)、192.168.0.0~192.168.255.255(最大255台×256ネットワーク)の3つが予約されており、ネットワークの規模に応じていずれかを使用することができる。これらはグローバルアドレスとしては割り当てられないことが決まっている。

IPv4アドレスの枯渇

現在インターネットで用いられるIPv4アドレスは32ビットの値であるため、2の32乗の42億9496万7296個のアドレスしか使用することができず、インターネットの爆発的に普及に伴い2000年代後半頃からは逼迫するようになった。

これは、IPv4が設計された1980年頃にはインターネットに限られた機関しか接続されておらず、現在のような爆発的な普及を想定していなかったためこのアドレス数で十分であると考えられていたのと、当時の通信回線が低速で伝送容量が限られており、少しでも通信制御用のデータを短くしたかったという事情がある。

2015年までには各地域のRIRおよび各国のNIRが確保・用意しているIPv4アドレスブロックの「在庫」は枯渇してしまい、既存の割り当て先から接続廃止で返却されてくる分以外には、まとまった数のアドレスを新規に発行することはできなくなってしまっている。

IPv6アドレス

IPv4の後継として設計されたIPv6(IPバージョン6)では、IPアドレスが128ビットの値となり、2の128乗=約3.40×1038、すなわち、340澗2823溝6692穣0938𥝱4634垓6337京4607兆4317億6821万1456個の広大なアドレス空間を使用できるようになった。

IPv4と同じ表記法だと長過ぎるため、16ビットずつ「:」(コロン)で区切って16進数で表記し、0が連続する区間は省略するという記法を採用している。例えば、「2001 : 0db8 : 0000 : 0000 : 0000 : 0123 : 0000 : 00ab」は「2001 : db8 :: 123 : 0 : ab」のように表記する。

IPv6アドレスのグローバルでの割り当ても始まっており、一部の通信事業者やインターネットサービスプロバイダ(ISP)などがIPv6によるインターネット接続に対応しているが、既存のIPv4と共存しつつ移行するのは様々な事情が重なって難しく、なかなかIPv6の普及が進まない状況が10年以上続いている。

DHCPサーバ 【DHCP server】

インターネットなどのIPネットワークに一時的に接続する機器に、IPアドレスなど必要な情報を自動的に発行するサーバ。

DHCP(Dynamic Host Configuration Protocol)というプロトコル(通信手順)を用いて、管理者があらかじめ設定したIPアドレスやDNSサーバのアドレスなどの情報を端末に自動的に送信する。DHCPサーバにアクセスして設定情報を入手する端末やソフトウェアはDHCPクライアントという。

DHCPを利用することにより、端末側で利用者が毎回手動でネットワーク設定を入力しなくても、電源を投入したり物理的に回線を繋ぐだけで即座にネットワークに参加することができる。設定は管理者がサーバ側で一括して行うため、端末の利用者が専門的な知識を身につける必要もない。

企業や官公庁、学校などで同じネットワークに多数の端末を接続する場合も、端末側でDHCPサーバを参照するよう設定しておけば(多くのOSは無設定で最初からこのように動作する)、管理者がサーバ側でクライアントの設定情報を一元的に管理することができる。

DHCPサーバにはルータ(デフォルトゲートウェイ)やDNSサーバのIPアドレス、サブネットマスク、クライアントに割り当ててもよいIPアドレスの範囲などが設定されており、ネットワークに接続したばかりのコンピュータにこれらの情報を提供する。

IPアドレスは指定された範囲内から未割り当てのものを選んで自動的に配布する。接続していたクライアントが通信を切断すると、自動的にアドレスを回収して新たに接続してきた他のクライアントに割り当てる。

企業のネットワークなどではサーバコンピュータが他のネットワーク管理機能などと共にDHCPサーバとして稼動している場合が多く、家庭のインターネット接続環境ではブロードバンドルータなどがDHCPサーバ機能を内蔵している場合が多い。

ルーティング 【経路選択】 ⭐⭐

ネットワーク上でデータを送信・転送する際に、宛先アドレスの情報を元に最適な転送経路を割り出すこと。特に、インターネットなどのIPネットワークにおいて、パケットの転送先を決定すること。

インターネットなどの大規模なネットワークは、複数の小さなネットワークがルータなどの中継機器によって結ばれた構造になっている。送信元の機器が遠く離れたネットワーク上の相手にデータを送りたいときは、自らのネットワーク内のいずれかの中継機器に転送を依頼する。

中継機器は受け取ったパケットの宛先を見て、自らに直接つながった別の中継機器のいずれかにさらに転送を依頼し、これを繰り返してバケツリレー式にデータが運ばれていく。その際、各機器がパケットに記された宛先を元に最適な転送先を決定する処理のことをルーティングという。

ルーティングテーブル

機器がルーティングを行う際には、一般に「ルーティングテーブル」(routing table:経路表)と呼ばれるリストが参照される。これには、宛先のネットワーク(のアドレス)ごとに、どの隣接ルータに中継を依頼すべきかが列挙されている。

ルータはテーブルを参照し、宛先アドレスに対応する転送先を見つけて、その機器にパケットを転送する。宛先がテーブルの中に見つからない場合は、経路を知っている可能性の高い、外部ネットワークとの境界にある中継機器などが選択される。このような経路不明の際に頼る機器のことを「デフォルトゲートウェイ」(default gateway)という。

小規模なネットワーク内のルーティングでは、ルーティングテーブルを管理者がルータなどに手動で記述・設定していく手法が用いられる。これを「スタティックルーティング」(static routing:静的ルーティング)という。

一方、インターネットのような異なる管理主体のネットワークをまたぐ接続や、大規模なネットワーク、頻繁に構成が変更されるネットワークなどでは、ルータ間で経路情報を交換して自動的にルーティングテーブルを作成・更新する仕組みが利用される。これを「ダイナミックルーティング」(dynamic routing、動的ルーティング)という。

ルーティングプロトコル

ルータ間の経路情報の交換には専用の通信規約(プロトコル)が用いられ、これを「ルーティングプロトコル」(routing protocol)という。単に情報を交換するためのデータ形式や伝送手順を定義しているだけでなく、経路の選択手順(アルゴリズム)もセットで規定されている。

ルーティングプロトコルのうち、同一の管理主体の運営するネットワーク(AS:Autonomous System/自律システム)内で用いられるものを「IGP」(Interior Gateway Protocol)と呼び、RIPやOSPF、IGRP、EIGRPなどが用いられる。

一方、インターネット上で異なるAS間を接続する際には、「EGP」(Exterior Gateway Protocol)と呼ばれるルーティングプロトコルが用いられる。現在のインターネット上ではEGPとして「BGP」(Border Gateway Protocol)のバージョン4(BGP-4)が用いられる。

DNS 【Domain Name System】 ⭐⭐

インターネットなどのIPネットワーク上でドメイン名(ホスト名)とIPアドレスの対応関係を管理するシステム。利用者が単なる番号列であるIPアドレスではなく、日常使っている言語の文字を組み合わせた認識しやすいドメイン名でネットワーク上の資源にアクセスできるようにする。

IPネットワークでは「IPアドレス」と呼ばれる数値列で個々のコンピュータやネットワークを識別するが、DNSを使えば人間にとって親しみやすい文字や記号を組み合わせて「ドメイン名」(domain name)と呼ばれる別名をつけることができる。ドメイン名が単一の機器を指し示す場合は「ホスト名」(host name)とも呼ばれる。

各ドメイン名について、ホスト名とIPアドレスの対応関係や管理情報などを記録し、一定の通信手順に基づいてどこからでも容易に参照できるようにした世界規模の分散型データベースがDNSである。そのための通信規約(プロトコル)や交換データ形式などの仕様を定めた標準規格のこともDNSという。

IPアドレスとドメイン名

例えば、ある企業が「198.51.100.1」というIPアドレスの割り当てを受けてWebサーバと電子メールサーバを運用する場合、WebサイトのURLは「https://198.51.100.1/」のように、代表メールアドレスは「info@198.51.100.1」のような表記になる。

これは人間にとっては覚えたり伝達したり入力したりしにくく、接続事業者を切り替えるなどしてIPアドレスが替わるとこれらのアドレスもすべて変更となり、記録物を書き直したり関係者に改めて通知・告知しなおさなければならなくなってしまう。

そこで、「example.co.jp」というドメイン名を取得し、ホスト名として「www.example.co.jp」を「198.51.100.1」に、「~@example.co.jp」のメールアドレスを管理するメールサーバのアドレスを「198.51.100.1」に対応付けておけば、Webサイトを「https://www.example.co.jp/」のように、メールアドレスを「info@example.co.jp」のように表記することができるようになる。

DNSサーバとクライアント

ドメイン名の情報を管理し、外部からの問い合わせに応答するコンピュータやソフトウェアのことを「DNSサーバ」(DNS server)、サーバへの問い合わせを行いDNS情報を参照・利用する側のコンピュータやソフトウェアを「DNSクライアント」(DNS client)あるいは「DNSリゾルバ」(DNS resolver)という。

ドメイン名とIPアドレスの対応関係をサーバへの問い合わせによって明らかにすることを「名前解決」(name resolution)と呼び、ドメイン名から対応するIPアドレスを求めることを「正引き」(forward lookup)、逆にIPアドレスからドメイン名を割り出すことを「逆引き」(reverse lookup)という。

ドメイン名の階層構造

ドメイン名は実世界の住所表示のように広い領域を指す名前から順に範囲を狭めていく階層構造になっており、「www.example.co.jp」のように各階層の識別名を「.」(ドット)で区切って表記する。あるドメイン名の配下に設けられた下位のドメイン名を「サブドメイン」(subdomain)という。

上の例の「jp」のように一番右が最上位階層の「トップレベルドメイン」(TLD)で、以下、左に向かって「co」を「セカンドレベルドメイン」(SLD:Second Level Domain)、「example」を「サードレベルドメイン」(3LD:Third Level Domain)のように呼び、順に指し示す範囲が狭くなっていく。

権威DNSサーバと権限委譲

あるドメイン名についての情報を管理するDNSサーバを「権威DNSサーバ」あるいは「DNSコンテンツサーバ」という。権威サーバはそのドメイン名についての情報の発信元で、外部からの問い合わせに応答してホスト名に対応するIPアドレスなどを回答する。

上位ドメインの権威サーバは配下のすべてのドメイン名の情報を一元管理しているわけではなく、下位ドメインの権威サーバに管理権限を委譲し、自身はその所在(IPアドレス)のみを把握している。下位ドメインについての問い合わせには「このアドレスのサーバに聞くように」という回答を返す。

再帰問い合わせによる名前解決

「www.example.co.jp」の名前解決を行うためには、まず全世界に十数か所あるDNS全体を統括する「ルートサーバ」(root server)に「jp」ドメインの権威サーバの所在を訪ね、そのサーバに「co.jp」ドメインの権威サーバの所在を訪ね、そのサーバに「example.co.jp」の権威サーバの所在を…という具合に左端のホスト名が解決されるまで問い合わせを再帰的に繰り返す必要がある。

この問い合わせ手順を末端のDNSクライアントが毎回行っていたのではサーバとクライアント、途中のネットワークの負荷や無駄が大きすぎるため、通常はインターネット接続事業者(ISP)などが用意した「DNSキャッシュサーバ」が各クライアントからの問い合わせを代行し、結果を一定期間保存して同じ問い合わせに代理で応答するという運用が行われる。

一般の利用者がコンピュータのネットワーク設定などで指定する「DNSサーバ」(プライマリDNSサーバ、セカンダリDNSサーバ)は、各ドメイン名を管理している権威サーバではなく、このDNSキャッシュサーバである。なお、キャッシュサーバに頼らずクライアントソフトが自ら再帰問い合わせを行って名前解決することも差し支えなく、ネットワーク管理者などが調査のために行うことがある。

DNSサーバ 【DNS server】 ⭐⭐

インターネットなどのIPネットワーク上で、あるドメイン名についての情報を管理したり、ドメイン名(ホスト名)とIPアドレスの対応関係を調べるサーバ。また、そのためのソフトウェア。

IPネットワークでは「IPアドレス」と呼ばれる数値列で機器やネットワークを識別するが、「DNS」(Domain Name System)という仕組みにより、人間にとって親しみやすい文字や記号を組み合わせた「ドメイン名」という別名を付与することができる。個々の機器を指すドメイン名は「ホスト名」とも呼ばれる。

このドメイン名やホスト名と、対応付けられたIPアドレスなどの情報を記録・管理し、外部からの問い合わせに応答するコンピュータやソフトウェアのことをDNSサーバという。あるドメインについての管理権限を持ち情報を発信する「権威DNSサーバ」と、ドメインの管理は行わずクライアントからの求めに応じて権威サーバへ問い合わせを行う「DNSキャッシュサーバ」に大別される。

ドメイン名は階層構造になっており、各階層のドメインの管理権限は上位ドメインの管理者から委譲される。DNSサーバもこれに従って階層構造で管理されており、上位ドメインのDNSサーバは下位ドメインのすべての情報を管理しているわけではなく、下位ドメインを管理するDNSサーバの所在(IPアドレス)のみを把握している。

ある特定のホスト名の問い合わせを行うには、世界の十数か所に設置された最上位の「ルートサーバ」(root server)にトップレベルドメイン(.jpや.comなど)のDNSサーバの所在を尋ね、トップレベルドメインのDNSサーバにセカンドレベルドメイン(co.jpやexample.comなど)のDNSサーバの所在を尋ね…という手順を再帰的に繰り返し、最下層ドメインのDNSサーバから対応するIPアドレスの情報を聞き出すという手続きが必要になる。

権威DNSサーバ (DNSコンテンツサーバ)

DNSサーバのうち、あるドメイン名の情報を記録・管理する正当な権限を有し、そのドメインの情報についての外部からの問い合わせに応答するものを「権威DNSサーバ」あるいは「DNSコンテンツサーバ」という。

自らが管理権限を有するドメイン名空間についての情報を保持し、外部からの問い合わせに対して回答する。一台の権威DNSサーバが管轄する範囲は、上位ドメインから委譲されたドメインと、そのドメインの下位ドメインのうち、他の権威DNSサーバに権限を移譲していない領域を組み合わせたもので、これを「DNSゾーン」という。

プライマリDNSサーバとセカンダリDNSサーバ

権威DNSサーバには、オリジナルのデータを保持・提供する「プライマリDNSサーバ」と、プライマリサーバのデータを複製し、外部からの問い合わせに代理で応答することができる「セカンダリDNSサーバ」がある。

ドメイン名の登録・運用のためには、プライマリサーバを一系統と、セカンダリサーバを一系統以上(複数の場合もある)用意して外部からアクセス可能にする必要がある。通常は外部からの問い合わせはプライマリサーバに行われるが、規定時間内に応答が無い場合などにはセカンダリサーバへ問い合わせが行われる。

DNSキャッシュサーバ

一方、自らは管理するドメイン名を持たず、利用者からの任意のドメイン名の名前解決の問い合わせを受け付け、当該ドメイン名を管理するDNSサーバへの問い合わせを(代理で)行い、結果を利用者に返答するものは「DNSキャッシュサーバ」という。

ネット利用者がDNSを使用できるようにするため、インターネットサービスプロバイダ(ISP)などのネットワーク運営主体が設置・運用するDNSサーバで、利用者がコンピュータに問い合わせ先DNSサーバとして設定し、日常的に直接利用しているDNSサーバはこちらである。

優先DNSサーバと代替DNSサーバ

パソコンなどの端末にはDNSの問い合わせを行うキャッシュサーバをどこにするか設定する必要がある。優先的に問い合わせを送信する「優先DNSサーバ」と、優先サーバが利用不能な場合に代わりに問い合わせる「代替DNSサーバ」の二つを指名するようになっていることが多い。

ISPなどでは二系統以上のDNSキャッシュサーバを用意して、利用者にそのうちの二つを設定するよう周知している。同じ運営主体のDNSサーバは同時にアクセス不能になるリスクが高いため、代替DNSサーバをインターネット上で誰でも利用できる「パブリックDNSサービス」に設定する利用者もいる。

ドメイン名 【ドメインネーム】 ⭐⭐⭐

インターネット上に存在するコンピュータやネットワークを識別し、階層的に管理するために登録された名前のこと。インターネット上の機器やネットワークの識別名で、URLやメールアドレスなど他の識別情報の一部としても用いられる。

インターネット上の機器やネットワークを一意に識別するため、重複が生じないよう全世界的に一元的に発行する体制が構築されている。登録される識別名はアルファベットと数字、ハイフン「-」の組み合わせだが、近年では、日本語など各国独自の言語・文字でドメイン名を登録できる「国際化ドメイン名」(IDN:Internationalized Domain Name)も利用できるようになっている。

IPアドレスとDNS(Domain Name System)

インターネットなどIP(Internet Protocol)で接続されたネットワークでは機器同士は「IPアドレス」という番号によってお互いを識別し、相手方の所在を知ることができる。数字の羅列であるIPアドレスは人間にとっては扱いにくいため、別名としてドメイン名を運用するようになった。

ドメイン名とIPアドレスを対応させるシステムは「DNS」(Domain Name System:ドメインネームシステム)と呼ばれ、全世界のDNSサーバが連携して運用されている。一つのドメイン名に複数のIPアドレスを対応させたり、一つのIPアドレスに複数のドメイン名を対応させることもできる。

ドメインの階層構造

ドメイン名は実世界の住所表示のように広い領域を指す名前から順に範囲を狭めていく階層構造になっており、「www.example.com」のように各階層のラベルを「.」で区切って表記する。あるドメインの配下に設けられた下位のドメイン名を「サブドメイン」(subdomain)という。

一番右のラベルが最上位階層の「トップレベルドメイン」(TLD)で、以下、左に向かって「セカンドレベルドメイン」(SLD:Second Level Domain)、「サードレベルドメイン」(3LD:Third Level Domain)…と指し示す範囲が狭くなっていく。

左端で個別の機器を指し示すラベルのことを「ホスト名」という。トップレベルからホスト名まで省略せずにすべて書き下したドメイン名表記のことを「FQDN」(Fully Qualified Domain Name:完全修飾ドメイン名)と呼ぶことがある。

トップレベルドメインには、日本を表す「.jp」のように世界の国・地域ごとに割り当てられる「ccTLD」(country code TLD)と、商用を表す「.com」のように地理的範囲とは無関係に全世界から登録を受け付ける「gTLD」(generic TLD)、国際機関向けの「.int」など他の特殊なTLDがある。

ドメイン名の衝突を防ぐため、「ICANN」(Internet Corporation for Assigned Names and Numbers)という国際機関がTLDを一元管理しており、ICANNから委任を受けた各TLDの管理団体(「レジストリ」と呼ばれる)が、そのTLDにおける識別名のデータベースの管理、登録の受付を行っている。例えば、日本のccTLDである.jpドメインはJPRS(日本レジストリサービス)が管理している。

電子メール 【eメール】 ⭐⭐⭐

通信ネットワークを介してコンピュータなどの機器の間で文字を中心とするメッセージを送受信するシステム。郵便に似た仕組みを電子的な手段で実現したものであることからこのように呼ばれる。

広義には、電子的な手段でメッセージを交換するシステムやサービス、ソフトウェア全般を指し、携帯電話のSMSや、各種のネットサービスやアプリ内で提供される利用者間のメッセージ交換機能などを含む。

狭義には、SMTPやPOP3、IMAP4、MIMEなどインターネット標準の様々なプロトコル(通信規約)やデータ形式を組み合わせて構築されたメッセージ交換システムを指し、現代では単に電子メールといえば一般にこちらを表すことが多い。

メールアドレス

電子メールの送信元や宛先は住所や氏名の代わりに「メールアドレス」(email address)と呼ばれる統一された書式の文字列が用いられる。これは「JohnDoe@example.com」のように「アカウント名@ドメイン名」の形式で表され、ドメイン名の部分が利用者が所属・加入している組織の管理するネットワークの識別名を表し、アカウント名がその中での個人の識別名となる。

企業や行政機関、大学などがメールサーバを運用して所属者にメールアドレスを発行しているほか、インターネットサービスプロバイダ(ISP)や携帯電話事業者などがインターネット接続サービスの一環として加入者にメールアドレスを発行している。

また、ネットサービス事業者などが誰でも自由に無料でメールアドレスを取得して利用できる「フリーメール」(free email)サービスを提供している。一人の人物が立場ごとに複数のアドレスを使い分けたり、企業の代表アドレスのように特定の個人に紐付けられず組織や集団などで共有されるアドレスもある。

メールサーバとメールクライアント

インターネットに接続されたネットワークには「メールサーバ」(mail server)と呼ばれるコンピュータが設置され、利用者からの要請により外部のネットワークに向けてメールを送信したり、外部から利用者に宛てて送られてきたメールを受信し、本人の使うコンピュータに送り届ける。利用者や他のサーバに対する窓口であり、郵便制度における郵便局のような役割を果たす。

メールサーバ内には利用者ごとに私書箱に相当する受信メールの保管領域(メールボックス)が用意され、外部から着信したメールを一時的に保管する。利用者が手元で操作するメールソフト(メールクライアント、メーラーなどと呼ばれる)は通信回線を介してメールサーバに問い合わせ、メールボックス内のメールを受信して画面に表示する。

Webメール

利用者の操作画面をWebアプリケーションとして実装し、Webブラウザからアクセスしてメールの作成や送信、受信、閲覧、添付ファイルのダウンロードなどをできるようにしたシステムを「Webメール」(webmail)という。

フリーメールサービスの多くは標準の操作画面をWebメールの形で提供しており、メールクライアントなどを導入・設定しなくてもWebブラウザのみでメールの送受信を行うことができるようになっている。企業などの組織で運用されるメールシステムでもWebメールを提供する場合があり、自宅や出先のコンピュータなどからアクセスできるようになっている。

メッセージの形式

電子メールには原則として文字(テキスト)データのみを記載することができる。特別な記法や書式を用いずに素の状態の文字データのみが記されたメールを「テキストメール」という。WebページのようにHTMLやCSSなどの言語を用いて書式や装飾、レイアウトなどの指定が埋め込まれたものは「HTMLメール」という。

また、画像や音声、動画、データファイル、プログラムファイルなどテキスト形式ではないデータ(バイナリデータ)を一定の手順でテキストデータに変換して文字メッセージと一緒に送ることができる。こうしたデータをメッセージ中に埋め込む方式の標準として「MIME」(Multipurpose Internet Mail Extension/マイム)が規定されており、これを利用してメールに埋め込んだファイルを「添付ファイル」(attachment file)という。

電子メールの普及と応用

電子メールはWeb(WWW)と共にインターネットの主要な応用サービスとして広く普及し、情報機器間でメッセージを伝達する社会インフラとして機能している。現在ではパソコンやスマートフォン、タブレット端末などのオペレーティングシステム(OS)の多くは標準でメールクライアントを内蔵しており、誰でもすぐに利用できるようになっている。

電子メールシステムでは一通のメールを複数の宛先へ同時に送信する同報送信・一斉配信も容易なため、グループ共通のアドレスを用意してメンバー間の連絡や議論などに用いる「メーリングリスト」(mailing list)や、発行者が購読者に定期的にメールで情報を届ける「メールマガジン」(mail magazine)などの応用システムも活発に利用されている。

一方、広告メールを多数のメールアドレスに宛て無差別に送信する「スパムメール」(spam mail)や、添付ファイルの仕組みをコンピュータウイルスの感染経路に悪用する「ウイルスメール」(virus mail)、送信元を偽って受信者を騙し秘密の情報を詐取する「フィッシング」(phishing)など、電子メールを悪用した迷惑行為や犯罪なども起きており、社会問題ともなっている。

SMTP 【Simple Mail Transfer Protocol】 ⭐⭐⭐

インターネットなどのIPネットワークで標準的に用いられる、電子メール(eメール)を伝送するための通信手順(プロトコル)の一つ。メッセージの発信やサーバ間の転送に用いられる。

利用者の操作するメールソフト(メールクライアント)からメールサーバにメッセージの送信を依頼する際や、メールサーバ間でメッセージを転送する際にシステム間で交わされる要求や応答のデータ形式、伝送手順などを定めている。

SMTPでメッセージを転送するソフトウェアを「MTA」(Mail Transfer Agent)あるいは「SMTPサーバ」(SMTP server)という。一方、受信側でクライアントへメッセージを配送するソフトウェアは「MRA」(Mail Retrieval Agent)と呼ばれ、受信プロトコルの違いによりPOP3サーバ、IMAP4サーバなどに分かれる。

SMTPは1980年代から使われている古いプロトコルで、最初の仕様はIETFによって1982年にRFC 821として規格化された。幾度かの改訂を経て2008年に最新版のRFC 5321が発行されている。1994年に追加された拡張機能やコマンド群は「ESMTP」(SMTP Service Extensions)と呼ばれることもある。

認証や暗号化の拡張

SMTPの当初の仕様には利用者の認証などセキュリティ機能が欠けていたため、SMTPコマンドを拡張して認証を行う「SMTP認証」(SMTP-AUTH)や、POP3の認証機能を借用してPOP3で認証した相手に一定時間SMTPによる接続を許可する「POP before SMTP」(PbS)などの仕様が策定された。

また、SMTP自体には送受信データの暗号化の機能は用意されていないため、一階層下のトランスポート層でSSL/TLS接続を行い、SMTP通信全体を暗号化する「SMTPS」(SMTP over SSL/TLS)が用意されている。通常のSMTP接続を区別するため専用のポート番号(標準ではTCPの465番ポート)で運用する。

インターネットでメールの利用が広まると迷惑メールやウイルスメール、フィッシング詐欺などの問題が生じたため、送信元のチェックなどを行う「SPF」(Sender Policy Framework)や「DKIM」(DomainKeys Identified Mail)、「DMARC」(Domain-based Message Authentication, Reporting, and Conformance)などの仕様が整備され、SMTPと併用されている。

サブミッションポートの分離

SMTPサーバは標準ではTCPの25番ポートで接続を待ち受けるが、利用者からの送信依頼とサーバ間のメッセージ転送に同じポートを使うと同じポートで両者の通信が混在し、通信経路の暗号化や迷惑メール対策などを行うのに不都合だった。

現在では、サーバ間の転送にのみ25番を用い、送信依頼はTCPの587番ポート、SSL/TLSを併用したSMTPS接続による送信依頼には465番ポートを用いるのが標準となっている。この2つのポートを「サブミッションポート」(submission port)ともいう。

POP 【Post Office Protocol】 ⭐⭐

インターネットなどのTCP/IPネットワークで標準的に用いられる、電子メール(eメール)を受信するための通信規約(プロトコル)の一つ。受信サーバから利用者側へのメッセージの転送に用いられる。

利用者が自分宛ての電子メールを保管しているメールサーバにアクセスし、新しいメールが届いているか調べたり、手元のメールソフトに受信する通信手順やデータ形式を定めている。送信やサーバ間の配達にはSMTP(Simple Mail Transfer Protocol)という別のプロトコルを用いる。

POPを利用する場合は原則として、サーバに届いたメールはすべてクライアント(メールソフト)側にダウンロードしてから閲覧や未既読の管理、フォルダ分けなどを行い、受信済みのメールはサーバから削除される。

この方式はネットに接続しなくても過去の受信メールを見ることができ、サーバの受信メール保管容量も少なくて済むが、複数の端末で同じメールアドレスを利用したい場合には向いていない。そのような場合はサーバ上で既読管理や分類などを行うことができる「IMAP4」を使ったり、Webメールシステムを使う。

初版は標準化団体のIETFによってRFC 918として1984年に、広く利用されている第3版(POP3)は1988年にRFC 1081として標準化された。POP3は数次の改訂を経て1996年のRFC 1939が最新の仕様となっている。古くから電子メール受信の標準プロトコルとして広く利用され、現在も対応ソフトウェアが多く存在する。

インターネットが広く一般に公開される前に仕様が策定されたため、利用者認証のためのユーザー名やパスワードの送受信を平文(暗号化されていない状態)で送受信する仕組みとなっており、認証情報を暗号化する「APOP」(Authenticated POP)という拡張仕様が導入された。

APOPにも問題が見つかっており、WebにおけるHTTPS通信のように、POPによる通信全体をSSL/TLSで暗号化する「POP3 over SSL/TLS」(POP3S/POPS)の利用が推奨されている。標準のポート番号はPOP2がTCPの109番ポート、POP3が110番ポート、POP3Sが995番ポートとなっている。POP1はほとんど普及せず決まったポート番号はない。

IMAP 【Internet Message Access Protocol】 ⭐⭐⭐

インターネットなどのIPネットワークで標準的に用いられる、電子メール(eメール)を受信するための通信規約(プロトコル)の一つ。利用者が自分宛ての電子メールを保管しているメール受信サーバにアクセスし、新着を確認したり一覧から必要なものを選んで手元に受信する手順を定めている。

IMAPでは原則として、届いたメールをメールサーバ上にメールアドレス(アカウント)ごとに設けられた専用の保存領域(メールボックス)で管理する。利用者はサーバからメールの一覧を取得して必要な物を選択し、手元のコンピュータにダウンロードして閲覧する。

サーバ上で各メールの既読状態の管理、フォルダを用いた分類などを行なうこともでき、添付ファイルなどで容量が大きい場合などにメールの一部だけ(ヘッダ部分だけ、本文だけなど)受信する機能もある。メールをサーバ側で管理するため、一つのアドレスを複数のコンピュータから利用することも容易である。

POPとの比較

メール受信プロトコルとしてよく用いられるものには「POP」(POP3:Post Office Protocol)もあるが、POPではサーバにアクセスする度に届いているメールをすべて手元にダウンロードし、クライアント側でメールの保管や分類などの管理を行う。

IMAPはサーバ側でメールを保管するため、クライアント起動後に素早く新着や一覧を確認することができる。常に決まった端末を使うとは限らない場合(学校のコンピュータルームなど)や、一人で複数のコンピュータから利用する場合などにも適している。

ただし、サーバ側にメールの保管領域が大量に必要となるため、システムによっては受信容量の上限が厳しく制限され、古いメールを頻繁に削除しなければすぐに制限を超過して受信できなくなってしまう場合もある。

IMAPSによる暗号化

IMAP自体にはデータの暗号化やパスワードの秘匿といったセキュリティ保護機能がないため、暗号化プロトコルのSSL/TLSと併用してIMAPによる通信全体を暗号化する「IMAPS」(IMAP over SSL/TLS、「IMAP4S」とも)と呼ばれる通信方式が用いられることがある。通常のIMAPはTCPの143番ポートを利用することが多いが、IMAPSは993番を利用することが多い。

歴史

最も初期のバージョンはIETFが1988年にRFC 1064として策定したIMAP2だが、正式名称は現在と異なり “Interactive Mail Access Protocol” だった。1994年にIMAP4がRFC 1730として策定され、このとき現在の名称に改められた。IMAP4は最も普及したバージョンであり、単にIMAPといった場合はIMAP4を指すことが多い。IMAP4には様々な拡張仕様が追加され、2003年にはRFC 3501として改訂されている。

Web 【ウェブ】 ⭐⭐

インターネット上で標準的に用いられている文書の公開・閲覧システム。文字や図表、画像、動画などを組み合わせた文書を配布することができる。現代では様々なサービスやアプリケーションの運用基盤としても広く用いられる。

文書内の要素に別の文書を指し示す参照情報(ハイパーリンク)を埋め込むことができる「ハイパーテキスト」(hypertext)と呼ばれるシステムの一種である。“web” (ウェブ)とは「蜘蛛の巣」を意味する英単語で、多数の文書が互いにリンクを介して複雑に繋がり合っている様子を蜘蛛の巣の網目状の構造になぞらえている。

WebサーバとWebブラウザ

WWWで情報を提供するコンピュータやソフトウェアを「WWWサーバ」(web server)、利用者の操作によりサーバから情報を受信して表示や処理を行うコンピュータやソフトウェアを「Webクライアント」(web client)という。

Webクライアントのうち、受信したページの内容を整形して画面に表示し、人間が閲覧するために用いるものを特に「Webブラウザ」(web browser:ウェブブラウザ)という。サーバとクライアントの間の通信には「HTTPエイチティーティーピー」(Hypertext Transfer Protocol)と呼ばれる通信規約(プロトコル)が標準的に用いられる。

WWW上の情報資源の所在の指定には、「https://www.example.co.jp/index.html」といった形式の「URLユーアールエル」(Uniform Resource Locator)という表記法が用いられる。Webサーバを表すドメイン名(ホスト名)と、Webサーバ上での資源の位置を指し示すパス(階層的なディレクトリ名とファイル名の組み合わせ)を繋げた形式になっている。

WebページとWebサイト

WWWにおける情報の基礎的な単位は「Webページ」(web page)で、見出しや文章などの文字情報をもとにHTMLエイチティーエムエル(Hypertext Markup Language)やCSSシーエスエス(Cascading Style Sheet)などのコンピュータ言語で構造や体裁、見栄えを記述する。

HTMLは記述された文字情報の中にソフトウェアへの制御情報を埋め込むことができる「マークアップ言語」(markup language)と呼ばれる言語で、「この部分が見出し」「本文はここからここまで」「段落の区切りはここ」といった指示を文書中に埋め込む形で記述することができる。

Webブラウザはこの制御情報に基づいて、タイトルを中央揃えにしたり、小見出しを太い大きな文字で表示したり、段落の間に空白を差し込むなど指定された整形や装飾を行い、閲覧者が文書の構造を把握しやすいように表示してくれる。

ページ内には文章だけでなく箇条書き(リスト)や表(テーブル)、図形、画像、動画、入力要素(フォーム)などを掲載することができる。画像や動画など文字で書き表せない要素は外部のファイルをURLで指定して埋め込むことができる。

要素のページ内での配置や大きさ、枠線や罫線、文字の字形(フォント)や色といった具体的な見栄えに関する指定項目(スタイルという)は、当初はHTMLで構造とともに記述していたが、CSSという専用の言語で構造とは別に指定する方式が主流となっている。

ページ内の要素には外部の他の資源(多くの場合は他のWebページ)のURLを指し示すリンクを設定することができ、ブラウザ画面に表示されたリンクを指定して開くよう指示(クリックやタップなど)すると、表示がリンク中のURLで指定されたページに切り替わる。簡単な操作でリンクをたどって次々に文書から文書へ表示を切り替えていくことができる。

このリンク機能を利用して、書籍のように複数のページ群をまとめた単位を「Webサイト」(web site)という。サイト内のページからは外部のサイトのページへリンクを張ることもでき、Web全体がリンクを介して連結された巨大な地球規模の文書データベースとなっている。

Webアプリケーション・Webサービス

Webサーバには静的なファイルの送信だけでなく、ブラウザからの要求に基づいて動的にコンピュータプログラムを実行し、何らかのデータ処理を行って結果をブラウザに応答することもできる。

また、Webブラウザにはページ上に記述された簡易なプログラム(スクリプトという)を実行し、サーバと任意のタイミングで通信したり、利用者の操作に応じて表示内容を変化させたりすることができる。

このような動的な仕組みを組み合わせ、サーバとブラウザが連携して利用者が対話的に操作することができるアプリケーションソフトを構築することができ、これを「Webアプリケーション」(web application)あるいは「Webサービス」(web service)という。著名な応用例として、ブラウザで買い物ができるオンラインショップ(ECサイト)や、利用者同士がコミュニケーションできるSNSなどのネットサービスがある。

歴史と名称

WWWはインターネットがまだ学術機関を中心に利用されていた頃、1989年に欧州核物理学研究所(CERN)のティム・バーナーズ・リー(Tim Berners-Lee)氏が所内の論文公開・閲覧システムとして考案したものが基礎となっている。

1990年代にインターネットが一般に開放され普及していく過程で、電子メールなどと共にネットの代表的な応用システムとして広く利用されるようになった。2000年代中頃には主に日本を含む先進国で欠かすことのできない重要な情報インフラの一つに成長している。

もとは “World Wide Webワールドワイドウェブ”、略して “WWWダブリューダブリューダブリュー” が正式名称で、現在も「https://www.example.jp/」のようにWebサーバのホスト名などにこの名が残っているもの。英語では次第に “the Webザ・ウェブ” (固有名詞のWeb)のように略されるようになり、さらに進んで現在では一般名詞の “web” がインターネットのWebを指すことが増えている。日本では当初「ホームページ」の名称で紹介され、現在も初心者向けの説明などで多用されるが、「ウェブ」「Web」の呼称が浸透しつつある。

Webサーバ 【ウェブサーバ】 ⭐⭐

Webシステム上で、利用者側のコンピュータに対しネットワークを通じて情報や機能を提供するコンピュータ。また、そのような機能を実装したソフトウェア(Webサーバ・ソフトウェア)。

Webはクライアントサーバ型のシステムで、利用者が操作するWebクライアントと、クライアントの求めに応じてデータや機能を提供するWebサーバが連携して動作する。クライアントにはWebブラウザが用いられることが多いが、利用者が直に操作しないクローラー(ボット)なども存在する。

Webサーバはクライアントからの求めに応じて自身の管理するファイルを送信したり、内部で何らかの処理を行ったり、クライアントから受信したデータを保存したりすることができる。クライアントから要求やサーバからの応答は「HTTP」(Hypertext Transfer Protocol)という通信規約(プロトコル)に基づいて行われる。

クライアントからのサーバの指定、サーバ内の資源の指定は「http://~」あるいは「https://~」で始まる「URL」(Uniform Resource Locator)という記法が用いられる。例えばブラウザで「https://www.example.jp/corp/about.html」の表示を指示すると、「www.example.jp」というWebサーバへ接続を行い、「/corp/about.html」という位置にあるファイルの送信を要求する。

利用者の操作や入力をブラウザから受け取って処理を行い、その結果を反映した応答データを動的に生成して返す機能もあり、アプリケーションソフトのように対話的に機能を利用するシステムを作ることができる。これを「Webアプリケーション」と呼び、多くのネットサービスの実装方式となっている。

Webサーバソフトウェアには様々なものがあるが、汎用のWebサーバとして人気のものとしてはオープンソースの「Apache HTTP Server」や「nginx」などの人気が高い。企業向けの製品としては米マイクロソフト(Microsoft)社の「Internet Information Services」(IIS)がよく用いられる。

URL 【Uniform Resource Locator】 ⭐⭐⭐

インターネット上に存在するデータやサービスなどの情報資源の位置を記述する標準的な記法の一つ。Webページの所在を書き表す方式として広く普及している。

様々な資源の所在地にあたる情報の記述の仕方を定めたもので、資源の取得方法(種類)や、ネット上での当該資源の存在するコンピュータの識別名や識別番号、コンピュータ内部での資源の位置などで構成される。

先頭には「http:」「ftp:」のように必ず資源の取得方法を記述する決まりで、これを「スキーム名」という。スキーム名はデータの送受信を行うプロトコル(通信規約)名であることが多いが、ローカルファイルの所在を記述する「file:」のようなスキーム名もある。

スキーム名に続く識別情報の記述形式はスキーム毎に異なるが、プロトコル系のスキームではサーバのドメイン名(ホスト名)やIPアドレス、ポート番号、ディレクトリ名、ファイル名を区切り記号を挟んで順番に記述する形式が一般的である。

Web上の資源を表すhttpスキームでは「http://e-words.jp:80/w/URL.html」のような構成となり、「http:」がスキーム名、「e-words.jp」がコンピュータのドメイン名、「:80」が通信に用いるポート番号、「/w/」がWebサーバ上での目的のディレクトリ、「URL.html」が取得したいファイル名である。

URLの標準規格は1994年にIETFによってRFC 1738として策定された。その後、1998年に資源の(所在から独立した)識別名の記法である「URN」(Universal Resource Name)を含む、より汎用的な規格として「URI」(Universal Resource Identifier)が策定された。現在は正式にはURLはURI仕様の一部となっている。

検索エンジン 【サーチエンジン】

あるシステムに存在するデータやファイルを取得して内容の索引付けを行い、利用者がキーワードや条件を入力して検索できるようにしたシステム。そのような機能に特化したソフトウェアなどのことを指す場合と、Web上の情報を検索するネットサービスやWebサイトを指す場合がある。

広義には、ある情報システムやストレージ(記憶装置)などに保管されたファイルやデータの集合を読み込んで、どのような情報がどこに存在するといった索引(インデックス)を作成し、利用者が入力したキーワードや検索条件に合致するデータを探し出して列挙するシステム全般を指す。

特に、外部のソフトウェアなどに組み込まれて検索機能を提供する、部品化されたソフトウェアのことをこのように呼ぶことが多い。企業内のデータベースなどを検索するシステムや、コンピュータ内に保存された文書ファイルなどを検索するシステムが存在する。

Web検索エンジン

狭義には、Web上で公開されているWebページや画像、動画、文書ファイルなどを対象に、ソフトウェアによって自動的に様々なサイトのデータを収集して索引付けし、様々な条件で検索できるようにしたインターネット上のサービスのことを検索エンジンという。現代では単に検索エンジンといった場合はこちらを指すのが一般的となっている。

検索エンジンはWebクローラー(crawler)あるいはロボット(bot)と呼ばれる巡回ソフトを用いて日々Web上で公開されている情報を収集し、テキスト(文字)情報などを抽出して索引付け(インデクシング)している。

利用者は検索エンジンのサイト上のフォームから検索したい語やフレーズなどを入力すると、それらが含まれるページの一覧を作成して返答する。このページはSERP(Search Engine Result Page)と呼ばれ、検索ソフトウェアによって検索条件との関連度が高いと判断されたページやサイトから順番に、ページのURLやタイトル、内容の要約などが表示される。

2000年前後のインターネット普及期にはアメリカを中心に様々な検索エンジンサービスが勃興し覇を競ったが、2010年代には世界的には米グーグル(Google)社の「Google」が支配的な地位を確立し、二番手の米マイクロソフト(Microsoft)社「Bing」(ビング)を大きく引き離している。

日米Yahoo!(ヤフー)のようにかつては自前の検索エンジンを開発・運用していたが、自社製システムは廃止してWeb検索機能をGoogleやBingに委託するようになったネット大手も多い。中国の「百度」(Baidu/バイドゥ)や韓国の「NAVER」(ネイバー)、ロシアの「Yandex」(ヤンデックス)のように、国内大手の方が強い国もある。

AND検索 【アンド検索】

情報を検索する際の条件の指定方法の一つで、複数の条件をいずれも満たすものを検索すること。

条件AとBがあるとき、検索条件を「A and B」と指定すると、「AとBの両方の条件を満たす」という意味になる。条件が3つ以上の場合も同様で、挙げられたすべてを満たすという意味になる。

Web検索エンジンのキーワード指定では、キーワードを半角スペースで区切るとAND検索の指定を意味することが多く、列挙したキーワードすべてを含むページを検索せよという意味になる。例えば、「スクリーンショット Android」と検索すると、「スクリーンショット」と「Android」の両方を含むページが検索される。

一方、挙げられた条件の少なくとも一つを満たすものを検索することは「OR検索」、ある条件を満たさないものを検索することは「NOT検索」という。

OR検索 【オア検索】

情報を検索する際の条件の指定方法の一つで、複数の条件のうち少なくともいずれか一つを満たすものを検索すること。

条件AとBがあるとき、検索条件を「A or B」と指定すると、「AとBのいずれかの条件を満たす」という意味になる。条件が3つ以上の場合も同様で、挙げられた条件の少なくともいずれか一つを満たすという意味になる。

Web検索エンジンのキーワード指定では、キーワードを「|」(縦棒、縦線、バーティカルバーなどと呼ばれる)で区切るとOR検索の指定を意味することが多く、列挙したキーワードのいずれかを含むページを検索せよという意味になる。例えば、「iPad|Androidタブレット」と検索すると、「iPad」と「Androidタブレット」のどちらか、あるいは両方を含むページが検索される。

一方、挙げられた条件のすべてを満たすものを検索することは「AND検索」、ある条件を満たさないものを検索することは「NOT検索」という。

NOT検索 【マイナス検索】

情報を検索する際に条件を指定する方法の一つで、ある条件を満たさないものを検索すること。

条件Aについて検索条件を「not A」と指定すると、「Aを満たさない」という意味になる。通常は他の検索条件と組み合わせ、得られた検索結果から特定の条件に一致するものだけを除外するために用いられる。

一方、複数の検索条件を列挙して「すべてを満たす」ものを検索する指定方法は「AND検索」(アンド検索)、「少なくとも一つを満たす」ものを検索する指定方法は「OR検索」(オア検索)という。

検索エンジンのマイナス検索

Web検索エンジンのキーワード指定では、キーワードの先頭に「-」(ハイフン、マイナス記号)を付けるとNOT検索の意味になる記法を採用していることが多く、「マイナス検索」とも呼ばれる。

通常は他のキーワードや検索条件と組み合わせて検索結果を絞り込むのに用いられる。例えば、「アリ -シロアリ」と検索すると、「アリ」を含むWebページから「シロアリ」を含むものを除外したページ一覧が表示される。

暗号化 【エンクリプション】 ⭐⭐⭐

情報を第三者に盗み見られずに伝達あるいは保存するため、特定の手順に基づいて元の状態が容易に推定できない形式に変換すること。現代では、コンピュータを用いて特定の計算手順と秘密の情報に基づいてデータを変換することを指す。

伝達・保存したいデータそのものである「平文」(cleartext)と、これとは別に用意された短い秘密の符号である「暗号鍵」(cipher key)を組み合わせ、あらかじめ定められた手順によりデータの演算、加工を行い、一見すると意味が分からない符号の羅列である「暗号文」(ciphertext/cryptogram)に置き換える操作を指す。

暗号文を正規の暗号鍵を用いて平文に戻す処理を「復号」(decipher/decryption)という。正規の鍵が分からない状態で暗号鍵または平文を割り出そうとすることを「攻撃」(attack)、実際に割り出すことを「解読」(crack)という。

共通鍵暗号と公開鍵暗号

暗号化と復号に同じ暗号鍵を用いる暗号方式を「共通鍵暗号」(common key cryptosystem)「共有鍵暗号」あるいは「秘密鍵暗号」(secret key cryptosystem)という。公開鍵暗号が発明される以前はこの方式しかなかった。

一方、対(ペア)になる二つの鍵を用いて、片方で暗号化、もう一方で復号を行う方式を「公開鍵暗号」(public key cryptosystem)という。鍵ペアのうち片方は公開し、片方は秘匿した状態で運用される。暗号化に用いた鍵では復号できず、一方の鍵からもう一方を割り出すことも困難という性質があり、デジタル署名などにも応用される。

慣用的な用法

厳密には暗号化とは言えないが、目的や手法が似ているために慣用的に暗号化と呼ばれることがある変換手法がいくつかある。例えば、原文から一定の計算手順で特徴的な固定長のデータを算出する「ハッシュ関数」(hash function)および「ハッシュ化」(hashing)は、計算後のハッシュ値から元のデータに戻すことは原理的にできないため暗号化とは区別されるが、原文を秘匿する目的に使われることがあるため、そのような文脈では分かりやすさを優先して慣用的に暗号化と呼ばれることがある。

また、暗号鍵に相当する秘密の情報を用いずにデータを一定の手順で乱雑化する「スクランブル化」(scrambling)や、コンピュータプログラムのソースコードなどをコンピュータが解釈・実行できる状態を保ったまま人が容易に読み下せない形式に変換する「難読化」(obfuscation)なども、慣用的に暗号化と呼ばれることがある。

暗号文 ⭐⭐

暗号技術によって元の状態から変換され、そのままでは判読不能になったデータ。暗号化前の元のデータのことは「平文」(ひらぶん)という。一般には暗号文を指して暗号と呼ぶことも多い。

ある情報を、特定の決まった人しか読めないように一定の手順に基づいて無意味な文字や符号の列に置き換えることを暗号(手順そのものを指す場合は「暗号化」)という。ある平文を特定の暗号方式と暗号鍵により変換して得られる符号列を暗号文という。

現代の暗号技術では様々な形式のデータを暗号化の対象とするため、暗号「文」といっても文章(文字データ)とは限らず、画像や動画、音声、コンピュータプログラムなど任意の形式のデータを暗号化したもの全般を指す概念である。

暗号文として古代から近代までは、単語や句といった単位で置換表などを用いて人力で他の表現に置き換えた「コード」(codetext)がよく用いられたが、現代ではコンピュータによる自動処理によって文字やビット、バイトなどの単位で別の表現に置き換えた「サイファー」(ciphertext)が一般的となっている。

暗号文は復号処理によって平文に戻すことができ、かつ、適切な暗号鍵を持たない人がすぐには読み解くことができないものを指す。情報が欠落して平文に戻せない「ハッシュ値」や、表現はそのままで存在を秘匿する「電子透かし」(あるいは「ステガノグラフィ」)などは含まない。ただし、一般社会の慣用的な用語法では、これらもある種の暗号文として扱われることがある。

復号 【復号化】 ⭐⭐⭐

暗号化やデータ圧縮など何らかの変換処理によって得られた符号列から、元のデータを復元すること。

データや信号などを、何らかの目的のために符号化(encode)することがある。盗聴を防ぐための暗号化やデータ量を削減するための圧縮、伝送中の信号の誤りに備えた誤り訂正符号の付与などである。

このように元の状態から変換された符号列から、符号化とは逆方向の変換処理を行い、元のデータに復元する処理や工程を復号という。暗号の場合には、暗号化に用いた秘密の情報(暗号鍵)を用いて元のデータを得ることを意味し、これを用いずに元の情報を復元することは「解読」という。

「暗号」が暗号文の意味を持ち、変換過程のことを「暗号化」というため、同じように「復号化」と表記する例も見られるが、一般には符号の逆変換工程のことを「復号」と呼び、得られたデータを「復号」とは呼ばないため、復号化という表記は誤りであるとみなされることが多い。

英語では “decode” (動詞) “decoding” (名詞)というが、特に暗号の復号のことは “decrypt” / “decryption” あるいは “decipher” ということが多い。(暗号鍵を用いない)解読のことは “attack” “break” “crack” などのように表現することが多い。

平文 【クリアテキスト】 ⭐⭐⭐

暗号化されていない状態のデータ。暗号技術に基づく復号、解読などの操作を行わなくても、そのままで内容を取り扱うことができる状態のデータのことを指す。

「文」(text)という語が充てられ、「パスワードを平文で送る」といったように、実際、多くの場面で文字(テキスト)を指すが、暗号化されていないデータ全般を含む概念であり、文脈によっては画像、音声、動画、実行形式のコンピュータプログラムなどのバイナリ形式のデータを指す場合もある。

平文のことを「プレーンテキスト」(plaintext)と呼ぶこともあるが、これは暗号以外の分野ではバイナリデータの対義語(文字コードに規定された符号のみからなる、文字列として入出力可能なデータ列)であり、必ずしも「暗号化されていない」という意味とは限らない。

慣用的に「ひらぶん」と湯桶読みすることが多いが、例えばJIS規格(JIS X 0008 情報処理用語)では「ひらぶん」と「へいぶん」が併記されており、「へいぶん」が誤りというわけではない。

平文認証 (クリアテキスト認証/プレーンテキスト認証)

利用者認証などで、認証に必要な情報を暗号化などせずにそのままの形で送受信することを平文認証、プレーンテキスト認証(plaintext authentication)、クリアテキスト認証(cleartext authentication)などという。

認証情報の伝送方式として最も単純なもので、データの暗号化やハッシュ化などを行わず、利用者などの識別子(ID、ユーザ名など)や本人であることを確認する秘密の情報(パスワード、パスコード、パスフレーズ、暗証番号など)をそのままやり取りする。

通信回線やネットワークを介して認証を行う際に、信用できない通信経路上で平文認証を行うと途中で悪意の第三者による盗聴や改竄、なりすましなどの被害にあう危険性があるため、暗号化などに対応した認証方式を用いる必要がある。

共通鍵暗号 【秘密鍵暗号】 ⭐⭐⭐

暗号化と復号に同じ暗号鍵を用いる暗号方式。暗号文の送信者と受信者で同じ鍵を共有する必要があり、あらかじめ安全な経路で鍵を共有しなければならない。

暗号化の対象となる平文と、単一の暗号鍵を用いて、特定の計算手順(暗号アルゴリズム)により暗号文を得る。平文と鍵のいずれかが異なれば暗号文も異なる。暗号文を元の平文に戻すには、暗号化に用いた鍵によって暗号化時と逆方向の変換を行う。

古代より換字表を鍵としたものなど様々な方式が利用されてきたが、現代では、数十から数百ビット程度の規則性のないデータを鍵として、任意の長さの平文をコンピュータによる計算により暗号化する方式が普及している。アルゴリズムは公開を原則とし、暗号鍵の推測しにくさ(特に、鍵の長さ)によって安全性を確保する。

暗号化を行うデータの区切り方の違いにより、一定の長さごとのブロック単位で暗号化を行うものを「ブロック暗号」(block cipher)、1ビット単位で処理するものを「ストリーム暗号」(stream cipher)という。ブロック暗号は64ビットや128ビット、長いものでは256ビットなどの単位ごとにデータを区切り、それぞれの塊ごとに暗号化と復号を行う。

鍵が分かれば暗号文を平文に戻すことができるため、送信者と受信者の間で鍵を安全に受け渡して共有する必要がある。多数の相手との間で暗号を利用する場合、全員に同じ鍵を渡せば漏洩の危険が高まり、すべて別の鍵にすれば鍵の生成や受け渡し、暗号化のコストが増大するというジレンマがある。

代表的な共通鍵暗号方式方式として、1977年に米IBM社が開発し米政府標準に採用された「DES」(Data Encryption Standard)や、その後継として2000年に米政府標準となった「AES」(Advanced Encryption Standard/暗号アルゴリズムとしてはRijndaelラインダール)、ストリーム暗号の標準的な方式として広く普及している「RC4」(ARCFOUR)などがよく知られる。

公開鍵暗号との違い

一方、対になる2つの鍵ペアを生成し、一方で暗号化を、もう一方で復号を行う暗号方式を「公開鍵暗号」(public key encryption)という。片方の鍵は共通鍵暗号方式の鍵のように第三者に知られないよう秘匿する秘密鍵だが、相手方に送る方の鍵は人に知られてもよいため「公開鍵」と呼ばれる。

1970年代に公開鍵暗号が考案されるまでは暗号といえば共通鍵暗号方式のことだった。現代でも、暗号化や復号の処理速度は共通鍵暗号方式の方が優れているため、両方式を組み合わせ、共通鍵暗号方式の鍵交換のために公開鍵暗号を用い、データ本体は共通鍵暗号方式で暗号化する「ハイブリッド暗号」がSSL/TLSなどの形で広く利用されている。

公開鍵暗号 【非対称鍵暗号】 ⭐⭐⭐

対になる2つの鍵を使ってデータの暗号化・復号を行う暗号方式。暗号化に用いる鍵は公開され、復号に用いる鍵は秘匿される。公開鍵から効率よく暗号鍵を割り出すことはできないようになっている。

1976年にウィットフィールド・ディフィー(Whitfield Diffie)氏とマーティン・ヘルマン(Martin E. Hellman)氏によって基本原理が考案された。具体的な暗号方式として世界で初めて公表されたのは、1977年にロナルド・リベスト(Ronald L. Rivest)氏、アディ・シャミア(Adi Shamir)氏、レオナルド・エーデルマン(Leonard M. Adleman)氏が考案したRSA暗号である。

暗号化に用いる暗号鍵は誰に知られてもよいため公開鍵(public key)と呼ばれ、復号に用いる鍵は本人しか知らないよう管理する必要があるため秘密鍵(secret key)と呼ばれる。ある相手に暗号文を渡したいときにはその人の公開鍵を入手して暗号化することで、秘密鍵を知る本人しか復号できない暗号文を得ることができる。

最もよく知られるRSA暗号ではこれとは逆に、秘密鍵で暗号化して公開鍵で復号することも可能だが、これはほとんどの公開鍵暗号方式方式ではできない珍しい性質で、一般的な特徴ではない。

共有鍵暗号と公開鍵暗号

公開鍵暗号方式が発明される以前の暗号は単一の暗号鍵で暗号化と復号の両方を行うものしかなかったが、現在ではこのような暗号は「共通鍵暗号」(共有鍵暗号/秘密鍵暗号/対称鍵暗号)と呼ばれる。

公開鍵暗号方式は復号のための鍵を完全に秘匿したまま運用でき、共有鍵で必要となる鍵を安全に相手に配送するために高コストの手段(人が訪ねて手渡しする等)を用意する必要がなく、配送途上で盗み取られて解読される危険もないという利点がある。

一方、共有鍵暗号より暗号化や復号の処理が複雑で、同程度の暗号強度を得るのにより多くの計算資源や計算時間を必要とする。両者の特徴を組み合わせ、通信データの暗号化自体は共有鍵暗号を利用し、共有鍵を安全に受け渡す手段として公開鍵暗号方式を利用する「ハイブリッド暗号」もよく用いられる。

秘密鍵解読の困難性

秘密鍵と公開鍵の鍵ペアを生成するのは容易な一方、公開鍵から秘密鍵を推測したり割り出したりするのはコンピュータによる解析でも極めて困難になるよう設計されている。

この困難さは数学上の問題を背景にしており、例えばRSA暗号は数十桁もある巨大な2つの素数をかけ合わせた数を素因数分解する効率的な手法は発見されていないことを利用する。素数を元に秘密鍵を、素数の積を元に公開鍵を生成すれば、現代の技術では現実的な計算資源や時間で効率よく公開鍵から秘密鍵を割り出すことはできない。

同様に、ElGamal暗号やDiffie-Hellman鍵交換、DSA(デジタル署名アルゴリズム)では離散対数問題と呼ばれる数学上の問題を、楕円曲線暗号では楕円曲線上の離散対数問題と呼ばれる問題を秘密鍵解読の困難性の担保としている。

公開鍵暗号とデジタル署名

公開鍵暗号方式の原理(必ずしも公開鍵暗号方式そのものとは限らない)と暗号学的ハッシュ関数を組み合わせ、文書やメッセージにすり替えや改竄が行われていないことや、確かに作成者・送信者本人のものであると証明する短いデータを生成することができる。文書データの末尾などに添付され、サインや印鑑のような働きをするため「デジタル署名」(digital signature)と呼ばれる。

メッセージの送信者は本人しか知らない秘密鍵と本文を元に一定の手順で算出した固定長の暗号データをメッセージに添付し、相手方に送る。受信者は受け取った本文と、送信者の公開鍵などを用いて一定の手順で同様のデータの算出を試み、添付されたものと照合する。両者が一致すれば、メッセージが確かに送信者本人のものであり、かつ伝送途上で第三者による改竄やすり替えが行われていないことが確認できる。

公開鍵証明書とPKI

公開鍵暗号方式は共有鍵のように復号のための鍵を盗み取られる危険は少ないが、暗号化のために相手の公開鍵を入手する際、信用できない経路を用いることで悪意のある第三者によって偽物にすり替えられる別の危険性がある。

確実に相手の公開鍵を入手するには共有鍵のように安全な別の経路で共有するのも一つの手段だが、それでは結局同じように高いコストがかかってしまう。危険な経路でも安全に鍵を受け渡すため、公開鍵に信頼できる第三者がデジタル署名した「デジタル証明書」(公開鍵証明書)を渡し、鍵の真正性を確認できるようにするという方式が考案された。

証明書を検証するには発行者(認証局という)の公開鍵が必要となるため、受信者は送信者が利用する認証局の公開鍵を安全に入手しなければならない。しかし、世の中のすべての認証局の公開鍵をあらかじめ揃えておくことは現実的ではない。

このため、実際にはWebブラウザなど公開鍵暗号方式を利用するソフトウェアには世界的に有力な大手商用認証局や政府機関の認証局の公開鍵が安全な方法であらかじめ組み込まれており、各認証局は自らの公開鍵をそれら最上位の認証局(ルート認証局)が発行した証明書として提供している。このように、インターネットのみで公開鍵暗号方式を安全に運用できるようにするために築かれた社会的基盤のことをPKI(Public Key Infrastructure:公開鍵基盤)という。

公開鍵 【パブリックキー】 ⭐⭐

公開鍵暗号で使用される一対の暗号鍵の組のうち、相手方に渡したり一般に公開する鍵。もう一方の鍵は所有者が管理して秘匿する必要があり、「秘密鍵」(secret key)と呼ばれる。

公開鍵暗号では一対の対応関係にある暗号鍵のペアを用い、公開鍵で暗号化した暗号文は秘密鍵でしか復号できないという仕組みになっている。通信を暗号化する場合は相手の公開鍵を入手して送信データを暗号化することにより、対になる秘密鍵を知る相手本人しか復号できないようにする。

代表的な公開鍵暗号のRSA方式ではこの逆も可能で、秘密鍵で暗号化(に相当する変換処理)を行い、対になる公開鍵で復号する、といった使い方もできる。このような対称性を持つ方式は珍しく、公開鍵暗号一般に見られる性質ではない。

また、メッセージを送信する際に、本文をハッシュ関数で要約した短いデータと秘密鍵、公開鍵を元に一定の手順で計算したデジタル署名を添付することにより、受信側が送信元を確認したり、改竄やすり替えを検知することができる。

公開鍵暗号を利用するには事前に相手方の公開鍵を入手しておく必要があるが、実用上は相手方との間にインターネットなど必ずしも信用できない経路を含む伝送手段しかない場合が多く、攻撃者によるすり替えなどの危険がある。

このため、送信者と受信者の双方が信頼する第三者が電子署名した特殊なメッセージによって公開鍵を運び、受信者が送信元や鍵の真正性の確認を行うことができるようにすることが多い。この公開鍵を含む署名されたメッセージをデジタル証明書(電子証明書/公開鍵証明書)と呼ぶ。

秘密鍵 【シークレットキー】 ⭐⭐

公開鍵暗号で使用される一対の暗号鍵の組のうち、相手方に渡したり一般に公開せず、所有者が管理下に置いて秘匿する必要がある鍵。もう一方の鍵は公開して相手方が利用するもので「公開鍵」(public key)と呼ばれる。

公開鍵暗号では一対の対応関係にある暗号鍵のペアを用い、公開鍵で暗号化した暗号文は秘密鍵でしか復号できないという仕組みになっている。代表的な公開鍵暗号のRSAではこの逆も可能で、秘密鍵で暗号化(に相当する変換処理)を行い、対になる公開鍵で復号する、といった使い方もできる(このような対称性を持つ公開鍵暗号は珍しい)。

通信を暗号化する場合は相手の公開鍵を入手して送信データを暗号化することにより、対になる秘密鍵を知る相手本人しか復号できないようにすることができる。また、メッセージを送信する際に、本文をハッシュ関数で要約した短いデータと秘密鍵、公開鍵を元に一定の手順で計算したデジタル署名を添付することにより、受信側が送信元を確認したり、改竄やすり替えを検知することができる。

秘密鍵が漏洩すると自分宛ての暗号文を攻撃者に解読されたり、攻撃者が自分になりすまして署名したりできるようになってしまう。このため、秘密鍵が漏洩したり漏洩の疑いがある場合には対になる公開鍵と共にこれを失効させ、新たな鍵ペアを生成して使用する。

また、稀に秘密鍵暗号(共通鍵暗号)で暗号化と復号の両方に用いられる単一の暗号鍵を秘密鍵と呼ぶこともあるが、一つしかないため一般的には単に暗号鍵と呼ぶことが多い。

シーザー暗号 【Caesar cipher】 ⭐⭐

古代ローマのカエサル(Caesar:シーザー)が用いたされる、最も単純で著名な暗号方式の一つ。各文字をアルファベット順で決まった数だけずらす手法。

暗号化したい平文の各文字について、アルファベットの順序(ABC…XYZ)に基づいて決まった数だけ移動させたものを暗号文とする。アルファベット列の末端では、Aの手前はZ、Zの次はAという具合に循環させる(循環シフト/ローテーション)。

例えば、3文字手前(左に3文字)にずらすシーザー暗号の場合、平文の「CAESAR」を暗号化すると、「C」が「Z」に、「A」が「X」に、「E」が「B」に…という具合にずれていき、「ZXCPXO」という暗号文に置き換えられる。

カエサル自身は各文字を3つ手前にずらしたものを使用したと伝えられており、狭義にはこの方式を指すが、ずらす方向と文字数(「左に2文字」「右に4文字」など)を一種の暗号鍵とみなす一般化された手法を指す場合もある。

現代の暗号学では換字式暗号の一種である単一換字式暗号(単換字式暗号)に分類され、コンピュータを用いれば容易に解読できるため実用的な暗号方式とはみなされないが、人間による発見や探索を避ける簡易な符丁などとして、ROT13(右に13字ずらす)などのシーザー暗号が用いられることがある。

SSL 【Secure Sockets Layer】 ⭐⭐

インターネットなどのIPネットワークでデータを暗号化して送受信するプロトコル(通信手順)の一つ。データを送受信する一対の機器間で通信を暗号化し、中継装置などネットワーク上の他の機器から通信内容を覗き見たりすり替えたりできないようにする。

SSL/TLSは公開鍵暗号を応用したデジタル証明書による通信相手の認証(一般的にはサーバの認証)と、共通鍵暗号(秘密鍵暗号)による通信の暗号化、ハッシュ関数による改竄検知などの機能を提供する。Webアクセスに使われるHTTPと組み合わせ、Webサイトで認証情報や個人情報、決済情報などの送受信を安全に行う手段として広く普及している。

認証局と証明書

SSL/TLSでは、一対の秘密鍵と公開鍵を組み合わせて用いる「公開鍵暗号」により通信相手の確認や通信の暗号化に用いる暗号鍵の交換を行う。そのためには相手方(クライアント側ソフトウェアにとってサーバ側)の公開鍵をすり替えや改竄ができない方法で入手する必要がある。

SSL/TLSを利用するクライアント(Webブラウザなど)が、アクセス先のすべてのサーバの公開鍵を個別に安全に入手することは現実的ではないため、信頼できる「認証局」(CA:Certificate Authority)と呼ばれる機関が発行したデジタル証明書によって公開鍵の受け渡しを行う。

Webブラウザなどには著名な大手CAの公開鍵が記録された「ルート証明書」があらかじめ格納されており、これを用いてサーバから送られてきた証明書を検証することにより、途中ですり替えや改竄が行われていないことを確認することができる。この仕組みを「PKI」(Public Key Infrastructure:公開鍵基盤)という。

サーバ側ではSSL/TLSに対応するために大手CAやその認証を受けた下位CAの発行(通常は販売)する証明書を導入する必要がある。仕組みの上ではCAなど外部機関の認証を受けず自らが発行した証明書を使うこともできるが、クライアント側では「発行元の検証ができない」警告メッセージが表示される。

プロトコルとポート番号

SSL/TLSはプロトコル階層ではIP(Internet Protocol)の一段階上位で、TCPやUDPと同じトランスポート層のプロトコルである。TCPの代替として利用することができるため、HTTPに限らず様々な上位層(アプリケーション層)のプロトコルと組み合わせて使用され、インターネットにおける汎用的な通信の暗号化方式として定着している。

組み合わせるプロトコル応じて「○○ over SSL」(○○S)という名称で呼ばれ、HTTPであれば「HTTPS」、SMTPであれば「SMTPS」、POP3であれば「POP3S」などと呼ばれる。これらは元のプロトコルとは別に標準のポート番号が与えられており、HTTPは標準ではTCPの80番を使用するが、HTTPSは443番を使う。同様にSMTPSは465番(SMTPは25番)、POP3Sは995番(POP3は110番)が割り当てられている。

SSLとTLS

初期のSSL/TLSの仕様は1990年代半ばに当時のWebブラウザ大手、米ネットスケープ・コミュニケーションズ(Netscape Communications)社が開発した。SSL/TLS 1.0は欠陥が見つかったため公式発表前に破棄され、最初に公開されたのは1994年のSSL/TLS 2.0である。翌1995年にSSL/TLS 3.0が発表された。これらは現在では深刻な脆弱性が発見されており、利用を中止して後継版へ移行することが推奨されている。

SSL/TLS 3.0の次のバージョンから名称が「TLS」(Transport Layer Security)に変更されたため、現在広く利用されているのは正確にはTLSの方だが、「SSL/TLS」という名称が既に広く定着していたため、実際にはTLSを指していてもSSLと表記したり、「SSL/TLS」「TLS/SSL」などと両者を併記することが多い。

認証

対象の正当性や真正性を確かめること。ITの分野では、システム利用などに際して相手が名乗った通りの本人であると何らかの手段により確かめる手続きのことを認証ということが多い。

相手が本物か確かめるという相手認証の他に、メッセージ認証のようにデータが改竄されていないか確かめたり、時刻認証のようにデータの属性が真正であることを確認することを指す場合もある。

二者間認証/相手認証 (authentication/オーセンティケーション)

二者が相対で相手方の真正性などを確かめることを「相手認証」あるいは「二者間認証」と呼び、英語では “authentication” (オーセンティケーション、動詞は “authenticate” )という。

例えば、ある利用者がコンピュータに自分のアカウント名を名乗り、そのアカウント名の正しいパスワードを入力できれば、確かにその利用者がアカウント名の本人であることが確認できる。日常的にも、金融機関のATM(現金自動預け払い機)などで、キャッシュカードを提示したのが本人であることを確認するために暗証番号を入力させる、といった場面で利用されている。

三者間認証/第三者認証 (certification/サーティフィケーション)

第三者に問い合わせて相手方の正当性を確かめることを「三者間認証」あるいは「第三者認証」と呼び、英語では “certification” (サーティフィケーション、動詞は “certify” )という。

例えば、通信経路を暗号化する際などに、相手方から提示されたデジタル証明書を発行元(認証局/CA:Certificate Authority)に照会すれば、身元を確認することができる。日常的には、資格や行政機関の認証制度、クレジットカードを使用する際に加盟店が発行元に信用照会する仕組みなどが該当する。

認証方法の分類 (WYK/WYH/WYA)

認証を行う二者の間で事前に秘密の情報を共有し、認証時に正しく入力できれば本人であるとみなす方式をWYK(What You Know)認証という。パスワードやパスフレーズ、暗証番号などが該当する。何らかの方法で本人から詐取したり、入力時の覗き見や通信時の盗み見などで秘密の情報を入手されると、認証が突破され第三者によるなりすましが可能となる。

認証元が本人に発行した物理的なモノを提示・接続することにより本人であることを確認する方式をWYH(What You Have)認証という。セキュリティトークン(USBトークンなど)や暗号鍵などを格納したICカードを手元の機器の端子に接続したり、本人に発行した乱数表の指定位置の文字・数字を入力させるといった手法が知られる。モノを盗まれるとなりすましの危険がある。

認証元に登録された本人の身体に固有のパターンにより本人確認する方式をWYA(What You Are)認証あるいは生体認証(バイオメトリクス認証/biometrics authentication)という。指紋認証や静脈認証(掌の静脈のパターンを用いる)、虹彩認証(瞳の黒目部分にある虹彩の模様を用いる)、声紋認証、顔認証などが知られる。

他の方式より他人による(特定の個人への故意の)なりすましは最も難しいとされるが、方式によってはパターン識別システムの認識精度を100%にすることは難しく、本人を拒否してしまったり、他人と取り違えてしまうといった誤検知の問題がある。

認証と認可

認証済みの利用者に対し、アクセス権の設定などを参照して本人に与えられた適切な権限による操作を許可する(権限外の利用を拒否する)ことを「認可」と呼び、英語では “authorization” (オーソライゼーション、動詞は “authorize” )という。

認証の次の段階で行われる権限の付与のことを指すが、単純なシステムでは認証と同時に認可も済んでしまうことも多く、字面も似ており、日常的な語彙としては似た意味合いであるため、しばしば混同される。認証向けの技術を認可に用いるといった不適切な事例も起きている。

英語でも “authentication” と “authorization” は日常語彙としては意味も綴りも似ており、日本語の場合と事情は近い。さらに、方式名や製品名に使用する際などに、どちらも “auth” と略されることがあるため、余計に混同しやすいという事情があり、近年では認証を “authn” 、認可を “authz” として別の略号を用いることが提唱されている。

バイオメトリクス認証 【生体認証】 ⭐⭐

指紋など固有性の高い人間の身体的特徴をデータ化して本人確認に用いる認証方式。暗証番号のように本人の記憶を用いる方式に比べ、原理的に他人による「なりすまし」が難しいが、生体は状態が安定しないことがあり本人の認識に失敗する場合がある。

古来より指紋は本人固有の生体的特徴として利用されてきたが、コンピュータによる指紋認証ではセンサーで表面の模様を読み取って一定の手順で図形的な特徴を符号化し、記録された本人のものと照合する。

指紋以外にも、眼球の黒目部分の皺の模様を用いる虹彩認証や、手のひらや指先の静脈の形状を赤外線センサーなどで読み取る静脈認証、声の特徴を用いる音声認証(声紋認証/声認証)、顔の特徴を用いる顔認証などが実用化されている。ペン型の入力機器で署名させ、その形状や筆圧、速度の変化などを符号化して照合する電子サインも生体認証の一種と言える。

パスワードなど単純な文字列や数字の比較に比べ、センサーを備えた特殊な機器が必要だったり、画像処理などで大量の計算をしなければならないなど仕組みが大掛かりなため、出入国管理や金融機関など業務用の機器やシステムから普及が始まった。

2010年代には装置の小型化やコンピュータの性能向上などが進み、スマートフォンやノートパソコンなどの携帯情報端末での利用者認証などにも利用が広がっている。パスワードなどと組み合わせて二段階認証を構成し、より高いセキュリティを実現する用途にも用いられる。

二要素認証 【2ファクタ認証 】

利用者の本人確認などの認証において、二つの異なる原理の認証手段を組み合わせて用いることにより精度と安全性を高める手法。

認証方式は何によって認証を行うかにより、パスワードや暗証番号など本人しか知らないはずの情報を用いるWYK(What You Know)認証、乱数表やUSBトークンなど本人しか持っていないはずのモノを用いるWYH(What You Have)認証、指紋や虹彩など人体のパターンを用いるWYA(What You Are)認証の三つに分類できる。

二要素認証はパスワードとUSBトークン、指紋と暗証番号など、この三方式から異なる二つの方式を選んで組み合わせ、連続的に実施することにより認証を行う。これにより、いずれか一つが盗まれたり偽造されるなどして攻撃者に突破されても、もう一方も同時に突破しなければ本人になりすますことはできず、セキュリティを高めることができる。

実用上よく用いられるのは、パスワードとSMSなどで送信されるワンタイムパスワード(スマートフォンによるWYH認証)の組み合わせや、パスワードと乱数表の指定位置の情報入力などである。金融機関で古くから用いられている、キャッシュカードや預金通帳と暗証番号、クレジットカードとPINコードの組み合わせもある種の二要素認証であると考えることができる。

一方、認証を二回連続して行うことを「二段階認証」(ツーステップ認証)と呼ぶが、これには二要素認証に加え、同じ方式の認証を二回行う(パスワードと秘密の質問の答えを入力させるなど)認証方式も含まれる。

UID 【User Identifier】 ⭐⭐⭐

複数の利用者を一意に識別するための識別子。または、一意の識別子。具体的な仕様や規約はシステムの種類によって異なる。

アカウントのUID

システムやサービスに利用者登録(アカウント作成)を行う際に設定する利用者名(ユーザー名/アカウント名)のことをユーザーIDということがある。氏名やメールアドレス、ニックネーム、本人が任意に設定する英数字の組み合わせなどが使われることが多い。

UNIXのUID

UNIX系OSで登録利用者を一意に識別するために割り振られた識別番号をUIDあるいは「ユーザー識別子」という。16ビットあるいは32ビットの整数値が用いられ、0は必ずスーパーユーザー(rootユーザー)を表し、1から100(OSによって異なる)はシステムによって予約されている。

携帯電話のUID

携帯電話事業者が個々の契約者に割り当てた契約者固有識別子や、個々の端末に割り当てた端末固有識別子などをUIDということがある。

文脈により、SIMカードなどに記録された契約者ごとに固有の識別番号(端末が変わっても引き継がれる)などを指す場合と、端末内部に記録された個体ごとに固有の製造番号(利用者が変わっても引き継がれる)などを指す場合がある。

パスワード ⭐⭐⭐

利用者が名乗った本人であるか確認する際などに用いられる秘密の合言葉。事前に登録したものと、認証時に入力したものが一致すれば本人であるとみなされる。

利用者の登録・識別を必要とするシステムでは、利用者の登録(アカウント作成など)の際に識別名(ユーザーID/アカウント名)とセットでパスワードを登録する。その識別名を名乗る利用者が使用開始(ログイン)を申請すると、システムはパスワードの入力を求め、登録されたものと一致すれば本人とみなして使用を許可する。

利用できる文字の種類や長さは個々のシステムによって定められているが、(半角の)ラテンアルファベット(大文字・小文字の区別あり)、数字、一部の記号の組み合わせで8文字以上と規定されている場合が多い。

パスワードと同じ秘密の情報を入力させる仕組みのものには、数桁の数字を入力させる暗証番号(PIN:Personal Identification Number)や、いくつかの単語の組み合わせを入力させるパスフレーズ(passphrase)などがある。

パスワードの割り出し

パスワードを他人に知られてしまうと自分になりすましてシステムを利用されてしまうため、誰にも知らせてはならない。ただし、攻撃者が不正にシステムを利用するためにパスワードの割り出しを試みる場合があり、直接知られなくても入手されてしまうことがある。

パスワードへの攻撃は、何らかの手法で候補を大量に生成し、実際にログインを試みることにより行われることが多い。主な手法として、すべての文字の組み合わせを片っ端から試す「総当たり攻撃」(ブルートフォースアタック)や、人間が覚えやすい既存の単語や文字の並びのリストを作り、それらを組み合わせて候補を作成する「辞書攻撃」(ディクショナリアタック)などがある。

これらの攻撃手法では短く覚えやすいものほど割り出しやすいため、パスワードは覚えられる範囲でなるべく長く、様々な文字種(大文字・小文字・数字・記号)を組み合わせて作成し、意味のある単語や覚えやすい単純な文字の並び(「password」「123456」など)などは避けるべきとされる。

また、本人や家族の氏名、生年月日、電話番号、居住地、出身地など、何らかの方法で入手した本人についての様々な情報から候補を作成する手法もあるため、自分や家族に関連する単語や番号などは含めないことが望ましい。

アクセス制御 【アクセスコントロール】

情報システムが利用者などを識別して、あらかじめ設定された権限に基づいて対象への接触や操作を許可あるいは禁止する仕組み。

何らかの主体(人間や機器、ソフトウェアなど)が、システムの管理下にある対象(装置や回線、データ、プログラム、ファイルなど)に対して、どのような操作が許されているかを登録・管理し、権限外の操作を実行しようとした時にはこれを拒否する。

例えば、ファイルシステムによるアクセス制御であれば、各ユーザーアカウントやユーザーのグループに対して、ファイルやディレクトリに対する読み込み、書き込み、削除、プログラムファイルの実行といった権限を付与し、操作主体と権限を確認して許可や拒否を行う。

認証・認可・監査

アクセス制御は「認証」(authentication)、「認可」(aurhorization)、「監査」(audit)といったプロセスから成る。認証は主体を識別して本物であることを確認するプロセスで、利用者にアカウント名を入力させ、パスワードなどの確認手段で本院であることを確かめる活動などが該当する。

認可は権限に基づいて操作の可否を判断するプロセスで、アカウント情報や管理者の定義したポリシー設定、アクセス制御リスト(ACL)などを参照して対象者の資格や権限を確認し、対象者が行おうとしている操作を許可したり拒絶したりする。

監査は、認証や認可、および利用主体による対象へのアクセスの履歴(ログ)を記録・蓄積し、後から「いつ誰が何を試みて結果がどうなったか」を管理者が追跡できるようにするプロセスである。システムやデータの安全を脅かす不審な試みや、不正な行為による被害などを確かめることができるようにする。

モデル

アクセス制御を適用する手法にはいくつかの典型的なモデルがあり、実際のシステムはモデルに基づいてアクセス制御の仕組みを実装している。

古くからありよく知られるのは、操作対象(オブジェクト)の所有者がアクセス許可の指定を行う「任意アクセス制御」(DAC:Discretionary Access Control)で、一般的なオペレーティングシステム(OS)のセキュリティ機能などで採用されている。

これに対して、「強制アクセス制御」(MAC:Mandatory Access Control)は管理者およびシステムが権限を設定し、所有者と言えどこれを変更できない仕組みである。軍用システムなど高度なセキュリティが要求される一部のシステムで実装されている。

他にも、利用者の役割(ロール)ごとに権限を設定する「ロールベースアクセス制御」(RBAC:Role-Based Access Control)や、利用者や操作対象の持つ様々な属性情報を収集し、どの属性のユーザーがどの環境でどの対象にアクセス可能かといった設定を記述していく「属性ベースアクセス制御」(ABAC:Attribute-Based Access Control)などの手法も提唱されている。

アクセス権

システムの登録利用者や利用者のグループに対して設定される、そのシステムの管理する資源を使用する権限のこと。アクセス権を設定し、これに基づいて資源の利用を許可したり拒否することをアクセス制御という。

何に対するどんな権限を設定できるかはシステムの種類によって様々だが、単にアクセス権といった場合はOSのアカウント管理システムやファイルシステムなどを通じて設定される、ストレージ(外部記憶装置)内のファイルやフォルダ、周辺機器などに対する利用権限を指すことが多い。

多くのOSでは、ファイルやフォルダに対しては「読み込み」「書き込み」「作成」「削除」などの動作について、また、実行可能ファイルはこれに加えて「実行」について可否を設定できるようになっている。

アクセス権は特定のユーザーアカウントやアカウントのグループを単位に設定するようになっていることが多いが、「管理者」「全員」「システム」「作成者」など特別な組み込みアカウントやグループを指名できる場合もある。

アクセス権を変更する権限を持つのは一般に管理者や管理者グループに属するユーザーで、一般の利用者は与えられたアクセス権に従って資源を使用するのみになっていることが多い。

電子署名 【デジタル署名】 ⭐⭐

文書やメッセージなどのデータの真正性を証明するために付加される短いデータ。作成者を証明し、改竄やすり替えが行われていないことを保証する。欧米で紙の文書に記されるサイン(signature)に似た働きをするためこのように呼ばれる。

対になる2つの暗号鍵を用いる公開鍵暗号の原理と暗号学的ハッシュ関数を組み合わせた仕組みで、メッセージの送信者は本人しか知らない秘密鍵と本文を元に一定の手順で算出した固定長の符号をメッセージに添付し、相手方に送る。

受信者は受け取った本文と、秘密鍵と対になる送信者の公開鍵などを用いて一定の手順で同様の符号の算出を試み、添付されたものと照合する。両者が一致すれば、メッセージが確かに送信者本人のものであり、かつ伝送途上で第三者による改竄やすり替えが行われていないことが確認できる。

デジタル署名はインターネットなど信頼できない経路を通じたメッセージの送受信でよく用いられるが、文書の安全な保管などにも用いられる。作成者が後になって自分が作成したことを否定するのを防ぐ(否認防止)証拠として用いられる場合もある。

公開鍵証明書とPKI

受信者が署名を検証するには送信者の公開鍵が必要だが、インターネットなど信頼できない経路で伝送すると攻撃者によるすり替えの危険があるため、公開鍵データに送信者と受信者の双方が信用する第三者のデジタル署名を添付するという手法が考案された。これをデジタル証明書(公開鍵証明書)と呼び、信頼できる第三者を認証局(CA:Certificate Authority)という。

証明書の真正性を確認するには認証局の公開鍵が必要であり、これは上位の認証局によって署名されたデジタル証明書によって配布される。このような信頼の連鎖の起点となる最上位の認証局はルート認証局(Root CA)と呼ばれ、実用上は送信者と受信者が同じルート認証局の証明書(ルート証明書)を持っていれば、それに連なる任意の認証局の証明書を用いて鍵を配送することができる。

このような安全な公開鍵配送のための社会的なインフラのことをPKI(Public Key Infrastructure)と呼び、インターネットなどで電子署名を利用するソフトウェアにはあらかじめ世界的に有力なルート認証局の証明書が組み込まれている。

電子署名とデジタル署名の違い

「電子署名」(electoronic signature)とは本来、紙の文書における押印やサインに相当する証明手段を電子的な手段で実現したもの全般を表す総称であり、「デジタル署名」(digital signature)は公開鍵暗号の原理に基づく電子署名の一方式である。

電子署名の方式としては他に、ペン型の入力機器で文書にサインを書き入れる電子サインなどがあるが、最も有力で普及しているデジタル署名を電子署名の同義語のように用いることが多い。

電子署名法

電子署名と認証業務に関する規定を定め、電子署名が手書き署名や押印と同等に通用することを定めた日本の法律。2000(平成12)年5月成立、2001年4月施行。正式名称は「電子署名及び認証業務に関する法律」。

有効な電子署名について一定の要件を定め、これを満たす電子署名が付された電子データに対して紙の文書に署名・捺印されたものと同等の法的な証拠性を認めている。具体的な技術要件は総務省・経済産業省・法務省が共同で告示しており、1024ビットRSAや1024ビットDSA、160ビットECDSAが挙げられている。このうちRSAについては危殆化の懸念から2019年までに2048ビットへの移行が予定され、同時にこれらの署名方式に用いるハッシュ関数もSHA-1からSHA-2へ移行される。

また、署名が本人のものであることを証明する認証業務について、一定の基準を満たした認証局がデジタル証明書を発行する業務を特定認証業務としている。その中で、さらに厳しい基準を満たし、国や指定検査機関の審査を経て認定された認証局の業務を認定認証業務という。認定認証局は全国で十社程度が認定されている。

認証局 【CA】

電子商取引事業者などに、暗号通信などで必要となるデジタル証明書を発行する機関。信頼の起点となる「ルート認証局」(root CA)と、証明書の発行を担う「中間認証局」(intermediate CA)がある。

ルート認証局は上位の認証局による認証を受けず、自分の正当性を自ら証明する。他の認証局に対してデジタル証明書を発行し、認証局に対する信頼の拠り所となる。ルート証明書の信頼性は、厳しい監査を受けることや、認証業務運用規程(CPS)を公開すること、運用実績や知名度など、デジタル証明書以外の方法で示される。

ルート認証局以外の認証局が中間認証局で、上位の認証局からデジタル証明書を発行してもらうことで、自らの正当性を証明する。中間認証局の多くは一般にデジタル証明書を販売する事業者で、Webサーバに導入するSSLサーバ証明書などはここから購入する。

通常、Webブラウザなどデジタル証明書を利用するソフトウェアには、ソフトウェアの発行元や利用者が信頼できるルート認証局の証明書が同梱されている。Webサイトなどに接続した時に、相手の提示した証明書が信用できるかどうかは、発行元の認証局を調べ、さらにその認証局を認証している上位局を調べ…といった具合に辿っていき、最終的に自分の手元にあるルート証明書に一致するルート認証局にたどり着けば、信用できると確認できる。

なお、商用認証局から証明書の交付を受けるには費用がかかるため、Webサイトなどの中には、自らがルート認証局となって証明書を発行し、暗号化通信などを利用するサイトもある。そのようなサイトの場合、あらかじめ同梱されたルート認証局の認証は受けていないことになるため、Webブラウザなどがその旨警告するようになっている。

登録局 (RA:Registration Authority)

デジタル証明書の発行申請を受け付け、本人確認を行い、認証局(CA:Certificate Authority)に発行を申請する機関を登録局(RA:Registration Authority)という。主に大規模なPKI(公開鍵認証基盤)で設置されるもので、自らは証明書を発行する機能・権限はなく、末端の利用者に対して発行や失効の手続きを受け付ける窓口となる機関である。

登録局から申請に応じて証明書を発行するのはCAの役割だが、登録局からの要請に基いて(自らは本人確認など登録局が行う業務は行わず)証明書の発行のみを行うCAのことを発行局(IA:Issuing Authority)ということがある。

検証局 (VA:Validation Authority)

デジタル証明書の失効リスト(CRL)を集中管理して、証明書の有効性をチェックする機関を検証局(VA:Validation Authority)という。認証局(CA)と違い、デジタル証明書の発行は行わず、検証機能に特化しているためこのように呼ばれる。クライアントからの問い合わせに応じて、CAの公開鍵で署名の正当性を検証したり、証明書の有効期限を確認したりする。

デジタル証明書 【電子証明書】

暗号化やデジタル署名に用いる公開鍵暗号の公開鍵を配送する際に、受信者が鍵の所有者を確認するために添付される一連のデータセットのこと。一般的には認証局(CA:Certificate Authority)と呼ばれる機関が発行する。

公開鍵暗号では一対の暗号鍵の組を用い、一方は自分しか知らない秘密鍵として、もう一方は通信の相手方に渡して使ってもらう公開鍵として用いる。相手と安全な受け渡し手段がある場合は事前に公開鍵を渡しておくことができるが、そうでない場合はインターネットなど信用できない経路を含む通信手段で鍵を配送しなければならない。

そこで、公開鍵が通信途上で攻撃者による改竄・すり替えに遭っておらず、確かに送信者本人のものであると受信者が確認できるようにするために、公開鍵データに送信者と受信者の双方が信用する第三者(認証局)のデジタル署名を添付するという手法が考案された。

送信者は認証局に自らの識別(身元)情報や公開鍵を申請し、認証局の秘密鍵でデジタル署名された電子証明書を作成してもらい、これを受信者に渡す。受信者は証明書から公開鍵を取り出し署名を検証することで、認証局がその公開鍵が送信者本人のものであると主張していることを確かめることができる。

現在広く普及している電子証明書の規格はITU-Tの定めたX.509で、公開鍵自体の他に、証明書発行者(認証局など)の識別情報、証明書の識別情報(シリアル番号など)、証明書の有効期間(開始日・終了日)、鍵の所有者の識別情報、公開鍵の暗号アルゴリズムの種類、発行者によるデジタル署名などの情報が記載される。

認証局の鍵配送問題とルート認証局

証明書のデジタル署名を検証するには認証局の公開鍵が必要となるため、受信者は送信者が利用する認証局の公開鍵を安全に入手しなければならない。しかし、世の中のすべての認証局の公開鍵をあらかじめ揃えておくことは現実的ではなく、また、インターネットなどで公開鍵をそのまま配送するのは送信者の鍵を送る場合と同じ危険がある。

この問題を回避するため、Webブラウザなど公開鍵暗号を利用するソフトウェアには世界的に有力な少数の認証局の公開鍵が安全な方法であらかじめ組み込まれており、そのような認証局をルート認証局(ルートCA)という。

各認証局は自らの公開鍵を上位の認証局に署名してもらって公開し、上位認証局はさらに上位の認証局に署名してもらって鍵を公開し…というプロセスを繰り返し、最終的にルート認証局の署名が得られれば、利用者は安全に各認証局の公開鍵を入手することができる。ルート認証局は利用者側でも追加できるようになっているため、必ずしも著名な機関を頂点とする証明書しか使用できないわけではない。

ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる