{"id":2720,"date":"2023-04-12T01:27:20","date_gmt":"2023-04-12T01:27:20","guid":{"rendered":"https:\/\/www.vuepilot.com\/support\/?post_type=article&#038;p=2720"},"modified":"2024-11-05T09:50:10","modified_gmt":"2024-11-04T23:50:10","slug":"security","status":"publish","type":"article","link":"https:\/\/www.vuepilot.com\/support\/article\/security\/","title":{"rendered":"VuePilot Security Information"},"content":{"rendered":"<p>VuePilot provides a number of security mechanisms to help keep your data and machines secure.<br \/>\nThis article will outline some of the security controls implemented across the VuePilot platform and aims to clear up some confusion about how parts of the service work from a security perspective.<\/p>\n<h2>Encrypted Communications<\/h2>\n<p>All communications between the client and our servers performed over TLS \/ SSL encrypted communications.\u00a0 This includes the VuePilot software and communications with our APIs.<br \/>\nAll communications between our internal services and our databases are also performed over encrypted connections.<\/p>\n<h2>Data Security<\/h2>\n<h3 style=\"padding-left: 40px;\">Encryption At Rest<\/h3>\n<p style=\"padding-left: 40px;\">Our databases are &#8220;<strong><em>encrypted at rest<\/em><\/strong>&#8221; by default using LUKS\u00a0 disk encryption.<\/p>\n<h3 style=\"padding-left: 40px;\">Password Encryption<\/h3>\n<p style=\"padding-left: 40px;\">User passwords are never stored in the database.\u00a0 Passwords are hashed using a strong one way hashing algorithm and stored in an irreversible format. Authentication is performed by re-hashing new passwords and comparing to the stored hash.<\/p>\n<h2><\/h2>\n<h2>Application Security<\/h2>\n<h3 style=\"padding-left: 40px;\">Two Factor Authentication By Default<\/h3>\n<p style=\"padding-left: 40px;\">Two factor authentication is enabled by default for all users unless specifically disabled.\u00a0 If we detect that a different device is attempting to access your account you will be emailed a security code which must be inputted into a form before you can continue to access the dashboard.<\/p>\n<h3 style=\"padding-left: 40px;\">Rotations, Pages &amp; Apps<\/h3>\n<p style=\"padding-left: 40px;\">The VuePilot software displays &#8220;Rotations&#8221; on the screens in your business, a rotation consists of &#8220;Pages&#8221;, a page can be either a regular website URL or an &#8220;App&#8221; which is a collection of configuration items with instructions on how to display the content such as positioning, sizing, layouts etc.<br \/>\nA rotation is essentially like a playlist, it will contain an ordering of pages and the timing for each.<\/p>\n<p style=\"padding-left: 40px;\">The VuePilot player requests the &#8220;Rotation&#8221; from the API at regular intervals and uses this information to drive what is displayed on screen.\u00a0 The VuePilot player software will simply display what is configured to display within the rotation.<br \/>\nThe only information passed back and forwards between the client and server is JSON configuration data over secured HTTPS connections.\u00a0 Apps such as Power BI are only ever loaded locally by the VuePilot player.<\/p>\n<h3 style=\"padding-left: 40px;\">Logging Into Websites &amp; Dashboards<\/h3>\n<p style=\"padding-left: 40px;\">When using private dashboards, websites or services like Power BI in your rotation is it neccessary to login to the website by using a method such as the &#8220;<em>Rotations &gt; Preview &gt; Login<\/em>&#8221; method outlined here <a href=\"https:\/\/www.vuepilot.com\/support\/article\/logging-into-websites-that-require-authentication\/\"><em><strong>Logging Into Websites That Require Authentication<\/strong><\/em><\/a><\/p>\n<p style=\"padding-left: 40px;\">It is important to note that this happens on the device connected to your screens running the VuePilot software and that the VuePilot software is running it&#8217;s own version of Chromium, hence you are logging into the website just like a normal browser.<br \/>\nThe authentication information is stored locally, on that machine and it does not leave that machine.\u00a0 The VuePilot service will never see this authentication information nor is it able to outside of your local machine.<\/p>\n<h3 style=\"padding-left: 40px;\">VuePilot Media Manager \/ Asset Storage<\/h3>\n<p style=\"padding-left: 40px;\">All assets stored in the VuePilot media manager are available\u00a0<strong>publicly.\u00a0\u00a0<\/strong>All VuePilot media manager assets will have a unique public URL, specific to your account that makes it unlikely to be discovered (ie https:\/\/assets.vuepilot.com\/uploads\/3839\/e8d-myimage.jpg<em>)<\/em> however you should never store any private or highly sensitive information within the media manager as it can be viewed by anyone with the direct link.<\/p>\n<p style=\"padding-left: 40px;\">Customers may use their own internal company file storage solutions for sensitive information such as sales figures, internal processes, product data, charts etc.\u00a0 When using internal URLs to sensitive content only the URL is ever sent to our servers in order to sychonize what content is to be displayed across your devices. The actual content will never leave your internal network.<\/p>\n<p style=\"padding-left: 40px;\">The VuePilot media manager is intended for usage with standard public web assets, promotional material, images, video, photos etc.<\/p>\n<h3 style=\"padding-left: 40px;\">&#8220;Remote Management&#8221; Security<\/h3>\n<p style=\"padding-left: 40px;\">Customers often mistake this feature for a &#8220;Remote Desktop&#8221; product like VNC or Windows Remote Desktop. VuePilot <strong>does not<\/strong> provide remote desktop functionality or any type of functionality that would allow any individual to control the player machines operating system from a remote location.<br \/>\nVuePilot will periodically send requests to the VuePilot API which listens for specific instructions from the API sent by users from the dashboard.\u00a0 These instructions are sent back and forwards to the API over standard HTTPS connections and only include JSON data, not visual information.<\/p>\n<p style=\"padding-left: 40px;\">VuePilot cannot see your desktop, nor can it provide functions such as mouse control or any form of manipulation of the operating system outside of the standard VuePilot uses.\u00a0 The &#8220;Remote Management&#8221; features are merely JSON requests being passed back and forwards between client and server with minimal information, such as &#8220;<em>display URL: https:\/\/cnn.com<\/em>&#8220;<\/p>\n<p style=\"padding-left: 40px;\">Only a small set of remote management instructions can be sent between the client and server, these are to perform basic operation such as<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Start rotation<\/li>\n<li>Stop rotation<\/li>\n<li>Toggle fullscreen view<\/li>\n<li>Display URL (hijack)<\/li>\n<li>Display App (hijack)<\/li>\n<li>Reload local screen information<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 style=\"padding-left: 40px;\">VuePilot Player Software<\/h3>\n<p style=\"padding-left: 40px;\">The VuePilot player software is updated often to apply security patches and the latest Chromium releases.\u00a0 \u00a0It operates in a &#8220;context isolation&#8221; mode which isolates memory from the windows displaying content from the main application process to prevent malicious browser exploits.<\/p>\n<p style=\"padding-left: 40px;\">Automatic updates are performed by the VuePilot software, this is done by comparing a remote hash with a hash of the newly downloaded software before conducting a rolling update to combat man in the middle style injection attacks.<\/p>\n<h3 style=\"padding-left: 40px;\">Payment Card Information<\/h3>\n<p style=\"padding-left: 40px;\">The VuePilot service will never see your payment card information, nor does it ever store it or have the ability to access the full card details.\u00a0 Your payment card details are sent and stored directly and securely with the global payments provider <strong><a href=\"https:\/\/stripe.com\/\">Stripe<\/a><\/strong>.\u00a0 Stripe is responsible for handling all charges and payment information, VuePilot will simply store the customers unique customer ID and make requests to the Stripe API to perform various subscription related activities.<br \/>\nYou can read more about VuePilot subscriptions here <a href=\"https:\/\/www.vuepilot.com\/support\/article\/subscriptions-payments-billing\/\">https:\/\/www.vuepilot.com\/support\/article\/subscriptions-payments-billing<\/a><br \/>\nYou can read more about Stripes security practices here <a href=\"https:\/\/stripe.com\/docs\/security\">https:\/\/stripe.com\/docs\/security<\/a><\/p>\n<h3 style=\"padding-left: 40px;\">Firewall Requirements<\/h3>\n<p style=\"padding-left: 40px;\">The VuePilot &#8220;player&#8221; software establishes connections with the VuePilot API in a polling fashion over standard secure port 443 HTTPS connections which means no external firewall ports needs to opened in order for the software to function or remote management functionality to operate.<\/p>\n<p style=\"padding-left: 40px;\">Connections are made to the domains if you require domain white listing<\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li><strong>www.vuepilot.com<\/strong><\/li>\n<li><strong>assets.vuepilot.com<\/strong><\/li>\n<li><strong>cmd.vuepilot.com<\/strong><\/li>\n<li><strong>vuepilot-data.sfo2.digitaloceanspaces.com <\/strong>(File uploads only)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Infrastructure Security<\/h2>\n<h3 style=\"padding-left: 40px;\">Cloud Hosting<\/h3>\n<p style=\"padding-left: 40px;\">All of our databases and compute infrastructure are hosted hosted with our cloud provider <strong>Digital Ocean<\/strong> in California, United States<br \/>\nYou can read more about Digital Oceans security policies here <a href=\"https:\/\/www.digitalocean.com\/security\">https:\/\/www.digitalocean.com\/security<\/a><\/p>\n<h3 style=\"padding-left: 40px;\">Content Delivery Network (CDN), WAF (Web Application Firewall), DDOS Protection, Rate Limiting<\/h3>\n<p style=\"padding-left: 40px;\">Our infrastructure is protected by <a href=\"https:\/\/www.cloudflare.com\"><strong>CloudFlare<\/strong><\/a> which also provides our Content Delivery Network.<br \/>\nCloudFlare provides a number of security features such as exploit detection, web application firewalls, rate limiting &amp; DDOS protection.<br \/>\nYou can read more about CloudFlare security policies here <a href=\"https:\/\/www.cloudflare.com\/security\">https:\/\/www.cloudflare.com\/security<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>VuePilot provides a number of security mechanisms to help keep your data and machines secure. This article will outline some of the security controls implemented across the VuePilot platform and aims to clear up some confusion about how parts of the service work from a security perspective. Encrypted Communications All communications between the client and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2721,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","article-category":[74],"article-tag":[],"class_list":["post-2720","article","type-article","status-publish","format-standard","has-post-thumbnail","hentry","article-category-security"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>VuePilot Security Information &#8211; VuePilot<\/title>\n<meta name=\"description\" content=\"VuePilot provides a number of security mechanisms to help keep your data and machines secure using standard web security best practices\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vuepilot.com\/support\/article\/security\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VuePilot Security Information &#8211; VuePilot\" \/>\n<meta property=\"og:description\" content=\"VuePilot provides a number of security mechanisms to help keep your data and machines secure using standard web security best practices\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vuepilot.com\/support\/article\/security\/\" \/>\n<meta property=\"og:site_name\" content=\"VuePilot\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vuepilot\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-04T23:50:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vuepilot.com\/wp-content\/uploads\/2023\/04\/security-banner.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"400\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@vuepilot\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vuepilot.com\/support\/article\/security\/\",\"url\":\"https:\/\/www.vuepilot.com\/support\/article\/security\/\",\"name\":\"VuePilot Security Information &#8211; VuePilot\",\"isPartOf\":{\"@id\":\"https:\/\/www.vuepilot.com\/support\/#website\"},\"datePublished\":\"2023-04-12T01:27:20+00:00\",\"dateModified\":\"2024-11-04T23:50:10+00:00\",\"description\":\"VuePilot provides a number of security mechanisms to help keep your data and machines secure using standard web security best practices\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vuepilot.com\/support\/article\/security\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vuepilot.com\/support\/article\/security\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vuepilot.com\/support\/article\/security\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vuepilot.com\/support\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VuePilot Security Information\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vuepilot.com\/support\/#website\",\"url\":\"https:\/\/www.vuepilot.com\/support\/\",\"name\":\"VuePilot\",\"description\":\"Digital signage help and assistance\",\"publisher\":{\"@id\":\"https:\/\/www.vuepilot.com\/support\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vuepilot.com\/support\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vuepilot.com\/support\/#organization\",\"name\":\"VuePilot\",\"url\":\"https:\/\/www.vuepilot.com\/support\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vuepilot.com\/support\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vuepilot.com\/wp-content\/uploads\/2020\/06\/vuepilot-social-banner.jpg\",\"contentUrl\":\"https:\/\/www.vuepilot.com\/wp-content\/uploads\/2020\/06\/vuepilot-social-banner.jpg\",\"width\":1200,\"height\":630,\"caption\":\"VuePilot\"},\"image\":{\"@id\":\"https:\/\/www.vuepilot.com\/support\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vuepilot\",\"https:\/\/twitter.com\/vuepilot\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"VuePilot Security Information &#8211; VuePilot","description":"VuePilot provides a number of security mechanisms to help keep your data and machines secure using standard web security best practices","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vuepilot.com\/support\/article\/security\/","og_locale":"en_US","og_type":"article","og_title":"VuePilot Security Information &#8211; VuePilot","og_description":"VuePilot provides a number of security mechanisms to help keep your data and machines secure using standard web security best practices","og_url":"https:\/\/www.vuepilot.com\/support\/article\/security\/","og_site_name":"VuePilot","article_publisher":"https:\/\/www.facebook.com\/vuepilot","article_modified_time":"2024-11-04T23:50:10+00:00","og_image":[{"width":1200,"height":400,"url":"https:\/\/www.vuepilot.com\/wp-content\/uploads\/2023\/04\/security-banner.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_site":"@vuepilot","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vuepilot.com\/support\/article\/security\/","url":"https:\/\/www.vuepilot.com\/support\/article\/security\/","name":"VuePilot Security Information &#8211; VuePilot","isPartOf":{"@id":"https:\/\/www.vuepilot.com\/support\/#website"},"datePublished":"2023-04-12T01:27:20+00:00","dateModified":"2024-11-04T23:50:10+00:00","description":"VuePilot provides a number of security mechanisms to help keep your data and machines secure using standard web security best practices","breadcrumb":{"@id":"https:\/\/www.vuepilot.com\/support\/article\/security\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vuepilot.com\/support\/article\/security\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vuepilot.com\/support\/article\/security\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vuepilot.com\/support\/"},{"@type":"ListItem","position":2,"name":"VuePilot Security Information"}]},{"@type":"WebSite","@id":"https:\/\/www.vuepilot.com\/support\/#website","url":"https:\/\/www.vuepilot.com\/support\/","name":"VuePilot","description":"Digital signage help and assistance","publisher":{"@id":"https:\/\/www.vuepilot.com\/support\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vuepilot.com\/support\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vuepilot.com\/support\/#organization","name":"VuePilot","url":"https:\/\/www.vuepilot.com\/support\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vuepilot.com\/support\/#\/schema\/logo\/image\/","url":"https:\/\/www.vuepilot.com\/wp-content\/uploads\/2020\/06\/vuepilot-social-banner.jpg","contentUrl":"https:\/\/www.vuepilot.com\/wp-content\/uploads\/2020\/06\/vuepilot-social-banner.jpg","width":1200,"height":630,"caption":"VuePilot"},"image":{"@id":"https:\/\/www.vuepilot.com\/support\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vuepilot","https:\/\/twitter.com\/vuepilot"]}]}},"_links":{"self":[{"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/article\/2720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/comments?post=2720"}],"version-history":[{"count":17,"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/article\/2720\/revisions"}],"predecessor-version":[{"id":2930,"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/article\/2720\/revisions\/2930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/media\/2721"}],"wp:attachment":[{"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/media?parent=2720"}],"wp:term":[{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/article-category?post=2720"},{"taxonomy":"article-tag","embeddable":true,"href":"https:\/\/www.vuepilot.com\/support\/wp-json\/wp\/v2\/article-tag?post=2720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}