Total Pageviews

Saturday, 3 August 2013

tox让你跟朋友保持联系而免受政府监听

(related post:  https://briteming.blogspot.com/2018/06/blog-post_21.html)

Secure messaging for everyone, coming soon.

With the rise of widespread government monitoring programs, Tox is an easy to use application that allows you to connect with friends and loved ones without anyone else listening in.

Learn more
Tox isn't ready yet, downloads will be available soon!

About Tox

Tox is built with the idea that you can keep up with friends and family without having your privacy violated. While other big-name services require you to pay to unlock features, Tox is free in both price, and in liberty. That is, you’re free to do whatever you wish with Tox。

from http://tox.chat
https://github.com/TokTok/c-toxcore
https://github.com/Tox/tox.chat
--------------------------------

 用tox加密skype的聊天内容

The web forum 4chan is known mostly as a place to share juvenile and, to put it mildly, politically incorrect images. But it’s also the birthplace of one of the latest attempts to subvert the NSA’s mass surveillance program.
When whistleblower Edward Snowden revealed that full extent of the NSA’s activities last year, members of the site’s tech forum started talking about the need for a more secure alternative to Skype. Soon, they’d opened a chat room to discuss the project and created an account on the code hosting and collaboration site GitHub and began uploading code.
Eventually, they settled on the name Tox, and you can already download prototypes of the surprisingly easy-to-use tool. The tool is part of a widespread effort to create secure online communication tools that are controlled not only by any one company, but by the world at large—a continued reaction to the Snowden revelations. This includes everything from instant messaging tools to email services.
It’s too early to count on Tox to protect you from eavesdroppers and spies. Like so many other new tools, it’s still in the early stages of development and has yet to receive the scrutiny that other security tools, such as the instant messaging encryption plugin Off The Record has. But it endeavors to carve a unique niche within the secure communications ecosystem.

‘Up to Your Imagination’

The main thing the Tox team is trying to do, besides provide encryption, is create a tool that requires no central servers whatsoever—not even ones that you would host yourself. It relies on the same technology that BitTorrent uses to provide direct connections between users, so there’s no central hub to snoop on or take down.
There are other developers trying to build a secure, peer-to-peer messaging systems, including Briar and Invisible.im, a project co-created by HD Moore, the creator of the popular security testing framework Metasploit. And there are other secure-centric voice calling apps, including those from Whisper Systems and Silent Circle, which encrypt calls made through the traditional telco infrastructure. But Tox is trying to roll both peer-to-peer and voice calling into one.
Actually, it’s going a bit further than that. Tox is actually just a protocol for encrypted peer-to-peer data transmission. “Tox is just a tunnel to another node that’s encrypted and secure,” says David Lohle, a spokesperson for the project. “What you want to send over that pipe is up to your imagination.” For example, one developer is building an e-mail replacement with the protocol, and Lohle says someone else is building an open source alternative to BitTorrent Sync.

The New Skype

That said, the core Tox team is focused on building the features specifically required for building a Skype replacement. There are at least 10 different Tox messaging and voice clients so far, each supporting a different range of features. Eventually, Lohle says, there will be “official” clients for each major operating system, but for now the team is just recommending a few specific clients. µTox, which is available for Linux and Windows, is a the “bleeding edge” reference design, while qTox is the project’s recommendation for OS X users and Antox is the recommended for Android. There is no recommended iOS version as of yet, but there there is at least one client available.
µTox is still rough, but the interface and experience is straightforward. You download the client, and it automatically creates a public encryption key that you can provide to everyone, and a private encryption key that you keep on your computer or phone. From there, it works very much like Skype. You can add a friend to your contact list by pasting in their public key, and then you just click their name to send them a message, or click the big phone icon to call them. If you want to move your identity from one computer to another, you just copy a single file that includes your private key and contact list.
There are still a few features that are missing, though. For example, although you can do a group text chat, there’s no way to do a group voice chat yet. And there’s no way to be logged in as the same person on two different devices — say, both your phone and your computer. But Lohle says those features are coming, and the team already has a proof-of-concept for how group voice chat will work.
He says the team has no plans to turn it into a company or monetize it in any way. “No one getting paid, but we dedicate as much time as we can,” he says. “If I’m not in class, or I’m not eating, I’m probably working on Tox, and that’s at least the same for probably 10 people.” Besides, the lead developer, known only as irungentoo, is completely anonymous, so it would be hard to issue him a paycheck. “I don’t think any of us know his real name,” Lohle says.

The Link With 4Chan

Today Lohle downplays Tox’s relationship to 4chan. “We were self-sufficient after only a couple weeks,” he says. “We also posted on reddit and hacker news, and people joined from that.” He probably has good reason to distance the project from the site. The racism, homophobia and misogyny on display on the 4chan on a day to day basis would be a big turn off both for users and potential contributors.
The association has also exposed the project to the trolling and drama characteristic of the forum, which often makes it hard for outsiders to evaluate. For example, one Tox developer raised concerns about Tox users exposing their IP addresses to each other. The team responded by masking IP addresses through a technology called onion routing — the same technique that the Tor Project uses to protect user anonymity on the web. But the fix didn’t stop a wave of paranoia from sweeping forums, and it’s hard to tell how much of that is trolling and how much of it is legitimate concern.

Can You Trust It?

Worse, the project let its “warrant canary” page go offline for a week. A warrant canary is usually a website that states that a company or organization has not be served by a secret subpoena from the NSA or any other law enforcement or intelligence agency. It’s meant as a way to bypass laws that prevent companies from warning their customers that they have been served with a national security letter. The Tox team claimed in a blog post that they simply forgot to put the warrant canary back online after moving web hosts. But the incident led to degree of understandable suspicion.
Meanwhile, few security experts outside the project have reviewed the Tox code yet, but the project is based on an existing set of code libraries for working with crypto algorithms called NaCl, which has received considerably more attention. “NaCl is a newish library that is nevertheless very highly regarded in the security community, produced by skilled people,” says the Electronic Frontier Foundation senior staff technologist Jacob Hoffman-Andrews, who hasn’t yet evaluated Tox.
But it’s entirely possible to implement good crypto libraries in poor ways, so the Tox team is saving money to hire a professional security firm to audit the code once it reaches a more stable state. “Right now we’re relying on the open source community,” Lohle says. “We have about 15 who stare at the code for days or weeks.”
Correction 6:30 PM EST 9/1/2014: An earlier version of the story referred to the Electronic Frontier Foundation as the Electronic Freedom Frontier. It has also been updated to clarify that group text chat is possible with in Tox, but not group voice chat.
Correction 1:00 PM EST 9/2/2014: This article has been updated to clarify that although there is no recommended iOS client for Tox, there is at least one iOS client available.

from http://www.wired.com/2014/09/tox/ 
----------------------------------------------------
开源安全P2P版聊天软件 Tox,可能替代Skype

连线杂志报道,来自网络匿名论坛 4chan 的几位程序高手近日开发出了一个开源的,经过加密的,P2P 去中心化管理版本的 Skype 聊天工具——Tox。开发者声称未来将会将 Tox 打造成为一个能够有效防御任何来自政府或其他非法人士窃听行为的加密通讯工具。

其实 Tox 目前并非一个终端级别的软件,而是一种加密过的 P2P 数据传输协议。如上所说,Tox 除了足够安全(尽管现在不能算最高水准的安全等级,但也已经比部分其他主流即时通讯软件加密水平高)之外,最大的特性就是不需要一个集中管理的服务器——去中心化。在一个去中心化的网络拓扑结构当中,两个或多个进行数据交换、信息沟通的节点以 P2P 的方式进行连接,而非需要将数据上传到云,然后云重新将数据分配给对象。关于去中心化的网络拓扑结构,你可以阅读《网状网络:世界末日的希望》一文了解。

Tox 的开发团队致力于将这个功能打造为「Skype 的替代者」。Tox 目前已经拥有多达 10 种客户端,每种都具有不同的功能。Tox 团队表示将会在未来推出一个适用于目前主流桌面和移动操作系统平台的「官方版」软件。

如果有读者希望尝试这种新的沟通方式,Windows 用户可以选择μTox,OS X 用户则应当选择 qTox,而 Android 用户的首选应该是 Antox,以上三个都是 Tox 开发团队推荐的软件版本。
 --------------


Tox,一种新型的聊天协议.如果汝关注安全和隐私,不妨来看看呗~

再说一遍Tox是啥?

Tox是一种新型的通讯协议,它的目标是——提供一个无法监控的 Skype 替代品——彻底的加密,没有后门,无需中间服务器。
由于Tox就是一个协议框架,不同的开发者开发了不同的软件呗~
在下面的例子中咱会先拿 qtox 来示范一下,汝可以从上面的列表中选择一个适合自己的客户端呗~
首先按照上游的指南装好客户端呗~

新建一个Tox个人资料

运行qtox,会弹出这样的窗口.
因为咱已经有一个Tox Profile所以是这样啦,汝直接按"New Profile"就好.
在Username那挑个用户名,Password那输入个密码呗~
如果用SSH远程访问做类比的话,汝的Profile就是私钥,密码就是私钥的保护口令呗~

汝输入的密码非常重要!
1.挑一个好的密码,如果不怀好意的骇客同时得到了汝的密码和profile,就可以冒充汝发送消息了诶.
2,记住汝的密码!虽然安全性很重要,但是一旦汝忘了密码,基本上就无法恢复了呗~
确认完毕之后就会进入到qtox的主画面了呗~(旁边一圈是咱加上的注释,原谅咱不怎么会用GIMP......)

修改个人资料

点击头像的区域就可以修改自己的个人资料了.
就像界面介绍的那样,Name和Status是公开的信息,所以仔细考虑一下选择一个合适的呗~
不过问题来啦,木有好友咧?

添加好友

要添加好友的话,先让汝的好友把Ta的Tox ID用其他的手段让汝知道呗~
E1F1C7DEA73D8126A1DEE9EAE5B45E21FB17E75F2319B7823A346B8C427EB272C80A89B69B4E
—Tox ID 是像这样的十六进制数呗~
然后到添加好友的界面把Tox ID输入进去.必要的话,附上一段消息让Ta知道汝是谁呗.
就像界面介绍的那样,Name和Status是公开的信息,所以仔细考虑一下选择一个合适的呗~
一开始时汝的好友列表只会显示对方的Tox ID.
当Ta同意汝的好友请求以后,汝的好友列表上就会显示Ta的Name和Status.
然后像平常一样聊天呗~
要想让其他人和汝成为好友的话,把汝自己的Tox ID告诉Ta,让Ta像这样添加汝为好友呗~

发起群聊

Tox也是可以发起群聊的哟~首先创建一个(qtox里点击下方"创建群聊"按钮就可以了.
汝也可以邀请好友加入群聊呗~(qtox中右键点击某个好友-邀请加入群聊-汝的群聊名称呗~)
只不过万一汝退出了tox,下次登录时是不会加入上次加入的群聊的,汝只好让好友再邀请汝一次呗~

导出Tox的配置文件

必要时可以导出汝的配置文件,这样就可以在其他地方连接到汝的Tox用户了呗~
qtox的话,可以在Profiles页面通过"导出"选项导出汝的配置文件呗~

最后

这些就是tox基本的用法啦~,对于其他的客户端的话,不妨去阅读对应的文档呗~
如果汝有意帮助开发Tox的话, 来这看看呗~
哦,差点忘记啦,这是咱的Tox ID,大家可以试试看呗~
7BC803F7F9B8A7230EE181AB45CA909DE446D36A7BC3A275D5576439E0CF7546FF4E2C4665CC
---------------------

Tox —— 安全的P2P聊天工具,完美取代Skype

2013年曝出美国监控丑闻后,一位牛人随即于17天后开发出了一款代替Skype的端对端加密软件——彻底的加密,没有后门,无需中间服务器。其中对国内民主维权人士最有用的一个功能就是,只要你退出登录,再登录时以前加入的群就不存在了,这样国保就无法知道你曾经加入了哪些群,也不知道你在群里说了什么(当然前提是你不要在群里透露自己的身份,让线人知道)。不仅能进行文字交流,还能语音、视频对话。而且传递文件的速度也比Skype快很多倍。以前不能输入中文,国内汉化的又不安全,现在中文版也很成熟了。所以向大家推荐。以下内容为本人综合Github、网友文章及自己的经验而成。
请大家根据自己操作系统的版本选择相应的软件下载安装:
WindowsLinuxOS XFreeBSD
64 bit releaseArchGentooLatest releasePackage & Port
32 bit release
Building instructions
64 bit32 bit nigthlyOther

手机可以直接在应用商店下载安装,建议大家趁早装,说不定哪天又被强迫下架了。安装 qTox 后,第一次启动 qTox,如图所示,"New Profile"就是针对新用户,输入自己的用户名、输入两次密码,然后点"Create Profile",创建档案,即可注册一个 Tox 账号。
注意:注册账号不要使用中文哦。最好是 英文 或 英文+数字。
如果你之前在本机使用过,或者想要导入原有的 Tox 账号档案,则点击"Load Profile"加载档案,即可使用原来的账号和密码登录。
由于是第一次使用 qTox,所以进入 qTox 后自动转到添加好友界面。qTox 主界面布局简单明了:左侧是功能和好友列表,右侧是消息窗口。左下角四个功能按钮分别是:添加好友,创建或加入群聊,文件传输列表,设置选项。
对于英语恐惧症患者,还是赶紧点击那个齿轮设置选项,把语言设置为"简体中文"吧!设置选项非常丰富,大家可以把自己有把握的设置一下,比如图标大小设置为 32。如果没有把握的选项,还是保持不要动哦。
好吧,开始添加好友。一般情况下,点击 qTox 主界面左下角的加号,然后在右侧粘贴好友的 76 位 ID,再点击下方的"发送好友请求",对方即可收到提示。
如果对方注册了邮箱格式的账号,那么就添加邮箱格式的账号吧,这个看上去舒服多了吧。比如还魂草的 linuxer@toxme.io 账号。
对方同意后,左侧好友列表即可出现。点击该好友,即可开始聊天啦。注意那个绿灯表示在线,黄灯表示闲置,灰色表示离线。
如何注册邮箱格式的账号?
首先,打开 Toxme 的主页 https://toxme.io/
这是一个超级简单的网页。英语恐惧症者也不要慌,我介绍一下我们会用得着的几个地方。
红色椭圆 sign up:注册。也就是把 76 位 ID 注册为邮箱格式的账号。
下划线 edit your record:编辑你的记录。也就是修改已经注册的账号信息。
红色方框 Find some friends here:在此找找朋友。也就是查看那些已经注册了邮箱格式的网友。想要添加老外网友的,可以来这里找哦。
我们点击红色椭圆 sign up 进行注册。如图所示,填写要求如下:
Name:你想要的账号名,如 pig,注册成功后,Tox 账号就是 pig@toxme.io 啦。
Tox ID:你的 76 位 ID,从 qTox 里复制粘贴到这里。
Bio:写一段话,用于发表在这个网站上。随便写,也可以不填。
红色方框 Hide my name from the public list:如果勾选,表示注册后,你的账号不会发布在这个网站上(就是前面讲的罗列已注册账号的那个页面)。建议不要勾选!
填写好后,点击底部大大的"Publish"按钮,即可注册成功。
注册成功,再点击这个页面,看看自己的大名吧!https://toxme.io/friends/0
人数不少,有很多页,找老外朋友的不妨用点耐心。
以上方法,无论 Windows、Linux、Mac 均通用。
但还有个特殊情况需要说明(仅限于 PC。安卓平台 Antox 在下一篇教程介绍):
如果你是 Linux qTox 用户,还可以直接在本机的 qTox 软件上注册(Windows 版 qTox 不行哦)。如图所示,点击顶部自己的账号名称,右侧显示个人信息页面。【注:我把这个地方用中文详细解释一下。直接在客户端软件上注册邮箱式的用户账号,操作方式与网页版差不多。先点击pTox软件上自己的用户名或图像,然后在打开的窗口里往下拉,看到注册 ToxMe, 里面已经默认填上了你的用户名,如果想用别的名注册邮箱,直接在此处更改即可,然后点注册就行了】
注册成功后会得到一个很复杂的密码,如图马赛克部分,请妥善保管。也可以就在 qTox 软件上修改密码,如图红色椭圆位置。
需要说明的是:
qTox:支持全部的 ID 格式,包括 76 位 ID、utox.org 格式、toxme.io 格式。
uTox:只支持 76 位 ID 和 utox.org 格式。
正鉴于此,还魂草建议大家统一去 https://toxme.io 注册 ID,不要再去 utox.org 注册了。
好了,咱们继续介绍 qTox 的常规使用。在和好友聊天中,鼠标移到下方的回形针上面,回形针旁边会浮出一个电脑图标。回形针按钮表示发送文件,电脑图标按钮表示截屏并发送.
截屏的时候,用鼠标选定截取区域后,双击即可完成截屏并自动发送。如图所示,接收方需要点击那个对勾才能开始接收。对比实测表明,虽然 Skype 传送文件也是点对点通信,但是 qTox 速度比 Skype 快多了。Skype 传送文件实在令人无语.
最后,咱们测试一下 qTox 的语音通话。点击聊天窗口右上角的 2 个按钮,分别可以发起语音或视频呼叫。如图所示,这是对方呼叫本机,点击绿色按钮即可接听。
经过多次实测(qTox 与安卓 Antox),语音效果非常好。
视频通话也基本可用,只是安卓 Antox 在视频通话的时候容易闪退,语音通话没问题。
-------------------------------       
      
一个反窥探的开源IM,自由软件,会话全程采用前向保密,安全无忧,还完美支持去中心化.

A New Kind of Instant Messaging

Whether it's corporations or governments, digital surveillance today is widespread. Tox is easy-to-use software that connects you with friends and family without anyone else listening in. While other big-name services require you to pay for features, Tox is completely free and comes without advertising — forever.

from https://tox.chat/

https://github.com/irungentoo/toxcore
-----------------

Redesign of Tox’s Cryptographic Handshake

In 2017, Jason A. Donenfeld (known for WireGuard®) reported an issue in Tox’s handshake [1]. This issue is called “Key Compromise Impersonation” (KCI). I will try to explain the issue as simple as possible:

In Tox you don’t register an account (e.g. with username and password), but instead your identity is solely based on (asymmetric) cryptographic information, a so-called asymmetric key pair. Such a key pair consists of a public part (public key) and a private part (private key). The public part, as the naming suggests, is public and contained in your ToxID which you share with your contacts to be able to communicate with them via Tox. The private part, again as the name suggests, needs to stay private! If someone gets in possession of your private key, they stole your Tox identity. This could, for example, be the case if someone got physical access to your computer or successfully installed malware on your system, e.g. a so-called trojan horse, to be able to extract data from it. If this happens, you will most likely have multiple problems and your Tox identity may be just one of them. The password you enter when you create your Tox profile, e.g. when you first start qTox client, is used to encrypt your profile and also your private key on your disk. If you start qTox, you need to enter your password to decrypt your private key, to be able to communicate via Tox. Your private key is then stored unencrypted in memory (i.e. RAM) while qTox is running. This means an attacker either needs to get access to your password (steal or crack it) or to read your Tox private key from memory while your Tox chat client is running.

If someone successfully stole your Tox identity (i.e. this private key), they are you – at least in the context of Tox. So they can successfully impersonate you in Tox. Now in this case the KCI vulnerability leads to “interesting” behavior. It is clear that someone who stole your identity is able to impersonate you. But because of the KCI vulnerability, they may also be able to impersonate others to you. This means, to exploit this vulnerability in practice, someone not only needs to successfully steal your private key, but additionally:

  • Know the ToxIDs of your Tox friends to be able to impersonate them to you.
  • Control the network connection between you and your friend. This could be the case e.g. if they are in the same (public) WiFi as you, or via the Internet – which is way harder and is most likely only possible for state actors (e.g. the NSA).
  • Implement their own version of toxcore because it’s not possible to exploit this issue with the current implementation. There is no public exploit available which can just be used.

In summary, KCI is exploitable, but with a huge effort.

Anyway, this is a real vulnerability and it should be fixed. The current Tox handshake implementation is not state-of-the-art in cryptography and it also breaks the “do not roll your own crypto” principle. As a solution, there is a framework called Noise Protocol Framework (Noise, [2]) which can be used to create a new handshake for Tox. More precisely, the application of Noise will only change a part of Tox handshake — the so-called Authenticated Key Exchange (AKE). Noise-based protocols are already in use in e.g. WhatsApp, which uses it for encrypted client-to-server communication, and WireGuard®, which uses it for establishing Virtual Private Network (VPN) connections. Noise protocols can be used to implement End-to-End Encryption (E2EE) with (perfect) forward secrecy (which is also the case with the current Tox implementation), but further adds KCI-resilience to Tox.

Tobi (goldroom on GitHub) wrote his master’s thesis (“Adopting the Noise Key Exchange in Tox“) on the KCI issue in Tox, designed a new Handshake for Tox based on NoiseIK and implemented a proof-of-concept (PoC) for this new NoiseIK-based handshake by using Noise-C [3]. This PoC has a few drawbacks, which is why it should not be used in practice (see Appendix). If you want to know more about his master’s thesis, see the update in the initial KCI GitHub issue [4].

He applied for funding at NLnet foundation and their NGI Assure fund to continue his work on Tox and to be able to implement a production-ready Noise-based handshake for toxcore. Fortunately, this application was successful [5]. NGI Assure is made possible with financial support from the European Commission’s Next Generation Internet programme (https://ngi.eu/).

The objective of this project is to implement a new KCI-resistant handshake based on NoiseIK in c-toxcore, which is backwards compatible to the current KCI-vulnerable handshake to enable interoperability and smooth transition. The main part of this project is to implement NoiseIK directly in c-toxcore to remove Noise-C as a dependency (as the only other dependency for c-toxcore is NaCl/libsodium) which was used in the PoC and therefore improve maintainability of c-toxcore (see Appendix).

The tasks in this project are:

  • Implementation of a Noise-based AKE for the use in Tox’s handshake in c-toxcore
    • This task is to implement and test an AKE for the Tox handshake based on a Noise protocol (most likely Noise_IK_25519_ChaChaPoly_SHA512, but it may change due to new insights in c-toxcore).
  • Implementation of a symmetric transport phase encryption based on a Noise-based AKE/handshake
    • This task includes the implementation of a symmetric transport phase encryption based on the secret key(s) generated during the Noise-based AKE during the Tox handshake and evaluation of Noise’s rekey feature.
    • Subtasks:
      • Decision of which symmetric cipher to use for the Tox transport phase encryption (e.g. ChaCha20-Poly1305 or XSalsa20-Poly1305)
      • Evaluation of Noise’s rekey feature to allow for session rekeying to reduce the volume of data encrypted under a single cipher key (cf. section 11.3 of Noise specification, revision 34). This may not be applicable to be implemented in c-toxcore (e.g. changing keys may be expensive). Also, it may not be necessary for ChaCha20 / XSalsa20. Further, it’s dependent on how the transport phase encryption will be implemented.
  • Support for the Noise-based AKE and the KCI-vulnerable AKE for backwards compatibility
    • This task includes the implementation of a mechanism to fall back to the KCI-vulnerable handshake if one of both peers uses a legacy c-toxcore version to provide backwards compatibility for the handshake transition phase (e.g. via cookie phase (request and response) of Tox’s handshake).
  • Error handling and testing, Documentation, Blog posts

The plan is to implement this new handshake until July 2023. Since it’s not a trivial task, there are still some obstacles:

  1. In Noise it is necessary to differentiate between the initiator and responder of a handshake. Due to the architecture of Tox it is possible that both peers initiate and respond to a handshake at the same time.
  2. Tox is P2P and UDP-based. Therefore packets can be received out-of-order or be lost altogether. In the Noise specification this is only considered for transport messages (cf. [6]).
    • “Note that lossy and out-of-order message delivery introduces many other concerns (including out-of-order handshake messages and denial of service risks) which are outside the scope of this document.” (cf. [6])

Both points are not ideal for a handshake based on NoiseIK (i.e. it would be way easier to implement it in a client-server model using TCP), but it should be possible to work this out.

Tobi is available in #toktok (libera.chat) as tobi/@tobi_fh:matrix.org and ready for any input, questions, remarks, discussions or complaints.

Appendix:

The PoC shouldn’t be used in practice/in production because it should be improved in the following aspects (for details see chapter five of Tobi’s thesis [4]):

  • The PoC was implemented by using the Noise-C library [3]. Instead of using the library, NoiseIK or more specifically the Noise_IK_25519_ChaChaPoly_SHA512 protocol will be implemented directly in c-toxcore. This will remove Noise-C as a dependency for toxcore (i.e. the only other dependency is NaCl/libsodium) and therefore improve maintainability. Additionally this will reduce the number of possibly vulnerable source lines of code.
    • Notes on maintainability: Noise-C has a lot of code/functionality which is not necessary for c-toxcore. Also Noise-C is currently (?) not actively maintained. If NoiseIK is implemented directly in c-toxcore it is only necessary to maintain the c-toxcore codebase and it is not necessary to care about Noise-C.
  • The PoC implementation uses the ChaCha20-Poly1305 AEAD cipher during the AKE/handshake and XSalsa20-Poly1305 during the transport phase. In this project it should be evaluated if it’s possible to also use ChaCha20 during the transport phase to only use one cipher instead of two different ones (XSalsa20 is not supported by the Noise framework). For details see chapter four of Tobi’s thesis.
  • Further testing of NoiseIK handshake behavior and improved error handling.
  • The PoC implementation is not backwards compatible with the current KCI-vulnerable Tox handshake. In this project a mechanism should be added to enable interoperability with clients based on an old c-toxcore version.
References:

from https://blog.tox.chat/2023/03/redesign-of-toxs-cryptographic-handshake/

-------------------

The future of online communications. tox.chat/

With the rise of government surveillance programs, Tox, a FOSS initiative, aims to be an easy to use, all-in-one communication platform that ensures full privacy and secure message delivery.

Website | Wiki | Blog | FAQ | Binaries/Downloads | Clients | Compiling

IRC Channels: #tox@freenode#tox-dev@freenode

The Complex Stuff:

UDP vs. TCP

Tox must use UDP simply because hole punching with TCP is not as reliable. However, Tox does use TCP relays as a fallback if it encounters a firewall that prevents UDP hole punching.

Connecting & Communicating

Every peer is represented as a byte string (the public key [Tox ID] of the peer). By using torrent-style DHT, peers can find the IP of other peers by using their Tox ID. Once the IP is obtained, peers can initiate a secure connection with each other. Once the connection is made, peers can exchange messages, send files, start video chats, etc. using encrypted communications.

Current build status: Build Status

Q&A:

What are your goals with Tox?

We want Tox to be as simple as possible while remaining as secure as possible.

Why are you doing this? There are already a bunch of free Skype alternatives.

The goal of this project is to create a configuration-free P2P Skype replacement. “Configuration-free” means that the user will simply have to open the program and will be capable of adding people and communicating with them without having to set up an account. There are many so-called Skype replacements, but all of them are either hard to configure for the normal user or suffer from being way too centralized.

TODO:

Documentation:


from https://github.com/irungentoo/toxcore
-----

qTox is a chat, voice, video, and file transfer IM client using the encrypted peer-to-peer Tox protocol.

https://qtox.github.io/

qTox is a chat, voice, video, and file transfer instant messaging client using the encrypted peer-to-peer Tox protocol.

User Manual | Install/Build | Roadmap | Report bugs | Jenkins builds | Mailing list | IRC: #qtox@libera.chat


WindowsLinuxOS XFreeBSD
64 bit releaseArchDebianFedoraGentooopenSUSEUbuntuLatest releasePackage & Port
32 bit releaseAppImageFlatpakBuilding instructions
64 bit32 bit nightlyFrom SourceFlatpak nightlyAppImage nightlyLatest nightly

Bold options are recommended.

Builds other than installer/packages don't receive updates automatically, so make sure you get back to this site and regularly download the latest version of qTox.

Help us

If you're wondering how could you help, fear not, there are plenty of ways 😄

Some of them are:

Roadmap

Currently qTox is under a feature freeze to clean up our codebase and tools. During this time we want to prepare qTox for upcoming new features of toxcore.

The next steps are:

  • move all toxcore abstractions into their own subproject
  • write basic tests for this Core
  • format the code base
  • rethink our Issue tracker

The current state is tracked in the Code cleanup project.

Screenshots

Note: The screenshots may not always be up to date, but they should give a good idea of the general look and features.

Screenshot 01 Screenshot 02

Features

  • One to one chat with friends
  • Group chats
  • File transfers, with previewing of images
  • Audio calls, including group calls
  • Video calls
  • ToxMe and Tox URI support
  • Translations in over 30 languages
  • Avatars
  • Faux offline messages
  • History
  • Screenshots
  • Emoticons
  • Auto-updates on Windows and packages on Linux
  • And many more options!

Organizational stuff

Happens in both IRC channel #qtox@libera.chat and on qTox-dev mailing list. If you are interested in participating, join the channel and subscribe to the mailing list.

There are IRC logs available.

from https://github.com/qTox/qTox

( qTox-端对端加密聊天软件,去中心化,让你的即时通信获得保密性和安全性。

tox最早于2013年6月23日由irungentoo发布并托管于GitHub上,此后的几年tox迅速发展,并衍生出许多基于tox制作的客户端,包括今天我们主要介绍的-qTox。

tox最初的想法就是创建一个像微信,QQ一样的即时通讯工具,但它无需使用中央服务器运行,并且点对点,端到端加密,保证用户通信的保密性和安全性。

qTox就是一款基于Qt和tox制作的端对端加密即时通讯工具,随着政府监控项目的兴起,qTox提供了一个易于使用的软件让您能够在与亲人和朋友联系的时候防止他人的偷窥,qTox 完全免费,并且没有广告。

qTox 特点:

跨平台:支持windows、linux和mac

方便:支持文本、音频、视频通话

安全:点对点端对端加密,没有中心服务器

简单:qTox使用简单,不需要任何专业知识,你只要专注于聊天

自由:qTox是完全免费的。除了免费使用,还能自由修改它

qTox使用:

首先qTox是点对点通信,没有中心服务器,这就意味着使用qTox无需注册账号。下载客户端后直接运行,自动生成账号(76 位的十六进制字符),其实就是我们常见的一机一码。

qTox添加好友也很简单,复制对方的76位ID发送请求即可,添加成功后就可以愉快的进行聊天了。

qTox支持语音和视频聊天,通话质量不错,而且qTox还支持圈子(其实就是分组),而且支持群聊。

文件传输这么基础的功能当然也是支持的。

github地址:https://qtox.github.io/

中文官方:https://qtox.github.io/zh_CN.html)

-----

tox
我们接着来说另外一款同样注重聊天安全的端对端加密通讯工具——tox。
tox最早是在2013年6月23日由用户irungentoo发布并托管于GitHub上,在此后的几年间TOX迅速发展,并衍生出许多基于tox制作的客户端,包括今天我们主要介绍的qTox、µTox等等。
tox最初的想法就是创建一个即时通讯工具,无需使用中央服务器即可运行,并且点对点,端到端加密,保证用户通信的保密性和安全性。
tox客户端较多,基本涵盖了所有平台。通过一张表格,我们可以大致了解一下目前tox不同客户端所支持的OS:

这里主要简单介绍一下最经典的qTox。
qTox是一款基于tox制作的端对端加密即时通讯工具,随着政府监控项目的兴起,qTox 提供了一个易于使用的软件让您能够在与亲人和朋友联系的时候防止他人的偷窥。当其它著名服务要求您付费使用服务的时候,qTox 完全免费,并且没有广告。
qTox特点
方便。支持文本、音频、视频通话。
安全。点对点端对端加密,没有中心服务器
简单。qTox使用简单,不需要任何专业知识,你只要专注于聊天
自由。qTox 是完全免费的。除了免费使用,还能自由修改它。
qTox使用
首先qTox是点对点通信,没有中心服务器,这就意味着使用qTox无需注册账号。下载客户端后直接运行,自动生成账号(76 位的十六进制字符),其实就是我们常见的一机一码。
qTox添加好友也很简单,复制对方的76位ID发送请求即可,添加成功后就可以愉快的进行聊天了。
qTox支持语音和视频聊天,通话质量不错~这一点在体验上好过Cryptocat。而且qTox还支持圈子(其实就是分组),而且支持群聊。
可能是出于安全考虑?qTox的群聊是一次性的,也就是说群聊成员下线重新登录后群聊就不存在了,你得重新添加群聊。这一点着实让人感到遗憾~~~
据作者说在下个版本的重大更新中会完善群聊功能,包括群聊保存、群聊加密等。不过这个“据说”貌似在15年的时候就已经有了~~~到现在依然未有完善,只能说耐心等着吧~~
qtox的官网:https://qtox.github.io/zh_CN.html
--------------------------
Telegram
最后一个我们来说说Telegram,讨论加密聊天工具Telegram一定是重头戏。不只是因为Telegram强大安全的加密,更因其创始人独特的魅力。如果你感兴趣,知乎上有一篇专栏专门介绍Telegram创始人的故事,感兴趣可以戳这里了解一下。
Telegram Messenger 是一个跨平台的实时通讯应用,它的客户端是自由及开放源代码应用,但是它的服务器是专有应用。用户可以相互交换加密与自析构的消息,以及照片、影片、文件,支持所有的文件类型。官方网站有正式发布 Android、iOS、Mac OS X 与 正在 Beta 的 Windows Phone 的版本。
简单来说其实跟微信相同,支持一对一聊天,群聊,当然重点在于他的私密聊天,同时它还有个Channe频道。
主打隐私安全
Telegram有两种聊天模式,一般聊天模式,使用的是端到端的加密通信,不过服务器端会有访问密钥的权限,而且可以经由多重设备登录。
当然,在Telegram中你可以发起私密聊天,Telegram的私密聊天模式同样也采用端对端加密方式,经Telegram发送的消息不会经过中心服务器,跟Cryptocat一样,重新登录之后私密聊天的内容会全部消失。
说到加密安全性,官方曾发起一个竞赛,悬赏价值 20 万美元的比特比奖励有能力破解已拦截的通话消息,一位信息技术社区的用户发现了安全问题,修正过后,他获得了 10 万美金的奖励。这足以说明Telegram对其加密安全的自信,这一点也着实让人由衷敬佩。
另外Telegram的群聊模式体验非常不错,比如支持针对性的回复,其实就是跟微信QQ@回复相同。。。。群聊人数从最初的支持500人,到之后的5000人,2017年增加到10000人~~
Telegram的channel频道是一个非常不错的信息分发中心,你可以把他理解成微信公众号,在这里频道的管理人员可以群发信息,且支持无上限的用户加入。
总结:
Cryptocat、tox、Telegram这三款工具在目前来说应该是聊天加密方面的最佳选择,如果你注重隐私安全,在我大天朝内,想保护聊天内容不被监控不被恶意搜集,那么你不防试试这几款工具。随便一款都是可以滴~~
写在后面:
试用一圈之后,我竟未找到QQ、微信的完美替代品,不管是哪款工具,即便在功能体验上做到极致,也总还是水土不服~曾有人问你觉得QQ帝国最大的核心竞争力是什么,不是LOL,不是QQ、也不是微信,是它圈着你的社交关系~~
你想远离QQ,远离微信?我觉得不大可能,你觉得呢?
------------------------

Tocks

A Tox client with no good reason to exist. Please check out qtox for a fully featured and maintained project.

Goals

  • First and foremost the author's enjoyment
  • Well enough abstracted that UI toolkits can be swapped out in the future
  • Stable/well tested/easily testable
  • Not necessarily feature packed. Whatever people want to implement can be implemented

Technical details

The project is split into several crates

  • toxcore-sys: Bindings to c-toxcore
  • toxcore: Rust API for tox functionality
  • tocks: Application logic/state
  • ui: QML UI around tocks library

Currently toxcore/tocks are tied to tokio. At a high level, tocks runs a future on the tokio runtime that waits for an "event" to happen. This could be anything that triggers us to take an action (e.g. the user sends a mesage, or a friend request is received from toxcore). Once we get an event we handle it and wait for the next one.

At the moment the design is that each subset of functionality will wait for something to happen, and when it does bubble an event up to the top of the tocks app. The tocks main loop will then dispatch the event back down to whatever component needs to handle it. This approach allows us to parallelize all reading of state, but still enforce one mutable writer in the handler portion. Hopefully performance of this pattern will not be so bad that events back up, otherwise we will have to split functionality further so we can handle several types of events at once.

Status

  • Proof of concept QML UI implemented that can login + send/receive messages to friends

from  https://github.com/sphaerophoria/tocks