Pages:
Author

Topic: BTCapsule is a Bitcoin Time Capsule to leave your private keys as an inheritance (Read 538 times)

legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
Let me start by repeating: Verify. Don't trust.

More sources for UTC time

I have added multiple sources for checking UTC time online. I will now post them, as I’m not concerned about them being hacked. Time is now coming from the Network Time Protocol from various sources. These are the sources, in order of possible failure:
So this means spoofing the DNS is enough to change the date and decrypt the keys?

Don't even need to spoof DNS run a NTP server locally and change the hosts file.
Even if you change the NTP servers it checks it's just adding the step of installing wireshark and looking at what NTP servers are queried and putting them in the hosts file.

Anything that at any time needs an outside service that is an open standard is never going to be secure.

-Dave

Please see my reply to PrivatePerson here:

https://bitcointalksearch.org/topic/m.61100414

I was indeed able to run a local NTP server and change the host file to exploit the program. This has been fixed. Thank you for helping me find this issue.

As examplens said in the other thread relying on a specific IP address or set of them is not ideal. Also, IPv6 may actually get more and more traction with ISPs so you are going to have to deal with that. Although as others have mentioned a timestamp from the blockchain would be better, I am not 100% sure that it is going to be viable since if there is enough money involved people could probably put enough time into playing with local copies of the blockchain. And once again relying on external sources is going to mean that you are going to maintaining this software forever since services and APIs and whatever else are going to come and go and change how they work.

Don't get me wrong, it's a good idea but I think it's going to be a much bigger project then what it is now to cover all the possibilities. Kind of like a 3 of 4 multisig wallet. You need 3 of 4 things to prove the date

-Dave
member
Activity: 74
Merit: 83
Let me start by repeating: Verify. Don't trust.

More sources for UTC time

I have added multiple sources for checking UTC time online. I will now post them, as I’m not concerned about them being hacked. Time is now coming from the Network Time Protocol from various sources. These are the sources, in order of possible failure:
So this means spoofing the DNS is enough to change the date and decrypt the keys?

Don't even need to spoof DNS run a NTP server locally and change the hosts file.
Even if you change the NTP servers it checks it's just adding the step of installing wireshark and looking at what NTP servers are queried and putting them in the hosts file.

Anything that at any time needs an outside service that is an open standard is never going to be secure.

-Dave

Please see my reply to PrivatePerson here:

https://bitcointalksearch.org/topic/m.61100414

I was indeed able to run a local NTP server and change the host file to exploit the program. This has been fixed. Thank you for helping me find this issue.
legendary
Activity: 2212
Merit: 7064
Anything that at any time needs an outside service that is an open standard is never going to be secure.
Maybe he can use some system of measuring time based on Bitcoin blocks instead of using NTP servers.
This probably won't be so precise in terms or world clock, but it would be much harder to attack or hack, but I am not sure if this can even be created.
I am not a coder and I won't pretend to understand how to do this, I am just proposing a wild idea.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
Let me start by repeating: Verify. Don't trust.

More sources for UTC time

I have added multiple sources for checking UTC time online. I will now post them, as I’m not concerned about them being hacked. Time is now coming from the Network Time Protocol from various sources. These are the sources, in order of possible failure:
So this means spoofing the DNS is enough to change the date and decrypt the keys?

Don't even need to spoof DNS run a NTP server locally and change the hosts file.
Even if you change the NTP servers it checks it's just adding the step of installing wireshark and looking at what NTP servers are queried and putting them in the hosts file.

Anything that at any time needs an outside service that is an open standard is never going to be secure.

-Dave
legendary
Activity: 2212
Merit: 7064
I updated the OP to show where the time sources are coming from. The time source is from the internet using the Network Time Protocol.
So this means that if I don't have active internet connection than I can't use BTCapsule at all?
It's not that hard to set up fake NTP server that is showing wrong time and using that server will fool BTCapsule and alleged timelock.
You can manually select NTP server in your operation system, so this means you can have any time you want, if you know how to do it.

