ローカルマシンにコンテンツを暗号化するMicrosoft Windows用のパスワードロッカープログラムを作成しました。データを取り出す唯一の方法は、ユーザーが知っている暗号化キーを使用することです。 OSの既存のAPIを使用して暗号化を行います。
私はそれが安全で、そこにバックドアを書いていないと思いますが、人々がそのようなアプリケーションを信頼していないので、私はそれを配布することに少しも力を入れていませんisntバックドアまたは安全に暗号化されています。
ソフトウェアを安全に使用できることを潜在的なユーザーに適切に保証するために何ができますか?
証明は強力な言葉であり、正直に言うと、あなたが探している言葉ではありません。あなたが本当に欲しいのは信頼です。ユーザー(またはこの場合は潜在的なユーザー)に、ソフトウェアが最も機密性の高いデータを保護するために十分に安全であることを信頼してもらいたい。これを行うにはいくつかの方法があります。
資格のある第三者から独立した意見を得る。言い換えれば、あなたのソフトウェアにきれいな健康診断書を与える監査です。
プロのプレゼンテーション。あなたのソフトウェアが余暇にアマチュアによって作成されたように見えるウェブサイト上にある場合、多くの人々は、セキュリティを含むそのすべての機能についてその品質に満足するでしょう。それが専門的に提示され、専門家によって裏付けられているように見えても、正しくてもそうでなくても、人々はそれをより高く評価します。それが心理学です。
要するに、あなたの最大の課題は、おそらくあなた自身の提供物ではなく、競争です。そこにはたくさんのパスワード管理ソフトウェアがあります。あなたのものは、高品質で安全であるように見えるだけでなく、少なくとも彼らのものと同じくらい高品質で安全である必要があります。
セキュリティの証拠を提供することに真剣に取り組んでいる場合(Wordの「証明」を使用するのをためらいます)、米国市場では NIST暗号化モジュール検証プログラム(CMVP) が必要です。 。
検証を取得することは、長く困難で費用のかかるプロセスであり、多大な投資と変更が必要になる場合があることに注意してください。
また、合格すると、 米国政府による無料広告 が得られるだけでなく、使用する必要のある代理店や企業による製品の購入が可能になりますFIPS 140 -2検証済み製品。
それ以上に、信頼できる公的な第三者による監査は、少なくともある程度の証拠となります。コストはかかりますが、検証を受けるほどではありません。
ユーザーが十分な情報に基づいて決定できるようにアーキテクチャの詳細を十分に指定しないと、パスワード管理アプリが安全で信頼できることを潜在的なユーザーに納得させることはできません。
何よりもまず、使用されている暗号化アルゴリズムとキーの強度を言う必要があります。うまくいけば、それが何であれ、それは現在のものであり、現代の戦術に対して破れないものとして一般に受け入れられています。
また、コードがデータポスト復号化をどのように処理するかについて話す必要があります。 WindowsプラットフォームにはSecureStringクラスがあり、暗号化されていないデータがプレーンテキストのメモリや必要以上に長くメモリに格納されないようにするのに適度に優れています。アプリが異常終了した場合、データがクラッシュダンプファイルにプレーンテキストで含まれていることをユーザーが発見したとしても、それは望ましくありません。
実施された侵入テストの詳細を詳細とともに提供する必要があります。理想的には、有能な侵入テスターにアプリを打ち負かして弱点を明らかにするように要請する必要があります。アプリは一般的な攻撃方法に対してどのようなアクティブな防御策を備えていますか。最も一般的なキーロガーアプリのいずれかが実行されている場合、検出して動作を拒否しますか?
最後に、人間の要素を忘れないでください。ユーザーがキーを忘れた場合、またはアプリが何らかの理由で破損または紛失した場合、どうなりますか?回復機能はありますか?その周りのプロセスは何ですか?データを取り戻す方法がなく単純になくなってしまった場合、それはうまく受け入れられません。データを回復するプロセスがある場合、そのプロセスを精査する必要があります。 Facebookでターゲットの母親を見つけ、旧姓を知っているだけで暗号化されたデータを復元できるとしたら、良いことではありません。
落胆させようとはしていませんが、この種のアプリのマーケティングは非常に危険です。何十年もこのビジネスに携わってきた企業と競争し、製品を開発および/またはテストするために世界のトップマインドを雇うリソースを持っています。
たとえそれができたとしても、責任から身を守るためには非常に厳しい法的免責事項が必要です。ある朝目が覚めたら、.Netの暗号化クラスがアプリを脆弱にする方法で悪用されたというニュースが広まっているとしたらどうでしょう。コードとサポートプロセスですべてを正しく行った可能性がありますが、直接制御できないクラスライブラリに依存しています。