Is there any way to see a list of other files that a torrents peers is sharing? - torrent

I am not sure if this is the right place to ask this question. Mods please feel free to move it if feel so
I am downloading a file (an old rare map-history) via torrents. There is a couple of peers who probably have similar interests in history and maps and they might have more maps in their collection which they are currently sharing. Is there any way to see what else are they sharing?

Short answer - no. That would be really bad for anonymity and wouldn't work logistically with the torrent protocol. The only way you could find out what they are seeding if by cross-checking the IP of the peers you connect to on other similar torrents / on the same website with their ip.

Related

Scale of designing an IP Geolocation Algorithm

just a bit of background. I'm quite new to software development so am not very good at assessing how big a project is. Recently, I've been asked to look into how to Geolocate an IP Address without using any existing databases.
I looked through some research papers and learned a bit about delay-based Geolocation Techniques. It seems if I want to implement an IP Address without using an existing database, I would basically need to:
1) Get access to a bunch of different servers I know the physical location of and be able to send pings with them to a bunch of other servers I know the location of and the target IP Address
2) Compare the delays I received from the servers I know the location of with the target IP address to get the best match
It seems to me that this is quite a massive project to setup, though there's a bunch of research papers that use these techniques so I'm not sure if the scale is really as big as I'm expecting. Anyways, my main question is that is setting up something like this as big of a problem as I originally suspected or is it actually quite simple if you have the servers available?
Almost every Geolocation related question falls back to using a database and the main reason I'm looking into an algorithm that doesn't is because we already have a database but want this as sort of a backup or validator, and I want to try and figure out if this is worth pursuing.
There are many researches done since 2000 related to this technique. You can search "Topology-based Geolocation" in Google Scholar and read the research papers. You can add value to the research by not reinventing the wheels.

How does FTP work

