COVID-19とオープンソースソフトウェア

インドの接触追跡アプリAarogya Setu2020527日よりオープンソースソフトウェアとなりました。アプリのソースコードgithub上に公開され、Apache2.0のライセンス条項に従う限り、商用利用や改変、再配布も可能となります。既に多くの人々がソースコードに目を通し、github上で活発に修正依頼や機能追加提案が行われています。本稿ではオープンソースソフトウェアの特徴を解説するとともに、接触追跡アプリにおいてソースコードを開示する意義について考えていきたいと思います。

1. オープンソースソフトウェアとは

ソフトウェアは、一般に何らかのプログラミング言語で書かれたソースコードを、コンピュータが処理できる機械語で書かれた実行可能プログラムに変換したものです。このため、ソースコードのことをソフトウェアの設計図と呼ぶこともあります。このようなソースコードを秘匿せずに公開した方が様々なメリットがあるという考え方が広がり、現在では様々なソフトウェアのソースコードが公開され、所属を問わず多くの人々が開発に関わるようになっています。

単にソースコードを公開するだけでは、そのソースコードをどのように利用すれば良いかがわかりません。例えば機能を追加するような改変を行って再配布したいと思ったとき、そのような行為が許可されているか不明です。そこで重要となるのが利用条件を定めたライセンスです。オープンソースの定義に合致するライセンスでソースコードが開示されたソフトウェアをオープンソースソフトウェアと呼びます。Aarogya SetuApache2.0というオープンソースの定義に合致するライセンスでソースコードが開示されたオープンソースソフトウェアとなりました。

https://github.com/nic-delhi/AarogyaSetu_Android

2. 接触追跡アプリのソースコードを開示するメリット

ソースコードを公開するメリットの一つとして品質の向上が挙げられます。注目されているOSSでは、一企業や一組織が動員可能な人員とは比較にならないほど多くの人々がソフトウェアの開発や検証に関わります。様々な角度からソースコードが検証されると、プログラムの不具合や設計上の欠陥による脆弱性が指摘され、ソフトウェアアップデートにより脆弱性が解消されます。Aarogya Setuもこのような脆弱性の解消によるセキュリティの向上を期待して、オープンソースソフトウェアとなりました。インド政府は更にプログラムの不具合を見つけた人に報奨金を出すことにより、ソフトウェアのセキュリティを向上させようとしています。

ソースコードを公開するもう一つのメリットとして、ソフトウェアの透明性を高めて、信用を得ることが挙げられます。ソースコードが公開されていないソフトウェアでは、どのようなデータが取得され、取得されたデータがどのように処理され、どこに保存されるのかがわかりません。ソフトウェアの開発元がプライバシーを侵害するような挙動をしていないと説明しても、実際にどのような動作をしているかわからないため信用を得られません。しかしながら、ソースコードが公開されて誰もが挙動を検証できる状態になり、そのソフトウェアが特に不審な挙動をしていないと確認されると、信用を得ることができます。他人との接触情報や個人の位置情報のようなデリケートなデータを扱うソフトウェアでは特に、適切にデータを扱っていると示すためにソースコードを開示することが信頼につながります。

3. 最後に

公開されたソースコードに基づいて、ソフトウェアによる個人情報の取り扱いを誰もが監視できるようになったことは、Aarogya Setuがインドの国民からの信用を得る上で大きな前進です。このように透明性を高めて信用を得ることは、組織や企業の垣根を超えたクロスボーダーの協業、そしてオープンイノベーションにも通じるものがあります。