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
らすぴー
September 07, 2024
Technology
56
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
660
高校のChromebookでも自由なネット環境を!
raspython3
0
210
限界環境CPython rev. seccamp2025
raspython3
0
59
kernel-vm-ittekita-yuukousai
raspython3
0
120
kernelvm-brain-net
raspython3
0
1.2k
pyconjp2024-wince
raspython3
0
69
Other Decks in Technology
See All in Technology
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
760
LLMリーダーボードアップデートに向けたAgentic Math_SWEのトレースについて
nejumi
0
210
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
420
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
1.3k
クラウドセキュリティ入門 ~安全なクラウド利用のための基礎知識~
lhazy
8
7.6k
Flutterをカメラで動かしたかった話
sony
0
120
Goでデータパイプラインを作ろう
sansantech
PRO
0
240
ラジオの科学
frievea
0
210
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.5k
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
270
Amazon Bedrock Managed Knowledge BaseDive Deep
ren8k
0
400
初めてのGitHub Actions / GitHub Actions at First
tooppoo
0
140
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The agentic SEO stack - context over prompts
schlessera
0
860
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Embracing the Ebb and Flow
colly
88
5.1k
Unsuck your backbone
ammeep
672
58k
Building Adaptive Systems
keathley
44
3.2k
Six Lessons from altMBA
skipperchong
29
4.4k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
390
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