Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
メールの安全性について(GPG) #TechLunch
Search
Livesense Inc.
PRO
April 21, 2014
Technology
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メールの安全性について(GPG) #TechLunch
メールの安全性について(GPG)
2013/04/17 (水) @ Livesense TechLunch
発表者:松永 一郎
Livesense Inc.
PRO
April 21, 2014
More Decks by Livesense Inc.
See All by Livesense Inc.
味覇で作るパスタが美味い - 20261001_yabaubuki.dev
livesense
PRO
0
130
Rubyはただの⾔語に⾮ず
livesense
PRO
0
580
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
130
27新卒_総合職採用_会社説明資料
livesense
PRO
0
7.4k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
600
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.8k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
720
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
Other Decks in Technology
See All in Technology
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
360
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
710
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
270
夫婦で子育てするための育児標準化
codmoninc
PRO
0
200
Loop Engineering, beyond prompt, context, and harness engineering
glaforge
0
100
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
180
事業活動を AI Ready にする攻めと守りのデータエンジニアリング / data-engineering-for-ai-ready-business
pei0804
7
2.7k
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
340
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
0
580
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.2k
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
1
140
Featured
See All Featured
Docker and Python
trallard
47
4.2k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
450
The Cult of Friendly URLs
andyhume
79
7k
Typedesign – Prime Four
hannesfritz
42
3.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Faster Mobile Websites
deanohume
310
32k
The untapped power of vector embeddings
frankvandijk
2
1.9k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
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^)/