ネットワークセキュリティにおけるRC4とは?仕組み・用途・脆弱性を徹底解説
ネットワークセキュリティにおけるRC4とは?
RC4(Rivest Cipher 4)は、1987年に暗号学者ロナルド・リベスト(Ron Rivest)によってRSAセキュリティ向けに開発されたストリーム暗号です。「ARC4」や「ARCFOUR(Alleged RC4=推定されるRC4)」という名称で呼ばれることもあります。処理がシンプルで動作が高速なことから、かつてはソフトウェア実装で最も広く使われた暗号方式の一つでしたが、近年になって複数の脆弱性が発見され、現在では安全な暗号方式とはみなされていません。
RC4の仕組み
RC4はストリーム暗号の一種で、秘密鍵をもとに疑似ランダムなビット列(鍵ストリーム)を生成し、その鍵ストリームと平文をXOR(排他的論理和)することで暗号化を行います。復号の際も同じ鍵ストリームとのXOR演算で元の平文を復元できるため、暗号化と復号が同じ処理で実現できる点が特徴です。
RC4の処理は、大きく次の2つの段階に分けられます。
1. 鍵スケジューリングアルゴリズム(KSA)
まず、可変長の秘密鍵(40〜256ビット、一般的には64ビットまたは128ビット)を使って内部状態(256バイトの配列)を初期化します。この段階を鍵スケジューリングアルゴリズム(KSA:Key-Scheduling Algorithm)と呼びます。
2. 疑似乱数生成アルゴリズム(PRGA)
次に、初期化された内部状態から疑似ランダムなバイト列を1バイトずつ生成します。この段階を疑似乱数生成アルゴリズム(PRGA:Pseudo-Random Generation Algorithm)と呼び、1バイトの出力に8〜16回程度の演算が必要となります。
RC4の主な用途
RC4は高速で実装が簡単なことから、かつてはさまざまなセキュリティプロトコルやソフトウェアに採用されてきました。
- SSL / TLS:ウェブブラウザとサーバー間の通信を暗号化するプロトコル。1995年頃からSSLで使用され、その後継のTLSでも長らく利用されました。
- WEP(Wired Equivalent Privacy):IEEE 802.11無線LAN規格に組み込まれた暗号化方式(1997年〜)。WEPは短い鍵から疑似ランダムな鍵ストリームを無限に生成するストリーム暗号としてRC4を採用していました。
- WPA(Wi-Fi Protected Access):2003年に登場した無線LANのセキュリティ規格でも、初期のバージョンではRC4が使用されていました。
- その他のソフトウェア:Microsoft Officeをはじめ、多くの一般向けソフトウェアにも組み込まれてきました。
RC4の脆弱性と現在の状況
RC4には構造上の欠陥があります。生成される鍵ストリームのバイトには統計的な偏り(バイアス)があり、完全にランダムとは言えないのです。この偏りは長年知られていましたが、当初は実用上の脅威とはみなされていませんでした。しかし、2011年にBEAST攻撃が発覚して以降、RC4の脆弱性を悪用した攻撃が現実味を帯びるようになりました。
攻撃者は、暗号文と既知の平文の対応関係を分析することで、未知の平文の一部を推測できる可能性があります。このような脆弱性のため、RC4は現在では極めて安全性の低い暗号方式とされ、主要なブラウザやTLSの標準規格からも除外されています。現在もRC4を採用しているアプリケーションはごくわずかです。
RC4とDESの違い
暗号方式を理解するうえで、RC4とDESの違いを押さえておきましょう。
- DES:ブロック暗号と呼ばれる方式で、データを固定長のブロック単位で暗号化します。3DES(トリプルDES)の基礎となった方式で、多くの共通鍵ブロック暗号の原型となったFeistel暗号に基づいています。
- RC4:ストリーム暗号と呼ばれる方式で、データを1バイト(または1ビット)ずつ連続的に暗号化します。
まとめ
RC4は、1987年にロナルド・リベストが開発した高速かつシンプルなストリーム暗号であり、SSL/TLSやWEPなど、かつては世界中の通信プロトコルで広く利用されてきました。しかし、鍵ストリームの偏りを利用した攻撃をはじめとする複数の脆弱性が判明したことで、現在は非推奨の暗号方式となっています。現代のシステムでは、AESなどのより安全な暗号方式を採用することが強く推奨されます。
-
ネットワークセキュリティキー(ID)とは?確認方法とトラブル対処法を徹底解説
ネットワークセキュリティIDの確認方法WindowsでネットワークセキュリティIDを確認するには、まずスタートアイコンを右クリックして「ネットワーク接続」メニューを開きます。次に「ネットワークと共有センター」へのリンクをクリックしてください。接続中のWi-Fiネットワーク名をクリックすると詳細情報が表示され、「ワイヤレスプロパティ」から「セキュリティ」タブへ移動することでセキュリティキーを確認できます。ネットワークセキュリティコードとは何かネットワークセキュリティコードとは、無線ネットワークへのアクセスを保護するために必要な、英数字で構成された文字列のことです。WEP(Wired Equiva
-
OSとネットワークセキュリティとは?仕組み・種類・必要性をわかりやすく解説
ネットワークセキュリティとは?ネットワークセキュリティとは、ネットワークとデータを様々な脅威から守り、可用性と完全性を維持するための一連の取り組みです。対象となるのはハードウェアだけでなく、ソフトウェア技術も含まれます。ウイルスや不正アクセスなど数多くの脅威が存在しますが、ネットワークセキュリティによって、これらがネットワークへ侵入したり拡散したりすることを防ぎます。効果的なネットワークセキュリティがあれば、安全なネットワークアクセスが実現します。ネットワークセキュリティの定義と種類ネットワークセキュリティとは、ネットワークおよびその上にあるデータが、意図せず漏洩したり盗み見られたりすることを