サイバーセキュリティを考える市民の会
フリーソフトウェアということばを聞いたことがある人は多いと思うが、たいていの場合、「フリー=無料」というふうに理解されているようだ。実はそこには「free as in freedom」すなわち自由という意味が強く込められている。
米国のフリーソフトウェア財団の「自由ソフトウェアの定義」(https://www.gnu.org/philosophy/free-sw.ja.html)によれば、自由の定義は4つある。どんな目的に対してもプログラムを望むままに実行する権利(第零の自由)、プログラムを自由に動作研究・改造する権利(第一の自由)、コピーを再配布する権利(第二の自由)、改変したものを自由に再配布できる権利(第三の自由)、である。これらが満たされていないソフトウェアは「不自由」である。店頭やスマホのアプリストアなどで売られているソフトウェアの大半は、ソースコード(プログラムの元となるテキストデータ)が公開されておらず、コピーや再配布も禁止されているので、不自由なソフトウェアである。
不自由なソフトウェアのなにが問題なのか。製作者は生産したものを売って対価を得なければならない、勝手にコピーや改造をされては困る、という発想は、一見自然なものに思える。これを守らせるのが著作権法や特許法である、というわけだ。
しかし、考えてみれば奇妙なことである。まず、モノと異なり、ソフトウェアはどれだけ使ってもなくなることはない。そして、ほぼゼロコストでいくらでも複製することが可能である。
生産についてはどうだろうか。まったくの無から作られるソフトウェアなど存在しない。部品が高度に再利用可能なのがソフトウェアの特徴であり、複雑なソフトウェアも既存の部品を組み合わせて作られる。直接的間接的にこれまで積み上げられてきた膨大な共有財産の上に成り立つのが、ソフトウェア開発である。知的労働の成果が社会やコミュニティ全体で自由に共有されているからこそ、次により豊かなものが生まれていく。たとえば、足し算や掛け算に特許が設定されていたらどんなことになるか、はさみや鉛筆に用途制限が課されていたらどうなるか、を想像してもらえばよいだろう。
コンピュータの黎明期にはソフトウェアの自由はごく当たり前のものだったが、コンピュータ産業が商業的に発展するにつれて独占大企業の影響力が大きくなり、不自由なソフトウェアが世の中にあふれるようになってきた。そうした状況に対して1980年代初頭より自由ソフトウェア運動が展開されてきた。
ソフトウェアの自由を保障していくための方法のひとつとして、コピーレフトがある。前述した4つの自由を保障することをライセンスに組み込み、かつコピーレフトライセンスのソフトウェアを改変したり組み込んだソフトウェアは、同じくコピーレフトライセンスで配布しなければならない、というものである。すなわち、著作権を逆手に取って「自由を強制/伝染させる」という興味深い戦略である。
これまで多くの自由ソフトウェアが開発され、成功を収めている。たとえばブラウザソフトのFirefoxや、オフィスソフトのLibreOfficeは著名であり、不自由なInternet ExplorerやMicrosoft Officeと比べてもまったく遜色ない使い勝手である。また、自由なOS(基本ソフトウェア)であるGNU/Linuxは、サーバ用途ではほぼ100%のシェアを占めている。ソフトウェア開発関連における自由ソフトウェアの比率は高く、それなしでは成り立たないといってよい。
ソフトウェアのコピーに制限を設けないのなら、どうやって開発者は報酬を得たらよいのか、という疑問があるかもしれない。アップデートや保守などのサポート業務で収益を上げればよいのである。代表的な例として、Red Hat社はこのようなビジネスモデルでOSであるRed Hat Enterprise Linuxを無料ライセンスで提供しつつ、会社を発展させている。自由ソフトウェアの価値に関する理解が深まってきた近年では、非営利の財団が開発を支援したり、企業が自由ソフトウェアの開発やメンテナンスに関わる人材を専従で雇ったりすることも増えてきている。
自由ソフトウェアが優秀であることには、理由がある。ソースコードが公開されていることで、だれもがプログラムの内容を検証することができ、改良作業に加わることができる。とりわけ、セキュリティ分野では、多くの開発者により検証が行われ、迅速な対応がなされることがきわめて重要だ。ソースコードが非公開なソフトウェアの利用者は、プログラム内でどんなことが行われているかを知ることができない。
2016年初めに、FBIが捜査のため、アップル社に対してiPhoneの暗号化を回避するバックドアを仕掛けるよう要請した件があった。結局、アップル社は拒絶したのだが、大量監視の時代のなかで、バックドアの懸念はこれからも出てくるだろう。反面、自由ソフトウェアにバックドアを設置することは、かなり難しい。
セキュリティについて考えるとき、使おうと思っているツールが自由ソフトウェアであるかどうかを判断基準のひとつにするべきだ。