リモート接続と暗号化
リモート接続と暗号化について説明
リモート接続
サーバなどの管理をしていると、インターネットの先にあるコンピュータを操作したい場合が多い。こういった場合には、リモート接続機能を用いる。
リモート接続による相手側のコンピュータを操作する場合、相手側のコンピュータには リモート接続 用のサーバプログラムを起動しておく。こういったリモート接続を利用するのは、”unix” の利用者が多いが、”unix” では、サーバ のプログラムは、一般的にデーモン(daemon/守護神)と呼ばれる。
telnet と rlogin
telnet は、最も基本的なリモート接続の方法であり、TCP の 23 番ポートを使う。telnetのサーバ(telnetd)は、送られてくるタイプされた文字を unix の shell (キーボードでの命令を実行するプログラム) に渡し、shell の実行結果の文字を接続元に送り返す。
rlogin は、TCP の 513 番ポートを使うリモート接続用のソフトで、サーバで rlogind を起動しておく。unix で rlogin クライアントを使うと、リモート側で命令を実行したりファイルをコピーすることができる。
こういったリモート接続ができると、ネットワークの向こう側のコンピュータを自由に操作できる一方で、login のパスワードが破られるとコンピュータを悪用されたり情報を盗まれる可能性がある。
特に、telnet , rlogin では、通信の内容が暗号化されないため、パケット盗聴(後述)されると、サーバを悪用されてしまう。
このため、ルータや firewall では、ポート番号 23 , 513 などは、遮断するのが一般的である。
ssh
暗号化されない rlogin の通信を暗号化により安全に実行できるようにしたものが、ssh (secure shell) である。
ssh は、通常では TCP の 22 番ポートを使う。しかし、暗号化されていたとしてもパスワード破りなどの危険性があるため、ポート番号を変更したり、特定のコンピュータに対してのみ接続許可を与え、安全対策を行う。
リモートデスクトップ
Windows では、コンピュータの操作では、マウス操作が中心(GUI: Graphical User Interface)となる。これに比べ、telnet,rlogin,ssh などの方法では、キーボードによる操作が中心(CUI: Character User Interface)であり、初心者には難しい。こういう場合はリモートデスクトップ(remote desktop)が用いられる。
remote desktop では、サーバのディスプレイ画面の情報をクライアントに送り、クライアントの操作(キーボード入力やマウス操作)がサーバに送られ、サーバのコンピュータを自由に操作ができる。
暗号化
Ethernet では1本の通信線を共有したり、WiFiのような無線通信では、通信データの盗聴が簡単にできてしまう。クラッカーは、通信データの中から”login, password” といった文字を検索し、その近辺の文字を探すことでパスワードを盗み出す。
このようなことを防ぐために通信データの暗号化は重要な方法である。
暗号化アルゴリズム
暗号化の最も原始的な方法が、置換式 と呼ばれる方法で、特定の文字を別な文字に変更する。rot13は、A→N,B→Oに置き換える暗号。コナン・ドイル原作のシャーロック・ホームズに出てくる踊る人形などもこれに相当する。これらの方法では、アルファベットの文字の出現頻度から元の文を想像することで解読されてしまう。
エニグマ(Enigma)は、第2次世界大戦でナチス・ドイツが用いたロータ式暗号機であり、置換式の解読方法が不可能であった。しかし、イギリスのアラン・チューリングが電気式の解読器を開発することで暗号解読が可能となった。この解読器が現在のコンピュータの原型となっている。
チューリングによる暗号解読は、映画「イミテーションゲーム」を参照。
最近では、様々な暗号化アルゴリズムが開発されており、古くは “DES, AES“といったアルゴリズムが使われていたが、コンピュータの性能の向上と共に、解読に必要な時間が短くなったことから、RSA といった新しい暗号化方式が考えられ、さらに暗号化の鍵を長くすることで解読に要する時間を長くするようになっている。
パスワード解読方法
ログインなどで使われるパスワードは、どのように破られるのだろうか?
- ブルートフォース攻撃:単純に全ての文字を試す方式。文字の組み合わせ問題なので、パスワード文字列長をNとした場合、数字だけ(10N)とか英字だけ(26N)といった組み合わせでは、短時間に解読されてしまう。数字,大文字,小文字,記号などを交えたパスワードが理想。
- 英単語辞書を用いた辞書攻撃:パスワードが長い場合、文字列の全ての組み合わせを試すには長い時間が必要となる。しかし、パスワードはユーザが記憶して使うことから覚えやすい単語が使われる。このため英単語辞書の文字を組み合わせることで、解読時間を短くできる場合がある。
- 漏えいパスワードによる辞書攻撃:サーバへのリモート接続などができてしまった場合、パスワード情報が盗まれる場合がある。この時、別なサイトに同じパスワードを使っていると、その漏えいしたパスワードで別のサイトも接続ができてしまう。これらのことから、同じパスワードを使いまわすことは避けるべきである。
- ソーシャル攻撃:パスワードには、簡単に覚えられるように自宅の電話番号、誕生日、家族の名前といったものを使う人が多い。このため、SNS で相手に友達登録をしてもうことで、こういった情報を手に入れ、パスワードを破る方法。最近の有名人の個人情報漏洩はこの手の攻撃が多い。
ソーシャル攻撃は、元クラッカーケビン・ミトニックが有名
攻撃が難しい暗号化へ
先に述べたような、login に使うパスワードなどは、ブルートフォース攻撃をうけると解読は時間の問題となる。これらの対策として毎回違う鍵(パスワード)を使えばいい。
- 暗号表:置換式で読み取られるのを防ぐために、置換する文字の表を沢山作っておき、別の方法でその度毎に置換表を変更する
- ワンタイムパスワード:使い捨てのパスワードをあらかじめ沢山作っておき、接続の度に次のパスワードを用いる方式。あるいは、時間から特殊な計算方法で生成されるパスワード。時間と共に変化するのでその度毎に違うパスワードとなる。毎回違うパスワードを入力するため、パスワード表を常に持ち歩いたり、入力が面倒なので数字だけを使うことが多く、この方法だけでは使いにくい。
公開鍵暗号方式
以前に使われていた暗号化の方式は、暗号化の鍵と復号化の鍵に同じものを用いる共通鍵方式であった。
しかし、この鍵をどうやって相手に渡すか…が問題となっていた。(鍵を相手に渡す瞬間のデータを盗聴されると危険)
このため、最近では公開鍵暗号方式が中心となっている。この方式は「暗号化するため専用の公開鍵」と、「暗号化を復号するための秘密鍵」をペアにして用いる。公開鍵は、暗号化するため専用なので、この鍵が他の人に見られても、暗号を復号することはできない。
公開鍵暗号方式では、RSA などが最も有名で現在広く利用されている。
WWWとhttp
前回の DNS とメールで紹介の抜けていた点を補足。内容は前回の講義録に追記。
WWWとhttp
WWWとは、ティム・バーナーズ=リーによって作られたサービスであり、元々は研究データの論文やデータの共有のために作られた。この際のWebサーバのデータのやり取りのためのプロトコルがhttp(Hyper Text Transfer Protocol)であり、ポート番号80のTCPを用いたものであり、最近では通信を暗号化したhttps(ポート番号443)も多く使われる。
httpでは、文字データの中に画像や音声といった情報に加え、他のデータへのリンクを埋め込むことができる HTML(Hyper Text Markup Language) のデータがやりとりされる。このHTML形式のデータを表示するためのソフトは、ブラウザと呼ばれる。
URL
WWWのデータの場所を示すものが、URL(Uniformed Resource Locator)であるが、最近ではインターネットが複雑化しLocator という表現が難しいため、URI(Uniformed Resource Identifier)と呼ぶようになってきた。
URLは基本的に、スキーマ://コンピュータ名/サーバ内ファイル位置 といった文字で構成される。URL は、HTTP だけでなく、インターネットの情報の場所を記述するために使われており、httpやhttps以外にも使う。
http
httpのサーバ(Webサーバ)とブラウザでは、以下のような手順で処理が行われる。例えば http://www.ei.fukui-nct.ac.jp/~t-saitoh/index.html のページが表示されるまでを考えると、
- ブラウザのURL欄に、目的サイトのURLを入力。
- 基本的には、スキーマ欄に記載されたプロトコル(http)名から、ポート番号と通信方法(http)を決める。
- コンピュータ名部分(www.ei.fukui-nct.ac.jp)を DNS に問合せして、得られたIPアドレスのコンピュータに接続。
- httpの最も簡単な GET メソッドでは、Webサーバに、サーバ内のファイル位置(/~t-saitoh/index.html)を伝えると、Webサーバは指定された場所のファイルを返送する。
- HTML形式のデータが指定された場合、ブラウザはその HTML をどの様に表示するか判断しながら表示する。
このような予め保存されているWebページを返送する場合は静的ページと呼ばれる。サーバのデータベースなどを参照しながらページ内容を返送する場合は、動的ページと呼ばれ、CGI(Common Gateway Interface) という手法が使われたり、動的なページを表示するためのプログラム言語(例えばPHP)が使われる。
サーチエンジン
インターネットでは、大量のWebページが出現してきたため、自分の目的に応じてWebページを探す機能が必要となってきた。このような目的のWebページを検索してくれるシステムは、サーチエンジンと呼ばれる。
ディレクトリ型
最初に現れた検索システムは、ページ作者が自分のページのURLと内容となるキーワードを登録しておき、内容のカテゴリー別に、ページの紹介文章が表示されるディレクトリ型であった。(初期のYahoo)
しかし、登録するキーワード以外の文字で探そうとすると、情報を見つけることができない。
ロボット型
これらの問題を解決すべく登場したのが、Google のようなロボット型サーチエンジンである。
ロボット型の検索システムでは、クローラーとかロボットとか呼ばれるプログラムを使い、Webページの内容をダウンロードし、そこに記載された文字を使ってURLのデータベースを作成する。クローラーは、リンクが貼られていると、そのページでも同様の処理を行い、大量の情報を次々と取得していく。
直接サーバと接続
サーバの動作を知るために、メールサーバやWebサーバと直接通信をしてみよう。
この実験をするには、telnet コマンドを使う。telnet コマンドは、タイプされた文字をサーバに送り、サーバから返答された文字を画面に表示するだけの単純なコマンドである。
使い方: telnet 相手サーバ ポート番号 (例1) メールサーバに接続 $ nslookup -query=MX fukui-nct.ac.jp # 自組織メールサーバを探す : Non-authoritative answer: fukui-nct.ac.jp mail exchanger = 10 smtp.ip.fukui-nct.ac.jp. $ telnet smtp.ip.fukui-nct.ac.jp 25 # メールサーバに接続 Trying 10.10.21.55... Connected to smtp.ip.fukui-nct.ac.jp. Escape character is '^]'. 220 ews.ip.fukui-nct.ac.jp EGVA/SMTP Ready. HELO ei.fukui-nct.ac.jp # 送信開始 250 Requested mail action okay, completed. MAIL FROM: foo@ei.fukui-nct.ac.jp # 送信元の設定 250 Requested mail action okay, completed. RCPT TO: bar@example.jp # 送信先の設定 250 Requested mail action okay, completed. DATA # メールデータ 354 Enter mail, end with "." on a line by itself. From: foo@ei.fukui-nct.ac.jp Subject: test test . 250 Requested mail action okay, completed. QUIT # 送信中止 (例2) Webサーバに接続 # http://www.ei.fukui-nct.ac.jp/~t-saitoh/ を参照 $ telnet www.ei.fukui-nct.ac.jp 80 Trying 104.215.24.241... Connected to fnctei.ei.fukui-nct.ac.jp. Escape character is '^]'. GET /~t-saitoh/ http/1.1 # GET ファイル位置 プロトコル <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard"> :
DNSとメール
DNSとドメイン名
インターネットでの通信では、IPプロトコルでコンピュータを指定するが、IPアドレスは無機質で覚えるのが大変であり、これをサポートするのが、IPアドレスの電話帳でもある DNS(Domain Name Service) である。
コンピュータでサービスに使うコンピュータには、ドメイン名を割り振る。ドメイン名は、www.ei.fukui-nct.ac.jp といったピリオド区切りの名前であり、以下のような意味を持つ。
www. | ei. | fukui-nct. | ac. | jp |
ホスト名 | サブドメイン | 組織ドメイン | 組織種別 | 国ドメイン |
ただしアメリカでは、国ドメインを一般的に使わない。また最近では、世界的な企業では国ドメインが意味をなさないので、アメリカ以外でも .com や .net といった、トップレベルドメインが使われる。様々なサービスを展開している企業では、組織種別が意味をなさないため、toyota.jp といったものも増えてきた。
以下に、主要な組織ドメイン・国ドメインをあげる。
このドメイン名から、IPアドレスを調べる DNS は、ポート番号53,UDP を使ったサービスで、一般的な機器はその組織用の DNS サーバに接続して名前からIPアドレスを知ることができる。各組織の DNSサーバは、上位サーバが設けられ調べられない IP アドレスは、さらに上位のサーバに問合せが行われる。
nslookup の使い方
DNSの問合せには、nslookup というコマンドを用いる。
$ nslookup www.u-fukui.ac.jp # 福井大学のWebサーバの問合せ Server: 192.168.xx.xx Address: 192.168.xx.xx#53 Non-authoritative answer: # この例では、複数のコンピュータの Name: www.u-fukui.ac.jp # IPアドレスが求まっている。 Address: 220.110.205.26 # 負荷分散を目的とした Name: www.u-fukui.ac.jp # ラウンドロビン DNS のため Address: 202.19.136.96 :
DNSの問合せには、ドメイン名からIPアドレスを求める「正引き」とは反対に、IPアドレスからドメイン名を求める「逆引き」もある。この機能を使って、アクセスしてきたコンピュータの逆引きを行うことで、どういった組織からのアクセスかを調べることができ、危険な組織からであればアクセスを拒否するようにサーバを設定したりする。
$ nslookup 192.156.146.100 # 福井高専のWebサーバの問合せ : Non-authoritative answer: 100.146.156.192.in-addr.arpa name = sv1.ip.fukui-nct.ac.jp. :
DNSと階層構造
前回説明したDNSでは、1つのDNSサーバに処理が集中しないようにするために、階層型構成となっている。
組織に属するパソコンは、その組織用のDNSサーバに接続する。DNSサーバは自身の組織のDNS情報を提供するとともに、他の組織の DNS の問合せ結果をある程度保存し(キャッシュ)、同じ問合せがあった場合は保存した情報を返す。保存されていない場合は、上位DNSサーバに問合せを行う。最上位サーバにまで届いた問合せは、各ドメイン名を管理しているDNSサーバに問合せを行う。
パソコンがインターネットに接続できない場合は、DNS のトラブルが原因の場合もある。こういった場合には、Google が、IPアドレス 8.8.8.8 でDNSサーバを公開している。これを使って DNS のトラブルを調べることも多い。
$ nslookup www.u-fukui.ac.jp 8.8.8.8
最近のマルウェアによる攻撃手法の1つに、DNS ポイズニングという手法がある。
マルウェアに感染した際に、パソコンの DNS の設定を攻撃者用の DNS に変更することで、偽物のコンピュータに接続させる手法。
メール
電子メールは、非常に迅速にメッセージを相手に届けることができ、そのメッセージを蓄積・加 工・編集・転送できる。また、音声や画像といった情報も、複雑な文字情報に置き換えることで、 転送できるようになっている。
メールは、foo@example.co.jp といったような、ユーザ名とドメイン名から構成される。
foo | @ | example.co.jp |
ユーザ名 | ドメイン名 |
メールは、直接相手のコンピュータにメールが届くわけではない。メールは、相手のメールサーバまでメールを届ける SMTP プロトコルと、メールサーバから自分のメールを取り出す POP や IMAP というプロトコルによって行われる。
例えば、A さん(aaa@foo.co.jp) から、Bさん(bbb@bar.co.jp)にメールを出す場合には、送信処理で…
- Aさんは、メールソフトでメールを出す。この時、メールは、Aさんの利用しているメールサーバ(A-server)に SMTP で送る。
- A-server は、メールの To: の部分の ドメイン名部分より送付先のメールサーバを見つける。[MX]
- 送付先の ドメイン名 から、IPアドレスを調べ、メールは SMTP で相手のメールサーバ(B-server)に送られる。
- B-server は、メールの ユーザ名 部分をみて、各ユーザ毎にメール内容を保存する。
この後、Bさんは、自分宛のメールを受信するには…
- Bさんは、メールソフトでメールを受信しようとすると、メールサーバ(B-server)に、POP または IMAP で接続する。
- 接続時には、ユーザ名とパスワードで本人を確認する。
- POP であれば、新着メールをパソコン側にダウンロードし、一般的にメールはサーバから削除される。
- IMAP であれば、ユーザが読みたいメールをパソコンに転送し表示する。メールは削除を行わない限り、サーバに残る。
このプロトコルの流れで、注目すべき点は、SMTP でメールを送る際に、ユーザ確認が行われないことである。このため、メールでは現在でも迷惑メール(spam)を無くすことが困難となっている。
最近では、メールを自分のメールサーバに送る前に、POP/IMAP でサーバに接続して認証を受けてからでないとメールを出せないようにするなどの対応を取っているが、自組織からは、認証無しで SMTP でメールを出せる場合も多い。
[MX]メールアドレスのドメイン名では、ホスト名部分やサブドメインは省略されることも多い。送信先のメールサーバを見つける場合には、DNS の MX レコードを参照する。
$ nslookup -query=MX fukui-nct.ac.jp 8.8.8.8 : Non-authoritative answer: fukui-nct.ac.jp mail exchanger = 10 pomme.ip.fukui-nct.ac.jp. fukui-nct.ac.jp mail exchanger = 20 peche.ip.fukui-nct.ac.[spam]迷惑メールの対策として、以下のような対策が行われている。
- 組織外からメールを受信した時は、”To:”の送り先が組織内の人である確認をする。(オープンリレー対策)
- ファイアウォールで、メールサーバ以外の機器からSMTP(ポート番号25)の接続を禁止する。(OP25B)
- SPF,DKIM といった送信ドメインの認証を行う。
$ nslookup -query=TXT xxx.fukui-nct.ac.jp 8.8.8.8 : Non-authoritative answer: xxx.fukui-nct.ac.jp text = "v=spf1 +ip4:xxx.xxx.xxx.xxx +a ~all"
メールヘッダの読み方
メールには迷惑メールや、マルウェアが仕込まれたものも多い。しかしながら、偽装したメールなども多く、メールを正しく分析できる知識が必要となる。この一つとして、メールヘッダを理解することが重要となる。
メールヘッダには、その宛先(To:)や発信者(From:)や発信日時(Date:)以外にも、様々な情報が記載されている。メールヘッダを読むには、メールソフトで「表示 – メッセージのソース」を選ぶと以下のようなものが表示される。
From: メールの送信者
To: メールの宛先 漢字が含まれると
Subject: メールのタイトル =?iso-xxxx?...?= といったMIME形式
Date: メール送信日時
Received: どのコンピュータからどのコンピュータに送られたか
From:のコンピュータ名と中継されたコンピュータが無関係だと怪しい
Received-SPF: SPF(送信ドメイン認証)
DKIM-Signature: DKIM(送信ドメイン認証)
一方で、だます目的の迷惑メールでは、タイトルなどにお金やアダルトに関するキーワードであったり、有害サイトへのリンクが含まれることが多い。このため、メールソフトやメールサーバで、キーワードやURLの類似性を見て自動的に迷惑メール判定を行うことも多い。
家族のGoogleアカウントへの攻撃
うちの奥さんに、Google さんから、「あなたのアカウントに台湾からアクセスがありました」といったメールが届く。海外に遊びに行ってるわけでもなく、まずはメール自体が「フィッシングメール」かどうか確かめる。この文面からすると、アカウントにアクセスがあったけど、国外でのアクセスは異常なのでブロックしたという雰囲気。つまり、パスワードが漏れている可能性が高い。
使い回しパスワードは危険
パスワードの使用状況を聞いてみたら、gmail のメールアドレスで、複数の Web サービスを利用していて、そのパスワードが全部同じ。これからすると、使っている Web サービスのどこかで認証情報が盗まれ、そのアカウントで別の Web サービスに侵入が行われたと考えるべき。典型的な、共通パスワード利用者への辞書攻撃。
お金系は2段階認証が必須
ということで、早々に (1)Googleのパスワード変更と2段階認証設定、(2)Google IDと同じパスワードを使っている他のWeb サービスのパスワード変更を行った。特に金融系とか通販でクレジットカードを入力しているものは、特に。ただ、よく使っていたクレジットカードはサービス停止で切り替えたようで、多少は安心。(3)最後に Apple ID, Amazon, Facebook といったものも、2段階認証をONにする。
トランスポート層とTCP/IP
最初に簡単に転送速度の例題の解説。
毎年、意外と間違いが多いのが、異なる速度のネットワークを経由した転送時間。パケットは、バケツリレー方式で送られるので、通信路の一番遅い部分の通信速度で計算すればいい。
サブネット同士をつなぐプロトコルとして、IPプロトコルを紹介したが、データ通信ではノイズなどの影響で通信に失敗することがある。これらを補うためのTCPがある。
TCP
TCP(Transmission Control Protocol/トランスミッションコントロールプロトコル)では、分割されたパケットを元の順序に組み上げたり、パケットが途中で消えた場合の再送などの処理を行う。この機能により確実に相手に送る機能が実現されている。
3way ハンドシェーク
TCPの通信では、最初に相互に通信が可能かを確認するハンドシェークが行われる。パケットには、SYN,ACK,FINといった種別を表すフラグがついており、SYNは接続確立の要求を表す。ACKは了解を表す。FINは切断要求を表す。通信開始の時には、(1)通信OK?,(2)OKだよ、そっちもOK?,(3)OKだよ!といった3つの通信パケットで確認してから通信を行う。この最初のやり取りを3way ハンドシェークという。
データリンク層
サブネット分割
前述のように、1つのバス型接続のネットワーク内部には、同時に設置できる機器の数には限界がある。このため、小さなネットワークに分割したもの(サブネット)を、ブリッジやルータで接続し、隣接するサブネットにサブネット内の通信情報が出ないように分割することを行う。
(さらに…)
EthernetとCSMA/CD
ネットワークトポロジ
ネットワークに機器を接続する方式をネットワークトポロジと言う。
1本の線を共有するバス型、機器どうしがリング型に接続するリング型、中央の機器を通して接続されるスター型が基本となる。
基本的に、Ethernet は 1本の線を機器で共有するバス型。ただし、10BASE-T,100BASE-TX などの HUB で繋がることから、HUB を中心に広がるスター型とも言える。それぞれれのネットワークは相互につながることから、木の枝状に見えるものはツリー型と呼ばれる。また、上流ネットワークでは、機器が故障した場合に一切の通信ができなくなるのは問題があるため、複数のネットワークで相互に接続される。この場合、網が絡むような構造になることから、ネットワーク型と呼ばれる。
物理層WAN接続
前回の物理層のLANの話に引き続き、WANの話を説明。
バス接続(LAN)と転送速度
基本的な Ethernet の接続では、1本の通信路を共有するバス型接続のため、1本の信号線をパケット単位の通信の短い時間に区切って、送信を交代しながら行う時分割多重方式で行い通信を行う。
このため、下図で通信路が10BASE/T であった場合、PC-A から PC-B にCD1枚のデータ700MBを送る場合、
>-----+-----------+------< CD1枚 700MB | | をPC-A⇒PC-Bに転送 PC-A PC-B 何秒かかる? 700M[Byte] * 8 = 5.6 G[bit] を 10M[bps] で送ると 5.6G[bit] / 10M[bit/sec] = 560[sec]
また、PC-A から、PC-B , PC-C に同時にCDデータをダウンロードする場合、時分割多重となるため、時間は倍かかる。
>-----+------+------+-----< | | | PC-A PC-B PC-C
情報ネットワーク基礎・ガイダンス
シラバス:情報ネットワーク基礎
情報ネットワーク基礎では、インターネットがどのような仕組みなのか、どのようにして動いているのかを説明する。TCP/IPって何? IPアドレスって何? セキュリティって何?
あなたが使っているネットワーク機能は?
共有:ネットワークプリンタ、ファイル共有…
分散:大量のコンピュータで負荷分散、リスク分散…
ネットワークの歴史
昔のコンピュータは、開発にお金がかかるため1台のコンピュータを全員で使うもの(TSS)だった。冷戦の時代、軍の重要な処理を行うコンピュータでは、コンピュータのある所に核攻撃を加えられ、軍の機能がすべて動かなくなることは問題だった。1970年頃にアメリカ国防総省ARPANETがインターネットの原型(TCP/IP)を作る。
1980年代には、パソコンがインターネットで繋がるようになる(LAN)。1990年代には、LANどうしを遠隔地接続をするWANが発達。欧州原子核研究機構(CERN)で、ティム・バーナーズ=リーがWorld Wide Web/httpを開発(1989)。1995年、マイクロソフトの家庭用パソコンのOS Windows95の普及と共にWWWが普及する。
※1980年代:パソコン通信、1997年:weblog,1998年:Google検索、1999年:2ch、2002年:SNSの誕生、2006年:Twitter,Facebook(一般開放)