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
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
53
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 らすぴー
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
620
高校のChromebookでも自由なネット環境を!
raspython3
0
200
限界環境CPython rev. seccamp2025
raspython3
0
55
kernel-vm-ittekita-yuukousai
raspython3
0
110
kernelvm-brain-net
raspython3
0
1.2k
pyconjp2024-wince
raspython3
0
63
Other Decks in Technology
See All in Technology
初めてのDatabricks勉強会
taka_aki
2
240
ゼロをイチにする仕事が終わったあと
smasato
0
300
cccccc
moznion
0
1.8k
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
300
そのタスクオンスケですか?
poropinai1966
0
130
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
390
【FinOps】データドリブンな意思決定を目指して
z63d
3
610
生成AIの活用/high_school2026
okana2ki
0
110
そのハーネス、本当に境界になっていますか? AIエージェント時代の実行環境設計【MEGU-Meet #4】
cscengineer
PRO
0
110
LiDAR SLAMの実装とセンサ融合 ~Lie群からContinuous-Time LIOまで~
naokiakai
1
970
4人目のSREはAgent
tanimuyk
0
390
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
7
2.3k
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
180
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
The Limits of Empathy - UXLibs8
cassininazir
1
390
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Agile that works and the tools we love
rasmusluckow
331
22k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
480
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
AI: The stuff that nobody shows you
jnunemaker
PRO
8
770
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