問題タブ [private-key]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 秘密鍵で暗号化/復号化
私が持っているFlash/PHPアプリケーションのいくつかにセキュリティを実装したいと思います。
PHPファイルと通信するFlashアプリがいくつかあり、PHPはデータをget string(例:)として送信していますname=John&sname=Doe&age=24&balance=12.4
。これらすべての変数の代わりに、これらの値を含む単一の変数(例:)を送信しflashvar=jr9afgaw9-fg90agfawf7gw
たいので、Flashは文字列を復号化し、実際の有用な変数を取得します。
秘密鍵を使用してこれを暗号化し、同じ秘密鍵を使用してFlash内でこれを復号化したい。PHPが送信するメッセージをデコードしたい場合は、フラッシュファイルを逆コンパイルし、Flashで使用している秘密鍵を見つけてメッセージをデコードしてからデコードする必要があります。
ここに投稿した理由は、暗号化/復号化に秘密鍵のみを使用できる暗号化アルゴリズムを使用したいからです。
私は暗号化の分野で新しいので、これについていくつかの提案が欲しいです。
ありがとうございました!
c - RSAキーを含むEVP_PKEYをコピーするにはどうすればよいですか?
EVP_PKEY_copy_parameters
コピーできる関数を見つけましたEVP_PKEY
。ただし、この関数に関する一部のドキュメントには、DSA/ECCアルゴリズムにのみ使用できると記載されています。( openssl.orgからの)公式ドキュメントには、この関数をRSAEVP_PKEYに使用できるかどうかについては記載されていません。
(RSAキーを含む)の別の実装はEVP_PKEY
次のようになります。
何か提案はありますか?
amazon - コードでAmazonアクセスキーを保護する
Amazon Web サービスでは、Web アプリケーションでリクエストを行うために ID と秘密鍵の両方を提供する必要があります。異なるサービスに対して異なる承認を持つ複数のキー ペアを作成することは可能ですが、これは、キーを Web アプリまたは DB に保存する必要があることを意味します。
ウェブアプリのキーを保存するための標準的な安全な方法または最良の方法はありますか? 今何を使っていますか?
私は、他の開発者が、アクセスしてはならないものへの特権アクセスを与える可能性のあるキーにアクセスすることを望んでいません。したがって、キーをリポジトリにコミットすることは問題です。
objective-c - プログラムで Mac キーチェーンから秘密鍵を保存および取得する
Mac アプリケーションでは、サーバーから送信されたログイン ユーザーの秘密鍵を安全な方法で保存し、必要に応じてプログラムで取得する必要があります。キーチェーンが秘密鍵を保管するのに最適な場所であることはわかっています。これを実現するためのサンプル コードはありますか?
「Security.framework」の「SecKeychainItemImport」メソッドを使用して秘密鍵をキーチェーンに追加できますが、キーチェーンから秘密鍵を取得する際に問題が発生します。キーチェーンから秘密鍵を取得するために、「SecKeychainItemCopyAttributesAndData」および「SecKeychainItemCopyContent」メソッドを使用してみました。しかし、これまでのところ運がありません。
「.ssh」隠しフォルダー内の秘密鍵の保管について言及しているブログも読みました。しかし、キーチェーン内に秘密鍵を保存すると、別のレベルのセキュリティが提供され、他の誰かが秘密鍵に簡単にアクセスできないようになると思います.
android - Androidアプリのキーストアを作成するときにアクセスが拒否されました
マーケットでリリースできるように、Androidアプリに署名しようとしています。キーストアを生成すると、アクセス拒否エラーが発生します。これを修正するにはどうすればよいですか?
これは私がやろうとしてきたことです:
- EclipseHeliosでプロジェクトを右クリックします。
- Androidツール>署名済みアプリケーションパッケージのエクスポート。
- [次へ]をクリックします。
- 「新しいキーストアを作成する」をチェックしましたが、何の役にも立ちません。それでもキーストアの場所を尋ねます。だから私はそれを難しい方法でやることにしました。
- 読み取り専用アクセスをオフにして、グループにフォルダのフルコントロールを
C:\Program Files\Java\jdk1.6.0_25\bin
許可しました。CREATOR OWNER
- Windows764ビットでコマンドラインを開きます。
- にトラバースし
C:\Program Files\Java\jdk1.6.0_25\bin
ます。 - keytoolを実行します。
- アクセス拒否エラーが発生しました。
。
編集:
フォルダのアクセス許可を確認するたびに、フォルダが読み取り専用に戻っていることがわかります。読み取り専用をオフにしてもエラーはありませんでした。
php - openssl_seal と openssl_open (両方とも PHP) を使用した public-private-key-encryption の Android 版は何ですか?
サーバー/データベースと通信する必要があるAndroidアプリの開発を始めました。サーバー側では、PHP を使用してデータを収集したり、クエリを実行したりします。セキュリティ (XSS、SQL インジェクションなど) についてよく読んでいます。クライアントとサーバーの間で送信されるデータも暗号化したいので、PHP で openssl 関数を扱い始めました。
openssl_seal- および openssl_open-functions は、この目的に適しているようです。私はこれらの2つの関数を書きました:
「a」は (暗号化/暗号化する) データであり、「b」は openssl_seal によって生成され、復号化に使用されるランダムキーです。
2 つのキーファイルは、Windows で以下を使用して作成されています。
- privateKey ファイルの「openssl.exe genrsa -out private.key 1024」
- publicKey ファイルの「openssl.exe rsa -in private.key -out public.pem -outform PEM -pubout」
PHP内では、これはすべて期待どおりに機能します。
しかし、Android で同じ手法を実装するにはどうすればよいでしょうか (私は初心者です!)?
PHP側でopenssl_sealと組み合わせて使用する例をWebで検索しましたが、何も機能していませんでした。
- Android 側でデータを暗号化し、PHP で復号化できるようにしたいと考えています。
- そして、サーバーが暗号化されたデータを送信している場合、これは Android 側で復号化されます (2 つ目の public/privateKey ペアを使用すると仮定します)。
ここに記載されている例も実装しましたが、うまくいきませんでした (openssl_private_decrypt は PHP 側では常に FALSE でした)。だから、それは私を助けませんでしたが、それはAndroid => PHP暗号化だけであり、その逆はありませんでした。
要約すると、受信者のみがデータを復号化できる両側で、Android と PHP の間で送信されるデータを暗号化および復号化する方法を探しています。誰かが私に例や手がかりを与えることができますか?
rsa - ファイルに署名するとき、キーの長さはどのように異なりますか?
私は暗号化やセキュリティに関するクラスを受講したことがなく、いくつかの基本を自分自身に教えようとしているので、これがばかげた質問である場合は許してください(心配しないでください、私は機密性の高いものに取り組んでいません)
そこで、私はCrypto ++をいじって、ファイルの署名を作成して、ファイルが自分以外の誰かによって編集されているかどうかを確認できるようにしています。ライブラリに付属しているテストアプリケーションには、自分のプログラムで実行したいことを正確に実行するオプション(rsおよびrv)があるように見えます(ファイルの署名の整合性を確認します)。もちろん、その前に公開鍵と秘密鍵を生成する必要があります。テストアプリケーションのgオプションを使用してこれを行うと、キーの長さをビット単位で指定するように求められます。キーの長さはどのような違いがありますか?
authentication - 秘密鍵チャレンジとは何ですか?
スマートカードについて読んでいるときに、秘密鍵チャレンジと呼ばれるこの用語に出くわしました。
秘密鍵の課題–証明書が発行されたトークンにバインドされており、コピーまたは複製されていないことを確認します。
この秘密鍵チャレンジはどのように行われますか?
よろしくお願いいたします。
晴れ。
wcf - C# WCF クライアント エラー "X.509 証明書に秘密キーが存在しません"
SOAP メッセージをサードパーティ サービスに送信する非常に単純な WCF クライアント アプリケーションを作成しようとしています。すべてのメッセージはデジタル署名されている必要があります。これは、より大きなアプリケーションにコードを追加する前の概念実証です。
証明書を含む .cer ファイルと、秘密鍵を含む .pem ファイルがあります。私がやろうとしているのは、.cer ファイルを使用して証明書をロードし、メッセージを送信することです。しかし、「X.509 証明書に秘密鍵が存在しません」というエラーが表示されます。
問題の 1 つである問題は、私が WCF、デジタル証明書、秘密鍵などについてほとんど何も知らないことです。私はいくつかの読書をしました、私は顔が青くなるまでグーグルで検索しましたが、どこにも行きませんでした.
.cert ファイルを開くと、証明書に秘密鍵が含まれていることを示す「BEGIN ENCRYPTED PRIVATE KEY」というラベルの付いたセクションがあります。では、存在しないというメッセージが表示されるのはなぜですか? また、秘密鍵を証明書に追加する必要がある場合、どうすればよいですか?
ここで基本的に私がやっていること。これは私の実際のコードではありませんが、関連するすべてのものが含まれています。
url - HMAC または OpenSSL による URL 署名
URL 署名 (例: http://.../?somearg=value&anotherarg=anothervalue&sig=aSKS9F3KL5xc ) に興味がありますが、いくつかの要件があり、まだ解決策がありません。
PHP
またはfor pages のいずれかを使用するPython
ので、2 つのうちの 1 つを使用して署名し、署名を検証できる必要があります。- 私の計画は、秘密鍵/公開鍵スキームを使用してデータに署名し、署名が有効であることを確認できるようにすることでしたが、ここで複雑になります。
- 検証が行われているときのデータは不明です (それはただではありません
somearg=value&anotherarg=anothervalue
) 。
私の最初の本能は、たとえば RSA キーペアを使用して OpenSSL を使用し、署名の行に沿って何かを行うことでした:およびデータとキーのみopenssl rsautl -sign -inkey private.pem -in sensitive -out privsigned
に基づく検証: 。privsigned
openssl rsautl -verify -inkey public.pem -in privsigned -pubin
PHPを使用してデータopenssl_get_privatekey()
にopenssl_sign()
署名しても問題ありませんが、検証するために(復号化された!)データを知る必要があります(これはありません):openssl_get_publickey()
およびhttp://php.net/openssl_verifyopenssl_verify($data, $signature, $pubkeyid);
から。
それとも、ここで何か不足していますか?
Python
そこで、HMAC を調べてみましたが、との両方で多くのハッシュ関数が利用可能ですが、ハッシュを検証するPHP
方法については困惑しています。
を使用すると、 「キー」(この場合は文字列キー) を使用してハッシュを作成できます。しかし、ハッシュが有効であることを確認するにはどうすればよいですか (つまり、エンド ユーザーが手動で入力しただけではありません。PHP
hash_hmac()
&sig=
&sig=abcdefg1234
要約すると(長い質問で申し訳ありません):サーバーの(証明書/文字列)キーによって署名/ハッシュが作成されたことを確認するにはどうすればよいですか(上記のデータのハッシュをやり直しても確認できない場合)?また、Priv/pub-key または HMAC のどちらのルートを選択すればよいかについて、何か好みはありますか?
大小のポインタは大歓迎です!前もって感謝します、
- ジョシュ