I’m giving the idea of making it open source serious consideration. I may start a new thread about this, but I have a question. If my code is open source, and that potentially makes it easier for a hacker to exploit the program only if they are in possession of the thumb drive, do you think this would give people more confidence to purchase it?
Maybe it makes it easier for someone to clone your work, but you can also make it with readable only license, so that code can be inspected and verified.
Someone could hack your program even if it's closed source, just look the history of all commercial programs, with their cracks and hacks.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Let me start by repeating: Verify. Don't trust.

More sources for UTC time

I have added multiple sources for checking UTC time online. I will now post them, as I’m not concerned about them being hacked. Time is now coming from the Network Time Protocol from various sources. These are the sources, in order of possible failure:
So this means spoofing the DNS is enough to change the date and decrypt the keys?

The program is very simple. Move it to a thumb drive, turn off your internet, and enter a future year and your private keys.
Many people think temporarily "turning off the internet" is enough, and you can safely go online again after you've entered the private keys. It would be trivially easy for malware to wait in the background and empty all funds the moment your computer gets online again. To be completely safe way, you should run Live Linux on an air-gapped system without persisent storage, and wipe it when you're done. But I wouldn't use this program anyway, it adds risks instead of removing risks.

It's an interesting way to guarantee some kind of "inheritance" to a particular family member.
I understand that Timelock is great, but it requires the recipient to possess the private keys. Also, if the shit hits the fan, then the original owner of the Bitcoin doesn’t have access to their coins.
See Using Locktime for inheritance planning, backups or gifts for a much better solution.
legendary
Activity: 2268
Merit: 18711
I understand that Timelock is great, but it requires the recipient to possess the private keys. Also, if the shit hits the fan, then the original owner of the Bitcoin doesn’t have access to their coins.
You don't understand how timelock works. None of this is accurate.

To use a timelocked transaction for inheritance purposes, then I would create a transaction sending my coins to one of your addresses. I change the timelock field to a date (in Unix time) in 10 years, 20 years, 50 years, whatever. I sign the transaction, and I give it to you. You can do nothing with that transaction until after the date I set has past. If you try to broadcast it, it will be rejected by the network. After the date has passed, you can broadcast it and take your inheritance. There is zero trust involved. You can decode the transaction to see exactly what it is doing and when it can be spent, and there is no chance of anyone being able to take the coins before the date I set as the transaction remains invalid until that date. No one needs access to anyone else's private keys.

There is also no "shit hits the fan" scenario. At any time I like, I can change my mind and move/spend my coins in a regular transaction, which would invalidate the timelocked transaction you are holding.

The whole process is completely transparent, completely trustless, and completely free.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
The encryption key is stored on the executable.
A third party can access the decryption key with just a decompiler.

I understand that Timelock is great, but it requires the recipient to possess the private keys.
It requires the recipient to possess the recipient's private keys. Not the sender's.

Also, if the shit hits the fan, then the original owner of the Bitcoin doesn’t have access to their coins.
You'll have to be more precise. What does "shit hits the fan" mean for the sender?

Like I said above, I may start a new thread on this, but I’m wondering if I make BTCapsule open source, and it could potentially make it easier for someone to locally hack it, would this be something you’re interested in?
No. I'm not interested into spending time involving into a faulty project. Timelock is superior in every aspect.
member
Activity: 74
Merit: 83
BTCapsule creates two encrypted text files called year.txt and keys.txt that are stored in the same folder. The year.txt is encrypted, so that nobody can change the year after it’s created. When you run the program a second time, it checks to see if these files exists, decrypts the year.txt, checks the year, and then encrypts it again.
I understand that program creates this files but what sources it uses to fetch exact time information for year.txt file?
Even if it is encrypted it has to use computer time (either from BIOS or from system) or something that is coming from internet connection.
I can't trust this until I see some proof, since this is closed source and it can't be verified in any way.

