タグ付けされた質問 「security」

暗号化とITセキュリティに関する質問。これは、コンピュータ、ネットワーク、またはデータベースのセキュリティです。

6
ソースコードを秘密にしておくことが正当化されるのはどのような場合ですか?
私がフリーランサーとして働いていたとき、プロジェクトとその背後にある概念がいかに重要でなく、興味深くなく、独創的でなくても、顧客がプロジェクト(Webアプリケーションなど)のアイデアとソースコードを可能な限り保護する多くのケースに遭遇しました。 私はすでにアイデアを秘密にしておくことについて質問を投稿し、多くの素晴らしい回答を受け取りました。今、私の懸念は、ソースコードの秘密性についてです。 私の観察によると: 私のキャリアで取り組む必要があったコードベース、 自分のソースコードの一部を秘密にしておくという私自身の意欲、および: たとえば、人気のあるProgrammers.SE寄稿者であるMason WheelerによるSimon StuartへのOpen応答などのいくつかの記事、 私はソースコードが主にこれらの理由のために秘密にされていると結論づけます: 作者はそのような質の悪いコードを恥じているか、誰かがそのような質の悪いコードベースを見た場合、またはコードベースの質が低い場合に評判を失うことを恐れているので、それをオープンソース化するのに役立つものは誰にもありません。たとえ誰かが興味を持っても、彼はソリューションを実行することがほとんどできません(または、多くの場合、コンパイルさえできません)。 コードの一部が盗まれているため(ほとんどの場合、特定の状況での使用を制限するライセンスの対象となるオープンソースプロジェクトから)、 コードはあいまいさによるセキュリティに依存しており、作者はケルクホフスの原則を気にしていません。 製品は非常に壊れやすいため、コードを表示すると非常に害が生じます。これらのセキュリティリークのあるクローズドソースのアプリが初心者のハッカーに耐える場合、初心者のハッカーであっても、同じオープンソースのアプリで発生する可能性ははるかに小さくなります。コードを調べてすべての穴を発見するだけです。 私が何を話しているのかはっきりしない場合は、ここに例があります: if (credentials.password === 'masterPassword12345') { isLoggedIn = true currentUser = credentials.userName } else { authenticate(credentials) } 著者がソースコード(および彼自身のスキルと専門知識)を過大評価したためです。例:自家製の暗号化関連のアルゴリズム(誰もレビューしなかった)は、よく知られたアルゴリズムよりも優れていると信じています。 なぜなら、コードの背後にあるアイデアは素晴らしいものであり、盗まれるだろうと著者が考えているからです。 「それは十分に完全ではない」症候群のために。言い換えれば、開発者はコードが「十分」であればソースコードを公開してもかまいませんが、日々改善すべき点があるため、コードがリリースされることはありません。 これらすべての理由は、ソースコードの公開に反対している人々のかなり否定的なイメージを与えます。 ケルクホフスの原則に従う高品質のコードを公開しない正当なケースはありますか?

