{"id":21954,"date":"2018-06-27T14:08:36","date_gmt":"2018-06-27T18:08:36","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=21954"},"modified":"2018-06-27T14:08:36","modified_gmt":"2018-06-27T18:08:36","slug":"nintendos-method-for-detecting-online-switch-piracy","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2018\/06\/27\/nintendos-method-for-detecting-online-switch-piracy\/","title":{"rendered":"Nintendo&rsquo;s Method for Detecting Online Switch Piracy"},"content":{"rendered":"<p><a href=\"https:\/\/www.reddit.com\/r\/SwitchHacks\/comments\/8rxg26\/psa_strong_antipiracy_measures_implemented_by\/\">SciresM<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=17356561\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/www.reddit.com\/r\/SwitchHacks\/comments\/8rxg26\/psa_strong_antipiracy_measures_implemented_by\/\"><p>After doing some research earlier today into how the Switch gains authorization to play a given game online, I learned that Nintendo has implemented some very strong anti-piracy measures in this regard -- they can actually <em>perfectly detect<\/em> whether a digital copy of a game has been legitimately purchased.<\/p>\n<p>[&#8230;]<\/p>\n<p>In the gamecard case, Nintendo can detect whether or not the user connecting has data from a Nintendo-authorized gamecard for the correct title. This solves the 3ds-era issue of gamecard header data being shared between games. Additionally, there&rsquo;s a fair amount of other, unknown (encrypted) data in a certificate being uploaded -- and certificates are also linked to Nintendo Accounts when gold points are redeemed. Sharing of certificates should be fairly detectable, for Nintendo.<\/p>\n<p>In the digital game case, Nintendo actually <em>perfectly prevents<\/em> online piracy here. Tickets cannot be forged, and Nintendo can verify that the device ID in the ticket matches the device ID for the client cert connecting (banning on a mismatch), as well as that the account ID for the ticket matches the Nintendo Account authorizing to log in. Users who pirate games definitionally cannot have well-signed tickets for their consoles, and thus cannot connect online without getting an immediate ban -- this is exactly how I would have implemented authorization for digital games, if I were them.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>SciresM (via Hacker News): After doing some research earlier today into how the Switch gains authorization to play a given game online, I learned that Nintendo has implemented some very strong anti-piracy measures in this regard -- they can actually perfectly detect whether a digital copy of a game has been legitimately purchased. [&#8230;] In [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2018-06-27T18:08:37Z","apple_news_api_id":"b9bd0405-c2a0-49db-a45d-ab9f8a68c5cd","apple_news_api_modified_at":"2018-06-27T18:08:38Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/Aub0EBcKgSdukXaufimjFzQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[],"tags":[554],"class_list":["post-21954","post","type-post","status-publish","format-standard","hentry","tag-nintendo"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=21954"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21954\/revisions"}],"predecessor-version":[{"id":21955,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/21954\/revisions\/21955"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=21954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=21954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=21954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}