考慮任何聊天應用程序,如gtalk,whatsapp。我的問題與如何完成這些服務器端實現有關。該場景是:
客戶端A想通過聊天服務器S與客戶端B交談。實現通信時,我假設在S上運行着NAT(網絡地址轉換)服務器,雙方都向S標識自己。
在此之後,S或S上運行的任何聊天服務器充當A和B之間的中介。當A發送「你好B,你好嗎?」時,這個句子必須去S,然後S發送它到A.服務器端實現聊天應用程序
我的第一個問題來了:客戶端和服務器之間的通信是否被加密?我知道數據將根據TCP/IP通信堆棧進行打包,並且此數據包的數據部分將包含發送的實際文本A.但是這個數據部分是否通過加密來保證?意思是說,如果有人在哪裏嗅探數據包並提取數據,他們是否能夠弄清楚A發送給B?
我問的原因:如果我要製作一個聊天應用程序,我該如何保護用戶的隱私免受陌生人甚至我自己的侵害(因爲A發送的內容對我的服務器代碼是可見的,我不妨寫下它到一個文件;誰知道,谷歌可能會這樣做:P)。
現在假設B離線,那麼S必須延遲發送消息給B,直到B聯機並請求存儲消息。或者在這一點上,考慮像Dropbox這樣的應用程序臨時存儲文件。
第二個問題:S如何存儲此消息或文件?加密如何完成?簡而言之,如果我要製作這樣的產品,那麼我怎麼能向用戶保證他們的數據在我們的服務器上是安全和私密的,即使我們或我的公司無法讀取它,即使我們想要。
總之,一個公共領域的網站如何設法將陌生人和自身的用戶數據保密並保密呢?
感謝您的建議!
「我假設在S上運行着NAT服務器,雙方都向S標識自己,」是什麼? NAT在這裏意味着什麼?網絡地址解讀? – thejh
是的。 A和B都不知道對方的知識產權,所以調解員必須與他們交談,瞭解他們的知識產權。又名NAT。謝謝我將編輯問題以添加完整形式 –
你想要1:1還是多對多(羣聊)? – thejh