1

これに対する答えは単純にノーだと確信していますが、すべての根拠をカバーしたいと思います。

.net のコンテキストで、Web アプリやサービスではなく、エンド ユーザーが同じサービスに直接アクセスせずにサービスにアクセスできるアプリを作成する方法はありますか?

または、より具体的に言えば、パスワード、何らかの形式の資格情報をアプリ内またはアプリとファイル (どちらもユーザーもアクセスできる) 内に保存する方法はありますか?資格情報を抽出し、そのサービスに一般的にアクセスするために使用しますか?

これを非常に困難にする可能性があることは認識していますが、このシナリオとセットアップを考えると、これらの資格情報とこのパスワードの取得を多かれ少なかれ不可能にすることはできないという印象を受けています. 利害関係者に安全であることを保証できる方法はありますか?

4

1 に答える 1

3

答えは: いいえ、ユーザーがサービスのパスワードを取得できないようにすることは不可能ですが、パスワードを取得するのを困難にするための措置を講じることはできます。

あなたができるいくつかの簡単なこと

  • 暗号化されたパスワードをユーザーのハード ドライブ (コンパイルされた exe および dll ファイルの内部を含む) に保存しSecureString、暗号化されていない形式でしばらく保存します。
  • コード難読化ツールを使用して、コードのリバース エンジニアリングを困難にします (最初の提案から復号化関数を非表示にする必要があります)。
  • この種の「防御的コーディング」の経験者をコンサルタントとして継承し、プログラムを調べてリバース エンジニアリングを困難にします。
  • 完全に管理下にあり、保護したいサード パーティ サービスへの呼び出しを行うエンド ユーザーが物理的にアクセスできる機器でホストされていないプロキシ サービスを記述します。エンド ユーザーはプロキシのログインを見ることができますが、できませんでした。プロキシの背後にあるものについては、ログインを参照してください。

これらすべてに労力や費用がかかります。このようなセキュリティ対策を設計するときは、単純な質問を自問する必要があります

その答えが得られると、製品を保護するためにそれだけのお金/労力を費やすことになります。なぜなら、それ以上のお金を費やす場合は、情報を漏らすだけの方が安上がりだったからです (ソフトウェア開発とセキュリティに関する悲しい真実)。

于 2014-05-21T21:36:52.837 に答える