2
このソリューションはRESTfulで安全ですか?
私たちの製品は私たちのサービスに新しいプレーヤーを登録し、それをAzure(私たちは.NETを使用しています)でホストすることを選択しました。 これは私が書いている最初のREST WSであるため、それが確実な解決策であるかどうかについてフィードバックを得たいと思いました。 アプリについて知っておくべきいくつかの仮定: ユーザーは、ユーザーのパスワードを要求せずに、匿名でサービスにログインします 水平スケーリングを可能にするには、WSは完全にステートレスである必要があります サードパーティのスヌーピングを防ぐためにHTTPS(SSL)を使用して接続しています 編集: ネイティブiOS / Androidデバイスを対象としています 私たちの主な懸念は、改ざんされていないクライアントのみがリクエストを送信できるようにすることです そして抽象的な認証プロセス: クライアントは単純なハッシュ(UDID:Timestamp)を作成し、タイムスタンプを使用して基本的なアルゴリズムで暗号化します(たとえば、秘密鍵はハッシュの2番目の文字ごとです) クライアントはサーバーにUDID、タイムスタンプ、ハッシュを送信します サーバーはハッシュを再構築し、ユーザーから送信された暗号化されたハッシュを復号化します 2つが等しい場合-実際にクライアントから送信されたことがわかります(悪意のある送信者からではないことを願っています) すべての入力/提案は素晴らしいでしょう-明らかに私がこの問題を処理しているのは初めてなので、私はそれを間違って設計したかもしれません。 ありがとう! 2回目の更新: OAuthのセキュリティ仕様を読むと、クライアントとサーバーは秘密鍵を知っている必要があり、クライアントはユーザーのモバイルデバイス(ウェブアプリではなく)にローカルに保存されているため、私の質問に対する実際の回答はないようです。 OAuthセキュリティガイド(http://hueniverse.com/oauth/guide/security/)から: OAuthを実装する場合、対称または非対称の共有シークレットの制限を理解することが重要です。クライアントシークレット(またはプライベートキー)は、サーバーがクライアントの身元を確認するために使用されます。WebサーバーなどのWebベースのクライアントの場合、クライアントの秘密(または秘密鍵)の機密を保持することは比較的簡単です。 ただし、クライアントがデスクトップアプリケーション、モバイルアプリケーション、またはブラウザーアプレット(Flash、Java、Silverlight)やスクリプト(JavaScript)などの他のクライアント側ソフトウェアである場合、クライアントの資格情報をアプリケーションの各コピーに含める必要があります。 。これは、クライアントシークレット(またはプライベートキー)がアプリケーションと共に配布される必要があることを意味し、継承によってセキュリティが侵害されます。 これは、そのようなアプリケーション内でのOAuthの使用を妨げませんが、サーバーがそのようなパブリックシークレットで持つことができる信頼の量を制限します。シークレットは信頼できないため、サーバーはそのようなアプリケーションを不明なエンティティとして扱い、アプリケーションに関する統計の収集など、信頼のレベルを必要としないアクティビティに対してのみクライアントIDを使用する必要があります。一部のサーバーは、このようなアプリケーションを禁止したり、さまざまなプロトコルや拡張機能を提供したりすることがあります。ただし、現時点では、この制限に対する既知の解決策はありません。

5
GitHubでコードを公開することに関するセキュリティの問題
大きなコミュニティ/フォーラムのWebサイトを開発しています。コードをGitHubにアップロードして、少なくとも何らかのバージョン管理を行いたいと思っています(バックアップとして.rarファイルしかなく、SVNもないためです) )、他の人がプロジェクトに貢献できるようにし、おそらく将来の雇用主に私のコードの一部をある種のカリキュラムと見なさせるためにそれを使用することもできます。 しかし、私が今疑問に思っているのは、私がこれまでに誰もそれについて言及しているのを見たことがないことに驚いていることです。セキュリティの側面です。ウェブサイトのコードを公開することは巨大なセキュリティホールではありませんか?重要なファイル(データベースのパスワード、認証スクリプトなど)がアップロードされていないことを考慮しても、潜在的なハッカーや潜在的なエクスプロイトを見つけたい人に与えるようなものです。 もちろん、GitHubには何百万ものプロジェクトがアップロードされており、「偶然」に誰も私のプロジェクトを見つけることはできません。しかし、彼らがそれを探すならば、それは確かにそこにあるでしょう。 結論:私の問題は著作権やライセンスに関するものではなく、私のWebサイトでエクスプロイトを見つける人たちです。 ここで何か不足していますか?

3
クライアントがメールを変更できるようにするための最良のポリシーは何ですか?
私たちは、クライアント/ユーザーがサイトを使用する前にメールアドレスを確認することを要求する、かなり標準的な登録プロセスを備えたWebアプリケーションを開発しています。このサイトでは、確認後にメールアドレスを変更することもできます(メールフィールドを再入力することもできます)。 ユーザーにメールを再確認してもらうことの長所と短所は何ですか。これも必要ですか? 編集: 以下の回答とコメントの要約: 「過剰検証」は人々を困らせるので、重要でない限りそれを使用しないでください タイプミスを防ぐために「メールの再入力」フィールドを検討してください。ただし、ユーザーはコピー/貼り付けを行って、それを無効にすることができます。 既知の良好なデータを潜在的に良好なデータで上書きすることに注意してください 通知のために古いメールを送信します。検証のために新しい ユーザーがまだ古いメールにアクセスできるとは限りません アカウントが侵害された場合の誤ったメールの影響を特定する

