Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メールの安全性について(GPG) #TechLunch
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Livesense Inc.
PRO
April 21, 2014
Technology
0
110
メールの安全性について(GPG) #TechLunch
メールの安全性について(GPG)
2013/04/17 (水) @ Livesense TechLunch
発表者:松永 一郎
Livesense Inc.
PRO
April 21, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_総合職採用_会社説明資料
livesense
PRO
0
2.6k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
6.6k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
190
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
0
1.6k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
550
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
52k
26新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
1
13k
中途セールス職_会社説明資料
livesense
PRO
0
290
Other Decks in Technology
See All in Technology
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
220
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
2
3.2k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
330
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
1k
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
110
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
140
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2.1k
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
450
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
54
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Invisible Side of Design
smashingmag
302
51k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
440
Into the Great Unknown - MozCon
thekraken
40
2.3k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
170
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Transcript
メールの安全性について 使ってみようよGPG
おなじみのいいわけから • 時間無くて資料がちゃちーです。 • でも中身はそれなりに面白い物を作ったつもり なんで許して下さい
もともとのemailのなりたち 初期のTSS時代、1台のpcにttyの端末を接続し、1 台のserverを複数人で利用していた。この利用者 間で、やりとりを始めたのが起源。 もともとnetworkが存在する前から存在しているの で、今で言うところのmdaのみでのやりとりだった。 時代が下ると、uucpによるバケツリーレーとか、あ るいはさらに下ると、ipが振られtcp通信などによ り、server間でのやりとりが可能になる。
おおざっぱな図
おおざっぱな解説 仕様は後方互換をとりながら拡張されて来た。 大元は1host内で完結していたため、file permissionもある(と思われる。知らんけど)し、そ もそもsecurityの概念の薄い時期の仕組み。 その為、headerなどの改変などが入るけど、基 本、すべて、fileのcopy / move的な事で行なって いた。
なにがおきたか メールの本文を平文で送る仕様のまま、今に至っ ている。
apopとかpops、smtpsとか これらは、muaと各server(msa/mra)間での暗号化であり、 サーバー間の暗号化では無い。 apopなんかは、popの認証の際にパスワードの認証方式のみ 暗号化され、送る内容は平文。
リスク • 盗聴 • 改竄
どうするか GPG(PGP)の出番 • 改竄 ◦ GPGの署名を付ける(署名とは、その内容が変更されて いない事を保証する物。内容が変更されると署名と一致 しなくなる為、改竄が発覚する) • 盗聴
◦ GPGで暗号化する
GPGってなに? Pgp(Pretty Good Privacy) のGnu実装(Gnu Privacy Guard) ssh / sslなどで有名な公開鍵暗号化方式の最も大
元の実装。 これに纏わる話は、サイモン・シンの「暗号解読」が 詳しく、また凄く面白いのでお薦め。
公開鍵の置き場 サーバー上に存在しており、メールアドレスやgpg のfinger pring等から検索し、取得する事が可能。 また、自分のweb page上に置いたりする場合もあ るし、これらの複合で行なう場合もある。 僕の場合は、gpgの公開鍵サーバーに置いてお り、mailのsignatureにfinger printを記載していま
す。
コマンドラインとしてのgpg gpg/pgpはあくまでファイルの署名/暗号化ソフト。 とりあえず、ファイルへの署名や暗号化をしてみ る。
鍵の一覧とか 鍵情報は ~/.gnupg/に入っている。 • $ gpg --list-keys # 持っている公開鍵一覧 •
$ gpg --list-secret-keys # 持っている秘密鍵一 覧 • $ gpg --search-keys #公開鍵サーバーから検 索して、マッチしたのを持っている公開鍵一覧に 追加 • $gpg --import 公開鍵ファイル #公開鍵のファイ ルから持っている公開鍵一覧に追加
署名 $ gpg -s -a file # 署名 どっかに転送。 $
gpg --verify file.asc # 誰が署名したか(fingerpring)を取得出来る $ gpg file.asc # 署名から戻す file.ascを編集すると戻せない。 ポイントは、fileを署名する時には、署名を行なう人間のgnupgの認証がいるけど、復 号の際にはいらない(署名者の公開鍵は必要)。 ようするにだれでも戻せる。 戻した後に、メール本文と比較しdifferが出なければ改竄されてない証拠になる。
暗号化 $ gpg -e -a file # 暗号化。この際、復号出来る人 の指定に公開鍵を求められる。 どっかに転送
$ gpg -d file.asc どっかに転送した場合、復号対象のgpgの秘密鍵 が無いと復号出来ない。
メーラーでは 本文の部分に対して、これらの処理を行なう。 gpgに対応しているmuaだと、ここらへんを自動化してくれる。 僕の場合だとmutt使ってるし、ThunderbirdやBecky!なども対 応している。 webmailとしてのgmailはfiregpgというのがfirefoxの拡張であっ たけど開発終了。メールの内容から広告をsuggetするgmailと は相入れないのか? まーgmailはsmtp/imap/pop対応しているので、それで繋げば いいんだけどね。
muttで実演 実演中
使い所 • 正直、メールでzipでやりとりする際の別メールでパスワード を送る方式とかださいし、あっという間にzip crack出来る時 代には無意味。 もちろん、間違った送り先に送った場合の保険にはなるかも しれんが、大抵はルーチン化しているので、無意識にパス ワードメールも送っちゃうんで意味無し。 •
署名により、お知らせメールの改竄チェックとか、契約メー ルのエヴィデンスとか。 • まー、署名が欲しいならs/mimeという方法もある。(最近の 銀行からのメールとかはs/mimeが多い)
他ちょっとした付録 • 公開鍵に信用度を付与したり (公開鍵をweb pageから取得した場合は、crackerによりそれが改竄されている 可能性があるので低い。 本人からusbに入ったファイルでもらったら高いとか。) • 秘密鍵漏洩の時にrevoke出来るとか。 (ちなみにrevokeするファイル(失効証明書)を作る時の理由付けに、
鍵がパクられました(原文ママ) という単語があるのが、なかなか面白い) なお、秘密鍵から生成し、revokeする以外に秘密鍵を失効させる方法が無いの で、失効証明書は秘密鍵を作った後にすぐに生成して、どっかに保管しておく運 用が一般化している。 • 有効期限付きの鍵が作れたり (日付指定によるexpireを事前に設定出来る)
fin. ちなみに fin.はフランス語であり、 ファン と読むのが正解。 フィンと読んでた人は猛省しましょう。 オワタ\(^o^)/