Saving additional information for model elements

As part of my plugin, I would like to save some information (let’s say a serialized Java Object, or even a String) with some of project’s model elements. What is the best way to do this?

Should I use tagged values and just add a tagged value to these elements with my String as its value? I see a problem, though: these tagged values can then be edited by the user. Is there a better way to do this? Can I save some data about a model element that would not be editable by the user?