4
「二重」サブスクリプションの回避
少しマーケティングが必要なウェブサイトに取り組んでいます。説明させてください。 このWebサイトでは、ラッキーな当選者に1つの iTunes 50 $クーポンを提供しています。 抽選に参加するには、少なくとも1人の友人をWebサイトに招待する必要があります(参加する必要があります)。かなり簡単です。 もちろん、だれでも簡単に偽のアカウントを作成してそのアカウントを招待するのは簡単なので、不正行為の可能性を見つける方法を他にも考えていました。 新しくサブスクライブした(招待された)ユーザーのIPチェックを考えていました。同じIPが過去24時間にログに記録されているかどうかを確認し、そうである場合は、それについて詳しく調査します。 しかし、私はおそらくこの問題を回避するより賢い方法があると考えていました。これについて誰かがこれまでに持っていますか?他にどんな解決策を試しましたか? 前もって感謝します。
8 security 

4
オープンソースライブラリでキーストロークロガーをチェックする方法を教えてください。
インターネット上の無作為な人から、テクノロジーは安全であり、安全に使用でき、オープンソースであるためキーロガーが含まれていないと言われました。このオープンソースアプリケーションでキーストロークロガーを簡単に検出できますが、開発者(2)は、オープンソースプロジェクトの悪質なコミッターから身を守るために何ができますか? エンベロープ脅威分析の裏側で、​​もし私が悪質な開発者なら、私はgitのブランチをforkし、Twitterのサポート(そして秘密のキーストロークロガー)があるため、ダウンロードを促進します。SVNリポジトリの場合は、新しいプロジェクトを作成するだけです。悪意のあるコードを自動更新ルーチンに入れるのがさらに良いでしょう。 (1)一度に1種類の熱狂者しか扱えないため、これについては触れません。 (2)通常のユーザーはウイルスとマルウェアの検出ソフトウェアに翻弄されています-おばあちゃんがオープンソースのワードプロセッサのソースコードのコードソースを読み取ってキーストロークロガーを見つけることを期待するのは不合理です。

3
安全なアプリケーションを開発する方法を学ぶための最良の方法は何ですか?
私は自分のキャリアの中でコンピューターのセキュリティーについて学びたいと思っています。安全にプログラミングする方法を学ぶ最良の方法は何ですか? 教科書や教科の講義に加えて、「ハッキング」の方法を学ぶことは、学習する最良の方法の1つであるように思えます。私がこれを考える理由は、誰かに望まないことをさせないようにする方法を学ぶ最善の方法は、彼らができることを学ぶことだという考えです。 これが事実である場合、これは別の質問を提起します:倫理的な方法でハッキングすることをどのようにして学びますか?法律を破ったり、探求に危害を加えたりしたくはありません。

2
データの暗号化/保護-高レベルのベストプラクティスに関する情報の入手先[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 6年前休業。 私が所属するグループの誰も、私も含めて、暗号化とセキュリティ、または特定の決定を行う背後にある理由を実際に理解していないと感じています。たとえば、私たちは最近、私たちが扱う別のグループのために処理するデータの暗号化について会話しました。したがって、企業ネットワークの整合性は非常に高いです)、私たちが扱う他のすべてと一緒に。もちろん、標準のガイドラインでは、このデータの「暗号化」を求めています。 明らかに、それは多くのことを意味する可能性があります-IPSec /暗号化された接続、暗号化されたファイル共有、DBに実装された暗号化(DB全体または列)、ファイル内の実際のビットの暗号化など-およびグループの一部の人々は実際にカウントされる唯一の種類の暗号化は、格納されているビットを直接暗号化することであるという印象です。議論は、他のすべては簡単に回避できるというものです-「DBが暗号化されている場合でも、ログインしてそこにデータを表示できます。ファイル共有が暗号化されている場合は、フォルダーへのアクセス許可がある限り、ファイルを取得できますが、ビットが直接暗号化されている場合は読み取ることができません。」私の本能は、そのステートメントは限られた理解に基づいていると言います:彼らはSQL Server Management Studioにログインしてデータを見ることができ、しかし、暗号化されたデータのストリームまたは配列を取得し、おそらくそれを解読するためにアクセスできる証明書を使用する方法を彼らは知らないので、それはおそらく安全です。彼らは正しいですか?私は正しいですか?誰も本当に知っているようには見えないので、決定は最も声の大きい人や最も高額な人の意見に基づいて行われます。 とにかく、それは私が話していることの単なる拡張例です。私は、ここでブラインドをリードしているブラインドであり、限られた理解に基づいて決定を下しているように感じ、それはイライラさせられます。私は暗号化の技術的なビットについては専門家ではありませんが、標準ライブラリを使用してストリームやアレイなどを暗号化する方法を知っています-データセキュリティの設計と、そのような決定の基礎となる情報についての知識が本当に必要な場合は、上記。この種のものについてどこで読むことができますか?

