MikroPhone: A privacy enhanced, simple and featured RISC-V mobile phone
mikrophone.net
mikrophone.net
Then add in something like a bespoke (unvetted?) communication protocol on top and my eyes really start to roll.
The people who really want privacy & security enough to be willing to buy something like this will want a lot more detail than what is offered here.
You know, they're Secure(TM)! Against Threats(TM)! Buy me if you're scared of Threats(TM)!
Threat modeling ("Secure from who? Under what conditions?") sort of stuff just doesn't seem to be a thing that's taught these days outside certain weird circles. And certainly something this project hasn't touched on in the slightest. But, yes, I was having to keep my eyeballs constrained too.
As much as it pains me, I think the most "generally secure phone" out there, for at least the sort of threat models this phone handwaves at (journalists, human rights activists) is a recent (last generation or two) iPhone with Lockdown enabled - and then shut down nightly, and carried shut down through any sort of sensitive environments. I would be inclined to go with an iPhone SE3, moreso than one of the mainline devices, simply for fingerprint scanning versus the FaceID stuff. You can't "point a phone at me" and unlock it with my fingerprint, but you can with FaceID in a wide enough range of situations to be concerning. Set a longer than usual PIN/passphrase, and be careful where you enter it.
As far as I understand the boot process, Apple has largely fixed a lot of the "before first unlock" type attacks with their secure enclave. They fixed that rather well after the battle with the FBI, and seem to have continued hardening and improving that process (hence my recommendation for the latest generation or two of device - there are changes in the boot security flows every now and then, and I assume they matter, at some point).
Then Lockdown, as near as I can tell, does a very fine job of simply closing the common attack points used. Most of the "good" attacks on iPhone users (at least the ones I know of...) are through the various "texting-esque" endpoints with weird image formats, or a browser based Javascript/JIT exploit, and Lockdown does a fine job of simply refusing most of the paths these use. Weird image formats simply aren't rendered. URLs in text messages aren't accessed and previewed. The Javascript engine removes all JIT capabilities, WebRTC, WebGL, and other "suitably complex that it's probably exploitable" sort of features.
It's not perfect, but were I an individual who believed I was under actual threat for this sort of stuff, I'd 100% use a secured iPhone (possibly with some of the Mobile Device Management features configured by a trusted person to disable the USB port and such things) over a random device like this. Sorry, open JTAG ports means it's "comically insecure" against anyone with local access and the time to bother doing anything with it.
And of course, don't keep location services on, don't install a ton of apps, etc. The usual if you're concerned about any of this.
I don't like that this is the state of the world of secure computing, but it certainly seems to be it, to me.
There's still security gains to be had from using LTE, but if mossad wants to hijack your 2fa codes by using a SS7 exploit, thats not going to protect you.
The supply chain is so wide and vast, and even if they did tamper with it, the iPhone is basically the only phone out there that multiple third parties have ran through CT scanners, X-ray machines, and silicon R/E just to show off the tech inside the phone like a bunch of nerds for clicks, meaning you have lots of good reference material to check against for any potential tampering of your own acquisition.
There's a multitude of reasons - but here's the biggest one: Apple's Lockdown mode is all or nothing. You can't selectively enable certain features that you may truly depend upon. On the other hand, GrapheneOS allows you to selectively disable individual security features that may be too overbearing. It would be far easier to daily drive a GrapheneOS Pixel than an iPhone in Lockdown, for that reason alone.
GrapheneOS sort of supports that, but I found that it's nearly useless as a daily driver when set up that way. Even with Google Play Services installed in a sandbox, GPS stuff breaks, the camera is flaky, and third party apps don't work reliably. Also, the remaining built-in apps have huge gaps (no backup, no synchronized notes, etc).
Worse, I'm not convinced that sandboxing it helps privacy that much. Without it installed, the phone had multi-day battery life. With it, it dropped to whatever Google was advertising (30 hours?).
Anyway, iOS without lockdown seems to be much more secure (by my criteria) than my GrapheneOS Pixel phone was in practice. Also, I can use all the apps that are essentially mandatory around here.
> GPS stuff breaks
I haven't experienced things breaking, but it is slightly slower (very slow if indoors) to get a GPS lock, because by default even location requests through Google's API are re-routed to the system service, which uses standard GPS/SUPL/PSDS rather than hoovered-up Wi-Fi SSIDs. You can optionally enable Google's location service if you want faster results.
https://discuss.grapheneos.org/d/14344-cellebrite-premium-ju...
I can't get animated gifs in MMS/texting threads. Oh darn. Doesn't bother me, they're usually content free fluff anyway.
WebGL being disabled means I can't use that one guy's awesome website on my phone - except, if I want to, I can disable Lockdown on a per-site basis for trusted sites (which then allows those things to work again).
... I can't get Facetime calls from random numbers? That's never been a problem for me one way or another, and, good.
I do occasionally run into websites that use some image format that doesn't render, and if I really care, I can disable Lockdown on the per-site basis there too, but I usually don't bother.
I'm just curious as to what the actual issues you've found with it are. I turned it on in a beta and haven't found any reason to turn it off since then.
This is thought provoking because I get your sentiment against half-baked ideas of "secure" and "threat", but then you start talking about cameras, fingerprint readers and boot processes...
These have nothing to do with phones as I see them. For me a secure phone is the minimum viable device to make a voice communication (and perhaps short text messages at a stretch).
So what's going on here is woolly ideas about function. If we define a "phone" as a multi-purpose personal computer, address book, secure storage device, video player, film camera etc, then it's going to have very different security parameters than a simple "telephone".
So we can't talk about threats and security until we have talked about function. As we define (or rather fail to define) a 'phone' today it has almost no functional boundaries, and so there's no model around which to define security.
The minimal RISC-V device outlined in the article looks like the kind of thing that could be customised to constrain functionality in such a way as to add security. It obtains that possibility by giving control to the end user around what not to include.
It's worth pointing out that even the latest iPhones are vulnerable after first unlock (AFU), which means if your phone gets seized and you don't have time to turn it off, they can get a full dump of your phone.
https://discuss.grapheneos.org/d/14344-cellebrite-premium-ju...
I really don't have a great answer. I'm aware Graphene offers some substantial benefits too, but it's also somewhat harder for a non-technical user to use. Unfortunately, when the attacker has unlimited physical access, a device can and will fall, given time and resources.
There’s a gigantic difference between someone who has experience designing and building complex systems to be secure and private… and someone who thinks “how hard can this be? There’s gotta be a market for it!”
I can’t tell which one this is
https://www.npr.org/2024/05/31/1197959218/fbi-phone-company-...
https://www.theverge.com/2024/5/23/24163389/joseph-cox-dark-...
I remember this story. The FBI created cell phone business targeting criminals. They got criminals to believe it was a secure network all while listening in.
https://www.amazon.com/Dark-Wire-Incredible-Largest-Operatio...
It was a real conundrum for law enforcement agencies because at some point they had to stop facilitating crime and start exposing it.
> This project is funded through NGI0 Entrust, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.
with links and everything.
It’s great to know it’s not funded by DPRK, but that wasn’t my point. There’s a difference between it being built by an undergrad student and moxie marlinspike.
This extends beyond just technology: it's now embedded in politics, conflicts, and nearly every aspect of life.
It's also important to note that it's not just the sheer number of devices challenging cybersecurity, but the dynamic nature of cloud security. For instance, Apple's recent innovations around hybrid AI computation highlight how cloud security is evolving alongside technological advancements.
I remember the boom of “privacy first” products that launched after the Snowden leaks, but they were all money grabs by folks who probably moved on to blockchain later and now AI.
I agree it’s wild how much of a common topic it is. I do miss the days when it was smart curious folks tinkering around.. but so goes every young field.
Valve[1] reportedly made over 100 mockups before settling on the final shape, most of them representing shapes only. Apple[2] had at least five iterations of nearly indistinguishable mockups for one of iPhone models that were discovered by fans.
It is certainly possible to build a radio equipment by starting from a block diagram and installation into enclosure, but that's development process for low volume technical instruments which measure of utility is electronic performance. A consumer product should look and feel good in hand, even when it's dead.
1: https://www.rockpapershotgun.com/valves-steam-deck-prototype...
Usually it is the common mistake that creates every camera that overheats, usb-c port that snaps off, or power adapter the size of a brick. Apple could have made the new iPad battery last another 2 hours, or make it 1.7mm thinner... They made it thinner, and provided less value to consumers in newer products.
In general, one MUST transition through every stage of the TRL or are bound to repeat the process from the start again at some point. Part of design revisions is figuring out whats possible (including physical volume constraints) with current technology, and whats appropriate in the projected market.
https://en.wikipedia.org/wiki/Technology_readiness_level
Notably, the physical volume of a battery is a physics constraint, and most of the mass of your iPhone is the battery (Steves team miniaturized everything else to reach the form it ultimately became.) The battery type is a requirement set by the desired function of the hardware, and chips slowly optimize for a given role (hence the trend of things getting slightly smaller/more-efficient, but compared to the battery volume it is negligible.)
Almost every business I've seen that prioritized the injection molded box first, has not survived to product launch.
One could disagree with physics, but then again most engineers will simply abandon that project. =3
I am, e.g. completely fine with cheap generic ready made enclosures[1][2][3] for low volume handhelds, and do understand that reality is reality, done is better than perfect, real designers ship, etc., I mean no offense to hardware rockstars either, and with that said, I really think I can say more higher priority to final form factor can be safely applied to projects like [4] and [5], despite obvious cliff between your and my qualifications.
1: https://uk.rs-online.com/web/p/hand-held-enclosures/1981369
2: https://www.takachi-enclosure.com/products/LC
3: https://www.aliexpress.com/item/1005006805827217.html
4: https://mikrophone.net/phone_big.png
5: https://mntre.com/media/reform_images/jacquelines-reform-ope...
Finally, the first physical PCB is reformed into whatever custom enclosure the marketer/designers defined. With the caveat that they understand the volumetric requirements for the device internals. Again, prior to dropping $60k on a plastic container mold, the design must first clear emissions pre-testing and certification documentation.
There is a reason hardware startups fail at a rate >5 times higher than service companies (1:63 hardware startups live past 3 years).
I would highly recommend taking a Design For Manufacturability course, or find a qualified Contract Manufacturer to handle the product gruesome details.
Most products I see now are pad-printed store-branded generic products from China. Usually nothing wrong with that kind of import trade, but fundamentally this is not a product design process.
Tip, no one is ever an expert with unknowns, but experience and standards help guide decisions on avoiding expensive mistakes... like handing your team an impossible assignment.
Best of luck, and be kind to your engineers =3
On their dev board it's the usual esp32-wroom. They also say their esp32 firmware needs esp-idf 4.2, which doesn't support any of the risc-v esp32. So it is xtensa.
I agree that everything could be done with the esp32 alone (well, an wrover with extra RAM) but this project seems to be just a guy experimenting and having fun! Although I can see how someone might be cynical regarding this project being deliberately complicated/overengineered just to extract more money from the nlnet fund.
The graphics processor is probably just for when the RISC-V core takes over the screen, as well.
The concept of a RISC-V based "assemble it yourself" phone is solid enough - there have been the PiPhone concepts based around a Pi Zero for long enough, and while I don't think they're terribly usable, they're also a fun looking little project.
But then they throw the ElipticCP concept on top, and sort of handwave it being "secure" if you're talking to someone else who is using a similar device, or similar capabilities, or such. And, unfortunately, there's not a lot of information about that I'm seeing (or, that which there is seems rather vague and handwaving).
https://mikrophone.net/about.html
> The security of the whole system is not compromised even though none of these modules is trusted, because all sensitive data is encrypted by the central MCU before sending it to a communication module. Secure communication uses a protocol EllipticCP originally designed for this project. It provides end-to-end encryption and an additional anonymizing layer based on the principle of onion routing. In order for a security protocol to function to its full extent, the end recipient in the communication channel also needs to use mikroPhone or some other phone with comparable security performances (in other words, both communication parties must be secure enough).
There's a lot of words in here that sound good, but there's a serious lack of details, and then when you go to build the phone, you have open JTAG ports to the device.
So I'm not really sure what threat model they're dealing with exactly. "People who can build their own hardware and firmware, who work in investigative journalism or human rights activists, who have iron clad control over their hardware, who want to talk to other people with identical hardware," maybe? It seems designed to counter remote threats only, and without a lot more details as to what it's doing, it's hard to say if it is or isn't doing that competently. I don't have the time right now to go dig through their firmware to see, unfortunately.
If it weren't a build it yourself sort of thing ("Here's the schematics, go get boards fabricated!") it would trip my honeypot sensors ("Secure Phones!" being more government ops than anything actually useful, IMO), but... it's not that, fairly obviously?
Dunno. I doubt it would work on any US carriers, they're all VoLTE only now. :/
For example Samsung gets free MP3 player and more important, background-running voice recorder, which is extremely important for me, but was impossible to find on OnePlus One.
It is basically Android with all the crap from Google removed.
However, the kill switches are super cool and would be practical if the device were.
No way. You need to decrypt that stuff before sending it to the communication modules (BT, WiFi, cellular, display) and you get them unencrypted from the same.
If the communication modules can decrypt the stream themselves, then eavesdropping will happen there inside.
Except Pinephone and Librem 5, which have all free drivers.
There's 2 different ideas here, and instead of splitting them up into their own discrete projects that can excel at both ideas, they are turned into 1 mediocre project. Also, exposing JTAG in your final product and forgetting about physical security aren't good looks either.
It's not a important in this project as there is a separate "main" MCU, but having radio module with closed-source software, active radios, and which you pass unencrypted data through (like bluetooth audio) might concern some people.
(The SIM module is likely closed-source too, but hopefully it's impact is much more limited - if you care about privacy, you would not send any data over cell phone networks unencrypted)
the cryptographic backdoors I have encountered in my work were in closed loop systems where having a standards based interface to facilitate separate or independent implementations would have foiled the schemes, as replicating the sabotage in another project would have been far more complex.
the first student project is building this, the next really interesting one is reasoning about that security protocol.
the ideal protocol described provides good forward secrecy, and speculatively if I were looking for implementation sabotage I would look for where the padding nulls were used instead of bytes of the nonce to reduce its entropy to something brute-forcible, and off hand as far as threads to pull, whether the parity bit on the key could reduce the search space by %50 as either even or odd.
from a design perspective, if it only talks to copies of itself, why add the complexity of a new protocol? from a mass interception perspective, the "don't roll your own crypto" cliché is probably one of the most successful psyops of all time and I don't think it's a useful admonition in this case, but imo the question of "why" for a new protocol is the most interesting one.
However, I do wish there were some videos and photos of the completed products
Also curious why someone is motivated? Pretty great, would love a 3rd alternative option to Apple and Android.
Mostly I care about phone calls, texting, and web browsing.
"Easy, Easy, Brutally Difficult."
If all you want is phone and text, there's no shortage of cheaper flip phone/candybar phones out there that handle it, though I will caution you that older versions of KaiOS, at least, struggle badly with handling any sort of modern text quantities (a few hundred messages on a phone on a KaiOS 2.x device lagged it badly enough that it stopped alerting me to new messages or phone calls, and I had to trim it down regularly, though even then it struggled).
I'm a fan of the Sonim stuff, it runs Android Go, and is properly stout.
Web browsing, though. That's hard. If you want a simple phone, your best bet is to carry a tablet or laptop for that sort of thing, and just hotspot off the phone if/when needed. Most current featurephones have a thing called a web browser, and it ranges from "almost useless" to "literally can't render the modern web." That's before you sort out using it on what is typically a 320x240 pixel display. You're way better off just carrying something different for that need.
In terms of "finding hardware that can do the following things," pretty much any cell phone sold will support voice and text - though some don't do a great job with MMS. The web browser requires orders of magnitude more resources than voice/text, though. A Nokia from 20 years ago, with... I actually can't find how much RAM or storage, had no problems with voice or text. Wouldn't run a browser at all, though.
I was admittedly of the impression that most of the voice work was handled by the baseband, though. I've not built my own phones, unfortunately. I just use some basic flip phones for mobile use.
Web browsers have a very broad interface with the underlying system.
Speaking from experience: getting calls and text working is much easier than getting a browser going in a new environment.
What do you mean? My Librem 5 just runs desktop Firefox since day one. Calls and texts were a problem initially though.
Any of WebGL, WebRTC, the MediaStreams, Web Audio or WebGPU by themselves are enormous, and on mobile SoCs will rely heavily on device specific drivers to accelerate their functions, or the battery runs out in 5 minutes.
They've got some interesting concepts for a separate application processor that can route to the screen, but... right now, consider it the sort of project to build if you don't actually need to talk to anyone with any reliability.
Good for you, you get a cookie. Get back to me when you have a RYF certification and we’ll talk sales.
And because they are (mostly?) open source, why not start with one of them?
* This was long ago enough that PayPal wasn't _quite_ as famous for its practices.
* In Europe people generally assume that companies big and small won't try to fuck you over because there are usually repercussions. Apparently American companies are exempt.
* When trying to get sizeable donations for a moonshot hardware project with high risk of failure it's ideal if donating didn't involve entering an IBAN. (Although I think kickstarter wasn't considered because the project was so niche that there was no chance of hitting a "milestone" in a reasonable time and the approach was to use funds as they came in order to allow the project to make steady progress. The idea being that people who were unconvinced earlier might become convinced later and you'd slowly attract enough support as you progress the project. I think the incident pre-dates crowd supply.)
Jolla added libhybris to make it easy to use Android hardware adaptations - which at that time was needed to get a phone out (ste, which the first Jolla phone was supposed to be based on, decided to get out of the phone chip business during the prototyping phase, and that was the last vendor offering proper Linux drivers). I never was much of a fan of that as you just pull in way too much uncontrollable crap - unfortunately it works good enough that a lot of other projects then also jumped on that, instead of reviving a focus of doing proper Linux drivers (something I was worried might happen when the libhybris development started).
I've had zero luck putting a non-Android daily driver OS on it though. I'll define daily driver as "all of this works tolerably well":
Phone, SMS/MMS, web browser, podcasts, navigation, music player and camera.
Heck, drop the camera requirement for version one, and then you're down to "video, audio, GPS and phone stuff works".
If you don't care about the modem and graphics acceleration (or, in same cases, graphics output at all) you should be able to get it booting with the available kernel relatively easily.
Camera also tends to be not tends to be not that much of an issue - typically there's enough in the available kernel that you can get a gstreamer pipeline running, and then just have to figure out how to make it not look completely shit.
And after all that you still end up having a device with the baseband sitting on your SoC.
It's definitely usable as a daily driver. There are some rough edges if you only want to use native applications and want to avoid Android applications, which go through an emulation layer. But it's still pretty nice! Things like offline mapping work really well.
Genode (a secure OS in development for years) seems to be working decently well with it:
• https://genodians.org/nfeske/2024-02-15-fosdem-aftermath
... though most people are running various Linux distros from what I remember.