Connected devices are nowadays almost all new products in several different areas (white goods, vehicles, industrial equipement, medical devices, etc.) and the so called Internet of Things is an engineering knowledge that software and hardware developers are required to master regardless of the product they're designing.<p>I'm curious to learn how design engineers are making choices for being sure that communication of devices with the Internet is secure enough: encryption, identification for a TCP/IP based communication channel originated by a limited-resources device (assuming that it can't run Linux, only some simple RTOS).<p>The other partner of the communication can be viewed as a unlimited-resources entity (the cloud) but most of the products we're asked to design with connectivity on board used to have limited funcionalities until yesterday, and we're lucky if a 32 bit (ARM Cortex M3/M4) is already part of the design.<p>Best practices are clear and known, but what's your experience in adopting them? Any cultural/technical/financial limitation applies usually?