3
例外が発生したときにクラスとメソッド名をログに記録することはセキュリティ上の欠陥ですか?
私は以下を持っています: public class doCheck(){ public void performCheck(){ try { perform all checks...... } catch(Exception e){ logger.error("Exception occured in class doCheck in method performCheck"); thrown new MyNewException(e.getMessage()); } } } クラスとメソッド名をログに記録しても安全ですか?

6
専門家ではない、または失礼なことなく、パスワードへのアクセスを顧客に与えることを拒否する方法は?
あなたが顧客のためのウェブサイトを作成しているとしましょう。このWebサイトには独自の登録があります(OpenIDと組み合わせるかどうか)。ユーザーは、ユーザーがおそらくすべてのWebサイトで同じパスワードを使用していることを前提として、ユーザーが選択しているパスワードを確認できるようにするように求めています。 一般的に言って、 パスワードはプレーンテキストではなくハッシュ化されているため、パスワードを取得することは不可能です。 または、私がそれを行う権利がないこと、または管理者が追加の詳細情報を提供せずにユーザーのパスワードを表示できないようにする必要があること。 最初のものは誤りです:パスワードがハッシュされていても、ログオンごとにパスワードをキャッチして保存することが可能です(たとえば、ログオンに成功または失敗したユーザーだけでなく、パスワード)。二つ目は失礼です。 専門家でも失礼でもないで、この要求を拒否する方法は?

1
WSHttpBinding(サービス側)またはWCFテストクライアント(クライアント側)でデフォルトで使用されるセキュリティは何ですか?
最近、サービスをBasicHttpBindingからWSHttpBindingに移動しました(つまり、SOAP 1.1- > SOAP 1.2)。でWCF、WSHttpBinding()を使用することは、いくつかのデフォルトのセキュリティ設定を使用して起動します。クライアントとサーバーは「セキュリティで保護された」WSHttpBindingに切り替えた後も会話を続けることができるため、WCFテストクライアントでも同じデフォルトのセキュリティ設定が使用されていると思います。フィドラーでは、以前は非常に単純だったリクエスト/レスポンスから、より複雑なセキュリティハンドシェイクを見ることができるため、このセキュリティ設定を確認しました 以前:(BasicHttpBinding) [HttpRequest](SOAP Request in Clear) [HttpResponse](SOAP Response in Clear) 後:(WSHttpBinding) [HttpRequest] RequestSecurityToken [HttpResponse] RequestSecurityTokenResponse [HttpRequest] RequestSecurityToken [HttpResponse] RequestSecurityTokenResponse [HttpRequest] RequestSecurityTokenResponse [HttpResponse] RequestSecurityTokenResponseCollection [HttpRequest] EncryptedData [HttpResponse] EncryptedData [HttpRequest] EncryptedData (実際のアプリケーションレベルのリクエスト) [HttpResponse] EncryptedData (実際のアプリケーションレベルの応答) したがって、セキュリティが適用されていると想定できます。次に質問です。 質問1:セキュリティ設定とは何ですか? メンバーシッププロバイダーについてWCFに語ったことはありません。実際、ユーザー名<->パスワードのテーブル(SQLまたはXML)はありません。では、どのような認証が行われているのでしょうか。WCFテストクライアントは上記のように認証できますが、SoapUIはこれらのMicrosoft .NETデフォルトを取得しないため、問題があります。SoapUIがクリアテキスト通信を試行すると、サーバーは不正なセキュリティトークンエラーで応答します。 質問2:SOAP 1.2で最も一般的に実施されているセキュリティモデルは何ですか? 証明書、ユーザー名、パスワード、ダイジェスト、または_____を使用していますか?これらの資格情報はどのように保存され(SQL / XML?)、WCFサーバー側で構成されますか?
8 security  wcf  soap 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.