公開鍵暗号
公開鍵/
秘密鍵のペアになった
鍵を用意することで、特定の相手に対して安全に情報を送り届けるための仕組み
情報を送る時は
送りたい相手に鍵のペアを作ってもらい、公開鍵の方を送ってもらう
どうやって送ってもらうかは一旦置いておく
このへんの信用を担保するための仕組みもあったりする
気になるのであれば「
公開鍵基盤」でググってみるとよさそう
自分もよくわからない
公開鍵が漏洩すると何かデメリットでもあるのでしょうか?
公開鍵が知られたところで、復号できるわけでもない
不正に得た公開鍵で情報を暗号化したところでなんにもならない
サーバーから送られてきた公開鍵が、本当にそのサーバーのものであることが証明される必要がある
もしサーバーに
なりすました攻撃者の公開鍵だったら、それで暗号化して送った情報が傍受された場合、攻撃者は自分の秘密鍵で復号化することができる
たしかにこれはまずい
まとめ
公開鍵が漏洩しても大した問題ではない?
公開鍵の信用を担保するのは重要
公開鍵は公開するものです 隠す意味なんてありません
偽造されないように注意するだけ
GitHubだと普通にコピペで送っていますね
あれは
HTTPS通信?というやつで一応保護されているのか?
そもそもGitHubにログインしてないと送れないですし、偽造した公開鍵なんて何の役にもたたないです
その公開鍵を利用して送りたい情報を暗号化する
この時点でこの公開鍵とペアになった秘密鍵以外では復号することができなくなる
後は相手に暗号化した情報を送る
ここでは前述した性質により信頼できない経路も利用できる
受け取った相手は秘密鍵を利用して暗号化された情報を復号する
ざっと書いてみたんですが合ってますかね?
公開鍵を相手に送る、というのは普通じゃないと思います
一般に、公開鍵はどーんと公開しておくもので、都度送付したりしないと思う
↑と自分のうろ覚えの知識と合わせて、現状の理解を図解してみました
間違っていたら指摘ください
自分の認識とは合ってますね(大本が間違っていたらどうしようもないが)
「暗号化」の逆は「復号化」ではなく「復号」が正しいそうですね
その界隈の決めごとのようです
なるほど
openssl
コマンドでも
ssh-keygen
でも、
秘密鍵から
公開鍵を生成できるらしい!
$ ssh-keygen -y -f ~/.ssh/id_rsa > id_rsa.pub
$ openssl rsa -in private-key.pem -pubout -out public-key.pem
公開鍵が秘密鍵データ内に書いてあるのだろう
というか、ペアを生成するための情報が秘密鍵データに書いてあるようだ
しかしこれはそういう運用になってるだけで、 一般に「秘密鍵から公開鍵が作れる」というのは間違いだと思うけど
「秘密鍵ファイル」から公開鍵を生成できることが多いと言うなら正しいか
昔書いた記事、たまに思い出したようにTwitterとかで言及されてる