Considering other companies would need stack UE4 to access it i don’t see this possible to implement it smooth way, best would be in Epic would implement something like that,
A lot easier would be making a plugin (this is impossible without C++) that would have special asset type (inhereted of UMaterial) which would override editor opening function to do nothing and somehow convert materials to it. Since that asset would be still inherent from UMaterial it would be still normally functional material asset, just you would not be able to open material editor.
If you interested in this then good starting point is AssetTools module:
https://github.com/EpicGames/UnrealEngine/tree/e528f9f7fa161504dd629c3b390deac93650e43a/Engine/Source/Developer/AssetTools
Which contains classes with information how to deal with specific assets and how they are displayed with Content Browser (this is good thing to study either way since this is how you make your own assets and this is quite easy once you grasp it):
https://github.com/EpicGames/UnrealEngine/tree/e528f9f7fa161504dd629c3b390deac93650e43a/Engine/Source/Developer/AssetTools/Private/AssetTypeActions
For some reason UE4 have them contained in one module but you can make this in any other module. Each such class need to be manually registered on module start like this:
.h
TSharedPtr<class FAssetTypeActions_YourAssetType> Action;
.cpp:
Action = MakeShareable(new FAssetTypeActions_YourAssetType);
FModuleManager::LoadModuleChecked<FAssetToolsModule("AssetTools").Get().RegisterAssetTypeActions(Action.ToSharedRef());
I not sure abour asset conversion i never did that ii would need to study that myself. 2nd hand user would need to hjave that plugin too… but i’m not sure how UE4 editor would behave with such asset without that plugin, if it’s gonna see asset? if yes, it will open it in material editor? I think not but i never tested that. Editor extension is very nondocumented so it all try and see.
Still this is only dummy-proof solution, if somebody really wanted to break it he could easily do it with some C++ work, same with your box idea, there still would be needed material data which can be read. For real deal security you would need some DRM-like asset encryption which would need to be deeply implemented in UE4.
You could try start discussion about this by making feature request in feedback forum, but best would be if you not request box idea but overall asset protection, making selected assets unviewable and uneditable yet usable, because as i said best would be inf Epic implement that as both you and 2nd hand developer need code to keep things hidden