平文のTCP/IPの通信では送信したデータの完全性は期待できないので、経路にはSSL/TLSを使いましょうTCP/IPは信頼性のある通信を実現するためのプロトコルという説明がよくされる。TCP/IPでやり取りしたデータは1bitの狂いもなく転送先に届くと思われがちだ。TCP/IPが信頼性のある通信を確保してると言われているのは下記の理由による。IP層の更に下の層にチェックサムがあり、検知されると修正もしくは再送される(イーサの場合32bit)しかしチェックサムはそれぞれ16/32bitのため、昨今の超大量データを取り扱うにはかなり心もとない。日記10年ほど前はIPより下の層は技術向上によりどんどん信頼性が増すものだと思っていたけど、技術革新が故にモバイルや衛星間通信など今まで信頼性を確保できなかった領域に物理層が拡充するようになってきて大分怪しくなってきたと思う。いうわけで平文のTCP/IPにおいて転送されたデータの信頼性を期待してはいけないことは理解してもらえたと思う。すればいいか?その答えはSSLを噛ませば良い。「SSLは暗号化の技術なのになんでデータの信頼性に関係あるの?」と思うかもしれない。SSLには暗号化を行って第三者からデータを秘匿する機能の他に第三者によるデータ改ざんを防止する機能もある。→データが改ざんされることなく届く→データの信頼性の確保ができるというわけだ。TCP/IPの上位にさらに改ざん防止がつくためTCP/IPとは比べ物にならない信頼性を確保できる。SSLの改ざんに対する強度についてはちょっと力尽きました。今回職場でストリーミング処理基盤の話をしている際、違うチームで同じ話になったり、いくつかのストリーミング処理基板の初期実装で転送部分がSSL非対応だったりしたので、もしかしたらこれは一般的に知られてる話ではないのかもしれない。「インターネット越しの通信は盗聴がやばいからSSLにしとこう」ということでSSLにしといたので意図せずデータが救われてるケースもあるが、データセンター間の専用線の場合「秘匿の必要がないから平文で大丈夫」と考えるのはとても危険な考え方だと思う。莫大なデータをやり取りするようになった昨今、TCP/IPは信頼できると無邪気にインターネット越しにデータ転送してたら実はデータが壊れてたみたいな話は今後ありそうなので、気をつけていきたい。2018-12-25【2018年版】広告システムエンジニアは絶対におもしろいと思う理由2018-03-03平文のTCP/IPにおいて転送されたデータの信頼性を期待してはいけない2016-12-06ビビりなエンジニアが大企業を辞めて起業した話2016-01-16きたるIOT社会の何かを見た2015-10-31昨日はスケールアウトとして最後の営業日でした。読者になる月別アーカイブはてなブログをはじめよう!yamazさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。