問題タブ [sspi]
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.
c# - AcquireCredentialsHandle win32 API 関数の C# 署名が必要です
この API 呼び出しの署名を何らかの方法で作成しましたが、呼び出しが期待どおりに機能しません。一部の重要なデータ構造が適切に設定されていないため、意図した出力が得られません。私が使用した署名は次のとおりです。
コメントは無視してください。
参照用に使用した C ベースの関数呼び出しは、ここにあります。何を間違えたのか知りたい…
c++ - 別のドメインでのWindowsユーザーの資格情報の検証
ドメインに参加していないコンピューターでユーザーのWindowsクレデンシャルを検証しようとしています。これはSSPIAPIを使用して実行できるはずですが、動作させることができませんでした。
試したコードを含めました(簡潔にするためにリソースのクリーンアップは省略しています)。これらは重要な情報です。
ドメインコントローラー: control.dundermifflin.com
ドメイン: DUNDERMIFFLIN
ユーザー: jim_halpert
パス: beesly
(私はエアギャップネットワークでテストしているので、実際のdundermifflin.comとDNSの競合はありません。)
私が得るエラーはSEC_E_LOGON_DENIEDです。他のアプリケーションでそのユーザーとログオンできるので、ユーザー名とパスワードが正しいことを確信しています。誰かが私を正しい方向に向けることができますか?
authentication - パスワードなしの NTLM プロキシ?
HTTP プロキシを使用して、企業の Windows ネットワーク (ログイン先) で作業しています。Internet Explorer を使用すると、パスワードを入力しなくても魔法のようにプロキシが使用されます。JavaWebStart には「ブラウザ設定を使用する」オプションがあるなど、他の特定のプログラムもこれを管理しているようです。
ただし、curl や wget などのスクリプト/プログラムを使用して http から取得したり、Java コード内で実行したりする場合、パスワードをどこかに保存する必要があるようですが、これは明らかにセキュリティに最適ではありません。
Internet Explorer が持つパスワードなしのアクセスをプログラムで取得するにはどうすればよいですか?
私はプログラマーであり、パスワードを入力せずにプログラム/スクリプトを動作させる必要があるため、これはスタック オーバーフローの質問であると主張していますが、他の人はそれが Server Fault/Superuser に属していると考えるかもしれません。
curl の --proxy-ntlm などの設定については知っていますが、これにはまだ ntlm のユーザー名とパスワードが必要です。
c++ - シンプルなクライアント/サーバー、メッセージ ストリームの TCP/IP 暗号化、SSL (C++)
基本的に私の質問はこれとまったく同じです:
シンプルなクライアント/サーバー、メッセージ ストリームの TCP/IP 暗号化、SSL
違いは、.NET ではなく純粋な C++ でこれが必要なことです。私はサード パーティのライブラリを使用できないため、Windows システム コンポーネント (上記のようなもの) でない限り、一般的なアイデアを得て自分でビルドできるように、ソースを含むものが必要です。
ありがとう :)
参考のために他の質問を引用する:
「小さな TCP/IP クライアント サーバー アプリを作成します。基本的にはサーバーを作成し、その後、いくつかの異なるクライアントを作成して、チャット セッションを少し設定することができます。私が疑問に思っているのは、標準の .ネットライブラリは何らかの形で暗号化されていますか?
m_mainSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
rsa を使用して tcp を指定する方法はありますか?
それとも、キー交換を行い、その後のチャット メッセージを暗号化するカスタム ライブラリを作成する必要がありますか? 以前にuniでそれを行ったことがありますが、それはJavaで行われましたが、それらを変換するのは難しくないことはわかっています. 車輪を再発明する必要がないようにしています...
またはsslを利用するのはどうですか?
ありがとう、ロン。」
winapi - AcquireCredentialsHandle は SEC_E_NO_CREDENTIALS を返します
自己署名証明書 (OpenSSL を使用して作成) を作成し、Windows Vista Ultimate の証明書MMC スナップイン (CertMgr.msc) を使用して証明書ストアにインストールしました。
CertOpenSystemStoreを使用して証明書ストアを開くことができました。そして、CertFindCertificateInStoreを使用して証明書を見つけることができます
ただし、MSDN ドキュメントで回答を見つけることができなかったため、このエラーが実際に何を意味するのかはわかりません。
- これは証明書の問題ですか?
- それとも OS の問題ですか (これが機能するには Windows Server OS である必要があるという意味で)?
私は Delphi 2010 で Win32 API を使用していますが、C の例は問題ありません。
winapi - EncryptMessage が SEC_E_INVALID_TOKEN を返す
有効なコンテキストで win32 API から EncryptMessage (SChannel) を使用する場合、正しい順序で 4 つのバッファーを提供しています。ドキュメントによると、No SECBUFFER_DATA type buffer was found. 速度のために pvBuffers のセットを連続したメモリから割り当てる必要があることはわかっていますが、簡単にするために何が何であるかを明確にしました。誰が問題が何であるかを見ることができますか?
ありがとう、ブルース
コードは次のとおりです。
実行可能ファイルに挿入された STRACE を使用しましたが、この行は興味深いようです。
OSが正しい情報を取得しているように見えます。
少し検索したところ、80090308 は通常、サーバーの完全な名前が件名に含まれている必要があるという点で、証明書に問題があることを意味することがわかりました CN=www.foobar.com しかし、これでも問題は解決しませんでした。証明書とCA は OpenSSL で生成されます。
sql - SSPIコンテキストを作成できません
データベーススクリプトを作成しようとしている.NETアプリケーションに取り組んでいます。プロジェクトのビルド中に、「SSPIコンテキストを作成できません。」というエラーが発生します。このエラーは出力ウィンドウ(VS2008画面内)に表示され、ビルドプロセスは失敗しました。これを手伝ってください。SQL Serverは、Windows認証で動作し、ネットワークサービスとして実行されるように構成されています(これら2つのことは私のプロジェクトに必要です)。
これを手伝ってください。このエラーは一貫していないようです。これは、マシンを再起動し、ドメイン時間とネットのいくつかの提案に一致するようにシステム時間を変更することによって、過去に修正されました。これを手伝ってください。
c# - SslStream.AuthenticateAsClient の例外 (メッセージの形式が正しくありません)
私は奇妙な問題を抱えています。TCP/SSL 経由で Apple サーバーに接続しようとしています。プッシュ通知用に Apple が提供するクライアント証明書を使用しています。サーバー (Win2k3) のローカルの信頼されたルート証明書とローカルの個人証明書フォルダーの両方に証明書をインストールしました。
これで、その接続を処理するクラス ライブラリができました。サーバーから実行されているコンソール アプリケーションからこのクラス ライブラリを呼び出すと、まったく問題なく動作しますが、asp.net ページまたは asmx Web サービスからそのクラス ライブラリを呼び出すと、次の例外。
SSPI の呼び出しに失敗しました。内部例外を参照してください。受信したメッセージは予期しないものであるか、形式が正しくありません。
これは私のコードです:
ssl.AuthenticateAsClient
エラーがスローされる場所です。
これは私を夢中にさせています。コンソール アプリケーションが正常に接続できる場合は、認証に失敗している asp.net ネットワーク層セキュリティに何らかの問題があるはずです...確かではありません。おそらく、web.config に何かまたは何らかのセキュリティ ポリシーを追加する必要があります。また、コンソールとウェブサイトの両方を使用して、ローカル開発マシンに正常に接続できることを指摘するだけです。
誰にもアイデアはありますか?
wcf - WCF: Why does passing in a remote endpoint fail?
The problem I am having connecting a wcf client application to a host running on a separate machine is documented in a question previously asked:
WCF: Why does passing in a remote endpoint fail?
However, the solution provided here says you need to use a SpnEndpointIdentity with an empty string. Since my code doesn't look anything like the case in the example I have referenced, I need to know what to do with the SpnEndpointIdentity object I have created.
I have a ChannelFactory upon which I call Create channel, passing in an EndpointAddress:
(NB: ChannelFactory is of type IChannelFactory, where T is the service contract interface) So what do I do with spnEndpointIdentity? I can't pass it to CreateChannel.
Or perhaps I can use it somehow when I create the channel factory:
Again, I can't pass it into the constructor, so what do I do with it?
Thanks.
c++ - MS SSPI を使用してセキュアな SLL/TLS クライアントを実装するためのコンパイル可能な C++ コード
ここで説明されているように http://www.ddj.com/cpp/184401688
これをゼロから書く時間はありません。
尋ねられ、答えられなかった https://stackoverflow.com/questions/434961/implementing-ssl
質問は:
MS SSPI (上記のスレッドで言及されているように) を実装するコンパイル可能な作業ソース コードを探しています。手続き型ではなく、OOP が優先されます。
ここでコード プロジェクトのサンプルを見てきました。
http://www.codeproject.com/KB/IP/sslclasses.aspx
しかし、これは C# OOP です。これを C++ コードに変換するのは簡単ではありません。
OpenSSL
SChannel 呼び出しは、GSS API 標準に従います。もちろん、OpenSSL など、いくつかの代替手段があります。このパッケージはプロトコルの完全かつ完全な実装であり、UNIX に精通している人にとっては間違いなく最良の選択です。このパッケージはもともと UNIX コミュニティを対象としており、コンパイルは Perl ランタイムに依存しているため、UNIX タイプのシステムを扱ったことのない Windows 開発者にはある程度の学習曲線が必要です。
それとは別に、OpenSLL はいくつかの非常に非標準的なことを行います。
ニコライ、多くのコンパイル可能なソース コード (www.coastrd.com) に貢献したので、同じことをしてくれる人を見つけたいと思っていました。