2011-04-16 10 views
1

私は、明示的な許可(パスワードによる)が与えられていない限り、人々にアクセスさせたくないアプリケーションを持っています。具体的には、ユーザーがパスワードを入力しない限り、このアプリケーションは特定の時間帯に「ロック」されている必要があります。アプリケーションをパスワードで保護することはできますか?

時間を確認する機能は簡単です。アプリケーションをロックする機能は、わからないことです。これを行う必要がある理由は、ユーザーがログアウトすることを信頼しないため、アプリケーションに不正なアクセスを望まないためです。これはちょうど場合の最後の手段の一種として意味されます。

私はアプリケーションを書いていないので、パスワードを埋め込むことはできません。マシンには1人のユーザーしかいません。私は他のユーザーを作成したくありません。私のユーザーは管理者でもあります。したがって、ほとんどのオプションはセキュリティを提供するためにOSを使用することに魅力的です。

これを達成するためのアイデアはありますか? 私はMac OS Xを扱っていますが、OSに依存しないソリューションを好むでしょう。 CまたはC++を含むすべてのソリューションを歓迎します。

ありがとうございます!

+0

短い回答:いいえ。 – msw

+0

私は長い答えが欲しいです。 – chacham15

+0

私は質問に答えることはできません。どのようなシナリオを守ろうとしていますか?ユースケースを構築した方法は、アプリケーションの保護はありません。あなたのユーザーはルートを持っているので、ソフトウェアのコピーやパスワードの譲渡など、何でもできます。 – msw

答えて

6

暗号化されたディスクイメージバンドルにアプリを埋め込むのはどうですか?限り適切にそこからそれをコピーし、それを決して使用しないとユーザーだけが、その後バンドルをアンマウントして、私はそれはあなたが望むものを達成だと思う:

  1. ディスクユーティリティを使用して新しい暗号化ディスクイメージ(DMG)を作成します。 (これによりパスワードを入力することができます)、ユーザのホームディレクトリ内のどこにでも保存できます。
  2. マウントDMGとあなたが
  3. 、その内部を保護しようとしているアプリを置くには
  4. を搭載しDMG内のアプリへのエイリアスを作成し、デスクトップ上に置くアンマウントしDMG

後ユーザーがデスクトップ上のエイリアスをダブルクリックすると、DMGのパスワードの入力が求められます。それが正しい場合、DMGがマウントされ、アプリケーションは自動的かつ直接起動されます。

おそらくその後自動アンマウントするには、可能性があり、このようなdiskutilシェルコマンドを使用するスクリプトの何か、:> diskutil unmount /Volumes/DMG_NAME

あなたがしなければならないすべては、次のとおりです。

  • は、任意の暗号化されていないコピーを削除システムからのアプリ
  • あなたは、彼がアプリを使って完了したときにDMGをアンマウントするようにユーザーに通知します(またはこれを自動的に行うスクリプト)
  • あなたの仲間のStackOverflowersに、実際の問題があなたが解決していることを説明してください。 Mswにはポイントがあり、ちょっと精巧にできれば嬉しいです。
+0

これは、ユーザーが書いているのはプログラマではなく、コンピュータについてはほとんど分かっていないということです。私はexeをダブルクリックしてパスワードを要求するプロンプトが表示され、パスワードが正しい場合にのみ実行可能ファイルを実行するというインターフェースを提供したい。私はmswが示唆しているようにほぼ同じように動作しますが、何とか現在の実行可能ファイルを自分の中に埋め込んでいます。 – chacham15

+0

あなたは誰からアプリケーションを保護しようとしていますか?セキュリティに関する質問はその質問に対する答えが無ければ無意味です。ユーザーはコンピュータに精通していないが、root権限を持っているとします。彼があなたのアプリケーションへのアクセスから保護しようとしていますか?彼はすでにOSに自分自身を認証しているので無制限の特権があり、あなたの余分なハードルはちょうど迷惑になるからだ。 rootのログインセッションにアクセスできるが無視されていない人を守ろうとしていますか?彼女はすでにアクセス権を持っており、別のパスワードで彼女を止めることはできません。 – msw

+1

これはほぼ解決策ですが、アプリケーションが終了したときにディスクをプログラムでアンマウントすることはできますか?私。私は(C#用語を使うために)アプリケーションを終了してそのボリュームをアンマウントすることができますか? – chacham15

0

明らかにこの設定では100%安全ではありませんが、カジュアルユーザーの場合はパスワードでアプリケーションを暗号化してから、パスワードを入力するとアプリケーションを復号化して起動する起動アプリケーションを作成し、アプリケーションは終了します。

0
#include <stdio.h> 
#include <string.h> 

char buf[BUFSIZ] 
puts('what is the secret password? '); 
fgets(buf, BUFSIZ, stdin); 
if (strcmp('secret', buf)) exit(1); 

は、コードかもしれない何か他のものと同様に動作し、シンプルさと可搬性の利点を持っているべきです。

+0

同じ行に多くの答えがあるという古い質問があります:一般的に使用されている/実行ファイルで見つかった単語を使用するので、バイナリを検索するとたくさんの一致などが生成されます。今すぐ – rubenvb

+0

私が言ったように、私はプログラムを書いていないので、プログラムにコードを埋め込むことはできません。つまり、コードを既存の実行可能ファイルに埋め込む方法が分からない限り、そうではありません。 – chacham15

関連する問題