Showing posts with label Security and Privacy. Show all posts
Showing posts with label Security and Privacy. Show all posts

Thursday, January 26, 2012

TorJump v4


Version 4 of TorJump is out and can be found here.


This version contains the tor domain hardcoded into it. That way you don't need to trust me to distribute the correct download link via dropbox. If I try, by altering the dynamically changing download link in my dropbox, to make you download something outside the https://www.torproject.org domain, TorJump will refuse to do so. Great, isn't it? :-)

The source code can be found here.

Thursday, December 8, 2011

TorJump v3

Continuing with my updates, TorJump has broken since the Tor Browser Bundle started using Aurora instead of Firefox (well Aurora is Firefox alpha actually). Anyway here the latest version of TorJump.

TorJump allows you to create custom launchers for onion sites (hidden sites in Tor's hidden service network). Recently that hidden network has got some attention along with Bitcoin because of SilkRoad, a hidden website selling illegal drugs etc. Generally Onionland (the hidden services network is called by some like that because domains in it end in .onion) is filled by child pornography and other objectionable material but occasionally you will find a few sites that are worthy. The trollery there has also moved to a whole new level but again, some people there are really worth talking to.

[EDIT] The source code is here. You could find it by clicking on the TorJump category below.

Thursday, July 14, 2011

TorJump v2

Tor Browser Bundle version 1.3.25 was released and TorJump wasn't working with it correctly. I updated it to work with the new version. Previous version will display a notification about not being up to date when you try to set them up or use them for the first time after being set up. Old versions that have already been run at least once will not display a warning and will continue running with the old version of Tor Browser Bundle.

Download the new version from here. The source code is here.

Thursday, July 7, 2011

TorJump

Seeing more and more sites disappearing whether because some government took down their DNS records or arrested their owners only made me wonder why don't people use Tor's hidden services for objectionable websites (or even Freenet when possible). And the answer is obvious: they don't use them because most people don't even know about Tor (I'll start capitalizing that correctly from now on. I even started using KiB instead of KB) and very few people are actually willing to install Tor just to visit a website. So how do we make hidden services more accessible to everyone? By making TorJump, a one-click wrapper for Tor of course!

But first of all, what is Tor? Tor is an anonymity network. It allows people to make TCP connections (that's the most common protocol in the Internet, you use it when visiting any page) to any destination IP anonymously, hiding their true IP address from the websites they visit and not allowing their ISP to spy on their connections. So Tor is primarily meant to protect those that access publicly available information, from governments, mostly.

Secondly, what are hidden services? Tor, in an attempt to protect not only those accessing the information but also those that want to provide information, created a protocol to make hidden services (hidden websites in most cases) possible. Anyone, can now host a website (while hiding the server's IP address) that is not visible on the clearnet (the clearnet is the normal World Wide Web) and is only accessible via the Tor network. The hostnames of those sites aren't like what you've got used to. They are composed of 16 random alphanumerical characters (unique for each service/website) and have a .onion suffix. (like this: http://kpvz7ki2v5agwt35.onion which will lead you to the hidden wiki if you access it via Tor). The sum of all those hidden sites is sometimes called the Torland or the Onionland and those that frequent them or run them are sometimes called Torizens.

So, finally, what is TorJump? It's a wrapper for the Tor Browser Bundle. First you set it up to jump to a specific hidden site (like the hidden wiki) and then you share it with anyone you want, to help him/her easily access that hidden site. It will still be a single executable that you can rename and publish on the Internet. When someone runs it, it will start downloading the latest Tor Browser Bundle, extract it to a folder next to the executable and start it up by setting the homepage to the URL you specified when you set TorJump up. Additionally, two more tabs will open every time: the main TorProject page, which explains what is Tor, and a page with the latest news about TorJump.

TorJump can be downloaded from here and the AutoIt3 source code can be found here.

Any feature requests or ideas? Leave a comment. 

Sunday, May 1, 2011

IP filter list v2

I've updated my IP filter list. For more info about the list read the original post.

The IP filter list can always be found here.

Tuesday, April 12, 2011

IP filter for uTorrent

uTorrent and many other torrent clients and P2P programs support IP filters in Emule's ipfilter.dat format. That way you can protect yourself from some dishonest users that try either to spy on what you share, or just over-leech data to make seeders' ratios go up fast and make them leave the swarm thinking they gave what they took. Of course there is a chance that you are blocking honest users from downloading or uploading to you but I hope this isn't that common. There are some IP filter lists on the Internet already but I am combining specific parts of other lists using BlueTack's Blocklist Manager in order to make custom one that doesn't block LAN users etc. I will update the IP filter list every now and then (I don't know if I should post here about it every time it's updated... Should I?).

The IP filter list can always be found here.

Instruction on how to use it with uTorrent are inside the zipfile.

Monday, June 2, 2008

ZVista

There are a few programs that manage to make me angry every time I use them. But nothing compares to Windows Vista. It must be by far the worst OS I have ever used. I mean, Microsoft must have really tried to create such a mess, it can't suck by accident.



It's sooooo sloooooooowwwww..... I have friends with Vista on their laptops, some of them just use them for office and internet, not a single game or other application. Well it takes around 10 minutes to do a restart! Before some days I was waiting 7 minutes for the shutdown before forcing a power off myself! (no it wasn't even installing updates)



Apart from the speed issues there are million other problems. It's amazing how they managed to mess up every single aspect of the OS. Even the console (the command prompt) doesn't support drag and drop!!! WHY??? Are they crazy? I mean, did they actually pay someone to do this??? In addition to this the changed the layout of the start menu to a more flat one. They also made changes to Windows Explorer. I was looking into a folder containing C source files with the details view mode, well, Vista insisted to show me artist name, album, etc for every source file! For some unknown reason it though this was a music folder! (Perhaps it wouldn't do so if there was a Visual C++ project file in the directory >:-P ) All of the above make Vista the worst OS for a programmer or even someone that wants to do more than surfing and writing in Microsoft Office!



Another really stupid aspect is that dialog that pops up every time you try to alter system files. I really like the extra security that it offers but a virus managed to infect a system without even triggering this dialog! (I accidentally run the virus on a friend's computer) So no extra security actually, just extra confirmations to get on your nerves.



Vista is really a stupid OS for stupid (trendy) people that want to see glossy windows, but even their 3D effects are inferior to what Compiz offers to Linux users (and of course Aero needs even better hardware).



The funny thing is that I am planning to buy a new laptop but they all ship with Vista preinstalled! Of course the first thing to do will be to get rid of them but I don't even like the idea that I will actually pay for this crap!





The dialog reads:

33 days and 0 hours remaining

Copying 1.506 items (6.03GB)

from Local Disk (C:) (C:\) to FREECOM HDD (G:) (G:\)

About 33 days and 0 hours remaining



Well, this was not Vista's fault (drive G: was problematic) but it describes, a bit dramatically, what you will go through if you use this NOS (Non Operating System)



Want some more?

Get a life...



PS: ZVista is pronounced like the word "delete them" or "clear them" in Greek.

Sunday, January 20, 2008

SEcure PUblic Key TRAnsfer

Internet is perhaps one of the few places where almost everyone (most people have access to it) can express himself/herself. That gives the people great power and thus most governments try to control this free flow of information by monitoring all communications: chat, emails, instant messaging etc, supposedly to prevent terrorism... Whether the governments lie or not, I will not analyze it here. What I really know is that everyone deserves privacy. I can always whisper a secret and no law can prohibit me doing so. The same should apply to my Internet communications. I want to be able to say things to a friend without any government or person been able to eavesdrop or interfere. And this can be done with strong encryption. Encrypted communication is for me one of the best things a computer has to offer compared to a phone. There are two different kinds of encryption: symmetric and asymmetric. Symmetric cryptography is the most known. The algorithms that implement this kind of encryption are not so computationally intensive. It uses only one key which both parts (the people that want to communicate) must already know and this is the main disadvantage. This can be done either during a face-to-face meeting or over another secure channel. But what happens when you have no way of agreeing on a key with the other part? That's when public key encryption (asymmetric encryption) comes in. In asymmetric encryption there are two keys: the public one and the private one. You use the public key to encrypt a message which can only be decrypted by the corresponding private key. So in order to communicate safely with someone you follow these steps:
  1. Each of the two parts generate a pair of public - private keys.
  2. The two parts exchange their public keys over a possibly insecure communication channel.
  3. Now if one part wants to send a message to the other it simply encrypts it with the public key of the other part and then sends it. An eavesdropper cannot decrypt this message because he has not got the private key needed.
But even this type of encryption is not completely secure. One possible vulnerability is exploited with a man-in-the-middle attack. Here is a possible scenario where Bob wants to talk with Alice while Mario performs a MITM attack.
  1. Bob generates a keypair. (a public and a private key) and sends his public key to Alice.
  2. Mario, who is an employer in Bob's ISP, has already generated a keypair and while the packet with Bob's key is transient he replaces Bob's key with his own (he also notes down Bob's public key).
  3. Alice receives Mario's public key but she believes it's Bob's.
  4. Alice generates a keypair and sends her public key to Bob but Mario replaces it with his own, just like he did with Bob's.
  5. Now Bob wants to send some data to Alice. He encrypts it with Mario's key believing that it's Alice's key and sends the encrypted data.
  6. The encrypted data is peaked by Mario who is able to decrypt them with his own private key. He then re-encodes them with Alice's correct public key and passes them on Alice.
  7. The same thing happens when Alice replies to Bob. Mario is able to eavesdrop on the connection even though both part's think that is secure.
There are, of course, some ways to reveal MITM attacks. One of them involves trusted third parties which are called Certificate Authorities (CA) because they verify that the public keys have been exchanged correctly. In fact whenever you login to your Paypal, email etc account with a secure connection you do make an asymmetrically encrypted connection with that site. But, in order to ensure that there is no man in the middle, your browser also establishes another secure connection to a Certificate Authority (like StartCom) in order to check the integrity of the public key you just received. The connection to the Certificate Authority is also asymmetrically encrypted but the public key of the CA is already embedded in your browser since you downloaded it. So? Are our connections now safe? Well, your bank transactions are secure but the MITM problem remains for other types of communication. What if you want to communicate with a friend with a program that supports asymmetric encryption? You can't use a CA in this case because there can't be someone that knows the public keys of every user you chat with. Let alone that in some cases you might not trust anyone, not even a CA. There are some other solutions to this problem. I read about a protocol called "Socialist Millionaire Protocol" that is used by Off-The-Record Messaging (a secure instant messenger). Here is a copy-paste from http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html regarding the protocol:

While data messages are being exchanged, either Alice or Bob may run SMP to detect impersonation or man-in-the-middle attacks. As above, all exponentiations are done modulo a particular 1536-bit prime, and g1 is a generator of that group. All sent values include zero-knowledge proofs that they were generated according to this protocol, as indicated in the detailed description below.

Suppose Alice and Bob have secret information x and y respectively, and they wish to know whether x = y. The Socialist Millionaires' Protocol allows them to compare x and y without revealing any other information than the value of (x == y). For OTR, the secrets contain information about both parties' long-term authentication public keys, as well as information entered by the users themselves. If x = y, this means that Alice and Bob entered the same secret information, and so must be the same entities who established that secret to begin with.

I tried to understand the algorithm but I couldn't! And I think that it's too complex for no reason... They could use this protocol to achieve the same thing:
  1. Bob knows X and Alice knows Y and they want to compare them.
  2. Bob sends some random data to Alice. Alice does the same with some other random data.
  3. Bob appends X to the end of the data he received and then computes the hash of the new data. Alice appends Y to the end of the data she sent to Bob and computes the hash of the new data. Bob sends the hash to Alice. Alice checks whether the two hashes are the same.
  4. Alice appends Y to the end of the data she received and then computes the hash of the new data. Bob appends X to the end of the data he sent to Alice and computes the hash of the new data. Alice sends the hash to Bob. Bob checks whether the hashes are the same.
I think that this is a much simpler (to understand) protocol that achieves the same things. I also came up with another protocol which guarantees that there is no one eavesdropping. It doesn't detect impersonations, just eavesdroppers. In fact it's not a new one, it's just an improved version of the protocol I used in SePuKTra (which you can download from here but as I said it is not the new version of the protocol). The new protocol is much faster and like the old one it reveals man-in-the-middle attacks by measuring delays that the MITM is obliged to cause due to the nature of the protocol. First of all some symbolisms:
  • H(x) is the hash of x. Any hash function can be used. Take a look at MD5.
  • E(x,k) is the symmetrically encrypted data of x with k used as the encryption key.
  • DE(x,k) is the symmetrically decrypted data of x with k used as the decryption key.
  • PK is the public key of the sender.
  • RDP means Random Data Padding.
  • & is the concatenation symbol (VB-style :-P).
  • len(x) is the length in bytes of x.
The packets that are exchanged with this protocol can be placed in three categories and are all of a fixed length and why we will pad the messages with random data:
  • D: The Data packet. It is composed of 4 parts: len(RDP) & RDP & H(K) & E(PK & data,k)
  • A: The Acknowledge packet. It is composed of 3 parts: RDP & H(D)
  • K: The Key packet. It is composed of 4 parts: RDP & H(A) & k
Each part should run a FSM that executes these steps:
  1. Exchange public keys with the other part and start an encrypted connection.
  2. If you are the part that initiated the connection then set time1=0 time2=inf and jump to step 11.
  3. Generate a random key (k) for a symmetric encryption.
  4. Read data (data) from user.
  5. Calculate E(data,k) and H(K) (where K is the last K packet received).
  6. Note down the current time (time1).
  7. Send a D packet (with the structure described above).
  8. Wait for an A packet.
  9. Note down the current time (time2).
  10. Send a K packet containing the H(A) and the key (k) you used in step 5.
  11. Wait for a D packet and store the encrypted data (data) it contains.
  12. Note down the current time (time3).
  13. If (time2-time1)*2<=(time3-time2) then either there is a MITM or you connection is really unstable.
  14. Send an A packet containing H(K).
  15. Wait for a K packet and store the key (k) it contains.
  16. Show DE(data,k) to the user.
  17. Jump to step 3.
The two parts should communicate in this mode for some time and then they may switch to normal communication using the same public keys. Let's see how this works. While Bob chats with Alice the program includes the PK of Bob in every message he sends. Normally Mario would try to replace this PK with his own in order not to be discovered by Alice. But because the D packets contain the PK encrypted with a random key this replacement cannot be done immediately. So Mario has to withhold the D packets until the K packet arrives form Bob. This delay is visible to Alice because (time3-time2) becomes around 4 times bigger than (time2-time1). Mario could make this delay seem natural by artificially increasing (time2-time1) by delaying to send A packets to Alice but doing so would create even more delay on the side of Bob! So Mario can trick one of the two parts that the delays are natural but never both! In order to trick them both he might want to try and send A packets before receiving the D packet and K packets before receiving A packets (in order to create "negative" delays to both sides) but this cannot be done because every packet should include the hash of the very previous packet. That's all for now. I will try to upload some sketches that visualize what I wrote. I am waiting for your comments!!!

Saturday, September 22, 2007

P2P Wars

I just read a post on Pirate Bay (an index site for Torrents and also a tracker) which says that the MediaDefender company, an anti-"piracy" company, in cooperation with major entertainment companies have been trying to harm trackers and other P2P networks even by using users' computers. This information was obtained from some leaked emails of the company that were published by the MediaDefender-Defenders group along with a phone call between MediaDefender and New York Attorney General's office.

MediaDefender denies everything and took legal action to remove the leaked emails from the sites that host them. But legal actions were not enough for them so they even performed DoS attacks to the site that hosted the leaked emails. MediaDefender had also previously vandalized the Wikipedia article about itself, probably because it revealed the connection of the company with miivi.com, a site that trapped people who uploaded copyrighted content.

You can visit this site and read the emails (which have been edited so that the identity of the employees cannot be revealed). Even in the case of the site going down you can still find the emails and the phone call in Torrents. Just search on The Pirate Bay for "MediaDefender".

For more information read the Wikipedia article on MediaDefender and this article.

Friday, August 24, 2007

Old Program - LogiCrypt

LogiCrypt is one of my the first programs that I made with Visual Basic. It can encode/decode create checksums, shred and create self-decrypting executables for any file. This is a really old program so do not expect to get any real security as all the algorithms are made by me. But it's worth giving it a try I think.
;-)

You can download Logicrypt by clicking here.

Here is a screenshot:

Wednesday, August 22, 2007

Old Program - I'm Innocent

When I was at school I had I friend that used to get thrown out of the computer class because he was chatting on the Internet. So I made this program for him. It runs in the background and it will hide any window that you middle-click. To reveal the hidden windows middle-click anywhere while holding down shift. It's that simple! Just note that this program will not work if you use drivers that alter the middle click behaviour (like Logitech's drivers) You can download I'm Innocent by clicking here.

Tuesday, August 21, 2007

MUTE Portable

MUTE is an anonymous filesharing application by Jason Rohrer, placed on the public domain. When you connect to the MUTE network, you connect to a few users, your "neighbours". When you search for a file you send a search request to all your neighbours and they forward it to their neighbours etc. The search results return to you through your neighbours and the same goes for the file if you decide to download it. This way you do not have to connect directly with the person that has the file and that, in addition to some other measures that MUTE takes, makes you anonymous in the network because it is really hard for someone to find what you share or what you download. MUTE Portable is what its name suggests. I made it by compressing the executables in the directory of MUTE and then packing the directory in a zipfile. Just unzip it and you will have a ready to use MUTE installation that occupies only 5.4MB. For more information on the MUTE network and the original application visit its homepage. You can download MUTE Portable by clicking here.

Popular Posts