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
seccamp2024-edictionary-python-TLS
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
らすぴー
September 07, 2024
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
seccamp2024-edictionary-python-TLS
らすぴー
September 07, 2024
More Decks by らすぴー
See All by らすぴー
USB PDを使ってスマホを労わりたい
raspython3
0
190
typoなんかねぇよ
raspython3
0
810
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
820
高校のChromebookでも自由なネット環境を!
raspython3
0
270
限界環境CPython rev. seccamp2025
raspython3
0
82
kernel-vm-ittekita-yuukousai
raspython3
0
130
kernelvm-brain-net
raspython3
0
1.2k
pyconjp2024-wince
raspython3
0
93
Other Decks in Technology
See All in Technology
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
190
sue445's proposals 2026
sue445
0
150
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
260
"計画的無茶振り"を通してAIネイティブ世代の新人を育てる
subroh0508
1
110
LLM-as-a-Judgeは本当に信頼できるのか――評価器を評価する話
taka_aki
3
1.1k
フィンテック養成勉強会#68
finengine
0
240
Adversary Infrastructure Hunting101
disconinja
0
160
野良MCPサーバーを排除せよ!MCPサーバーのガバナンス
yukiogawa
1
240
LLM Content Moderationを支える評価・改善ループの実践
suikabar
2
360
Teaching Python with three kinds of AI
reuven
0
120
Codex を使った障害対応机上演習の実際
orgachem
PRO
0
360
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
200
Featured
See All Featured
Side Projects
sachag
456
43k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
30 Presentation Tips
portentint
PRO
1
440
Automating Front-end Workflow
addyosmani
1370
210k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
BBQ
matthewcrist
90
10k
The Language of Interfaces
destraynor
162
27k
How to Ace a Technical Interview
jacobian
280
24k
How STYLIGHT went responsive
nonsquared
100
6.3k
エンジニアに許された特別な時間の終わり
watany
109
250k
Raft: Consensus for Rubyists
vanstee
143
7.8k
Designing Powerful Visuals for Engaging Learning
tmiket
1
620
Transcript
~だっておもしろそうだったから~ 1
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 2
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 3
活動名 RasPython3 / らすぴー 普段やってること 各種ウェブツールづくり Discordのボットづくり Linuxいじり 電子辞書いじり 4
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 5
PythonでTLS実装した! Pythonで書いたTLSのクライアントとサーバーを電子辞書で 動かしたい! 6
作業の流れ 1. TLSのクライアントとサーバーをPythonで実装する 2. 必要なライブラリを電子辞書に移植する 1. cryptographyを移植する 1. OpenSSLを移植する 2.
cffiを移植する 1. libffiを移植する 3. 動かす 7
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 8
なんか...面白だったから 9
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 10
• おそらく大半の方の疑問 • 2023年 4月頃から移植開始 2023年12月に初の動作確認 • Python2.5の頃にもWinCEサポートはあったが、Python3には無 かった •
なかったから作った 11 Python CE
12 ふつうのWindows • カレントディレクトリあり • Errnoあり • 環境変数あり • コンソールあり
電子辞書のWindows CE • カレントディレクトリなし • Errnoなし • 環境変数なし • コンソールなし いろいろ再現する必要がある
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 13
• Transport Layer Securityの略 • httpsやwssなどで使われている • TLS1.3: RFC 8446
• SSLの後継(?)である 14
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 15
• cryptography • Pythonの暗号ライブラリ • OpenSSLを利用する • 今回は暗号計算や証明書のパースに利用 • ソースコードにRustを含んでいるが、Rustは使えないので古いバー
ジョンを使用 • OpenSSL • みんな大好きOpenSSL • 今回はバージョン3.0.7を移植 • 実は海外勢が移植に成功しているが、ビルドツールの関係で追加で 移植作業をした 16
• cffi • C言語で書かれたPythonライブラリ • C Foreign Function Interfaceの略 •
cryptographyの動作に必要 • libffi • cffiが依存するライブラリ • セキュキャン期間中に移植が間に合わなかったが、後日初歩的ミスで あったことが判明しちょっと落ち込んだ 17
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 18
動いた~~~~!!! 19 クライアント サーバー
1. 自己紹介 2. 今回やったこと 3. 動機 4. 電子辞書Pythonとは 5. TLSとは
6. 今回移植したものについて 7. 結果 8. 番外編 9. おわりに 20
そういえばPythonで実装されたTLSのサーバーって... ...こんなところに同じS04の受講生の方が書いたサーバー が!!! →これも電子辞書で動かしちゃえ! 追加で移植したライブラリ • PyCryptodome 21
• 問題発生 import Cryptoがうまくいかない • 原因 import時にファイルの大文字と小文字を無視するフラグ PYTHONCASEOKがオンになっていた →Cryptoとcryptoを区別できなかった Crypto:
PyCryptodome crypto: そのサーバーに含まれていたモジュール 22
• なぜPYTHONCASEOKがオンになっていた? 23
うごいた~~~! 24 自分のクライアント もう一人の方のサーバー
PythonのWinCE移植について 今月末に東京で開催されるPyConJP 2024にて野良トークします! ご清聴ありがとうございました! 25