上長より、ファイルのやり取りはGPGにて公開鍵方式で実施するとの事で、
技術検証を任されたのですが、そこでいくつか不明な点がある為、
ご教示頂きたく何卒宜しくお願い申し上げます。
公開鍵方式では受信側にて公開鍵、秘密鍵を保持し、送信側が受信側にアクセスして公開鍵を使用して暗号化を実施し、受信側へ送信する・・・とあります。
受信(取得する)側がクライアント、送信(取得される)側がサーバを想定しており、
サーバ側にはある検査結果を検査が終わる度に決まったディレクトリに配置するのですが、
クライアント側から取得するのは1日1回と考えております。
その際、サーバ側においてあるファイルを暗号化した状態で配置しておきたいのですが、
よくある図解では、受信側に公開鍵と秘密鍵を保持しているイメージですが、
作成した公開鍵をサーバに配置して暗号化、復元用に秘密鍵はクライアントに配置と考えておりますが、この考えで正しいでしょうか?
ちなみに環境は以下を想定しております。
クライアント = Win7
サーバは = Linux系
言語 = VB.NET
また、VB.NETで実現しようと考えているのですが、サンプルプログラムが英語用サイトでもあまり見つける事が出来ませんでしたので、参考サイトもご存知でしたらご教示頂けると非常に助かります。
クライアント(取得側)、サーバ(取得される側)での公開鍵方式をしようしたファイルのやり取りについて、どのような手段が常套手段なのかぜひご教示頂きたく、何卒宜しくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
公開鍵暗号には二通りのやり方がある。
●パターン1:受信側が秘密鍵
・電文を受信したい人Bがキーペア(公開鍵と秘密鍵)を作る。
・Bが全世界にBの公開鍵を公開する。
・Bに電文を送信したい人AがBの公開鍵をゲット。
・AはBの公開鍵で電文を暗号化してBに送信。
・BはBの秘密鍵で暗号化電文を復号化。
・正しく復号化されたらOK。電文は暗号化された状態でAからBに渡された。
→暗号化電文を復号化できるのはBのみ。
●パターン2:送信側が秘密鍵
・電文を送信したい人Qがキーペアを作る。
・Qが全世界にQの公開鍵を公開する。
・Qから電文を受け取りたい人RがQの公開鍵をゲット。
・QはQの秘密鍵で電文を暗号化してRに送信。
・RはQの公開鍵で暗号化電文を復号化。
・正しく復号化されたらOK。電文は暗号化された状態でQからRに渡された「、かつ確実にQからの電文である事が確認された」。
→暗号化電文を複合できるのは全世界の全ての人間。
ついでにSSLの暗号化方式について軽く説明しておくと、
・サーバーがキーペアを作る。
・公開鍵も秘密鍵もサーバーが持っている。
・クライアントが接続する。
・サーバーが公開鍵をクライアントに平文で送りつける。
・クライアントは共通鍵の元ネタを作ってそれをサーバーの公開鍵で暗号化しサーバーに送信する。
・クライアントとサーバーはそれぞれ共通鍵の元ネタから共通鍵を作る。
・クライアントは今までのやり取りのハッシュ値を共通鍵を使って暗号化しサーバーに送信する。
・サーバーは今までのやり取りのハッシュ値を計算し、クライアントから受け取った暗号化ハッシュ値を共通鍵で復号化して一致したら通信開始OK。
・ ~~~暗号化通信中~~~
という流れで、実はSSLはキーペアを使い捨て共通鍵の交換にのみ使い、以後の通信は使い捨て共通鍵で行っている。
> クライアント(取得側)、サーバ(取得される側)での公開鍵方式をしようしたファイルのやり取りについて、
> どのような手段が常套手段なのかぜひご教示頂きたく、何卒宜しくお願い申し上げます。
何を、いつ、どこで、暗号化して、それを、いつ、どこで復号化するのか、するべきなのか、しなきゃ脅威があるのか、そこをもう一度練り直してみてはどうかな。
以下はあくまで一例だが、
暗号化のタイミングは既に分かっている。VB.NETが検査結果をサーバーに上げるタイミングだ。
では、検査結果を復号化するのは、いつで、誰? これもクライアント側から1日1回取得するタイミングだろうな。
それが決まったら次は送信側と受信側のどちらが秘密鍵を持つべきかだ。まぁこれも受信側が秘密鍵でないとおかしいよね。
No.3
- 回答日時:
No.2
- 回答日時:
実際に、困ることが少しあります。
1.クライアント側で、RSAの公開鍵と秘密鍵を作成するときに、時間がかかることです。
乱数を普通に作ると鍵作成には2時間くらいかかります。
2.次に、公開鍵、秘密鍵の作成には乱数を使うのですが、
NISTが警告を出していますので、そのことも検討する必要があります。
警告は、
http://www.businessnewsline.com/biztech/20130916 …
です。
3.送信するデータサイズが大きい場合は、RSAでの暗号化は、少し時間がかかります。
接続中に暗号化や復号化をしないで、暗号化してから接続して送信。
受信が終わってから復号化する。
ようにしたほうが良いと思います。または、SSLのように混合型にする。
4.公開鍵暗号としては、楕円曲線暗号もありますが、鍵作成には大量のメモリーとRSAのとき以上の時間が
かかります。
鍵作成と乱数についてはよく確認したほうが良いと思います。
情報誠に有難うございます。
鍵作成に2時間ほどかかるとの事ですが、下記の方法で実施した結果、ユーザーIDや鍵長の選択等、必要情報の入力を除いた時間はほんの数秒で完了しました。
2時間というのは、鍵作成だけでなく、公開サーバへの登録等、諸作業を含めての時間でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- セキュリティホール・脆弱性 電子署名について教えてください 電子署名は公開鍵暗号方式ですが公開鍵で最初に暗号化してから秘密鍵で相 3 2023/05/03 14:50
- その他(教育・科学・学問) 公開鍵暗号方式は秘密鍵を利用者本人しかもたないため、相手を特定する方法として利用することができますが 3 2022/05/16 23:27
- UNIX・Linux OpenSSHのサーバー設定ファイルsshd_config内のHostKey行について 4 2023/05/02 09:53
- その他(データベース) AWSのcloud9で「 ls -l ~/.ssh/」のコマンドで公開鍵、 秘密鍵を知ろうとすると「 1 2023/07/09 02:10
- その他(開発・運用・管理) Windows serverでマルチキャスト通信の確認をしたいです。MicrosoftよりMPING 1 2023/03/31 01:05
- その他(暮らし・生活・行事) 鍵の締め忘れの防止 公共施設の更衣室のロッカーの鍵を、立て続けに 締め忘れてしまいます。 鍵は、ナン 1 2023/08/10 21:05
- 郵便・宅配 教えてください。マンションのダイヤル式の鍵を開けられなくなりました。原因は数年ロックせずに放っておい 4 2022/10/05 09:16
- サーバー メールサーバーについて詳しい方、メールサーバーの管理業務経験のある方、教えてください。 3 2022/11/12 18:24
- 弁護士・行政書士・司法書士・社会保険労務士 翻訳された契約書の難解な日本語 2 2023/08/09 23:41
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GnuPGで復号化した時、同じファ...
-
公開鍵暗号 RSAについて
-
SSL での 公開鍵、秘密鍵
-
暗号化されたメールの開き方に...
-
一意に符号化可能、瞬時に符号...
-
【SBI証券】パソコン使うたびデ...
-
WiFiの状態がおかしいです検索...
-
知恵袋に似たサイトはどこですか?
-
無料アダルトサイトの動画が、...
-
おすすめのグロサイトを教えて...
-
サイトにアクセスしただけで個...
-
証明書による無線LAN認証(802.1...
-
学校のChrome Bookのロック解除...
-
中学生でもまねきねこの会員に...
-
電話番号認証のみの格安シム
-
「サーバ」と「サーバー」はど...
-
教えて!gooとOKWave
-
ガールズちゃんねるの個人認証...
-
AOLメールについて ログインす...
-
Excel2013 WEBSERVICE で #VAL...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
暗号化されたメールの開き方に...
-
GnuPGで復号化した時、同じファ...
-
外付けSSDをWindowsのbitlocker...
-
RSA暗号について
-
S/MIMEでの公開鍵の個数
-
ISO15693準拠のICタグに書込む...
-
電子証明書について
-
一意に符号化可能、瞬時に符号...
-
自己署名証明書(オレオレ証明...
-
IPsec と PKI の違いについて
-
最尤復号
-
公開鍵簿とは?
-
公開鍵暗号方式を利用した下り...
-
SSL での 公開鍵、秘密鍵
-
バックアップしておいたPGP公開...
-
公開鍵暗号化方式での鍵の配置...
-
世の中の暗号解読について
-
SSL認証ができない場合の対策
-
公開鍵暗号 RSAについて
-
【SBI証券】パソコン使うたびデ...
おすすめ情報