SSPI を使った安全な通信 で概要を紹介したように、 SSPI を利用すると Windows に組み込まれている各種セキュリティパッケージ (Kerberos, NTLM, SSL, ...) を、同じような方法で利用することが出来ます。SSPI がその下層の各種プロトコルの詳細を隠します。 逆に言えば SSPI を利用することが出来れば、各種セキュリティプロトコルを同様の方法で利用することが出来ます。 このページでは NTLM セキュリティパッケージを利用して、クライアントとサーバー間でセキュリティコンテキストを確立し、 データを暗号化して送受信する方法を紹介します。 プログラムの概要 プログラムの概要は SSPI を使った安全な通信 で説明したとおりです。 最初に ハンドシェイク を行い、セキュリティコンテキストを作成します。 サーバー側では、このコンテキストを使うことでクライアント
A cipher suite is a set of cryptographic algorithms. The schannel SSP implementation of the TLS/SSL protocols use algorithms from a cipher suite to create keys and encrypt information. A cipher suite specifies one algorithm for each of the following tasks: Key exchange Bulk encryption Message authentication Key exchange algorithms protect information required to create shared keys. These algorithm
この資料では SSP を使って、SSL 上の TCP 通信を行う方法を示します。 SSL のコードを書くことがやや複雑なことに加えて、SSL を利用するにはサーバー証明書などが必要になります。 ネットワークやサーバーの管理をしている人はわかるでしょうが、普通はあまり馴染みがないものだと思います。 とはいえ、「SSL とは何か?」 とか 「サーバー証明書とは何か?」 とか、そういうテーマについてはまた別の機会に書くことにして、 ここではプログラミングの詳細のみにとどめておきます。めちゃくちゃ長くなってしまいますからね。 SSL 固有のトピックとしては、「サーバー証明書が必要」 ということだけ覚えておいてください。 そしてサーバー証明書はコモンネーム (Common Name, CN) というもので識別されます。 この資料のテストを行うためのサーバー証明書は次のリンクからダウンロードして、イン
SSPIやらSchannelでMSDNを検索するとわらわら出てくるけどメモってことで。 Client側の手順 Hello送信 InitializeSecurityContextでトークンを作成 sendでトークンを送信 ハンドシェイク recvでトークンを受信 InitializeSecurityTokenに受信したトークンを渡してトークンを生成 sendでトークンを送信 上記1〜3の処理をSEC_E_OKが返るまで続ける 途中でSEC_I_INCOMPLETE_CREDENTIALSが返ってきたらクライアント認証用の証明書をセットしてハンドシェイクを続行 データの送信 EncryptMessageでデータブロックを暗号化 sendで送信 データの受信 recvで受信 DecryptMessageで復号 DecryptMessageに渡したバッファの中からSECBUFFER_DATAタイプ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く