I updated the OP to show where the time sources are coming from. The time source is from the internet using the Network Time Protocol.

I’m giving the idea of making it open source serious consideration. I may start a new thread about this, but I have a question. If my code is open source, and that potentially makes it easier for a hacker to exploit the program only if they are in possession of the thumb drive, do you think this would give people more confidence to purchase it?



BTCapsule creates two encrypted text files called year.txt and keys.txt that are stored in the same folder. The year.txt is encrypted, so that nobody can change the year after it’s created.
Why would keys.txt be encrypted? Do you imply that the private keys that are used to decrypt these two files... are also encrypted?

When you run the program a second time, it checks to see if these files exists, decrypts the year.txt, checks the year, and then encrypts it again.
This sounds like you don't understand what you're programming.

I believe in capitalism
If you believe capitalism, you should be obsessed with conquering on competition. Your work reveals the exact opposite. There's no reason one would put it above Timelock. You should give a solution to another problem.

The keys.txt file is the file that stores your private keys. That’s why it’s encrypted. The encryption key is stored on the executable.

I understand that Timelock is great, but it requires the recipient to possess the private keys. Also, if the shit hits the fan, then the original owner of the Bitcoin doesn’t have access to their coins.

Like I said above, I may start a new thread on this, but I’m wondering if I make BTCapsule open source, and it could potentially make it easier for someone to locally hack it, would this be something you’re interested in?
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
BTCapsule creates two encrypted text files called year.txt and keys.txt that are stored in the same folder. The year.txt is encrypted, so that nobody can change the year after it’s created.
Why would keys.txt be encrypted? Do you imply that the private keys that are used to decrypt these two files... are also encrypted?

When you run the program a second time, it checks to see if these files exists, decrypts the year.txt, checks the year, and then encrypts it again.
This sounds like you don't understand what you're programming.

I believe in capitalism
If you believe capitalism, you should be obsessed with conquering on competition. Your work reveals the exact opposite. There's no reason one would put it above Timelock. You should give a solution to another problem.
legendary
Activity: 2212
Merit: 7064
BTCapsule creates two encrypted text files called year.txt and keys.txt that are stored in the same folder. The year.txt is encrypted, so that nobody can change the year after it’s created. When you run the program a second time, it checks to see if these files exists, decrypts the year.txt, checks the year, and then encrypts it again.
I understand that program creates this files but what sources it uses to fetch exact time information for year.txt file?
Even if it is encrypted it has to use computer time (either from BIOS or from system) or something that is coming from internet connection.
I can't trust this until I see some proof, since this is closed source and it can't be verified in any way.
member
Activity: 74
Merit: 83
If you give the keys to a loved one, then you are trusting them not to lose or expose them. BTCapsule doesn’t require your loved one to remember a password. The year that you choose is the password, and when it arrives, they have access to your keys.
How does program knows the exact year that was selected before?
There is a big chance of getting around this if time is based on operating system, or any outside time calculation.
I know there are programs that can hack and change time  for specific application to unlock it or remove some restrictions.
This was usually used before to use trial program version without any restrictions forever, and someone could create crack for your program.



I have updated my OP to explain where the time comes from. It doesn’t come from the OS because that can easily be changed.

BTCapsule creates two encrypted text files called year.txt and keys.txt that are stored in the same folder. The year.txt is encrypted, so that nobody can change the year after it’s created. When you run the program a second time, it checks to see if these files exists, decrypts the year.txt, checks the year, and then encrypts it again.

You can move the keys.txt to another thumb drive so that it is never online. This allows BTCapsule to check the year.txt file online, and generate another encrypted file called offline.txt that can be used to decrypt your private keys without the internet.



This is entirely based on trust, and has multiple completely unnecessary points of failure. There is zero benefit over a timelocked transaction. I wouldn't touch it.

