モバイルアプリ開発の負荷を軽減するための堅実な方法:セキュアなモバイルアプリ開発【後編】
OSの多数のバージョンや端末をサポートしつつ迅速かつセキュアにアプリを開発するのは困難であり、開発の負荷を低減するための方法は必須だ。
前編(モバイルアプリのセキュリティを確保するための堅実な方法)では、モバイルアプリケーションのセキュリティを確保するための初歩を紹介した。
後編では、開発の負荷を軽減する方法を解説する。
関連記事
- 変化するモバイルアプリ開発
- モバイルアプリの実装方法と開発&テストツール選び
- モバイルアプリ開発を成功に導く組織編成のヒント
- 「モダンなソフトウェア」とその「開発チーム」の条件
- 交流を促すモバイルエクスペリエンスの構築
開発のセキュリティ負荷の軽減
複数バージョンのOSと端末をサポートすることは困難な仕事の一つだと認めるのは、Immersive Labsのショーン・ライト氏(アプリケーションセキュリティ責任者)だ。ただし、この負担を軽減できる「Apache Cordova」などのモバイルアプリケーション開発フレームワークも登場していると同氏は指摘する。
「結局は、難しさの大半をフレームワークが抽象化する。ただし、アプリケーションのセキュリティを確保し続けるにはフレームワークを最新状態に保つことが不可欠だ」(ライト氏)
ライト氏によると、AndroidとiOSはセキュアなアプリケーションを作成できるようにするために長い道のりを歩んできたという。「その好例がTLS(Transport Layer Security)だ。両OSの最新バージョンは、証明書の検証といった複雑さの大半が処理され、よりセキュアなアプリケーションを実現するのに役立つ」と同氏は話す。
セキュリティが確保されたモバイルアプリケーションの開発は、Webベースのアプリケーション開発とほとんど変わらないとして、ライト氏は次のように述べる。「モバイルアプリケーション開発でも、保存時や転送中の暗号化などのベストプラクティスに従い、可能な場合は適切なライブラリやフレームワークを利用する。モバイルアプリケーションのセキュリティテストも重要だ」
「モバイルアプリケーションとWebアプリケーションには類似点がたくさんある。どちらもAPIを通じて相互作用し、データを取得して処理する」
セキュアなモバイルアプリケーション開発の実践
1Passwordの開発者は、セキュリティとプライバシーはアプリケーション開発プロセス全体の基礎と見なしている。1Passwordのマイケル・ベルデ氏(Android開発チーム責任者)は次のように話す。「アプリケーションの設計方法、機能、その機能の実装方法は開発者が決定する」
1Passwordは多層セキュリティアプローチを実践し、複数の暗号化層を使ってサーバとの通信を保護する。「暗号化フレームワーク、サンドボックス処理、信頼性の高い実行環境など、アプリケーションのデプロイ先のセキュリティ機能を利用してアプリケーションにも同様の保護層を導入する。アプリケーションも階層化し、最も機密度の高い情報はアプリケーションの最も内側の層でのみ処理するようにする」
セキュアなモバイルアプリケーション開発を実現するために1Passwordが導入しているもう一つの方法は、理解しやすく、誤用しにくい機能を設計することだ。「セキュリティと利便性のトレードオフが生じた場合は必ずセキュリティを優先する。顧客にとって適切な利便性の高い機能を実現する選択肢は顧客に委ねる」とベルデ氏は話す。
「当社はアプリケーションの基盤に共通コードを使い、コード内で最も機密度の高い経路が堅牢(けんろう)で、各アプリケーションの実装が同一であることを確認している。このようなコードの一元化は、機密データや個人情報のログ記録など、よくある落とし穴に落ちるのを防ぐのに役立つ。加えられた変更をセキュリティチームが簡単に確認できることも重要だ」
モバイルアプリケーションのセキュリティを確保することは重要だが、競争上の優位を維持するためにアプリケーションを迅速にリリースし、顧客を満足させることも重要だ。Bloombergのレン・ウェルター氏(モバイルアプリケーション「Bloomberg Professional」のグローバル製品マネジャー)は次のように話す。「当社はパフォーマンスやiOS/Androidのユーザーエクスペリエンスを犠牲にすることなく開発速度を上げるという明確な目標を掲げて、ここ数年モバイルインフラとプラットフォームに投資している」
Bloombergがアプリケーションを迅速にリリースできるのはBloomberg独自のSDK(ソフトウェア開発キット)のおかげだとウェルター氏は言う。「SDKによって、パフォーマンスが高く、十分にテストされた再利用可能なコンポーネントのセットが作成される。このコンポーネントはAndroidでもiOSでもネイティブに実行される」
「これによりビジネス要件が変化してもユーザーインタフェースとビジネスロジックは一貫性が保たれ、クライアントのニーズに合わせて素早くアプリケーションを更新できる。当社のSDKはiOSとAndroidの両方で、比較的複雑な機能を数日間から数週間でリリース可能だ。パンデミック中のモバイルアプリケーションの使用量急増(ほぼ50%増)にも対応できた」
モバイルアプリケーション開発は多くの異なる要素を持つ複雑なプロセスだ。特にセキュリティを確保し、迅速に展開することは、モバイルアプリケーション開発を成功に導く前提条件であると言っても過言ではない。
Copyright © ITmedia, Inc. All Rights Reserved.