In this paper we present a model of peer-to-peer backup and storage systems in which users have the ability to selfishly select remote peers they want to exchange data with. In our work, peer characteristics (e.g., on-line availability, dedicated bandwidth) play an important role and are reflected in the model through a single parameter, termed profile. We show that selecting remote peers selfishly, based on their profiles, creates incentives for users to improve their contribution to the system. Our work is based on an extension to well known results in Matching Theory, which allows us to formulate the Stable Exchange Game, in which we shift the algorithmic nature of matching problems to a game theoretic framework. We propose a polynomial-time algorithm to compute welfare-maximizing stable exchanges between peers and show, using an evolutionary game theoretic framework, that even semi-random peer selection strategies, that are easily implementable in practice, can be effective in providing incentives to users in order to improve their profiles.