Interface that has no any member or has exactly same members with another interface that is inherited from same interface called Marker Interface and you are using it as a marker.
It is not bad practice but interface can be replaced by attributes(annotations) if the language that you are using support it.
I can confidently say that it is not bad practice because i have seen heavy usage "Marker Interface" pattern in Orchard Project
Here is sample from Orchard project.
public interface ISingletonDependency : IDependency {} /// <summary> /// Base interface for services that may *only* be instantiated in a unit of work. /// This interface is used to guarantee they are not accidentally referenced by a singleton dependency. /// </summary> public interface IUnitOfWorkDependency : IDependency {} /// <summary> /// Base interface for services that are instantiated per usage. /// </summary> public interface ITransientDependency : IDependency {} Please refer to Marker Interface and here is how used.