I want to make my own ftp server software. I know, there are many ftp servers ready to install that have many features, but I still want to make my own, cause I can customize it and make it the way I want. Also, I find it fun to code, and I would rather make my own FTP server instead of downloading one that is ready to use if I have time. The problem is I can't find any information on how the protocol works and stuff like that. I would appreciate it if someone could explain how the protocol works or at least send me to a page that has useful information. Thanks!
If you are curious about beeing downvoted, here the explanation:
When planning a homebrew ftp program, it is a good point to google about FTP. Soon you will find RFC`S (that is "Request For Comment"), where things like the FTP protocol are described.
Thats a good starting point.
Then, when you have troubles with specific points, come back, show your code here, and ask for help.

Wondering who gets to see my source/data in the cloud

Let us assume I have few ideas that I don't want stolen and I am willing to pay a reasonable price.
There are instances like this:
http://www.pcmag.com/article2/0,2817,2369188,00.asp
or the facebook story, or the early apple/xerox story.
which could happen in cloud services like ec2, heroku, linode, azure etc.
Assuming I have a good mix of interpreted/compiled code, how can I protect my source and ideas from being stolen? I know I am not really idea rich nor is there some source thief on the loose. I just have this nagging feeling about putting source code in the cloud, which I am sure some of you also have or didn't care much about.
Would disk encryption help? What are my choices (other than building my own mini data center?)
If you are hosting your code in the cloud at some point you will need to trust your host. Otherwise you'll be doing the hosting yourself. True, any host that has your code may be able to take the code and use it, but if you choose a host that seems trustworthy, has a good reputation, and many other satisfied customers you can probably wager that your code will be secure.
Encrypting things on disk might help - it depends what you're encrypted and how you use it. Do you need your data to be unencrypted at some point to work on it? Is your data only transferred from one place to another? How much damage could an adversary do if they got a hold of your data?
You may be interested in this answer, which outlines several options.

is it reasonable to protect drm'd content client side

Update: this question is specifically about protecting (encipher / obfuscate) the content client side vs. doing it before transmission from the server. What are the pros / cons on going in an approach like itune's one - in which the files aren't ciphered / obfuscated before transmission.
As I added in my note in the original question, there are contracts in place that we need to comply to (as its the case for most services that implement drm). We push for drm free, and most content providers deals are on it, but that doesn't free us of obligations already in place.
I recently read some information regarding how itunes / fairplay approaches drm, and didn't expect to see the server actually serves the files without any protection.
The quote in this answer seems to capture the spirit of the issue.
The goal should simply be to "keep
honest people honest". If we go
further than this, only two things
happen:
We fight a battle we cannot win. Those who want to cheat will succeed.
We hurt the honest users of our product by making it more difficult to use.
I don't see any impact on the honest users in here, files would be tied to the user - regardless if this happens client or server side. This does gives another chance to those in 1.
An extra bit of info: client environment is adobe air, multiple content types involved (music, video, flash apps, images).
So, is it reasonable to do like itune's fairplay and protect the media client side.
Note: I think unbreakable DRM is an unsolvable problem and as most looking for an answer to this, the need for it relates to it already being in a contract with content providers ... in the likes of reasonable best effort.
I think you might be missing something here. Users hate, hate, hate, HATE DRM. That's why no media company ever gets any traction when they try to use it.
The kicker here is that the contract says "reasonable best effort", and I haven't the faintest idea of what that will mean in a court of law.
What you want to do is make your client happy with the DRM you put on. I don't know what your client thinks DRM is, can do, costs in resources, or if your client is actually aware that DRM can be really annoying. You would have to answer that. You can try to educate the client, but that could be seen as trying to explain away substandard work.
If the client is not happy, the next fallback position is to get paid without litigation, and for that to happen, the contract has to be reasonably clear. Unfortunately, "reasonable best effort" isn't clear, so you might wind up in court. You may be able to renegotiate parts of the contract in the client's favor, or you may not.
If all else fails, you hope to win the court case.
I am not a lawyer, and this is not legal advice. I do see this as more of a question of expectations and possible legal interpretation than a technical question. I don't think we can help you here. You should consult with a lawyer who specializes in this sort of thing, and I don't even know what speciality to recommend. If you're in the US, call your local Bar Association and ask for a referral.
I don't see any impact on the honest users in here, files would be tied to the user - regardless if this happens client or server side. This does gives another chance to those in 1.
Files being tied to the user requires some method of verifying that there is a user. What happens when your verification server goes down (or is discontinued, as Wal-Mart did)?
There is no level of DRM that doesn't affect at least some "honest users".
Data can be copied
As long as client hardware, standalone, can not distinguish between a "good" and a "bad" copy, you will end up limiting all general copies, and copy mechanisms. Most DRM companies deal with this fact by a telling me how much this technology sets me free. Almost as if people would start to believe when they hear the same thing often enough...
Code can't be protected on the client. Protecting code on the server is a largely solved problem. Protecting code on the client isn't. All current approaches come with stingy restrictions.
Impact works in subtle ways. At the very least, you have the additional cost of implementing client-side-DRM (and all follow-up cost, including the horde of "DMCA"-shouting lawyer gorillas) It is hard to prove that you will offset this cost with the increased revenue.
It's not just about code and crypto. Once you implement client-side DRM, you unleash a chain of events in Marketing, Public Relations and Legal. A long as they don't stop to alienate users, you don't need to bother.
To answer the question "is it reasonable", you have to be clear when you use the word "protect" what you're trying to protect against...
For example, are you trying to:
authorized users from using their downloaded content via your app under certain circumstances (e.g. rental period expiry, copied to a different computer, etc)?
authorized users from using their downloaded content via any app under certain circumstances (e.g. rental period expiry, copied to a different computer, etc)?
unauthorized users from using content received from authorized users via your app?
unauthorized users from using content received from authorized users via any app?
known users from accessing unpurchased/unauthorized content from the media library on your server via your app?
known users from accessing unpurchased/unauthorized content from the media library on your server via any app?
unknown users from accessing the media library on your server via your app?
unknown users from accessing the media library on your server via any app?
etc...
"Any app" in the above can include things like:
other player programs designed to interoperate/cooperate with your site (e.g. for flickr)
programs designed to convert content to other formats, possibly non-DRM formats
hostile programs designed to
From the article you linked, you can start to see some of the possible limitations of applying the DRM client-side...
The third, originally used in PyMusique, a Linux client for the iTunes Store, pretends to be iTunes. It requested songs from Apple's servers and then downloaded the purchased songs without locking them, as iTunes would.
The fourth, used in FairKeys, also pretends to be iTunes; it requests a user's keys from Apple's servers and then uses these keys to unlock existing purchased songs.
Neither of these approaches required breaking the DRM being applied, or even hacking any of the products involved; they could be done simply by passively observing the protocols involved, and then imitating them.
So the question becomes: are you trying to protect against these kinds of attack?
If yes, then client-applied DRM is not reasonable.
If no (for example, you're only concerned about people using your app, like Apple/iTunes does), then it might be.
(repeat this process for every situation you can think of. If the adig nswer is always either "client-applied DRM will protect me" or "I'm not trying to protect against this situation", then using client-applied DRM is resonable.)
Note that for the last four of my examples, while DRM would protect against those situations as a side-effect, it's not the best place to enforce those restrictions. Those kinds of restrictions are best applied on the server in the login/authorization process.
If the server serves the content without protection, it's because the encryption is per-client.
That being said, wireshark will foil your best-laid plans.
Encryption alone is usually just as good as sending a boolean telling you if you're allowed to use the content, since the bypass is usually just changing the input/output to one encryption API call...
You want to use heavy binary obfuscation on the client side if you want the protection to literally hold for more than 5 minutes. Using decryption on the client side, make sure the data cannot be replayed and that the only way to bypass the system is to reverse engineer the entire binary protection scheme. Properly done, this will stop all the kids.
On another note, if this is a product to be run on an operating system, don't use processor specific or operating system specific anomalies such as the Windows PEB/TEB/syscalls and processor bugs, those will only make the program even less portable than DRM already is.
Oh and to answer the question title: No. It's a waste of time and money, and will make your product not work on my hardened Linux system.

How to implement a secure distributed social network?

I'm interested in how you would approach implementing a BitTorrent-like social network. It might have a central server, but it must be able to run in a peer-to-peer manner, without communication to it:
If a whole region's network is disconnected from the internet, it should be able to pass updates from users inside the region to each other
However, if some computer gets the posts from the central server, it should be able to pass them around.
There is some reasonable level of identification; some computers might be dissipating incomplete/incorrect posts or performing DOS attacks. It should be able to describe some information as coming from more trusted computers and some from less trusted.
It should be able to theoretically use any computer as a server, however, optimizing dynamically the network so that typically only fast computers with ample internet work as seeders.
The network should be able to scale to hundreds of millions of users; however, each particular person is interested in less than a thousand feeds.
It should include some Tor-like privacy features.
Purely theoretical question, though inspired by recent events :) I do hope somebody implements it.
Interesting question. With the use of already existing tor, p2p, darknet features and by using some public/private key infrastructure, you possibly could come up with some great things. It would be nice to see something like this in action. However I see a major problem. Not by some people using it for file sharing, BUT by flooding the network with useless information. I therefore would suggest using a twitter like approach where you can ban and subscribe to certain people and start with a very reduced set of functions at the beginning.
Incidentally we programmers could make a good start to accomplish that goal by NOT saving and analyzing to much information about the users and use safe ways for storing and accessing user related data!
Interesting, the rendezvous protocol does something similar to this (it grabs "buddies" in the local network)
Bittorrent is a mean of transfering static information, its not intended to have everyone become producers of new content. Also, bittorrent requires that the producer is a dedicated server until all of the clients are able to grab the information.
Diaspora claims to be such one thing.

Resources