Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by CasualT · Nov 04, 2011 at 07:32 PM · instantiatenetworkserverclientsecurity

Network.Instantiate and the Trusted Client problem

From what I've gathered from looking at the samples and reading the Unity documentation, the typical usage pattern on Network.Instantiate is for the server to create objects that it owns and replicate those to the clients, and for each client to create his player avatar which he owns and replicate that to the server.

The problem is that I don't see a way for the server to validate the client's Network.Instantiate call in order to determine that the requested prefab is available to that client and that the game is in a state where that prefab is valid.

There is the case of a compromised client which is spamming Network.Instantiate calls to the server to degrade the game for others or intentionally requesting prefabs that are inappropriate for the player.

I can build a networking system that doesn't make use of Network.Instantiate for my own game, but then is there a way for a server to prevent all incoming Network.Instantiate calls from being received and acted upon?

Comment
Add comment · Show 4
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image CasualT · Nov 14, 2011 at 08:52 PM 0
Share

Bump, still waiting on an answer for this.

avatar image syclamoth · Nov 14, 2011 at 09:04 PM 1
Share

As far as I can tell, it's a problem which exists for all RPC calls, not just Network.Instantiate. Network.Instantiate isn't anything magical, it's just a shortcut for doing a common task. In fact, in a lot of cases using Network.Instantiate is undesirable because you might want a high-detail model to be instantiated for the local 'owner', and a low-detail one for all the others.

From what the documentation tells me, Network.InitializeSecurity() on the server goes a fair way to preventing certain attacks, but I'm not sure what its limitations are (since I've never really tested it).

avatar image CasualT · Nov 14, 2011 at 11:38 PM 1
Share

InitializeSecurity will help, but it's not dealing with the problem from the ideal perspective. It's trying to stop someone from hacking the game through using encryption. I don't see how that will stop the typical "man-in-the-middle" proxy-based attack.

The difference between an RPC and a Network.Instantiate is that the RPC sends a function call to the server and it knows which client sent the request so the server can evaluate whether the action requested is appropriate. With a Network.Instantiate, I don't see any way for the server to verify that the client requested a valid prefab before instantiating it.

What I want is either for a Network.Instantiate call to call a function on the server when received, say NetworkInstantiateVerify. Or else to be disabled entirely, so that only RPCs can be used for this purpose.

Any request a client can make that isn't trapped by the server is a potential security risk.

avatar image csisy · Jun 12, 2015 at 02:40 PM 0
Share

Bump, I'm interested. :)

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Network.Instantiate fired from client AND server 1 Answer

Network game. Server not responding(stuck). 1 Answer

Authoritative vs Non-authoritative server (turn-based) 0 Answers

ClientScene.AddPlayer resulting in 'Unknown message ID' error 1 Answer

Client Server Login, Security! 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges