{"id":1833,"date":"2018-05-11T09:56:25","date_gmt":"2018-05-11T17:56:25","guid":{"rendered":"https:\/\/www.cloudinsidr.com\/content\/?p=1833"},"modified":"2018-06-03T07:00:45","modified_gmt":"2018-06-03T15:00:45","slug":"tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely","status":"publish","type":"post","link":"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/","title":{"rendered":"TLS 1.3 (with AEAD) and TLS 1.2 cipher suites demystified: how to pick your ciphers wisely"},"content":{"rendered":"<p>Until the day TLS 1.3 becomes widely supported, web servers must rely on a fallback to TLS 1.2 with correctly configured server directives and strong cipher suites. Pick the wrong settings and you declare an open season on your server.<\/p>\n<p><!--more--><\/p>\n<h1>The basics of TLS<\/h1>\n<p>The Transport Layer Security protocol (TLS) can secure communications between parties and is widely used with a variety of application-level protocols.<\/p>\n<p>The bad news is that all versions of TLS, except for TLS 1.3 as of this writing, have been compromised in one way or another and their fatal flaws are <a href=\"https:\/\/www.cloudinsidr.com\/content\/known-attack-vectors-against-tls-implementation-vulnerabilities\/\">widely documented<\/a>.<\/p>\n<p><span style=\"font-weight: 400;\">TLS serves three main objectives: authenticate peers, prevent eavesdropping, and tamper-proof their communications by validating the authenticity of messages. Different algorithms serve different purposes.\u00a0<\/span><\/p>\n<h3>The TLS handshake<\/h3>\n<p>During the initial negotiation, the client and server have to agree on a set of parameters that define how the communication channel will be secured, and exchange session keys in order to establish a secure channel.\u00a0This is the <strong>handshake<\/strong> phase.<\/p>\n<p>The TLS handshake establishes one or more <strong>input secrets<\/strong>. The\u00a0<strong>key derivation algorithm<\/strong>combines these input secrets to create the actual working keying material. This process relies on both the input secrets and the transcript of the handshake itself.<\/p>\n<p>During the handshake, the peers rely on\u00a0<strong>asymmetric encryption<\/strong>. The sender uses the recipient&#8217;s\u00a0<strong>public key<\/strong>\u00a0to encrypt a message. The recipient uses its own\u00a0<strong>private key<\/strong>\u00a0to decrypt it upon receipt. During the handshake, the peers perform a key exchange to open a secure channel.<\/p>\n<h3>Key derivation and authentication<\/h3>\n<p>The key derivation process in TLS 1.3 relies on the HKDF-Extract and HKDF-Expand functions and the Hash function of the cipher suite.<\/p>\n<p>Prior to the key exchange, the client and server use HKDF to generate the keys. (It replaces PRF, a pseudo-random key derivation function based on (H)MAC.)<\/p>\n<p>To sign the keys that are exchanged during the initial handshake, TLS uses a signature algorithm. The signature algorithm takes a plaintext\u00a0<em>message<\/em>\u00a0(not a hash) and outputs a signature; any hashing is part of the signature algorithm.<\/p>\n<p>TLS 1.3 allows the signature algorithms<\/p>\n<ul>\n<li>EdDSA (Edwards-curve Digital Signature Algorithm),<\/li>\n<li>ECDSA (Elliptic Curve Digital Signature Algorithm) and<\/li>\n<li>RSA (however, RSA is disallowed for the transport of keys!)<\/li>\n<\/ul>\n<p>To confirm the identity of the server (and optionally, the client) during the TLS handshake,\u00a0the protocol uses an\u00a0<strong>authentication mechanism<\/strong>.<\/p>\n<p>To confirm the authenticity of individual messages, the sender computes a message authentication code using (H)MAC.<\/p>\n<h3>Key exchange<\/h3>\n<p>The <strong>key exchange algorithm<\/strong>\u00a0determines how the client and server authenticate during a <strong>TLS handshake<\/strong>. The key that they exchange may then be used with a symmetric encryption algorithm\u2014the bulk cipher\u2014to encrypt the actual data in the secure channel.<\/p>\n<h3>The secure TLS channel<\/h3>\n<p>In order to keep the communication a secret, TLS opens a secure channel in which all data sent and received is encrypted.<\/p>\n<p>The secure channel relies on <strong>symmetric encryption<\/strong>: the encryption and the decryption keys are identical. Those keys have been exchanged during the TLS handshake in\u00a0a procedure called <strong>TLS key exchange<\/strong>.<\/p>\n<h2>Ciphers and cipher suites<\/h2>\n<p>In cryptography, an algorithm that performs encryption or decryption is called a <strong>cipher\u00a0<\/strong>(or cypher).<\/p>\n<p>A <strong>cipher suite<\/strong>\u00a0is a combination of such algorithms that provides a set of required features, namely key exchange, authentication, encryption (including the cipher and cipher mode) and message authentication (MAC).<\/p>\n<h3>The components of a cipher suite<\/h3>\n<p>TLS 1.3 separates the authentication and key exchange methods from the\u00a0TLS record protection algorithm\u2014the bulk cipher\u2014and the hash function.<\/p>\n<p>The\u00a0<b>bulk cipher<\/b>\u00a0algorithm uses <strong>symmetric\u00a0<\/strong><b>encryption<\/b>\u00a0to secure the channel by encrypting and decrypting the transmission.<\/p>\n<h3>The bulk cipher<\/h3>\n<p>Bulk ciphers fall into one of two categories:<\/p>\n<ul>\n<li>stream\u00a0<b>ciphers<\/b>\u00a0operate on data one byte at a time (example: CHACHA20)<\/li>\n<li>block\u00a0<b>ciphers<\/b> operate on <b>blocks of data<\/b> of equal length (example: AES) using\u00a0a symmetric secret key.<\/li>\n<\/ul>\n<p>An example of a cipher suite based on a safe stream cipher is TLS13-CHACHA20-POLY1305-SHA256 in TLS 1.3. (TLS 1.3 disallows the use of the stream cipher RC4.)<\/p>\n<p>Examples of cipher suites based on a block cipher include TLS13-AES-128-GCM-SHA256 and TLS13-AES-256-GCM-SHA384 in TLS 1.3.<\/p>\n<h3>(H)MAC<\/h3>\n<p>The <strong>MAC algorithm<\/strong> (short for <em>Message Authentication Code)\u00a0<\/em>creates a message digest or a cryptographic hash of each message exchanged in the secure channel in order to\u00a0ensure data integrity.<\/p>\n<p><strong>HMAC<\/strong>\u00a0(<em>Hashed Message Authentication Code<\/em>) is a type of\u00a0MAC involving a\u00a0cryptographic hash function\u00a0and a secret\u00a0cryptographic key and is designed\u00a0to simultaneously verify both the data integrity and the authenticity of a message in the secure channel.\u00a0By using the session key as the HMAC key, the sender of a message can produce a hash of its payload in a way that cannot be forged by anyone unless they know the session key, thus allowing the client to verify its authenticity.<\/p>\n<h4>Collision resistance of the hash function<\/h4>\n<p>Cryptographic\u00a0hash functions are public functions (they do not use a secret key) that offer collision-resistance. Collision resistance means that it is hard to find two messages with the same hash (a useful property for the purposes of authentication).<\/p>\n<p>MACs are keyed functions that can counteract message forgery\u00a0so long as the key remains a secret.\u00a0HMAC is believed to retain the collision resistance of the underlying hash function even in the event that the MAC key is compromised.<\/p>\n<h3>MAC-then-Encrypt versus AEAD cipher suites<\/h3>\n<p>Since it is not sufficient to merely authenticate a message but also to prevent eavesdropping, the (H)MAC algorithm has to combine with the cipher that encrypts the payload. TLS 1.2 and its predecessors use a technique called MAC-then-Encrypt. The sender authenticates its plaintext message using a MAC algorithm, then encrypts the authenticated data. The recipient first decrypts the data using the session key, then verifies its authenticity.\u00a0This approach has a major downside in that it allows an unauthenticated attacker to send arbitrary messages and force the receiving endpoint to decrypt garbage that would fail the MAC verification\u2014a lot of work for nothing.<\/p>\n<p>An Encrypt-then-MAC configuration would make a lot more sense. This technique first encrypts the message, then computes the MAC of the ciphertext so as to confirm its authenticity. As a result, the recipient can easily discard messages that don&#8217;t check out as authentic, since the attacker cannot forge the MAC without knowing the session key. Encrypt-then-Mac would close the padding oracle vulnerability. Unfortunately, Encrypt-then-MAC\u00a0is notoriously difficult to implement.<\/p>\n<p>The architects of TLS 1.3 opted for a third way: AEAD cipher suites. These cipher suites compute MAC and encrypt simultaneously, eliminating the padding oracle vulnerability\u2014hopefully once and for all.<\/p>\n<h1>How to configure TLS for security (plus performance and compatibility)<\/h1>\n<p>TLS configuration involves quite a few steps. Here is what you need to do.<\/p>\n<h2>Step 1. Find out which cipher suites your server supports<\/h2>\n<p>The cipher suites that your system supports depend on the installed version of your cryptographic library.<\/p>\n<p>Various crypto libraries such as <strong>OpenSSL<\/strong>, <strong>IANA<\/strong> and\u00a0<strong>GnuTLS<\/strong> use slightly different names for the same cipher suites. Be careful when you edit you server&#8217;s configuration file. You want to use the correct syntax for your system.<\/p>\n<p>To figure out the best parameters for your application, find out what cipher suites your system supports. With OpenSSL, use this command (or <a href=\"https:\/\/tools.ietf.org\/id\/draft-ietf-tls-tls13-28.html#rfc.section.1.3\" target=\"_blank\" rel=\"noopener\">check the reference<\/a>):<\/p>\n<pre>\/usr\/bin\/openssl ciphers -s -v<\/pre>\n<p>The resulting list reveals the names of cipher suites and their capabilities:<\/p>\n<ul>\n<li>the protocol version (only TLS 1.3 and TLS 1.2 with certain cipher suites are considered trustworthy)<\/li>\n<li>key exchange algorithm (Diffie-Hellman, ECDH or Elliptic Curve Diffie-Hellman, SRP, PSK \u2014 do NOT use RSA!)<\/li>\n<li>authentication mechanism (DSA, ECDSA, RSA)<\/li>\n<li>bulk cipher (e.g. CHACHA20, AES128-GCM)<\/li>\n<li>cryptographic message authentication code (e.g. SHA384, POLY1305)<\/li>\n<\/ul>\n<p>The general composition of the names of cipher suites in TLS 1.2 conforms to the logic:<\/p>\n<pre>KeyExchange:Authentication:Cipher[:CipherMode]:MAC<\/pre>\n<p><span style=\"color: #800000;\">Beware of abbreviated cipher suite designations. For example,\u00a0<del>AES256-SHA256<\/del> will activate the insecure RSA algorithm (by implication) for both the key exchange and authentication, and use the vulnerable cipher mode CBC (Cipher Block chaining). <\/span><\/p>\n<p><span style=\"color: #800000;\">WARNING: Do NOT use RSA for the key exchange! Do NOT use the CBC block cipher mode, it&#8217;s been <a href=\"https:\/\/www.cloudinsidr.com\/content\/known-attack-vectors-against-tls-implementation-vulnerabilities\/\">compromised<\/a> time and time again. Avoid abbreviated naming conventions in cipher suites configuration unless you really know what you are doing.\u00a0<\/span><\/p>\n<h2>Step 2. Activate cipher suites for TLS 1.3<\/h2>\n<p>TLS 1.3 requires that you specify the following <strong>AEAD (Authenticated Encryption with Associated Data) ciphers:<\/strong><\/p>\n<pre style=\"padding-left: 30px;\">TLS13-CHACHA20-POLY1305-SHA256\r\nTLS13-AES-256-GCM-SHA384\r\nTLS13-AES-128-GCM-SHA256<\/pre>\n<p>You may tweak the order, but you should activate all three of the above.<\/p>\n<p>For TLS 1.2, things are a bit more complicated.<\/p>\n<h2>Step 3. Configure TLS 1.2 with only the strongest cipher suites<\/h2>\n<p>When it comes to TLS 1.2, the quality of cipher suites varies greatly. This presents somewhat of a risk. Should even a single weak cipher suite find its way into your configuration, you would be in trouble.<\/p>\n<p>In terms of the key exchange in TLS 1.2, you have two basic choices:<\/p>\n<ul>\n<li><strong>ECDHE:<\/strong>\u00a0an elliptic-curve Diffie-Hellman key exchange; it can be signed with either Elliptic Curve Digital Signature Algorithm ECDSA (ECDHE-ECDSA) or RSA (ECDHE-RSA). Either one is acceptable.<\/li>\n<li><strong>DHE:<\/strong>\u00a0a normal Diffie-Hellman key exchange.<\/li>\n<\/ul>\n<p><span style=\"color: #800000;\">Do NOT use RSA for the key exchange!\u00a0<\/span><span style=\"color: #808080;\"><em>(For example: <del>OpenSSL DES-CBC3-SHA, IANA TLS_RSA_WITH_3DES_EDE_CBC_SHA<\/del>,\u00a0 are bad choices!)<\/em><\/span><\/p>\n<p>DHE is slower than\u00a0ECDHE. If you are concerned about performance, prioritize\u00a0ECDHE-ECDSA over DHE. OWASP estimates that the TLS handshake with DHE hinders the CPU by a factor of 2.4 compared to ECDHE.<\/p>\n<h3>Top choices for secure ciphers<\/h3>\n<p>As of this writing, your first choice among TLS 1.2 cipher suites are the following ones (in OpenSSL syntax):<\/p>\n<p style=\"padding-left: 30px;\">ECDHE-ECDSA-CHACHA20-POLY1305-SHA256<br \/>\nECDHE-ECDSA-CHACHA20-POLY1305<br \/>\nECDHE-ECDSA-AES256-SHA384<br \/>\nECDHE-ECDSA-AES128-SHA256<br \/>\nECDHE-RSA-CHACHA20-POLY1305<\/p>\n<p>These somewhat older cipher suites are also acceptable:<\/p>\n<p style=\"padding-left: 30px;\">DHE-RSA-AES256-GCM-SHA384<br \/>\nDHE-RSA-AES128-GCM-SHA256<br \/>\nECDHE-RSA-AES256-GCM-SHA384<br \/>\nECDHE-RSA-AES128-GCM-SHA256<\/p>\n<p>ChaCha20\/Poly1305 has somewhat of a performance advantage over AES on CPUs that don&#8217;t have a built-in support for AES (typically in mobile devices). Thus, your server should only opt for ChaCha20\/Poly1305 when the client device declares such a preference. Otherwise, your server should use AES.<\/p>\n<p>The above listed cipher suites may <strong>not<\/strong> suffice in terms of your clients&#8217; compatibility requirements, though.<\/p>\n<h3>Additional cipher suites recommended for broader compatibility<\/h3>\n<p>If high compatibility with a variety of user agents is of concern, consider adding these cipher suites:<\/p>\n<p style=\"padding-left: 30px;\">DHE-RSA-AES256-SHA256<br \/>\nDHE-RSA-AES128-SHA256<br \/>\nECDHE-RSA-AES256-SHA384<br \/>\nECDHE-RSA-AES128-SHA256<\/p>\n<p>and finally these:<\/p>\n<p style=\"padding-left: 30px;\">ECDHE-RSA-AES256-SHA<br \/>\nECDHE-RSA-AES128-SHA<br \/>\nDHE-RSA-AES256-CCM8<br \/>\nDHE-RSA-AES256-CCM<\/p>\n<p>You will need to check these settings periodically to take advantage of future improvements. (It&#8217;s probably not what you wanted to hear, but as of now, vigilance is still a requirement for cyber security.)<\/p>\n<h2>Step 4. Test your setup<\/h2>\n<p>To test your web server setup, you can use Qualys Labs&#8217; online SSL Server Test located at:<\/p>\n<p><a href=\"https:\/\/www.ssllabs.com\/ssltest\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.ssllabs.com\/ssltest\/<\/a><\/p>\n<p>The tool simulates session negotiation with your web server by a variety of user agents. This way, you can see which of your select cipher suites are ordinarily in use so you can tweak your server&#8217;s configuration and discard cipher suites that are no longer in legitimate use.<\/p>\n<p>&nbsp;<\/p>\n<h2>Links<\/h2>\n<h5>TLS 1.3 final draft:<\/h5>\n<p><a href=\"https:\/\/tools.ietf.org\/html\/draft-ietf-tls-tls13-28\" target=\"_blank\" rel=\"noopener\">https:\/\/tools.ietf.org\/html\/draft-ietf-tls-tls13-28<\/a><\/p>\n<h5>Pentest-Tools: Scan your server for the POODLE, DROWN, ROBOT, Bash Shellshock\/Ghost, Heartbleed and more:<\/h5>\n<p>https:\/\/pentest-tools.com\/network-vulnerability-scanning\/ssl-poodle-scanner<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Until the day TLS 1.3 becomes widely supported, web servers must rely on a fallback to TLS 1.2 with correctly configured server directives and strong cipher suites. Pick the wrong settings and you declare an open season on your server.<\/p>\n","protected":false},"author":1,"featured_media":1844,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[33,111,1],"tags":[220,47,40,113,228,221,126,42,37,219,218],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v14.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>TLS 1.3 (with AEAD) and TLS 1.2 cipher suites demystified: how to pick your ciphers wisely - CloudInsidr<\/title>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<meta name=\"googlebot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta name=\"bingbot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TLS 1.3 (with AEAD) and TLS 1.2 cipher suites demystified: how to pick your ciphers wisely - CloudInsidr\" \/>\n<meta property=\"og:description\" content=\"Until the day TLS 1.3 becomes widely supported, web servers must rely on a fallback to TLS 1.2 with correctly configured server directives and strong cipher suites. Pick the wrong settings and you declare an open season on your server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudInsidr\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-11T17:56:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-06-03T15:00:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cloudinsidr.com\/content\/wp-content\/uploads\/2018\/05\/https-3344700.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2500\" \/>\n\t<meta property=\"og:image:height\" content=\"1000\" \/>\n<meta name=\"twitter:card\" content=\"summary\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/#website\",\"url\":\"https:\/\/www.cloudinsidr.com\/content\/\",\"name\":\"CloudInsidr\",\"description\":\"Cyber security, infotech\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.cloudinsidr.com\/content\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.cloudinsidr.com\/content\/wp-content\/uploads\/2018\/05\/https-3344700.jpg\",\"width\":2500,\"height\":1000,\"caption\":\"HTTPS illustration\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/#webpage\",\"url\":\"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/\",\"name\":\"TLS 1.3 (with AEAD) and TLS 1.2 cipher suites demystified: how to pick your ciphers wisely - CloudInsidr\",\"isPartOf\":{\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/#primaryimage\"},\"datePublished\":\"2018-05-11T17:56:25+00:00\",\"dateModified\":\"2018-06-03T15:00:45+00:00\",\"author\":{\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/#\/schema\/person\/dd6ee9cb21cf05763fd7cff3d6f11b2b\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cloudinsidr.com\/content\/tls-1-3-and-tls-1-2-cipher-suites-demystified-how-to-pick-your-ciphers-wisely\/\"]}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/#\/schema\/person\/dd6ee9cb21cf05763fd7cff3d6f11b2b\",\"name\":\"Cloud Insidr\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.cloudinsidr.com\/content\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8b2fa1415b3d573b97d818b8f8f83b7c?s=96&d=mm&r=g\",\"caption\":\"Cloud Insidr\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/posts\/1833"}],"collection":[{"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/comments?post=1833"}],"version-history":[{"count":106,"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/posts\/1833\/revisions"}],"predecessor-version":[{"id":2130,"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/posts\/1833\/revisions\/2130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/media\/1844"}],"wp:attachment":[{"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/media?parent=1833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/categories?post=1833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudinsidr.com\/content\/wp-json\/wp\/v2\/tags?post=1833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}