I can't say anything more than that I think the same, and that this kind of idea is problematic in itself if we know what kind of sensitive information is involved. Perhaps, in a technical sense, this idea could be refined to be more decentralized, and one of the things would be to add more sources of UTC time and not rely on just one source.


I have added more sources of UTC time, and posted them here for everyone to see. I’m actually glad this was brought up, because I found pool.ntp.org which is a semi-decentralized time protocol. I have also added a method to protect the private keys from ever needing to be exposed to the internet.



It's an interesting way to guarantee some kind of "inheritance" to a particular family member. But devices such as flash drives can be lost or damaged due to incorrect storage, oxidation, and other external and unpredictable factors. As said before, we can't just store it in one place, we must have copies and use other ways to keep this information safe as well.

Yes, I did not create BTCapsule to be a hardware wallet. So long as the user is still alive, they would still have access to their actual wallet and the responsibility to secure their Bitcoin. If they later decide they don’t want to leave their Bitcoin to whoever possesses the BTCapsule, they can simply move their Bitcoin to another wallet.

I realize thumb drives are not the best, and that is why BTCapsule doesn’t have a license key that makes it dependent on a single device. I was thinking we may not even have USB in the future, so BTCapsule can be moved and copied wherever it’s needed. If the future brings us unrecognizable technology, I figure it won’t be too hard to find an old laptop if it means you’ll have access to Bitcoin. I have an old NES game system, so even if technology changes, we can still find and use what we need from the past.



You can type anything into the text field to try it out, and when you feel comfortable, you can delete the generated files and start over.
You can never feel confident in a closed-source environment. I can't know whether your program does what you're confusedly saying or whether it checks for my keys' balance until I deposit some good amount, or even if it spies on my whole computer. And there's absolutely no reason to trust you. Not only because I don't trust strangers who try to have their closed-source software installed in the place I keep my money, but because you haven't shown you have a technical competence of the subject either.

I have been looking into open source, and I’m wondering if you would be willing to tell me which open source model you would like to see. I found this website that goes over the various models:

https://www.karllhughes.com/posts/open-source-companies

I believe in capitalism, and would love to use the money I make to constantly upgrade BTCapsule and make it a better product. I also want to make wise business decisions, and if open source would offer the trust needed to sell my product, then I would be willing to do that. However, there is also a concern with security. I have read this other article that describes the problems with making software open source:

https://www.writeclick.co.il/practical-strategies-for-securing-open-source-code/

I could make the basic code open source, and then offer to sell my program with the extra security features I have added; but then it seems like those who do not trust anything that is closed source wouldn’t trust to buy my upgraded option anyway. Would you agree?

