このページは、OLPCチームによってチェックされています。
- This is an on-going translation
{{{1}}}
Bitfrost(ビットフロスト)とはOLPCのセキュリティ・プラットフォームです。このページでこれから続く内容は、非テクニカル的に紹介した、私たちが解決しようとするセキュリティ問題やそれに関した私たちの目標とそれに基づいた原理です。内容は完全Bitfrost specification(ビットフロスト・スペック)かlocal wiki version(ローカルwikiバージョン、日本語翻訳版はここ「ただいま翻訳中」です)から来ています。それらに付いて、公開のOLPC security mailing list(セキュリティ・メーリングリスト)を通してぜひ
議論に参加できるよう願っています。
Introduction and summary
In 1971, AT&T programmers Ken Thompson and Dennis Ritchie released
the first version of UNIX. The operating system, which started in 1969 as an
unpaid project called UNICS, got a name change and some official funding by
Bell Labs when the programmers offered to add text processing support. Many of
the big design ideas behind UNIX persist to this day: popular server operating
systems like Linux, FreeBSD, and a host of others all share much of the basic
UNIX design.
紹介と要約
1971年にAT&Tの二人のプログラマー、Ken Thompson (ケン・トンプソン)とDennis Ritchie (デニス・リッチー)が初バージョンのUNIX(ユニックス)をリリースしました。そのオペレーティングシステムは1969年にUNICS(ユニックス)として収入なしのボランティアプロジェクトから始まりました。プログラマー達がテキストプロセッシング・サポートを加える申し出をした時に名前の変更とBell Labs (ベル・ラブス)からの正式な財政援助を得ました。UNIXの大まかなデザインの思いつきは現代まで残っています。人気のあるLinux (リナックス)、FreeBSD (フリーBSD)などのサーバ・オペレーティングシステムや、その他の様々なシステムは基本的に同じUNIX (ユニックス)のデザインを共用しています。
The 1971 version of UNIX supported the following security permissions on
user files:
- non-owner can change file (write)
- non-owner can read file
- owner can change file (write)
- owner can read file
- file can be executed
- file is set-uid
1971年バージョンのUNIX (ユニックス)はuser files (ユーザファイル)で以下のsecurity permissions (セキュリティパーミッション)をサポートしていました。
- non-owner (ノンオウナー/非保有者)はファイルを'change'(チェンジ/変更)できる (write) (ライト/書き込み)
- non-owner (ノンオウナー/非保有者)はファイルが'read'(リード/読む)できる
- owner (オウナー/保有者)はファイルを'change'(チェンジ/変更)できる (write) (ライト/書き込み)
- owner (オウナー/保有者)はファイルが'read'(リード/読む)できる
- ファイルは'execute' (エクセキュート/実行)できる
- ファイルは'set-uid' (setuid/セット・ユー・アイ・ディー)にする
These permissions should look familiar, because they are very close to the same
security permissions a user can set for her files today, in her operating
system of choice. What's deeply troubling — almost unbelievable — about these
permissions is that they've remained virtually the only real control
mechanism that a user has over her personal documents today: a user can choose
to protect her files from other people on the system, but has no control
whatsoever over what her own programs are able to do with her files.
これらのパーミッションはよく見たことがあるでしょう。その理由は、現在ユーザが使うオペレーティングシステムの上での、ファイルにセットできるセキュリティ・パーミッションにそっくりだからです。このパーミッションであまり信じられなくて大変心配なのは、それが昔から現在まで変わりなく、個人ドキュメントの上でユーザが手元に持っているほぼ唯一のコントロールメカニズムだからです。ユーザは同じシステムを共用する他のユーザからファイルを守る事はできますが、自分のプログラムがファイルでいったい何ができるとかのコントロールはまったくありません。
In 1971, this might have been acceptable: it was 20 years before the advent of
the Web, and the threat model for most computer users was entirely different
than the one that applies today. But how, then, is it a surprise that we can't
stop viruses and malware now, when our defenses have remained largely unchanged
from thirty-five years ago?
それは1971年には承知されたでしょう: ウェブが現れる20年前でしたし、ほとんどのコンピュータユーザに当てはまる脅威モデルも今とは全く違っていました。だが、しかし、我々の守りが35年間の間に何も変わっていない状態なので、未だにウィールスやマルウェアを止められないのは当然ではないでしょうか?
The crux of the problem lies in the assumption that any program executing on
a system on the user's behalf should have the exact same abilities and
permissions as any other program executing on behalf of the same user. 1971 was
seven years before the first ever international packet-switched network came
into existence. And the first wide-area network using TCP/IP, the communication
suite used by the modern Internet, wasn't created until 1983, twelve years
after Thompson and Ritchie designed the file permissions we're discussing. The
bottom line is that in 1971, there was almost no conceivable way a program
could "come to exist" on a computer except if the account owner — the user —
physically transported it to a machine (for instance, on punched tape), or
entered it there manually. And so the "all or nothing" security approach, where
executing programs have full control over their owner's account, made quite a
lot of sense: any code the user executed, she ipso facto trusted for all
practical purposes.
問題の原因はユーザの名で実行される全プログラムがユーザとまったく同じ機能と特権で実行されることです。 1971年は初のinternational packet-switched network(インターナショナル・パケットスイッチ・ネットワーク)が現れる7年前でした。そして、現在のインターネットが使うコミュニケーション・スーツTCP/IP (ティー・シー・ピー・アイ・ピー)を活用したwide-area network(ワイドエリア・ネットワーク)は1983年まで作られませんでした。これは我々がここで話すトンプソンとリッチーがデザインしたファイルパーミッションから12年後の出来事です。結論的に言うと、1971年ではアカウント保有者のユーザオウナーが肉体的に(例えば、パンチテープで)ファイルを移動するか、または手動で入力しない限りプログラムはコンピュータに存在する事は想像としてもありえませんでした。そのため、実行するプログラムが保有者のアカウントを全体的にコントロールすることできる、例えば、ユーザが実行するコードは実用性のためあらかじめ信用されるとかの"all or nothing"(すべてが無かの)タイプのセキュリティに対するアプローチが結果的に良識されることになったでしょう。
Fast forward to today, and the situation couldn't be more different: the
starkest contrast is perhaps the Web, where a user's web browser executes
untrusted scripting code on just about every web page she visits! Browsers are
growing increasingly complex sandboxing systems that try to restrict the
abilities of such web scripts, but even the latest browser versions are still
fixing bugs in their scripting engine implementations. And don't forget e-mail:
anyone can send a user an executable program, and for many years the users'
instinctive reaction was to open the attachment and run the program. Untrusted
code is everywhere, and the only defense seems to be tedious user training and
anti-virus software — the latter assuming it's fully updated, and assuming the
anti-virus makers have had time to deconstruct each latest virus and construct a
defense for it.
舞台を現代へ変えてみましょう、事態は極端に違っています。最も対照的なのは多分ユーザが尋ねる殆どのウェブページに置ける'untrusted scripting code'(アントラステッド・スクリプトコード/不信用スクリプトコード)がウェブブラウザによって実行される、ウェブの上でしょう。ブラウザはますますその様なウェブスクリプトの機能を制限する複雑なサンドボックス・システムになっています。しかし、未だに最新バージョンのブラウザはスクリプトエンジンの実装でバグフィックスを行っています。Eメールのことも忘れないでください。だれでもユーザ宛に実行ファイルを送りつけることができます。長い間、ユーザの本能的な行動はアタッチメントを開いてプログラムを作動することでした。'Untrusted code'(アントラステッド・コード/不信用コード)はあっちこっちにあり、唯一の防御方は退屈なユーザトレーニングとアンチウィールスだけなようです。後のアンチウィールスに関しては、それがアップデートされており、さらにアンチウィールスメーカーが各新登場ウィールスの分析をして対策を作る時間がある設定を予想した事情の上での話です。
{{{1}}}
Bitfrost(ビットフロスト)を構成するほとんどのテクノロジーは独特のリサーチではありません。それらは、セキュリティ関係の著述ではよく知られていますし、ある物はすでに実際の場で運用されており、研究所でテスト中の物もあります。OLPC XOラップトップに注目を集めるのは、初めてそれらのセキュリティ対策が十及び何百万人ものユーザを対象に使われるシステムで慎重に纏めて導入されることです。そして、そのラップトップは初めてメインストリームのコンピュータが、強いセキュリティを得るためにレガシープログラムへの互換性を自ら進んで諦めた例かもしれません。例として、アンチウィールスやアンチスパイウェア対策テクノロジーの話がビットフロスト・スペックから目立つように不在であるのに気づくでしょう。その理由は、XOラップトップのセキュリティプラットフォームがその様な問題をムート(議論必要なし)にするからです。
We have set out to create a system that is both drastically more secure and
provides drastically more usable security than any mainstream system currently
on the market. One result of the dedication to usability is that there is only
one protection provided by the Bitfrost platform that requires user response,
and even then, it's a simple 'yes or no' question understandable even by young
children. The remainder of the security is provided behind the scenes. But
pushing the envelope on both security and usability is a tall order, and it's
important to note that we have neither tried to create, nor do we believe we
have created, a "perfectly secure" system. Notions of perfect security in the
real world are foolish, and we distance ourselves up front from any such claims.
我々は、他の今、マーケットに出ているすべてのメインストリームシステムよりも大幅にセキュアで、大幅に上回るセキュリティでのユーザビリティ(使いやすさ)の両方を装備したシステムの構成を目指しました。ユーザビリティ(使いやすさ)へ取り込んだ一つのいいことは、ビットフロストのプラットフォームでユーザから応答が必要なプロテクションをただ一つに絞ることが出来たことです。その上でも、童子にでも理解できる、単なる'yes or no'(ハイかイイエ)の質問です。残りのセキュリティは目に見えない所で備えられています。しかし、セキュリティとユーザビリティ(使いやすさ)の両方を目指すにも限界があり、ここで、とても大切で言いたいことは、我々は決して"perfectly secure"(完璧なセキュリティ)などは作ろうともしなかったし、そのようなシステムが作られたとも信じてはいません。現実の世界で'perfect security'(完璧なセキュリティ)を完成させるなどのような考えはあまりにもばかげているので、そのような下らない主張からはきっぱりと遠ざかります。
Bitfrost (ビットフロスト)のアプローチ
Principles (原理)
- Open design
- The laptop's security must not depend upon a secret design implemented in hardware or software.
- No lockdown
- Though in their default settings, the laptop's security systems may impose various prohibitions on the user's actions, there must exist a way for these security systems to be disabled. When that is the case, the machine will grant the user complete control.
- No reading required
- Security cannot depend upon the user's ability to read a message from the computer and act in an informed and sensible manner. While disabling a particular security mechanism may require reading, a machine must be secure out of the factory if given to a user who cannot yet read.
- Unobtrusive security
- Whenever possible, the security on the machines must be behind the scenes, making its presence known only through subtle visual or audio cues, and never getting in the user's way. Whenever in conflict with slight user convenience, strong unobtrusive security is to take precedence, though utmost care must be taken to ensure such allowances do not seriously or conspicuously reduce the usability of the machines. As an example, if a program is found attempting to violate a security setting, the user will not be prompted to permit the action; the action will simply be denied. If the user wishes to grant permission for such an action, she can do so through the graphical security center interface.
- Open design (オープン・デザイン)
- ラップトップのセキュリティはハードウェアとソフトウェアの上での秘密性には絶対に頼らない。
- No lockdown (ロックダウンなし)
- ディフォルトセッティングでラップトップのセキュリティシステムはユーザに様々な制限をユーザの行動に対してつけ加えますが、セキュリティシステムを解除する方法は必ず必要です。その場合、マシンは全コントロールをユーザに返します。
- No reading required (読書必要なし)
- セキュリティはユーザのコンピュータから来るメッセージの正しい解読能力、そして、それを元に知識的で賢い行動をとる能力に頼ることはできない。セキュリティメカニズムを解除する時は、なにかを読まないといけませんでしょうが、まだ読むことができないユーザに与えれるマシンは出費される前からセキュアであるべきです。
- Unobstrusive security (アンオブストリュシブ・セキュリティ/慎ましいセキュリティ)
- セキュリティはできるだけ裏で行われます。かすかな表示や音のヒントだけでその存在にやっと気づく程度で、決してユーザの邪魔にはなりません。ユーザの少しの便利さとの衝突の場合は、強いアンオブストリュシブ・セキュリティの方が優先になります。けど、そのような手配がひどく、または、派手にマシンの使いやすさを減らさないよう十分に気をつけなければなりません。例えば、もしプログラムがセキュリティセッティングを破ろうとしているなら、ユーザには行動を許可する確認は現れなく、ただ静かに拒否されます。もし、ユーザが行動に許可を与えたいなら、グラフィカルなセキュリティセンター・インターフェースを通して設定を変えることができます。
目標
- No user passwords
- With users as young as 5 years old, the security of the laptop cannot depend on the user's ability to remember a password. Users cannot be expected to choose passwords when they first receive computers.
- No unencrypted authentication
- Authentication of laptops or users will not depend upon identifiers that are sent unencrypted over the network. This means no cleartext passwords of any kind will be used in any OLPC protocol and Ethernet MAC addresses will never be used for authentication.
- Out-of-the-box security
- The laptop should be both usable and secure out-of-the-box, without the need to download security updates when at all possible.
- Limited institutional PKI
- The laptop will be supplied with public keys from OLPC and the country or regional authority (e.g. the ministry or department of education), but these keys will not be used to validate the identity of laptop users. The sole purpose of these keys will be to verify the integrity of bundled software and content. Users will be identified through an organically-grown PKI without a certified chain of trust — in other words, our approach to PKI is KCM, or key continuity management.
- No permanent data loss
- Information on the laptop will be replicated to some centralized storage place so that the student can recover it in the event that the laptop is lost, stolen or destroyed.
If this subject matter interests you, please read the complete Bitfrost
specification, join the OLPC security mailing list, share your thoughts,
and join the discussion.
- No user passwords (ユーザパスワード不必要)
- ユーザの年齢は5歳も満たない子供も対象にしているため、セキュリティの上でユーザがパスワードを覚える能力をあてにすることはできません。ユーザが最初にラップトップを受け取る時にパスワードの設定をするなどの行動は期待できないでしょう。
- No unencrypted authentication (非暗号化された認証なし)
- ラップトップやユーザの認証はネットワークの上で非暗号化された状態で受信した識別子には頼らない。つまり、OLPCプロトコルでは、どんな所でも'cleartext passwords'(クリアテキスト・パスワード/可読テキスト・パスワード)は一切使わず、イーサネットMACアドレスは決して認証には使われません。
- Out-of-the-box security (箱から出た状態でセキュリティ)
- ラップトップはセキュリティアップデートとかをダウンロードする必要なしで、箱から出た状態でセキュアでかつ有用でなければなりません。
- Limited institutional PKI (リミテッド・インスティツーショナル・PKI|ピーケイアイ/限られた機関公開鍵基盤)
- ラップトップの公開鍵はOLPCと国家または地方自治区(例、文部省、教育省)が調達します。だが、これらの鍵はラップトップユーザの身分証明には使われません。このような鍵の唯一の目的は一緒に含まれたソフトウェアとコンテンツの'integrity'(インテグリティ/データの安全性)を検証するために使用されます。ユーザの認証は'certified chain of trust'(サーティファイド・チェイン・オブ・トラスト/認定信頼チェーン)なしの有機的に作られたPKIを通して行われます。すなわち、我々のPKIへのアプローチはKCM (ケーシーエム)、または、'key continuity management'(キー・コンティニュイティー・マネージメント/鍵継続管理)です。
- No permanent data loss (ノー・パーマネント・データロス/永久的データ破損なし)
ラップトップの中にあるデータは、もし、生徒がラップトップをなくしたり、盗まれたり、または、破壊された時にデータの回復を可能にするために、なんらかの'centralized storage place'(セントラライズド・ストレージ・プレース/中央記憶場所)にレプリケートされます。
もし、このトピックに興味があるなら、完全な'Bitfrost specification'(ビットフロスト・スペック)をご覧下さい。そして、OLPCセキュリティ・メーリングリストに加わって、意見の交換や議論にぜひ参加してください。