[moderator's note: consecutive posts merged]
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
You can type anything into the text field to try it out, and when you feel comfortable, you can delete the generated files and start over.
You can never feel confident in a closed-source environment. I can't know whether your program does what you're confusedly saying or whether it checks for my keys' balance until I deposit some good amount, or even if it spies on my whole computer. And there's absolutely no reason to trust you. Not only because I don't trust strangers who try to have their closed-source software installed in the place I keep my money, but because you haven't shown you have a technical competence of the subject either.
member
Activity: 74
Merit: 83
I know there are programs that can hack and change time  for specific application to unlock it or remove some restrictions.
This is a good point actually. There is nothing stopping an attacker with access to your encrypted file using a man-in-the-middle type attack to feed spoof data to the program to make it think it has connected to whatever site it is pointed at and the date is actually 100 years in the future.

There is also nothing stopping the program from storing whatever keys you enter while offline and later transmitting them to a third party when internet access is re-established.

Please see my updated OP. The private keys are no longer required to be on the same computer to check the date, and then they can be decrypted offline. If there is a way to steal the private keys while they are offline, then I definitely don’t know how to do it. I should also say that if anyone still doesn’t trust this, they can use the program without inputting their private keys. You can type anything into the text field to try it out, and when you feel comfortable, you can delete the generated files and start over.
legendary
Activity: 2268
Merit: 18711
I know there are programs that can hack and change time  for specific application to unlock it or remove some restrictions.
This is a good point actually. There is nothing stopping an attacker with access to your encrypted file using a man-in-the-middle type attack to feed spoof data to the program to make it think it has connected to whatever site it is pointed at and the date is actually 100 years in the future.

There is also nothing stopping the program from storing whatever keys you enter while offline and later transmitting them to a third party when internet access is re-established.
legendary
Activity: 2212
Merit: 7064
If you give the keys to a loved one, then you are trusting them not to lose or expose them. BTCapsule doesn’t require your loved one to remember a password. The year that you choose is the password, and when it arrives, they have access to your keys.
How does program knows the exact year that was selected before?
There is a big chance of getting around this if time is based on operating system, or any outside time calculation.
I know there are programs that can hack and change time  for specific application to unlock it or remove some restrictions.
This was usually used before to use trial program version without any restrictions forever, and someone could create crack for your program.

Closed source. Single point of failure. Costs $12.
Enough said.
I don't know a single bitcoiner who would pay for this closed source stuff, even if it was cheaper than $12.
sr. member
Activity: 1955
Merit: 381
English<->Pt-BR - Professional Translations(90+)
It's an interesting way to guarantee some kind of "inheritance" to a particular family member. But devices such as flash drives can be lost or damaged due to incorrect storage, oxidation, and other external and unpredictable factors. As said before, we can't just store it in one place, we must have copies and use other ways to keep this information safe as well.
legendary
Activity: 3234
Merit: 5637
Blackjack.fun-Free Raffle-Join&Win $50🎲
This is entirely based on trust, and has multiple completely unnecessary points of failure. There is zero benefit over a timelocked transaction. I wouldn't touch it.

I can't say anything more than that I think the same, and that this kind of idea is problematic in itself if we know what kind of sensitive information is involved. Perhaps, in a technical sense, this idea could be refined to be more decentralized, and one of the things would be to add more sources of UTC time and not rely on just one source.



Ledger has never been hacked, but Trezor has. Both are great options for Bitcoin wallets, but my program uses some unique methods to ensure protection.

As far as I know, both HW that you mention had vulnerabilities detected in the past, but we cannot talk about hacking in the literal sense, especially about someone successfully hacking such devices remotely. No matter how much you think that these are similar things, these are still companies that are public and would suffer serious consequences if they betrayed the trust of clients in this way - while you are a private person who would not bear any responsibility for anything which would lead to the financial loss of people who would use your software.

No hard feelings, you must understand that we are extremely cautious people and have very high standards when it comes to safety.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Closed source. Single point of failure. Costs $12. And you've spent the time to develop such "service" acknowledging the existence of Timelock, which is transparent, requires no third party, is free, and has already been used for this very purpose effectively? Tell me one reason why I should trust you.

Not only do I not trust you for your intentions, but according to your main page, I'm questioning your developing skills as well. The following sentences reveal you don't know much about security.
Quote
However, the chances of someone hacking your BTCapsule are very small. First, they would have to steal your USB, which is not a likely target of thievery.
Quote
In the event your BTCapsule is stolen, simply move your Bitcoin to a new wallet and start over.
Quote
To veiw the private keys, BTCapsule will have to temporarily connect to the internet. This will not expose your private keys online. It is needed to check the UTC date, because a computer's system date can easily be changed.

I want to believe these 5 merits from NotATether were sent very generously, without much study of the case here. I'm almost convinced this BTCapsule will rip you off the moment you leave a private key.
legendary
Activity: 2268
Merit: 18711
-snip-
And yet, this still does not solve any of the other issues. How do we know the encryption is secure when you keep it closed source? How do we know that when the time limit is up, even if everything is done offline, the user isn't instead shown a message from you asking for a ransom payment before decrypting their back up? How do you address the multiple points of failure?
Pages:
Jump to: